X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=t%2Ftest-lib.sh;h=a97d259e26bc269c8f370f1d3bfa82e7d6cb9831;hb=1e80e0449248edb77b0fb9853f4a3404a599e207;hp=e654155a2eb0bc7aaf84335141d51c8f4fedb512;hpb=a0fa2a10b401aa4c8b13d176a5e3e3b7c455208f;p=git.git diff --git a/t/test-lib.sh b/t/test-lib.sh index e654155a..a97d259e 100755 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -18,6 +18,7 @@ unset GIT_ALTERNATE_OBJECT_DIRECTORIES unset GIT_AUTHOR_DATE unset GIT_AUTHOR_EMAIL unset GIT_AUTHOR_NAME +unset GIT_COMMITTER_DATE unset GIT_COMMITTER_EMAIL unset GIT_COMMITTER_NAME unset GIT_DIFF_OPTS @@ -133,10 +134,23 @@ 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 - 0) + 0) # We could: # cd .. && rm -fr trash # but that means we forbid any tests that use their own @@ -159,15 +173,30 @@ test_done () { # t/ subdirectory and are run in trash subdirectory. PATH=$(pwd)/..:$PATH GIT_EXEC_PATH=$(pwd)/.. -export GIT_EXEC_PATH +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` || { + error "You haven't built things yet, have you?" +} +"$PYTHON" -c 'import subprocess' 2>/dev/null || { + PYTHONPATH=$(pwd)/../compat + export PYTHONPATH +} +test -d ../templates/blt || { + error "You haven't built things yet, have you?" +} # Test repository test=trash rm -fr "$test" mkdir "$test" cd "$test" -git-init-db --template=../../templates/blt/ 2>/dev/null || -error "cannot run git-init-db" +"$GIT_EXEC_PATH/git" init-db --template=../../templates/blt/ 2>/dev/null || +error "cannot run git init-db -- have you built things yet?" mv .git/hooks .git/hooks-disabled -