]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t0000: disable GIT_TEST_FAIL_PREREQS in sub-tests
authorJeff King <peff@peff.net>
Tue, 28 Apr 2020 08:14:21 +0000 (04:14 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 28 Apr 2020 17:26:01 +0000 (10:26 -0700)
The test added by 477dcaddb6 (tests: do not let lazy prereqs inside
`test_expect_*` turn off tracing, 2020-03-26) runs a sub-test script
that traces a test with a lazy prereq, like:

  test_have_prereq LAZY && echo trace

That won't work if GIT_TEST_FAIL_PREREQS is set in the environment,
because our have_prereq will report failure, and we won't run the echo
at all.

We could work around this by avoiding the &&-chain, but we can
fix this and any future tests at once by unsetting that variable for our
sub-tests. These are meant to be controlled environments where we test
the test-suite itself; the outer test snippet should be in charge of the
sub-test environment, not whatever mode the user happens to be running
in.

Reported-by: Son Luong Ngoc <sluongng@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t0000-basic.sh

index b85972162003847481f73c280e074e5bcd2c0e91..f58f3deaa8372480980410e4ee8d3d19f94b9e46 100755 (executable)
@@ -98,6 +98,7 @@ _run_sub_test_lib_test_common () {
                export TEST_DIRECTORY &&
                TEST_OUTPUT_DIRECTORY=$(pwd) &&
                export TEST_OUTPUT_DIRECTORY &&
+               sane_unset GIT_TEST_FAIL_PREREQS &&
                if test -z "$neg"
                then
                        ./"$name.sh" "$@" >out 2>err