[PATCH v2 0/4] leak tests: mark remaining tests leak-free as such
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Aug 28, 2023, 22:52 UTC
- Message-ID
- <cover.1693263171.git.me@ttaylorr.com>
- In-Reply-To
- <cover.1692902414.git.me@ttaylorr.com>
Here is a reroll of my (I guess now mine and Peff's!) series to update our test scripts to accurately mark which ones are leak-free.
This is mostly unchanged from the previous round, modulo cleaning up the first (now second) patch's message, and inserting a new patch from Peff at the beginning to ignore noisy LSan output.
Thanks in advance for your review!
Jeff King (1): test-lib: ignore uninteresting LSan output
Taylor Blau (3): leak tests: mark a handful of tests as leak-free leak tests: mark t3321-notes-stripspace.sh as leak-free leak tests: mark t5583-push-branches.sh as leak-free
t/t3321-notes-stripspace.sh | 1 + t/t5571-pre-push-hook.sh | 1 + t/t5583-push-branches.sh | 1 + t/t7516-commit-races.sh | 2 ++ t/test-lib.sh | 1 + 5 files changed, 6 insertions(+)
Range-diff against v1:
-: ---------- > 1: 7dd42212c0 test-lib: ignore uninteresting LSan output
1: b1711c4c81 ! 2: 164f37cade leak tests: mark a handful of tests as leak-free
@@ Commit message
'ab/mark-leak-free-tests', 2021-10-25), a handful of tests in the suite
were marked as leak-free.
- As far as I can tell, each patch from that series ran tests from a
- handful of subject areas, such as "some ls-files tests", or "all trace2
- tests". This left some gaps in which tests had and hadn't been audited
- to be leak-free.
+ Since then, a handful of tests have become leak-free due to changes like
- This patch closes those gaps by exporting TEST_PASSES_SANITIZE_LEAK=true
- before sourcing t/test-lib.sh on most remaining leak-free tests. This
- list was compiled by doing:
+ - 861c56f6f9 (branch: fix a leak in setup_tracking, 2023-06-11), and
+ - 866b43e644 (do_read_index(): always mark index as initialized unless
+ erroring out, 2023-06-29)
+
+ , but weren't updated at the time to mark themselves as such. This leads
+ to test "failures" when running:
$ make SANITIZE=leak
- $ make \
+ $ make -C t \
GIT_TEST_PASSING_SANITIZE_LEAK=check \
GIT_TEST_SANITIZE_LEAK_LOG=true \
GIT_TEST_OPTS=-vi test
- and looking through the list of failing tests in the output.
+ This patch closes those gaps by exporting TEST_PASSES_SANITIZE_LEAK=true
+ before sourcing t/test-lib.sh on most remaining leak-free tests.
There are a couple of other tests which are similarly leak-free, but not
included in the list of tests touched by this patch. The remaining tests
will be addressed in the subsequent two patches.
+ Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
## t/t5571-pre-push-hook.sh ##
2: cfeca88942 = 3: 116555fc02 leak tests: mark t3321-notes-stripspace.sh as leak-free
3: 4011eb6a8b = 4: a16a0b2cac leak tests: mark t5583-push-branches.sh as leak-free-- 2.42.0.49.g03c54e21ee