On Fri, Jun 17, 2011 at 04:29:57AM -0400, Jeff King wrote: > I'm attempting to run the whole test suite under valgrind for 1.7.6-rc2. > It's been a while since I've done a whole run, as there were some false > positives in strspn on recent glibc which I've finally addressed. > > We'll see what it comes up with later today. :) It took about 8 hours to run on my measly quad-core. The good news is that there were no actual bugs. After fixing the strspn (and some strcasestr) false positives at the valgrind level, the only patch I needed to get every test script running successfully was: -- >8 -- Subject: tests: link shell libraries into valgrind directory 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@xxxxxxxx> --- Another strategy would be to actually check the Makefile variables to see what to symlink; but that's a pretty big change, and what we have now works fine (with this exception). t/test-lib.sh | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/t/test-lib.sh b/t/test-lib.sh index 64390d7..8c57a00 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -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 -- 1.7.6.rc1.38.g97f64 -- 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