Subject: ab/leak-check (was: What's cooking in git.git (Jul 2022, #08; Fri, 29))

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Mon, 01 Aug 2022 14:01:01 +0200

On Fri, Jul 29 2022, Junio C Hamano wrote:

> * ab/leak-check (2022-07-27) 15 commits
>  - CI: use "GIT_TEST_SANITIZE_LEAK_LOG=true" in linux-leaks
>  - upload-pack: fix a memory leak in create_pack_file()
>  - leak tests: mark passing SANITIZE=leak tests as leak-free
>  - leak tests: don't skip some tests under SANITIZE=leak
>  - test-lib: have the "check" mode for SANITIZE=leak consider leak logs
>  - test-lib: add a GIT_TEST_PASSING_SANITIZE_LEAK=check mode
>  - test-lib: simplify by removing test_external
>  - tests: move copy/pasted PERL + Test::More checks to a lib-perl.sh
>  - t/Makefile: don't remove test-results in "clean-except-prove-cache"
>  - test-lib: add a SANITIZE=leak logging mode
>  - t/README: reword the "GIT_TEST_PASSING_SANITIZE_LEAK" description
>  - test-lib: add a --invert-exit-code switch
>  - test-lib: fix GIT_EXIT_OK logic errors, use BAIL_OUT
>  - test-lib: don't set GIT_EXIT_OK before calling test_atexit_handler
>  - test-lib: use $1, not $@ in test_known_broken_{ok,failure}_
>
>  Plugging more leaks.
>  source: <[email-masked]>

Just a note on the summary: This isn't "plugging more leaks" (although
one leak is plugged as it's trivial, and stands in the way of 15/15.

Suggestion: New test instrumentation for extending SANITIZE=leak
checking, and marking some existing tests as leak-free.

I think this should otherwise be ready for "next", the "linux-leaks" job
now passes with this (there was a conflict with another topic). This
topic is fairly self-contained to just the test code we run for
"linux-leaks".

To the extent that we have had a bit of churn with these sorts of
changes it's been because they've lingered in "seen", as new changes get
sent based on "master" or "next", which inadvertently add leaks to
existing now-leak-free tests...