use "git init-db" in tests
[git.git] / t / test-lib.sh
index 1523d2e..3704e5f 100755 (executable)
@@ -5,9 +5,10 @@
 
 # For repeatability, reset the environment to known value.
 LANG=C
+LC_ALL=C
 PAGER=cat
 TZ=UTC
-export LANG PAGER TZ
+export LANG LC_ALL PAGER TZ
 unset AUTHOR_DATE
 unset AUTHOR_EMAIL
 unset AUTHOR_NAME
@@ -132,6 +133,19 @@ test_expect_success () {
        fi
 }
 
+test_expect_code () {
+       test "$#" = 3 ||
+       error "bug in the test script: not 3 parameters to test-expect-code"
+       say >&3 "expecting exit code $1: $3"
+       test_run_ "$3"
+       if [ "$?" = 0 -a "$eval_ret" = "$1" ]
+       then
+               test_ok_ "$2"
+       else
+               test_failure_ "$@"
+       fi
+}
+
 test_done () {
        trap - exit
        case "$test_failure" in
@@ -157,10 +171,27 @@ test_done () {
 # Test the binaries we have just built.  The tests are kept in
 # t/ subdirectory and are run in trash subdirectory.
 PATH=$(pwd)/..:$PATH
+GIT_EXEC_PATH=$(pwd)/..
+export PATH GIT_EXEC_PATH
+
+# Similarly use ../compat/subprocess.py if our python does not
+# have subprocess.py on its own.
+PYTHON=`sed -e '1{
+       s/^#!//
+       q
+}' ../git-merge-recursive` &&
+"$PYTHON" -c 'import subprocess' 2>/dev/null || {
+       PYTHONPATH=$(pwd)/../compat
+       export PYTHONPATH
+}
 
 # Test repository
 test=trash
 rm -fr "$test"
 mkdir "$test"
 cd "$test"
-git-init-db 2>/dev/null || error "cannot run git-init-db"
+git init-db --template=../../templates/blt/ 2>/dev/null ||
+error "cannot run git init-db"
+
+mv .git/hooks .git/hooks-disabled
+