Skip to content

Commit

Permalink
tests: link shell libraries into valgrind directory
Browse files Browse the repository at this point in the history
When we run tests under valgrind, we symlink anything
executable that starts with git-* or test-* into a special
valgrind bin directory, and then make that our
GIT_EXEC_PATH.

However, shell libraries like git-sh-setup do not have the
executable bit marked, and did not get symlinked.  This
means that any test looking for shell libraries in our
exec-path would fail to find them, even though that is a
fine thing to do when testing against a regular git build
(or in a git install, for that matter).

t2300 demonstrated this problem. The fix is to symlink these
shell libraries directly into the valgrind directory.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Jun 17, 2011
1 parent 7ef4d6b commit 36bfb0e
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions t/test-lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -884,8 +884,13 @@ then
}

make_valgrind_symlink () {
# handle only executables
test -x "$1" || return
# handle only executables, unless they are shell libraries that
# need to be in the exec-path. We will just use "#!" as a
# guess for a shell-script, since we have no idea what the user
# may have configured as the shell path.
test -x "$1" ||
test "#!" = "$(head -c 2 <"$1")" ||
return;

base=$(basename "$1")
symlink_target=$GIT_BUILD_DIR/$base
Expand Down

0 comments on commit 36bfb0e

Please sign in to comment.