test-lib.sh: Allow running the test suite against installed git
authorMichael J Gruber <git@drmicha.warpmail.net>
Mon, 16 Mar 2009 17:03:12 +0000 (18:03 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 16 Mar 2009 19:19:10 +0000 (12:19 -0700)
Introduce variables GIT_TEST_INSTALLED and GIT_TEST_EXEC_PATH such that
the test suite can be run against a git which is installed at
GIT_TEST_INSTALLED with subcommands at GIT_TEST_EXEC_PATH.

GIT_TEST_INSTALLED defaults to the git.git checkout, GIT_TEST_EXEC_PATH
defaults to the output of '$GIT_TEST_INSTALLED/git --exec-path'.

Run the suite e.g. as

    GIT_TEST_INSTALLED=/some/path make test

but note that this requires and uses parts of a compiled git in the
git.git checkout: test helpers, templates and perl libraries are taken
from there.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/test-lib.sh

index dace24c541e5bc802e01eca1c9d5415e0a4b9782..a70b633dd9b6691e7cb2b603e4ec0350c2095418 100644 (file)
@@ -514,8 +514,16 @@ test_done () {
 TEST_DIRECTORY=$(pwd)
 if test -z "$valgrind"
 then
-       PATH=$TEST_DIRECTORY/..:$PATH
-       GIT_EXEC_PATH=$TEST_DIRECTORY/..
+       if test -z "$GIT_TEST_INSTALLED"
+       then
+               PATH=$TEST_DIRECTORY/..:$PATH
+               GIT_EXEC_PATH=$TEST_DIRECTORY/..
+       else
+               GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path)  ||
+               error "Cannot run git from $GIT_TEST_INSTALLED."
+               PATH=$GIT_TEST_INSTALLED:$TEST_DIRECTORY/..:$PATH
+               GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH}
+       fi
 else
        make_symlink () {
                test -h "$2" &&