Re: [PATCH 3/3] test-lib: check for leak logs after every test
From: Jeff King <hidden>
Date: 2024-09-27 03:58:33
On Thu, Sep 26, 2024 at 04:19:24PM +0200, Patrick Steinhardt wrote:
On Tue, Sep 24, 2024 at 05:38:36PM -0400, Jeff King wrote:quoted
If you are trying to find and fix leaks in a large test script, it can be overwhelming to see the leak logs for every test at once. The previous commit let you use "--immediate" to see the logs after the first failing test, but this isn't always the first leak. As discussed there, we may see leaks from previous tests that didn't happen to fail. To catch those, let's check for any logs that appeared after each test snippet is run, meaning that in a SANITIZE=leak build, any leak is an immediate failure of the test snippet. This check is mostly free in non-leak builds (just a "test -z"), and only a few extra processes in a leak build, so I don't think the overhead should matter (if it does, we could probably optimize for the common "no logs" case without even spending a process).So previously, `--immediate` didn't detect tests that should have failed because they were leaks, and now it does? Sounds like a sensible change to me, too.
Yes, though just to be pedantic, they are marked as failures even without --immediate. It is just that doing so is a lot more useful with --immediate, since otherwise we'd find the leaks at the end (but even that it may still be useful to point to a particular test). So it really is "if you are in a SANITIZE=leak build, generating a leak log fails the test even if it would otherwise pass". -Peff