git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/3] test-lib: stop showing old leak logs

From
Patrick Steinhardt <ps@pks.im>
Date
Sep 26, 2024, 14:19 UTC
Message-ID
<ZvVtZDrUwkdeRbje@pks.im>
In-Reply-To
<20240924213540.GA1142403@coredump.intra.peff.net>
On Tue, Sep 24, 2024 at 05:35:40PM -0400, Jeff King wrote:
Show 25 quoted lines
> 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.

I'm very much in favor of this change. I frequently re-ran tests with leak checking enabled only to realize that, oops, I forgot to "rm -rf" the leak directory first. So eventually I ended up with the following command:

    $ rm -rf /tmp/git-tests/ && make -C .. -j20 SANITIZE=leak && ./t5310-pack-bitmaps.sh -ix
Every time I didn't use it I soon came to regret it.
Patrick
Previous: Jeff KingNext: Jeff King
Message 3 of 9 in “LSan quality of life improvements”
  1. 0/3 LSan quality of life improvementsJeff King, Sep 24, 2024
  2. 1/3 test-lib: stop showing old leak logsJeff King, Sep 24, 2024
  3. Patrick SteinhardtSep 26, 2024
  4. 2/3 test-lib: show leak-sanitizer logs on --immediate failureJeff King, Sep 24, 2024
  5. Patrick SteinhardtSep 26, 2024
  6. 3/3 test-lib: check for leak logs after every testJeff King, Sep 24, 2024
  7. Patrick SteinhardtSep 26, 2024
  8. Jeff KingSep 27, 2024
  9. Patrick SteinhardtSep 26, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.