summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorLibravatar Johannes Schindelin <johannes.schindelin@gmx.de>2009-02-04 00:26:08 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2009-02-03 22:01:06 -0800
commitefd92ffd316d03360e1c8a348091e4f50f749d6f (patch)
tree012482c9748ecd91c21c5ed8d40dbed8829e9a1d /t
parentvalgrind: ignore ldso and more libz errors (diff)
downloadtgif-efd92ffd316d03360e1c8a348091e4f50f749d6f.tar.xz
Valgrind support: check for more than just programming errors
This patch makes --valgrind try to override _all_ Git binaries in the PATH, and it makes it an error to call *.sh and *.perl scripts directly. While it is not strictly necessary to look through the whole PATH to find git binaries to override, it is in line with running an expensive test (which valgrind is) to make extra sure that only binaries are tested that actually come from the git.git checkout. In the same spirit, we can test that neither our test suite nor our scripts try to run the *.sh or *.perl scripts directly. It's more like a "because we can" than a "this is tightly connected to valgrind", but in the author's opinion "because we can" is "so we should" in this case. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rw-r--r--t/test-lib.sh15
1 files changed, 15 insertions, 0 deletions
diff --git a/t/test-lib.sh b/t/test-lib.sh
index da12b0aa43..5a58356c72 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -531,6 +531,10 @@ else
then
symlink_target=../valgrind.sh
fi
+ case "$base" in
+ *.sh|*.perl)
+ symlink_target=../unprocessed-script
+ esac
# create the link, or replace it if it is out of date
make_symlink "$symlink_target" "$GIT_VALGRIND/bin/$base" || exit
}
@@ -542,6 +546,17 @@ else
do
make_valgrind_symlink $file
done
+ OLDIFS=$IFS
+ IFS=:
+ for path in $PATH
+ do
+ ls "$path"/git-* 2> /dev/null |
+ while read file
+ do
+ make_valgrind_symlink "$file"
+ done
+ done
+ IFS=$OLDIFS
PATH=$GIT_VALGRIND/bin:$PATH
GIT_EXEC_PATH=$GIT_VALGRIND/bin
export GIT_VALGRIND