Patrick Steinhardt <ps@xxxxxx> writes: > With `GIT_TEST_PASSING_SANITIZE_LEAK=check`, one can double check > whether a memory leak fix caused some test suites to become leak free. > It is somewhat slow to execute though because it runs all of our test > suites with the leak sanitizer enabled. It is also pointless in most > cases, because the only test suites that need to be checked are those > which _aren't_ yet marked with `TEST_PASSES_SANITIZE_LEAK=true`. > > Introduce a new value "check-failing". If set, we will only check those > tests which are not yet marked as leak free. A very welcome addition. I am already liking it while running locally. Thanks. > > Signed-off-by: Patrick Steinhardt <ps@xxxxxx> > --- > t/test-lib.sh | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/t/test-lib.sh b/t/test-lib.sh > index 54247604cbc..64bd36531c1 100644 > --- a/t/test-lib.sh > +++ b/t/test-lib.sh > @@ -1558,8 +1558,16 @@ then > passes_sanitize_leak=t > fi > > - if test "$GIT_TEST_PASSING_SANITIZE_LEAK" = "check" > + if test "$GIT_TEST_PASSING_SANITIZE_LEAK" = "check" || > + test "$GIT_TEST_PASSING_SANITIZE_LEAK" = "check-failing" > then > + if test "$GIT_TEST_PASSING_SANITIZE_LEAK" = "check-failing" && > + test -n "$passes_sanitize_leak" > + then > + skip_all="skipping leak-free $this_test under GIT_TEST_PASSING_SANITIZE_LEAK=check-failing" > + test_done > + fi > + > sanitize_leak_check=t > if test -n "$invert_exit_code" > then > @@ -1597,6 +1605,7 @@ then > export LSAN_OPTIONS > > elif test "$GIT_TEST_PASSING_SANITIZE_LEAK" = "check" || > + test "$GIT_TEST_PASSING_SANITIZE_LEAK" = "check-failing" || > test_bool_env GIT_TEST_PASSING_SANITIZE_LEAK false > then > BAIL_OUT_ENV_NEEDS_SANITIZE_LEAK "GIT_TEST_PASSING_SANITIZE_LEAK=true"