From: "David A. Greene" <greened@xxxxxxxxxxxxx> Allow tests that do not live in the top-level t/ directory to run under valgrind. This requires exporting a couple more variables to indicate where the git tools were built and where the valgrind support files live. Prior to this chage the valgrind support files were hard-coded to be in a sibling directory to where the valgrind tests are run. Also prior to this change the base git build was hard-coded to be exactly two directories up from where the valgrind tests are run. Signed-off-by: David A. Greene <greened@xxxxxxxxxxxxx> --- t/test-lib.sh | 22 ++++++++++++++++++++-- t/valgrind/valgrind.sh | 4 ++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/t/test-lib.sh b/t/test-lib.sh index cb3a0a2..0ebb3a8 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -56,6 +56,7 @@ unset $(perl -e ' PROVE VALGRIND BUILD_DIR + VALGRIND_TOOLS )); my @vars = grep(/^GIT_/ && !/^GIT_($ok)/o, @env); print join("\n", @vars); @@ -917,6 +918,20 @@ then GIT_BUILD_DIR="$TEST_DIRECTORY"/.. fi +# GIT_VALGRIND_TOOLS is the location of tools like valgrind.sh. +if test -z "$GIT_VALGRIND_TOOLS" +then + # We allow tests to override this, in case they want to run tests + # outside of t/. + + # For in-tree test scripts, this is in TEST_DIRECTORY/valgrind + # (t/valgrind), but a test script that lives outside t/ can + # set this variable to point at the right place so that it can + # find t/valgrind directory that house test helpers like + # valgrind.sh. + GIT_VALGRIND_TOOLS="$TEST_DIRECTORY"/valgrind +fi + if test -n "$valgrind" then make_symlink () { @@ -954,11 +969,11 @@ then test ! -d "$symlink_target" && test "#!" != "$(head -c 2 < "$symlink_target")" then - symlink_target=../valgrind.sh + symlink_target=${GIT_VALGRIND_TOOLS}/valgrind.sh fi case "$base" in *.sh|*.perl) - symlink_target=../unprocessed-script + symlink_target=${GIT_VALGRIND_TOOLS}/unprocessed-script esac # create the link, or replace it if it is out of date make_symlink "$symlink_target" "$GIT_VALGRIND/bin/$base" || exit @@ -986,7 +1001,10 @@ then IFS=$OLDIFS PATH=$GIT_VALGRIND/bin:$PATH GIT_EXEC_PATH=$GIT_VALGRIND/bin + # Make these available in valgrind.sh + export GIT_BUILD_DIR export GIT_VALGRIND + export GIT_VALGRIND_TOOLS elif test -n "$GIT_TEST_INSTALLED" ; then GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path) || error "Cannot run git from $GIT_TEST_INSTALLED." diff --git a/t/valgrind/valgrind.sh b/t/valgrind/valgrind.sh index 582b4dc..d638d10 100755 --- a/t/valgrind/valgrind.sh +++ b/t/valgrind/valgrind.sh @@ -13,10 +13,10 @@ TRACK_ORIGINS=--track-origins=yes exec valgrind -q --error-exitcode=126 \ --leak-check=no \ - --suppressions="$GIT_VALGRIND/default.supp" \ + --suppressions="$GIT_VALGRIND_TOOLS/default.supp" \ --gen-suppressions=all \ $TRACK_ORIGINS \ --log-fd=4 \ --input-fd=4 \ $GIT_VALGRIND_OPTIONS \ - "$GIT_VALGRIND"/../../"$base" "$@" + "$GIT_BUILD_DIR"/"$base" "$@" -- 1.7.9.1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html