From: Thomas Rast <trast@inf.ethz.ch>
To: <git@vger.kernel.org>
Subject: [PATCH 4/6] test-lib: valgrind for only tests matching a pattern
Date: Thu, 16 May 2013 22:50:15 +0200 [thread overview]
Message-ID: <0be45a574ec5f527ef1f3cc50f7acba2f025a2a3.1368736093.git.trast@inf.ethz.ch> (raw)
In-Reply-To: <cover.1368736093.git.trast@inf.ethz.ch>
With the new --valgrind-only=<pattern> option, one can enable
--valgrind at a per-test granularity, exactly analogous to
--verbose-only from the previous commit.
The options are wired such that --valgrind implies --verbose (as
before), but --valgrind-only=<pattern> implies
--verbose-only=<pattern> unless --verbose is also in effect.
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
---
t/README | 5 +++++
t/test-lib.sh | 30 +++++++++++++++++++++++++++++-
t/valgrind/valgrind.sh | 3 +++
3 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/t/README b/t/README
index 9c8f9b1..bffd484 100644
--- a/t/README
+++ b/t/README
@@ -126,6 +126,11 @@ appropriately before running "make".
the 't/valgrind/' directory and use the commands under
't/valgrind/bin/'.
+--valgrind-only=<pattern>::
+ Like --valgrind, but the effect is limited to tests with
+ numbers matching <pattern>. The number matched against is
+ simply the running count of the test within the file.
+
--tee::
In addition to printing the test output to the terminal,
write it to files named 't/test-results/$TEST_NAME.out'.
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 01e7445..9ae7c7b 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -201,6 +201,9 @@ do
--valgrind=*)
valgrind=$(expr "z$1" : 'z[^=]*=\(.*\)')
shift ;;
+ --valgrind-only=*)
+ valgrind_only=$(expr "z$1" : 'z[^=]*=\(.*\)')
+ shift ;;
--tee)
shift ;; # was handled already
--root=*)
@@ -211,7 +214,14 @@ do
esac
done
-test -n "$valgrind" && verbose=t
+if test -n "$valgrind_only"
+then
+ test -z "$valgrind" && valgrind=memcheck
+ test -z "$verbose" && verbose_only="$valgrind_only"
+elif test -n "$valgrind"
+then
+ verbose=t
+fi
if test -n "$color"
then
@@ -355,8 +365,23 @@ toggle_verbose () {
fi
}
+toggle_valgrind () {
+ test -z "$GIT_VALGRIND" && return
+ if test -z "$valgrind_only"
+ then
+ GIT_VALGRIND_ENABLED=t
+ return
+ fi
+ GIT_VALGRIND_ENABLED=
+ if match_pattern_list $test_count $valgrind_only
+ then
+ GIT_VALGRIND_ENABLED=t
+ fi
+}
+
setup_test_eval () {
setup_malloc_check
+ toggle_valgrind
toggle_verbose
}
teardown_test_eval () {
@@ -571,6 +596,9 @@ then
export GIT_VALGRIND
GIT_VALGRIND_MODE="$valgrind"
export GIT_VALGRIND_MODE
+ GIT_VALGRIND_ENABLED=t
+ test -n "$valgrind_only" && GIT_VALGRIND_ENABLED=
+ export GIT_VALGRIND_ENABLED
elif test -n "$GIT_TEST_INSTALLED"
then
GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path) ||
diff --git a/t/valgrind/valgrind.sh b/t/valgrind/valgrind.sh
index 6b87c91..4215303 100755
--- a/t/valgrind/valgrind.sh
+++ b/t/valgrind/valgrind.sh
@@ -4,6 +4,9 @@ base=$(basename "$0")
TOOL_OPTIONS='--leak-check=no'
+test -z "$GIT_VALGRIND_ENABLED" &&
+exec "$GIT_VALGRIND"/../../"$base" "$@"
+
case "$GIT_VALGRIND_MODE" in
memcheck-fast)
;;
--
1.8.3.rc2.393.g8636c0b
next prev parent 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 [PATCH 0/6] --valgrind improvements Thomas Rast
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 ` Thomas Rast [this message]
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=0be45a574ec5f527ef1f3cc50f7acba2f025a2a3.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).