All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Rast <trast@inf.ethz.ch>
To: <git@vger.kernel.org>
Subject: [PATCH 0/6] --valgrind improvements
Date: Thu, 16 May 2013 22:50:11 +0200	[thread overview]
Message-ID: <cover.1368736093.git.trast@inf.ethz.ch> (raw)

Peff and me discussed improving the usability of --valgrind testing.
In particular, two ideas that came up were options for running only a
subset of the tests in a file under --valgrind, and for running a
single test script under valgrind while exploiting parallelism.

So here's a little series.  It goes like this:

  test-lib: enable MALLOC_* for the actual tests

Fix for an unrelated bug that I came across.

  test-lib: refactor $GIT_SKIP_TESTS matching
  test-lib: verbose mode for only tests matching a pattern
  test-lib: valgrind for only tests matching a pattern

An option --valgrind-only=<patterns> that lets you run only the
subtest matching <patterns> under valgrind.

  test-lib: allow prefixing a custom string before "ok N" etc.
  test-lib: support running tests under valgrind in parallel

An option --valgrind-parallel=<n> to run <n> instances in parallel,
each of which runs every <n>-th test under valgrind, staggered so that
they cover everything.  It's a bit of a hack, and thus RFC, but gives
decent results.  On my 2-core laptop I measured a just over 2x
speedup.  On a 6-core it starts falling off because of the extra
(non-valgrind) runs, resulting in a 4.8x speedup.

One open issue with the last patch that currently eludes me: if I
combine --valgrind-parallel with any --valgrind=*, there are lots of
errors as (apparently) the valgrind wrapper setups race against each
other.  However, without any --valgrind=* (thus defaulting to
'memcheck') this doesn't happen.


Thomas Rast (6):
  test-lib: enable MALLOC_* for the actual tests
  test-lib: refactor $GIT_SKIP_TESTS matching
  test-lib: verbose mode for only tests matching a pattern
  test-lib: valgrind for only tests matching a pattern
  test-lib: allow prefixing a custom string before "ok N" etc.
  test-lib: support running tests under valgrind in parallel

 t/README               |  10 +++
 t/test-lib.sh          | 175 ++++++++++++++++++++++++++++++++++++++++---------
 t/valgrind/valgrind.sh |   3 +
 3 files changed, 156 insertions(+), 32 deletions(-)

-- 
1.8.3.rc2.393.g8636c0b

             reply	other threads:[~2013-05-16 20:50 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-16 20:50 Thomas Rast [this message]
2013-05-16 20:50 ` [PATCH 1/6] test-lib: enable MALLOC_* for the actual tests Thomas Rast
2013-05-16 21:28   ` Elia Pinto
2013-05-16 22:43   ` Junio C Hamano
2013-05-16 20:50 ` [PATCH 2/6] test-lib: refactor $GIT_SKIP_TESTS matching Thomas Rast
2013-05-17  5:48   ` Johannes Sixt
2013-05-17  8:04     ` Thomas Rast
2013-05-17 16:48       ` Junio C Hamano
2013-05-17 17:02         ` Thomas Rast
2013-05-17 17:22           ` Junio C Hamano
2013-05-17 21:29           ` Johannes Sixt
2013-05-16 20:50 ` [PATCH 3/6] test-lib: verbose mode for only tests matching a pattern Thomas Rast
2013-05-29  5:00   ` Jeff King
2013-05-29  5:07     ` Jeff King
2013-05-29 17:53       ` Junio C Hamano
2013-05-16 20:50 ` [PATCH 4/6] test-lib: valgrind " Thomas Rast
2013-05-16 20:50 ` [PATCH 5/6] test-lib: allow prefixing a custom string before "ok N" etc Thomas Rast
2013-05-16 22:53   ` Phil Hord
2013-05-17  8:00     ` Thomas Rast
2013-05-17 13:00       ` Phil Hord
2013-05-16 20:50 ` [RFC PATCH 6/6] test-lib: support running tests under valgrind in parallel Thomas Rast
2013-05-29  4:53 ` [PATCH 0/6] --valgrind improvements Jeff King
2013-06-17  9:18 ` [PATCH v2 " Thomas Rast
2013-06-17  9:18   ` [PATCH v2 1/6] test-lib: enable MALLOC_* for the actual tests Thomas Rast
2013-06-17  9:18   ` [PATCH v2 2/6] test-lib: refactor $GIT_SKIP_TESTS matching Thomas Rast
2013-06-18  7:03     ` Johannes Sixt
2013-06-18  8:23       ` Thomas Rast
2013-06-17  9:18   ` [PATCH v2 3/6] test-lib: verbose mode for only tests matching a pattern Thomas Rast
2013-06-18  5:37     ` Jeff King
2013-06-18  8:45       ` Thomas Rast
2013-06-17  9:18   ` [PATCH v2 4/6] test-lib: valgrind " Thomas Rast
2013-06-17  9:18   ` [PATCH v2 5/6] test-lib: allow prefixing a custom string before "ok N" etc Thomas Rast
2013-06-17  9:18   ` [PATCH v2 6/6] test-lib: support running tests under valgrind in parallel Thomas Rast
2013-06-18  5:46   ` [PATCH v2 0/6] --valgrind improvements Jeff King
2013-06-18 12:25   ` [PATCH v3 0/8] " Thomas Rast
2013-06-18 12:25     ` [PATCH v3 1/8] test-lib: enable MALLOC_* for the actual tests Thomas Rast
2013-06-18 12:25     ` [PATCH v3 2/8] test-lib: refactor $GIT_SKIP_TESTS matching Thomas Rast
2013-06-18 12:25     ` [PATCH v3 3/8] test-lib: rearrange start/end of test_expect_* and test_skip Thomas Rast
2013-06-18 18:21       ` Junio C Hamano
2013-06-18 12:26     ` [PATCH v3 4/8] test-lib: self-test that --verbose works Thomas Rast
2013-06-18 12:26     ` [PATCH v3 5/8] test-lib: verbose mode for only tests matching a pattern Thomas Rast
2013-06-18 12:26     ` [PATCH v3 6/8] test-lib: valgrind " Thomas Rast
2013-06-18 12:26     ` [PATCH v3 7/8] test-lib: allow prefixing a custom string before "ok N" etc Thomas Rast
2013-06-18 12:26     ` [PATCH v3 8/8] test-lib: support running tests under valgrind in parallel Thomas Rast

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1368736093.git.trast@inf.ethz.ch \
    --to=trast@inf.ethz.ch \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.