git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v7 01/10] t5601: remove clear_ssh, refactor setup_ssh_wrapper

From
Torsten Bögershausen <tboegi@web.de>
Date
Nov 28, 2013, 19:53 UTC
Message-ID
<201311282053.47761.tboegi@web.de>

Commit 8d3d28f5 added test cases for URLs which should be ssh. Remove the function clear_ssh, use test_when_finished to clean up.

Introduce the function setup_ssh_wrapper, which could be factored out together with expect_ssh.

Tighten one test and use "foo:bar" instead of "./foo:bar",
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
---
Comments to V6:
Code from Johannes Sixt is part of the series, original found here:
 http://permalink.gmane.org/gmane.comp.version-control.git/237339
 http://permalink.gmane.org/gmane.comp.version-control.git/237338
Changes since V6:
- git fetch-pack --diag-url uses stdout instead of stderr
- cleanup in the test scripts
- Removed [PATCH v6 07/10] connect.c: Corner case for IPv6
- Added missing sign-off
- Try to explain better why windows supports file://C:/repo
  (Actually we should support file:///C:/repo, but we don't
- Other remarks from code review, did I miss any ?

I'm not sure about 10/10, 2 cleanups which I didn't manage to find a better place to be. However, I want to concentrate on 1..9, so that 10/10 can be dropped.

And a question: Can we replace tb/clone-ssh-with-colon-for-port with this stuff ? If we are OK with part 1..4, I don't need to send them again.

 t/t5601-clone.sh | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh
index 1d1c875..c634f77 100755
--- a/t/t5601-clone.sh
+++ b/t/t5601-clone.sh
@@ -280,25 +280,26 @@ test_expect_success 'clone checking out a tag' '
 	test_cmp fetch.expected fetch.actual
 '
 
-test_expect_success 'setup ssh wrapper' '
-	write_script "$TRASH_DIRECTORY/ssh-wrapper" <<-\EOF &&
-	echo >>"$TRASH_DIRECTORY/ssh-output" "ssh: $*" &&
-	# throw away all but the last argument, which should be the
-	# command
-	while test $# -gt 1; do shift; done
-	eval "$1"
-	EOF
-
-	GIT_SSH="$TRASH_DIRECTORY/ssh-wrapper" &&
-	export GIT_SSH &&
-	export TRASH_DIRECTORY
-'
-
-clear_ssh () {
-	>"$TRASH_DIRECTORY/ssh-output"
+setup_ssh_wrapper () {
+	test_expect_success 'setup ssh wrapper' '
+		write_script "$TRASH_DIRECTORY/ssh-wrapper" <<-\EOF &&
+		echo >>"$TRASH_DIRECTORY/ssh-output" "ssh: $*" &&
+		# throw away all but the last argument, which should be the
+		# command
+		while test $# -gt 1; do shift; done
+		eval "$1"
+		EOF
+		GIT_SSH="$TRASH_DIRECTORY/ssh-wrapper" &&
+		export GIT_SSH &&
+		export TRASH_DIRECTORY &&
+		>"$TRASH_DIRECTORY"/ssh-output
+	'
 }
 
 expect_ssh () {
+	test_when_finished '
+		(cd "$TRASH_DIRECTORY" && rm -f ssh-expect && >ssh-output)
+	' &&
 	{
 		case "$1" in
 		none)
@@ -310,21 +311,20 @@ expect_ssh () {
 	(cd "$TRASH_DIRECTORY" && test_cmp ssh-expect ssh-output)
 }
 
+setup_ssh_wrapper
+
 test_expect_success 'cloning myhost:src uses ssh' '
-	clear_ssh &&
 	git clone myhost:src ssh-clone &&
 	expect_ssh myhost src
 '
 
 test_expect_success NOT_MINGW,NOT_CYGWIN 'clone local path foo:bar' '
-	clear_ssh &&
 	cp -R src "foo:bar" &&
-	git clone "./foo:bar" foobar &&
+	git clone "foo:bar" foobar &&
 	expect_ssh none
 '
 
 test_expect_success 'bracketed hostnames are still ssh' '
-	clear_ssh &&
 	git clone "[myhost:123]:src" ssh-bracket-clone &&
 	expect_ssh myhost:123 src
 '
-- 
1.8.5.rc0.23.gaa27064
Message 1 of 1 in “t5601: remove clear_ssh, refactor setup_ssh_wrapper”
  1. 01/10 t5601: remove clear_ssh, refactor setup_ssh_wrapperTorsten Bögershausen, Nov 28, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.