X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=t%2Ftest-lib.sh;h=5002fb04b58ea91572b58dcaf7fe92342f4eeab1;hb=1fbb58b4153e90eda08c2b022ee32d90729582e6;hp=268b26c959692f8f575fb088143a92c4785b1214;hpb=f4198c9b7d319a7a595f0d759e7d8094387ab77b;p=git.git diff --git a/t/test-lib.sh b/t/test-lib.sh index 268b26c95..5002fb04b 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -160,6 +160,22 @@ die () { trap 'die' exit +# The semantics of the editor variables are that of invoking +# sh -c "$EDITOR \"$@\"" files ... +# +# If our trash directory contains shell metacharacters, they will be +# interpreted if we just set $EDITOR directly, so do a little dance with +# environment variables to work around this. +# +# In particular, quoting isn't enough, as the path may contain the same quote +# that we're using. +test_set_editor () { + FAKE_EDITOR="$1" + export FAKE_EDITOR + VISUAL='"$FAKE_EDITOR"' + export VISUAL +} + test_tick () { if test -z "${test_tick+set}" then @@ -300,7 +316,7 @@ test_expect_code () { test_must_fail () { "$@" - test $? -gt 0 -a $? -le 128 + test $? -gt 0 -a $? -le 129 } # test_cmp is a helper function to compare actual and expected output. @@ -329,7 +345,7 @@ test_create_repo () { repo="$1" mkdir "$repo" cd "$repo" || error "Cannot setup test environment" - "$GIT_EXEC_PATH/git" init --template=$GIT_EXEC_PATH/templates/blt/ >/dev/null 2>&1 || + "$GIT_EXEC_PATH/git" init "--template=$GIT_EXEC_PATH/templates/blt/" >/dev/null 2>&1 || error "cannot run git init -- have you built things yet?" mv .git/hooks .git/hooks-disabled cd "$owd" @@ -395,9 +411,14 @@ fi . ../GIT-BUILD-OPTIONS # Test repository -test=trash -rm -fr "$test" -test_create_repo $test +test="trash directory" +rm -fr "$test" || { + trap - exit + echo >&5 "FATAL: Cannot prepare test area" + exit 1 +} + +test_create_repo "$test" cd "$test" this_test=$(expr "./$0" : '.*/\(t[0-9]*\)-[^/]*$')