git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: greened@obbligato.org
To: git@vger.kernel.org
Cc: "David A. Greene" <greened@obbligato.org>
Subject: [PATCH 2/2] Support Out-Of-Tree Valgrind Tests
Date: Sun,  4 Mar 2012 17:23:57 -0600	[thread overview]
Message-ID: <1330903437-31386-2-git-send-email-greened@obbligato.org> (raw)
In-Reply-To: <1330903437-31386-1-git-send-email-greened@obbligato.org>

From: "David A. Greene" <greened@obbligato.org>

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@obbligato.org>
---
 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

  reply	other threads:[~2012-03-04 23:27 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-04 23:23 [PATCH 1/2] Allow Overriding GIT_BUILD_DIR greened
2012-03-04 23:23 ` greened [this message]
2012-03-05  7:53   ` [PATCH 2/2] Support Out-Of-Tree Valgrind Tests Thomas Rast
2012-03-05 18:11     ` David A. Greene
2012-03-06  8:46       ` Thomas Rast
2012-03-06 14:40         ` David A. Greene
2012-03-06 18:49           ` Junio C Hamano
2012-03-06 22:12             ` David A. Greene
2012-03-06 22:21               ` Junio C Hamano
2012-03-06 22:37                 ` Junio C Hamano
2012-03-06 23:00                   ` David A. Greene
2012-03-06 23:12                     ` Junio C Hamano
2012-03-06 22:54                 ` David A. Greene
2012-03-06 18:43         ` Junio C Hamano
2012-03-05  6:33 ` [PATCH 1/2] Allow Overriding GIT_BUILD_DIR Junio C Hamano
2012-03-05 18:10   ` David A. Greene
2012-03-05 20:08     ` Junio C Hamano
2012-03-06 14:21       ` David A. Greene

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=1330903437-31386-2-git-send-email-greened@obbligato.org \
    --to=greened@obbligato.org \
    --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).