Re: [PATCH] valgrind: support test helpers
From: Junio C Hamano <hidden>
Date: 2016-10-28 12:50:17
René Scharfe [off-list ref] writes:
Tests run with --valgrind call git commands through a wrapper script that invokes valgrind on them. This script (valgrind.sh) is in turn invoked through symlinks created for each command in t/valgrind/bin/. Since e6e7530d (test helpers: move test-* to t/helper/ subdirectory) these symlinks have been broken for test helpers -- they point to the old locations in the root of the build directory. Fix that by teaching the code for creating the links about the new location of the binaries, and do the same in the wrapper script to allow it to find its payload. Signed-off-by: Rene Scharfe <redacted> ---
Hmph. I somehow thought this was supposed to have been fixed by
503e224180 ("t/test-lib.sh: fix running tests with --valgrind",
2016-07-11) already.
quoted hunk
t/test-lib.sh | 9 ++++++++- t/valgrind/valgrind.sh | 12 ++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-)diff --git a/t/test-lib.sh b/t/test-lib.sh index b859db6..a724181 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh@@ -809,7 +809,14 @@ then return; base=$(basename "$1") - symlink_target=$GIT_BUILD_DIR/$base + case "$base" in + test-*) + symlink_target="$GIT_BUILD_DIR/t/helper/$base" + ;; + *) + symlink_target="$GIT_BUILD_DIR/$base" + ;; + esac # do not override scripts if test -x "$symlink_target" && test ! -d "$symlink_target" &&diff --git a/t/valgrind/valgrind.sh b/t/valgrind/valgrind.sh index 4215303..669ebaf 100755 --- a/t/valgrind/valgrind.sh +++ b/t/valgrind/valgrind.sh@@ -1,11 +1,19 @@ #!/bin/sh base=$(basename "$0") +case "$base" in +test-*) + program="$GIT_VALGRIND/../../t/helper/$base" + ;; +*) + program="$GIT_VALGRIND/../../$base" + ;; +esac TOOL_OPTIONS='--leak-check=no' test -z "$GIT_VALGRIND_ENABLED" && -exec "$GIT_VALGRIND"/../../"$base" "$@" +exec "$program" "$@" case "$GIT_VALGRIND_MODE" in memcheck-fast)@@ -29,4 +37,4 @@ exec valgrind -q --error-exitcode=126 \ --log-fd=4 \ --input-fd=4 \ $GIT_VALGRIND_OPTIONS \ - "$GIT_VALGRIND"/../../"$base" "$@" + "$program" "$@"