diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-05-14 13:45:16 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-05-14 13:45:16 -0700 |
commit | 761adeb4dba3305d0810b5340a71783d29484fb0 (patch) | |
tree | 4fb32f9d426394e845354e00553988a0f63003a3 /t/test-lib.sh | |
parent | 486d1a56443fb19770a7d1abe08f1f4e9e44534d (diff) | |
parent | 4a7aaccd83a4f9eca17ca936b7c297e01840f587 (diff) | |
download | git-761adeb4dba3305d0810b5340a71783d29484fb0.tar.gz git-761adeb4dba3305d0810b5340a71783d29484fb0.tar.xz |
Merge branch 'bd/tests'
* bd/tests:
Rename the test trash directory to contain spaces.
Fix tests breaking when checkout path contains shell metacharacters
Don't use the 'export NAME=value' in the test scripts.
lib-git-svn.sh: Fix quoting issues with paths containing shell metacharacters
test-lib.sh: Fix some missing path quoting
Use test_set_editor in t9001-send-email.sh
test-lib.sh: Add a test_set_editor function to safely set $VISUAL
git-send-email.perl: Handle shell metacharacters in $EDITOR properly
config.c: Escape backslashes in section names properly
git-rebase.sh: Fix --merge --abort failures when path contains whitespace
Conflicts:
t/t9115-git-svn-dcommit-funky-renames.sh
Diffstat (limited to 't/test-lib.sh')
-rw-r--r-- | t/test-lib.sh | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/t/test-lib.sh b/t/test-lib.sh index 7c2a8ba77..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 @@ -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,14 +411,14 @@ fi . ../GIT-BUILD-OPTIONS # Test repository -test=trash +test="trash directory" rm -fr "$test" || { trap - exit echo >&5 "FATAL: Cannot prepare test area" exit 1 } -test_create_repo $test +test_create_repo "$test" cd "$test" this_test=$(expr "./$0" : '.*/\(t[0-9]*\)-[^/]*$') |