valgrind: support test helpers
authorRené Scharfe <l.s.r@web.de>
Thu, 27 Oct 2016 22:14:00 +0000 (00:14 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 28 Oct 2016 06:33:53 +0000 (23:33 -0700)
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 <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/test-lib.sh
t/valgrind/valgrind.sh
index 0c966f3eaa09e7b523b77240ea35b5b06ec4b316..bbaf9a13e11c96364659a9d668836309634cd400 100644 (file)
@@ -766,7 +766,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" &&
index 42153036dcfdee66e54fa4bd777ad3c36233d640..669ebaf68be006ee53911f02da72e56cb5a100f0 100755 (executable)
@@ -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" "$@"