]> git.ipfire.org Git - thirdparty/git.git/commitdiff
test-lib tests: assert 1 exit code, not non-zero
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Wed, 22 Sep 2021 11:19:52 +0000 (13:19 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 22 Sep 2021 23:22:41 +0000 (16:22 -0700)
Improve the testing for test-lib.sh itself to assert that we have a
exit code of 1, not any non-zero. Improves code added in
0445e6f0a12 (test-lib: '--run' to run only specific tests,
2014-04-30).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/lib-subtest.sh

index cdadc0c7fc284088ec429ef24a4e64a21ba93bed..56ee927f0c49be45483380ab504b0ee22871ed6c 100644 (file)
@@ -11,8 +11,8 @@ write_sub_test_lib_test () {
 }
 
 _run_sub_test_lib_test_common () {
-       neg="$1" name="$2" # stdin is the body of the test code
-       shift 2
+       cmp_op="$1" want_code="$2" name="$3" # stdin is the body of the test code
+       shift 3
 
        # intercept pseudo-options at the front of the argument list that we
        # will not pass to child script
@@ -48,33 +48,30 @@ _run_sub_test_lib_test_common () {
                GIT_SKIP_TESTS=$skip &&
                export GIT_SKIP_TESTS &&
                sane_unset GIT_TEST_FAIL_PREREQS &&
-               if test -z "$neg"
-               then
-                       ./"$name.sh" "$@" >out 2>err
-               else
-                       ! ./"$name.sh" "$@" >out 2>err
-               fi
+               ./"$name.sh" "$@" >out 2>err;
+               ret=$? &&
+               test "$ret" "$cmp_op" "$want_code"
        )
 }
 
 write_and_run_sub_test_lib_test () {
        name="$1" descr="$2" # stdin is the body of the test code
        write_sub_test_lib_test "$@" || return 1
-       _run_sub_test_lib_test_common '' "$@"
+       _run_sub_test_lib_test_common -eq 0 "$@"
 }
 
 write_and_run_sub_test_lib_test_err () {
        name="$1" descr="$2" # stdin is the body of the test code
        write_sub_test_lib_test "$@" || return 1
-       _run_sub_test_lib_test_common '!' "$@"
+       _run_sub_test_lib_test_common -eq 1 "$@"
 }
 
 run_sub_test_lib_test () {
-       _run_sub_test_lib_test_common '' "$@"
+       _run_sub_test_lib_test_common -eq 0 "$@"
 }
 
 run_sub_test_lib_test_err () {
-       _run_sub_test_lib_test_common '!' "$@"
+       _run_sub_test_lib_test_common -eq 1 "$@"
 }
 
 _check_sub_test_lib_test_common () {