X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=t%2Ftest-lib.sh;h=66f62b9c6f2a31965c856fc9b7d056a86abbcfbc;hb=72fdfb50f721460e4cdff16fbe9c72d4ce6c668c;hp=f2eccd79180deeb2283d60c00c12bc623f4e8317;hpb=423325a2d24638ddcc82ce47be5e40be550f4507;p=git.git diff --git a/t/test-lib.sh b/t/test-lib.sh index f2eccd79..66f62b9c 100755 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -16,10 +16,11 @@ unset COMMIT_AUTHOR_EMAIL unset COMMIT_AUTHOR_NAME unset GIT_ALTERNATE_OBJECT_DIRECTORIES unset GIT_AUTHOR_DATE -unset GIT_AUTHOR_EMAIL -unset GIT_AUTHOR_NAME -unset GIT_COMMITTER_EMAIL -unset GIT_COMMITTER_NAME +GIT_AUTHOR_EMAIL=author@example.com +GIT_AUTHOR_NAME='A U Thor' +unset GIT_COMMITTER_DATE +GIT_COMMITTER_EMAIL=committer@example.com +GIT_COMMITTER_NAME='C O Mitter' unset GIT_DIFF_OPTS unset GIT_DIR unset GIT_EXTERNAL_DIFF @@ -27,6 +28,8 @@ unset GIT_INDEX_FILE unset GIT_OBJECT_DIRECTORY unset SHA1_FILE_DIRECTORIES unset SHA1_FILE_DIRECTORY +export GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME +export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME # Each test should start with something like this, after copyright notices: # @@ -146,10 +149,25 @@ test_expect_code () { fi } +# Most tests can use the created repository, but some amy need to create more. +# Usage: test_create_repo +test_create_repo () { + test "$#" = 1 || + error "bug in the test script: not 1 parameter to test-create-repo" + owd=`pwd` + repo="$1" + mkdir "$repo" + cd "$repo" || error "Cannot setup test environment" + "$GIT_EXEC_PATH/git" init-db --template=$GIT_EXEC_PATH/templates/blt/ 2>/dev/null || + error "cannot run git init-db -- have you built things yet?" + mv .git/hooks .git/hooks-disabled + cd "$owd" +} + 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 @@ -172,15 +190,26 @@ 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" +test_create_repo $test cd "$test" -git-init-db --template=../../templates/blt/ 2>/dev/null || -error "cannot run git-init-db" - -mv .git/hooks .git/hooks-disabled -