]> git.ipfire.org Git - thirdparty/git.git/commit
test-lib: stop showing old leak logs
authorJeff King <peff@peff.net>
Tue, 24 Sep 2024 21:35:40 +0000 (17:35 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 25 Sep 2024 17:23:01 +0000 (10:23 -0700)
commit95c679ad861403d12178f871834bf3aa69981bc6
tree398ec069cd1f185beacee75bdcedb2a6fd9747bd
parent6258f68c3c1092c901337895c864073dcdea9213
test-lib: stop showing old leak logs

We ask LSan to record the logs of all leaks in test-results/, which is
useful for finding leaks that didn't trigger a test failure.

We don't clean out the leak/ directory for each test before running it,
though. Instead, we count the number of files it has, and complain only
if we ended up with more when the script finishes. So we shouldn't
trigger any output if you've made a script leak free. But if you simply
_reduced_ the number of leaks, then there is an annoying outcome: we do
not record which logs were from this run and which were from previous
ones. So when we dump them to stdout, you get a mess of
possibly-outdated leaks. This is very confusing when you are in an
edit-compile-test cycle trying to fix leaks.

The instructions do note that you should "rm -rf test-results/" if you
want to avoid this. But I'm having trouble seeing how this cumulative
count could ever be useful. It is not even counting the number of leaks,
but rather the number of processes with at least one leak!

So let's just blow away the per-test leak/ directory before running. We
already overwrite the ".out" file in test-results/ in the same way, so
this is following that pattern.

Running "make test" isn't affected by this, since it blows away all of
test-results/ already. This only comes up when you are iterating on a
single script that you're running manually.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/test-lib.sh