Thread (82 messages) flat view 82 messages, 11 authors, 2021-09-23
STALE1818d

Revision v8 of 8 in this series.

Revisions (8)
  1. v1 [diff vs current]
  2. v2 [diff vs current]
  3. v3 [diff vs current]
  4. v4 [diff vs current]
  5. v5 [diff vs current]
  6. v6 [diff vs current]
  7. v7 [diff vs current]
  8. v8 current

[PATCH v8 0/2] add a test mode for SANITIZE=leak, run it in CI

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2021-09-23 09:20:55

This series adds a small beachhead of tests we run in CI that we
assert to be memory-leak free with the SANITIZE=leak test mode. Once
it lands the intent is to expand the parts of the test suite we
whitelist as memory-leak free.

For the v7 see:
https://lore.kernel.org/git/cover-v7-0.2-00000000000-20210919T075619Z-avarab@gmail.com/ (local)

This v8 fixes a test failure that happened in combination with the
sg/test-split-index-fix topic, which just unearthed an old
GIT_TEST_SPLIT_INDEX=true memory leak.

Carlo Marcelo Arenas Belón had a fixup for it (that's currently
applied to the v7) here:
https://lore.kernel.org/git/20210922111741.82142-1-carenas@gmail.com/ (local)

I acked it in
https://lore.kernel.org/git/87h7ec59m7.fsf@evledraar.gmail.com/ (local); but
on second thought I think this is a better solution for the reasons
noted in the updated commit message.

Ævar Arnfjörð Bjarmason (2):
  Makefile: add SANITIZE=leak flag to GIT-BUILD-OPTIONS
  tests: add a test mode for SANITIZE=leak, run it in CI

 .github/workflows/main.yml |  3 +++
 Makefile                   |  5 +++++
 ci/install-dependencies.sh |  2 +-
 ci/lib.sh                  |  9 ++++++++-
 t/README                   |  7 +++++++
 t/t0004-unwritable.sh      |  3 ++-
 t/t0011-hashmap.sh         |  2 ++
 t/t0016-oidmap.sh          |  2 ++
 t/t0017-env-helper.sh      |  1 +
 t/t0018-advice.sh          |  1 +
 t/t0030-stripspace.sh      |  1 +
 t/t0063-string-list.sh     |  1 +
 t/t0091-bugreport.sh       |  1 +
 t/test-lib.sh              | 21 +++++++++++++++++++++
 14 files changed, 56 insertions(+), 3 deletions(-)

Range-diff against v7:
1:  fc7ba4cb1c3 = 1:  c68a7108dc4 Makefile: add SANITIZE=leak flag to GIT-BUILD-OPTIONS
2:  56592952db5 ! 2:  90ecd49c910 tests: add a test mode for SANITIZE=leak, run it in CI
    @@ Commit message
         The intent is to add more TEST_PASSES_SANITIZE_LEAK=true annotations
         as follow-up change, but let's start small to begin with.
     
    +    In ci/run-build-and-tests.sh we make use of the default "*" case to
    +    run "make test" without any GIT_TEST_* modes. SANITIZE=leak is known
    +    to fail in combination with GIT_TEST_SPLIT_INDEX=true in
    +    t0016-oidmap.sh, and we're likely to have other such failures in
    +    various GIT_TEST_* modes. Let's focus on getting the base tests
    +    passing, we can expand coverage to GIT_TEST_* modes later.
    +
         It would also be possible to implement a more lightweight version of
         this by only relying on setting "LSAN_OPTIONS". See
         [ref][1] and
    @@ ci/lib.sh: linux-musl)
     +
      MAKEFLAGS="$MAKEFLAGS CC=${CC:-cc}"
     
    - ## ci/run-build-and-tests.sh ##
    -@@ ci/run-build-and-tests.sh: fi
    - 
    - make
    - case "$jobname" in
    --linux-gcc)
    -+linux-gcc|linux-leaks)
    - 	export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
    - 	make test
    - 	export GIT_TEST_SPLIT_INDEX=yes
    -
      ## t/README ##
     @@ t/README: excluded as so much relies on it, but this might change in the future.
      GIT_TEST_SPLIT_INDEX=<boolean> forces split-index mode on the whole
-- 
2.33.0.1228.gdc65525c655
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help