On Thu, Aug 24, 2023 at 04:50:09PM -0400, Jeff King wrote: > On Thu, Aug 24, 2023 at 02:40:34PM -0400, Taylor Blau wrote: > > > While working on another topic that cleared up some leaks, I wanted to > > see if any new tests became leak-free, so I ran: > > > > $ make SANITIZE=leak > > $ make GIT_TEST_PASSING_SANITIZE_LEAK=check GIT_TEST_OPTS=-i test > > Is that exactly what you ran? Because I'd expect the second "make" > invocation to rebuild Git _without_ SANITIZE=leak enabled in that case. > (Though I would have then expected most of the scripts to complain > loudly about the mismatch; did you "cd t" in between the two?). Argh. No, I wrote instead: make SANITIZE=leak make -C t GIT_TEST_PASSING_SANITIZE_LEAK=check ... test > > 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 ++ > > 4 files changed, 5 insertions(+) > > If I run a single: > > make SANITIZE=leak GIT_TEST_PASSING_SANITIZE_LEAK=check GIT_TEST_OPTS=-i test > > on v2.42.0, I get many hits. All of the ones you mentioned, plus: > > t7408 t5407 t7008 t5811 t3407 t6001 t4058 t2016 > > If I run a few by hand, I _do_ see leaks in them, but the exit codes are > hidden from the test suite (they are sub-programs of scripts, etc). I > guess you also have: > > GIT_TEST_SANITIZE_LEAK_LOG=true Yep, that is in the patch message, and definitely necessary (as you found ;-)) to get accurate results here. Thanks, Taylor