Skip to content
  • Denton Liu's avatar
    lib-submodule-update: pass 'test_must_fail' as an argument · 5b0ac09f
    Denton Liu authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    When we run a test helper function in test_submodule_switch_common(), we
    sometimes specify a whole helper function as the $command. When we do
    this, in some test cases, we just mark the whole function with
    `test_must_fail`. However, it's possible that the helper function might
    fail earlier or later than expected due to an introduced bug. If this
    happens, then the test case will still report as passing but it should
    really be marked as failing since it didn't actually display the
    intended behaviour.
    
    Instead of invoking `test_must_fail $command`, pass the string
    "test_must_fail" as the second argument in case where the git command is
    expected to fail.
    
    When $command is a helper function, the parent function calling
    test_submodule_switch_common() is test_submodule_switch_func(). For all
    test_submodule_switch_func() invocations, increase the granularity of
    the argument test helper function by prefixing the git invocation which is
    meant to fail with the second argument like this:
    
    	$2 git checkout "$1"
    
    In the other cases, test_submodule_switch() and
    test_submodule_forced_switch(), instead of passing in the git command
    directly, wrap it using the git_test_func() and pass the git arguments
    using the global variable $gitcmd. Unfortunately, since closures aren't
    a thing in shell scripts, the global variable is necessary. Another
    unfortunate result is that the "git_test_func" will used as the test
    case name when $command is printed but it's worth it for the cleaner
    code.
    
    Finally, as an added bonus, `test_must_fail` will now only run on git
    commands.
    
    Signed-off-by: default avatarDenton Liu <liu.denton@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    5b0ac09f