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.

Advertising

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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html