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

[RFC PATCH] t5538: move http push tests out to t5542

From
Nix <nix@esperi.org.uk>
Date
May 30, 2014, 10:29 UTC
Message-ID
<87lhtj8sqx.fsf_-_@spindle.srvr.nix>
In-Reply-To
<20140530013419.GE28683@sigill.intra.peff.net>

As 0232852b, but for the push tests instead: this avoids a start_httpd in the middle of the file, which fails under GIT_TEST_HTTPD=false.

Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
---
On 30 May 2014, Jeff King said:
> diff --git a/t/t5537-fetch-shallow.sh b/t/t5537-fetch-shallow.sh
> index be951a4..a980574 100755
> --- a/t/t5537-fetch-shallow.sh
> +++ b/t/t5537-fetch-shallow.sh

btw, t5538-push-shallow.sh has the same bug but was not fixed up that I can see. (Though I can't see the original fix in the history of master either: was it squashed away somehow?)

This new test fails if the patch is applied as-is because I haven't done any ref adjustment (I don't honestly know what results are expected, and the actual results I'm seeing, with a ref named '1s0' intermittently replacing either 1 or 10 and 1 both, are so bizarre and inconsistent that I suspect I'm hitting another local config problem of some sort.)

But something like this is needed.
(signed off with my work email address for paranoia's sake.)
 t/t5538-push-shallow.sh      |  59 -------------------------
 t/t5542-push-http-shallow.sh | 101 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 101 insertions(+), 59 deletions(-)
 create mode 100755 t/t5542-push-http-shallow.sh
diff --git a/t/t5538-push-shallow.sh b/t/t5538-push-shallow.sh
index 8e54ac5..ceee95b 100755
--- a/t/t5538-push-shallow.sh
+++ b/t/t5538-push-shallow.sh
@@ -120,63 +120,4 @@ EOF
 	git cat-file blob `echo 1|git hash-object --stdin` >/dev/null
 	)
 '
-
-if test -n "$NO_CURL" -o -z "$GIT_TEST_HTTPD"; then
-	say 'skipping remaining tests, git built without http support'
-	test_done
-fi
-
-. "$TEST_DIRECTORY"/lib-httpd.sh
-start_httpd
-
-test_expect_success 'push to shallow repo via http' '
-	git clone --bare --no-local shallow "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-	(
-	cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-	git config http.receivepack true
-	) &&
-	(
-	cd full &&
-	commit 9 &&
-	git push $HTTPD_URL/smart/repo.git +master:refs/remotes/top/master
-	) &&
-	(
-	cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-	git fsck &&
-	git log --format=%s top/master >actual &&
-	cat <<EOF >expect &&
-9
-4
-3
-EOF
-	test_cmp expect actual
-	)
-'
-
-test_expect_success 'push from shallow repo via http' '
-	mv "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" shallow-upstream.git &&
-	git clone --bare --no-local full "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-	(
-	cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-	git config http.receivepack true
-	) &&
-	commit 10 &&
-	git push $HTTPD_URL/smart/repo.git +master:refs/remotes/top/master &&
-	(
-	cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-	git fsck &&
-	git log --format=%s top/master >actual &&
-	cat <<EOF >expect &&
-10
-1
-4
-3
-2
-1
-EOF
-	test_cmp expect actual
-	)
-'
-
-stop_httpd
 test_done
diff --git a/t/t5542-push-http-shallow.sh b/t/t5542-push-http-shallow.sh
new file mode 100755
index 0000000..61a7281
--- /dev/null
+++ b/t/t5542-push-http-shallow.sh
@@ -0,0 +1,101 @@
+#!/bin/sh
+
+test_description='push from/to a shallow clone over http'
+
+. ./test-lib.sh
+
+if test -n "$NO_CURL" -o -z "$GIT_TEST_HTTPD"; then
+	say 'skipping test, git built without http support'
+	test_done
+fi
+
+. "$TEST_DIRECTORY"/lib-httpd.sh
+start_httpd
+
+commit() {
+	echo "$1" >tracked &&
+	git add tracked &&
+	git commit -m "$1"
+}
+
+test_expect_success 'setup' '
+	git config --global transfer.fsckObjects true &&
+	commit 1 &&
+	commit 2 &&
+	commit 3 &&
+	commit 4 &&
+	git clone . full &&
+	(
+	git init full-abc &&
+	cd full-abc &&
+	commit a &&
+	commit b &&
+	commit c
+	) &&
+	git clone --no-local --depth=2 .git shallow &&
+	git --git-dir=shallow/.git log --format=%s >actual &&
+	cat <<EOF >expect &&
+4
+3
+EOF
+	test_cmp expect actual &&
+	git clone --no-local --depth=2 full-abc/.git shallow2 &&
+	git --git-dir=shallow2/.git log --format=%s >actual &&
+	cat <<EOF >expect &&
+c
+b
+EOF
+	test_cmp expect actual
+'
+
+test_expect_success 'push to shallow repo via http' '
+	git clone --bare --no-local shallow "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+	(
+	cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+	git config http.receivepack true
+	) &&
+	(
+	cd full &&
+	commit 9 &&
+	git push $HTTPD_URL/smart/repo.git +master:refs/remotes/top/master
+	) &&
+	(
+	cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+	git fsck &&
+	git log --format=%s top/master >actual &&
+	cat <<EOF >expect &&
+9
+4
+3
+EOF
+	test_cmp expect actual
+	)
+'
+
+test_expect_success 'push from shallow repo via http' '
+	mv "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" shallow-upstream.git &&
+	git clone --bare --no-local full "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+	(
+	cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+	git config http.receivepack true
+	) &&
+	commit 1s0 &&
+	git push $HTTPD_URL/smart/repo.git +master:refs/remotes/top/master &&
+	(
+	cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+	git fsck &&
+	git log --format=%s top/master >actual &&
+	cat <<EOF >expect &&
+10
+1
+4
+3
+2
+1
+EOF
+	test_cmp expect actual
+	)
+'
+
+stop_httpd
+test_done
-- 
1.9.2.172.gbe1f7c7
Previous: Jeff KingNext: Jeff King
Message 4 of 12 in “git 2.0.0 PROFILE=BUILD check-phase problems with ./t5561-http-backend.sh; GIT_TEST_HTTPD=false problems with t5537-fetch-shallow.sh”
  1. NixMay 29, 2014
  2. Jeff KingMay 30, 2014
  3. t5537: re-drop http testsJeff King, May 30, 2014
  4. t5538: move http push tests out to t5542Nix, May 30, 2014
  5. Jeff KingMay 30, 2014
  6. t5538: move http push tests out to t5542Jeff King, May 30, 2014
  7. Duy NguyenMay 31, 2014
  8. NixMay 30, 2014
  9. Junio C HamanoMay 30, 2014
  10. NixMay 30, 2014
  11. Junio C HamanoMay 30, 2014
  12. NixMay 30, 2014

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.