threads / patch / 47532

patch, 2 partsSeveral fixes for the test suite related to spaces in filenames

Subject: [PATCH 0/2] Several fixes for the test suite related to spaces in filenames

## tl;dr

5 messages between Jan 3, 2018 and Jan 4, 2018. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

Johannes Schindelin· Jan 3, 2018, 16:54 UTC · lore

The second issue was found long ago, and the patch carried in Git for Windows, although nothing about it is specific to Windows.

The first patch was developed today, when I tried to verify that Git's test suite passes if Git is cloned to a directory called `with spaces/`.

Johannes Schindelin (2):
  Allow the test suite to pass in a directory whose name contains spaces
  t0302 & t3900: add forgotten quotes
 t/t0302-credential-store.sh | 2 +-
 t/t3900-i18n-commit.sh      | 8 ++++----
 t/t7500-commit.sh           | 4 ++--
 t/t9020-remote-svn.sh       | 4 ++--
 t/t9107-git-svn-migrate.sh  | 2 +-
 5 files changed, 10 insertions(+), 10 deletions(-)
base-commit: 1eaabe34fc6f486367a176207420378f587d3b48
Published-As: https://github.com/dscho/git/releases/tag/with-spaces-v1
Fetch-It-Via: git fetch https://github.com/dscho/git with-spaces-v1
-- 
2.15.1.windows.2.391.g0b42e3c56de
Johannes Schindelin· Jan 3, 2018, 16:54 UTC · re: Johannes Schindelin · lore

[PATCH 1/2] Allow the test suite to pass in a directory whose name contains spaces

It is totally legitimate to clone Git's source code anywhere, including into, say, directories whose name (or the name of its absolute path) contains spaces.

However, a couple of tests failed to anticipate this, for lack of quoting (or in one instance, for failure to expect more than one space in the absolute path of the TEST_DIRECTORY). This can be easily verified by calling these commands in your current clone:

	git clone . with\ spaces
	cd with\ spaces
	make -j15 test
Let's fix this.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 t/t7500-commit.sh          | 4 ++--
 t/t9020-remote-svn.sh      | 4 ++--
 t/t9107-git-svn-migrate.sh | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)
Show changes to 3 files +5 −5

t/t7500-commit.sh, t/t9020-remote-svn.sh, t/t9107-git-svn-migrate.sh

diff --git a/t/t7500-commit.sh b/t/t7500-commit.sh
index 5739d3ed232..1d33c5feb3e 100755
--- a/t/t7500-commit.sh
+++ b/t/t7500-commit.sh
@@ -130,8 +130,8 @@ EOF
 test_expect_success 'commit message from template with whitespace issue' '
 	echo "content galore" >>foo &&
 	git add foo &&
-	GIT_EDITOR="$TEST_DIRECTORY"/t7500/add-whitespaced-content git commit \
-		--template "$TEMPLATE" &&
+	GIT_EDITOR=\""$TEST_DIRECTORY"\"/t7500/add-whitespaced-content \
+	git commit --template "$TEMPLATE" &&
 	commit_msg_is "commit message"
 '
 
diff --git a/t/t9020-remote-svn.sh b/t/t9020-remote-svn.sh
index 4d81ba1c2c4..6fca08e5e35 100755
--- a/t/t9020-remote-svn.sh
+++ b/t/t9020-remote-svn.sh
@@ -25,8 +25,8 @@ init_git () {
 	git init &&
 	#git remote add svnsim testsvn::sim:///$TEST_DIRECTORY/t9020/example.svnrdump
 	# let's reuse an existing dump file!?
-	git remote add svnsim testsvn::sim://$TEST_DIRECTORY/t9154/svn.dump
-	git remote add svnfile testsvn::file://$TEST_DIRECTORY/t9154/svn.dump
+	git remote add svnsim "testsvn::sim://$TEST_DIRECTORY/t9154/svn.dump"
+	git remote add svnfile "testsvn::file://$TEST_DIRECTORY/t9154/svn.dump"
 }
 
 if test -e "$GIT_BUILD_DIR/git-remote-testsvn"
diff --git a/t/t9107-git-svn-migrate.sh b/t/t9107-git-svn-migrate.sh
index 9f3ef8f2ef6..ceaa5bad105 100755
--- a/t/t9107-git-svn-migrate.sh
+++ b/t/t9107-git-svn-migrate.sh
@@ -28,7 +28,7 @@ test_expect_success 'git-svn-HEAD is a real HEAD' '
 	git rev-parse --verify refs/heads/git-svn-HEAD^0
 '
 
-svnrepo_escaped=$(echo $svnrepo | sed 's/ /%20/')
+svnrepo_escaped=$(echo $svnrepo | sed 's/ /%20/g')
 
 test_expect_success 'initialize old-style (v0) git svn layout' '
 	mkdir -p "$GIT_DIR"/git-svn/info "$GIT_DIR"/svn/info &&
-- 
2.15.1.windows.2.391.g0b42e3c56de
Johannes Schindelin· Jan 3, 2018, 16:54 UTC · re: Johannes Schindelin · lore

[PATCH 2/2] t0302 & t3900: add forgotten quotes

When cleaning up files in the $HOME directory, it really makes sense to quote the path, especially in Git's test suite, where the HOME directory is *guaranteed* to contain spaces in its name.

