test-lib tests: assert 1 exit code, not non-zero

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>

Ævar Arnfjörð Bjarmason committed Sep 22, 2021 at 13:19 UTC 56722a0635141f294c04c4b62add8f83aa8af71b
1 file changed +9 -12
t/lib-subtest.sh
+9 -12
@@ -11,8 +11,8 @@ write_sub_test_lib_test () {
11 }
12
13 _run_sub_test_lib_test_common () {
14 - neg="$1" name="$2" # stdin is the body of the test code
15 - shift 2
14 + cmp_op="$1" want_code="$2" name="$3" # stdin is the body of the test code
15 + shift 3
16
17 # intercept pseudo-options at the front of the argument list that we
18 # will not pass to child script
@@ -48,33 +48,30 @@ _run_sub_test_lib_test_common () {
48 GIT_SKIP_TESTS=$skip &&
49 export GIT_SKIP_TESTS &&
50 sane_unset GIT_TEST_FAIL_PREREQS &&
51 - if test -z "$neg"
52 - then
53 - ./"$name.sh" "$@" >out 2>err
54 - else
55 - ! ./"$name.sh" "$@" >out 2>err
56 - fi
51 + ./"$name.sh" "$@" >out 2>err;
52 + ret=$? &&
53 + test "$ret" "$cmp_op" "$want_code"
54 )
55 }
56
57 write_and_run_sub_test_lib_test () {
58 name="$1" descr="$2" # stdin is the body of the test code
59 write_sub_test_lib_test "$@" || return 1
63 - _run_sub_test_lib_test_common '' "$@"
60 + _run_sub_test_lib_test_common -eq 0 "$@"
61 }
62
63 write_and_run_sub_test_lib_test_err () {
64 name="$1" descr="$2" # stdin is the body of the test code
65 write_sub_test_lib_test "$@" || return 1
69 - _run_sub_test_lib_test_common '!' "$@"
66 + _run_sub_test_lib_test_common -eq 1 "$@"
67 }
68
69 run_sub_test_lib_test () {
73 - _run_sub_test_lib_test_common '' "$@"
70 + _run_sub_test_lib_test_common -eq 0 "$@"
71 }
72
73 run_sub_test_lib_test_err () {
77 - _run_sub_test_lib_test_common '!' "$@"
74 + _run_sub_test_lib_test_common -eq 1 "$@"
75 }
76
77 _check_sub_test_lib_test_common () {