git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] test-lib: fix GIT_TEST_SANITIZE_LEAK_LOG
@ 2024-06-30  6:42 Rubén Justo
  2024-07-01  3:49 ` Jeff King
  2024-07-01 20:19 ` Junio C Hamano
  0 siblings, 2 replies; 9+ messages in thread
From: Rubén Justo @ 2024-06-30  6:42 UTC (permalink / raw)
  To: Git List; +Cc: Jeff King, Eric Sunshine, Junio C Hamano

In the if-else's chain we have in "check_test_results_san_file_", we
consider three variables: $passes_sanitize_leak, $sanitize_leak_check
and, implicitly, GIT_TEST_SANITIZE_LEAK_LOG (always set to "true" at
that point).

For the first two variables we have different considerations depending
on the value of $test_failure, which makes sense.  However, for the
third, GIT_TEST_SANITIZE_LEAK_LOG, we don't;  regardless of
$test_failure, we use "invert_exit_code=t" to produce a non-zero
return value.

That assumes "$test_failure" is always zero at that point.  But it
may not be:

   $ git checkout v2.40.1
   $ make test SANITIZE=leak T=t3200-branch.sh # this fails
   $ make test SANITIZE=leak GIT_TEST_SANITIZE_LEAK_LOG=true T=t3200-branch.sh # this succeeds
   [...]
   With GIT_TEST_SANITIZE_LEAK_LOG=true, our logs revealed a memory leak, exiting with a non-zero status!
   # faked up failures as TODO & now exiting with 0 due to --invert-exit-code

We need to use "invert_exit_code=t" only when "$test_failure" is zero.

Let's add the missing conditions in the if-else's chain to make it work
as expected.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Rubén Justo <rjusto@gmail.com>
---

This has already been sent: 
https://lore.kernel.org/git/54253e98-10d5-55ef-a3ac-1f1a8cfcdec9@gmail.com/

I have simplified the message a little, but the change remains the same.

Thanks.

 t/test-lib.sh | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/t/test-lib.sh b/t/test-lib.sh
index 79d3e0e7d9..7ed6d3fc47 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -1269,9 +1269,12 @@ 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
+	else
+		say "With GIT_TEST_SANITIZE_LEAK_LOG=true our logs revealed a memory leak..."
 	fi
 }
 
-- 
2.45.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-07-06 23:13 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-30  6:42 [PATCH] test-lib: fix GIT_TEST_SANITIZE_LEAK_LOG Rubén Justo
2024-07-01  3:49 ` Jeff King
2024-07-01 19:29   ` Junio C Hamano
2024-07-01 20:19 ` Junio C Hamano
2024-07-03 21:35   ` Rubén Justo
2024-07-03 21:44     ` Rubén Justo
2024-07-06  6:18       ` Jeff King
2024-07-06 11:20         ` Rubén Justo
2024-07-06 23:13           ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).