It would appear that those two tests pass even without cleaning up the files, but really more by pure chance than by design (the cleanup seems not actually to be necessary).

However, if anybody would have a left-over `trash/` directory in Git's `t/` directory, these tests would fail, because they would all of a sudden try to delete that directory, but without the `-r` (recursive) flag. That is how this issue was found.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 t/t0302-credential-store.sh | 2 +-
 t/t3900-i18n-commit.sh      | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)
Show changes to 2 files +5 −5

t/t0302-credential-store.sh, t/t3900-i18n-commit.sh

diff --git a/t/t0302-credential-store.sh b/t/t0302-credential-store.sh
index 1d8d1f210b9..d6b54e8c65a 100755
--- a/t/t0302-credential-store.sh
+++ b/t/t0302-credential-store.sh
@@ -37,7 +37,7 @@ helper_test store
 unset XDG_CONFIG_HOME
 
 test_expect_success 'if custom xdg file exists, home and xdg files not created' '
-	test_when_finished "rm -f $HOME/xdg/git/credentials" &&
+	test_when_finished "rm -f \"$HOME/xdg/git/credentials\"" &&
 	test -s "$HOME/xdg/git/credentials" &&
 	test_path_is_missing "$HOME/.git-credentials" &&
 	test_path_is_missing "$HOME/.config/git/credentials"
diff --git a/t/t3900-i18n-commit.sh b/t/t3900-i18n-commit.sh
index 3b94283e355..9e4e694d939 100755
--- a/t/t3900-i18n-commit.sh
+++ b/t/t3900-i18n-commit.sh
@@ -40,7 +40,7 @@ test_expect_success 'UTF-16 refused because of NULs' '
 '
 
 test_expect_success 'UTF-8 invalid characters refused' '
-	test_when_finished "rm -f $HOME/stderr $HOME/invalid" &&
+	test_when_finished "rm -f \"$HOME/stderr $HOME/invalid\"" &&
 	echo "UTF-8 characters" >F &&
 	printf "Commit message\n\nInvalid surrogate:\355\240\200\n" \
 		>"$HOME/invalid" &&
@@ -49,7 +49,7 @@ test_expect_success 'UTF-8 invalid characters refused' '
 '
 
 test_expect_success 'UTF-8 overlong sequences rejected' '
-	test_when_finished "rm -f $HOME/stderr $HOME/invalid" &&
+	test_when_finished "rm -f \"$HOME/stderr $HOME/invalid\"" &&
 	rm -f "$HOME/stderr" "$HOME/invalid" &&
 	echo "UTF-8 overlong" >F &&
 	printf "\340\202\251ommit message\n\nThis is not a space:\300\240\n" \
@@ -59,7 +59,7 @@ test_expect_success 'UTF-8 overlong sequences rejected' '
 '
 
 test_expect_success 'UTF-8 non-characters refused' '
-	test_when_finished "rm -f $HOME/stderr $HOME/invalid" &&
+	test_when_finished "rm -f \"$HOME/stderr $HOME/invalid\"" &&
 	echo "UTF-8 non-character 1" >F &&
 	printf "Commit message\n\nNon-character:\364\217\277\276\n" \
 		>"$HOME/invalid" &&
@@ -68,7 +68,7 @@ test_expect_success 'UTF-8 non-characters refused' '
 '
 
 test_expect_success 'UTF-8 non-characters refused' '
-	test_when_finished "rm -f $HOME/stderr $HOME/invalid" &&
+	test_when_finished "rm -f \"$HOME/stderr $HOME/invalid\"" &&
 	echo "UTF-8 non-character 2." >F &&
 	printf "Commit message\n\nNon-character:\357\267\220\n" \
 		>"$HOME/invalid" &&
-- 
2.15.1.windows.2.391.g0b42e3c56de
Jeff King· Jan 3, 2018, 19:08 UTC · re: Johannes Schindelin · lore

Re: [PATCH 0/2] Several fixes for the test suite related to spaces in filenames

On Wed, Jan 03, 2018 at 05:54:44PM +0100, Johannes Schindelin wrote:
Show 5 quoted lines
> The second issue was found long ago, and the patch carried in Git for
> Windows, although nothing about it is specific to Windows.
> 
> The first patch was developed today, when I tried to verify that Git's
> test suite passes if Git is cloned to a directory called `with spaces/`.

Heh, the whole point of the space in the trash directory was to find these issues early, but obviously it is not foolproof. :)

The patches themselves look good to me from inspection. Thanks.
-Peff
Junio C Hamano· Jan 4, 2018, 00:22 UTC · re: Jeff King · lore

Re: [PATCH 0/2] Several fixes for the test suite related to spaces in filenames

Jeff King <peff@peff.net> writes:
Show 10 quoted lines
> On Wed, Jan 03, 2018 at 05:54:44PM +0100, Johannes Schindelin wrote:
>
>> The second issue was found long ago, and the patch carried in Git for
>> Windows, although nothing about it is specific to Windows.
>> 
>> The first patch was developed today, when I tried to verify that Git's
>> test suite passes if Git is cloned to a directory called `with spaces/`.
>
> Heh, the whole point of the space in the trash directory was to find
> these issues early, but obviously it is not foolproof. :)
Exactly.
> The patches themselves look good to me from inspection. Thanks.
Yes, these changes look good.  Thanks both.

← back to recent threads