GIT_TEST_SANITIZE_LEAK_LOG=true with a test that leaks, will make the test return zero unintentionally: $ git checkout v2.40.1 $ make SANITIZE=leak $ make -C t GIT_TEST_SANITIZE_LEAK_LOG=true t3200-branch.sh ... With GIT_TEST_SANITIZE_LEAK_LOG=true our logs revealed a memory leak, exit non-zero! # faked up failures as TODO & now exiting with 0 due to --invert-exit-code Let's use invert_exit_code only if needed. Signed-off-by: Rubén Justo <rjusto@xxxxxxxxx> --- t/test-lib.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/t/test-lib.sh b/t/test-lib.sh index 88a34fba67..87cfea9e9a 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -1263,7 +1263,8 @@ check_test_results_san_file_ () { then say "As TEST_PASSES_SANITIZE_LEAK=true isn't set the above leak is 'ok' with GIT_TEST_PASSING_SANITIZE_LEAK=check" && invert_exit_code=t - else + elif test "$test_failure" = 0 + then say "With GIT_TEST_SANITIZE_LEAK_LOG=true our logs revealed a memory leak, exit non-zero!" && invert_exit_code=t fi -- 2.40.1