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

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

From
Junio C Hamano <gitster@pobox.com>
Date
May 30, 2014, 17:26 UTC
Message-ID
<xmqqr43b9o0l.fsf@gitster.dls.corp.google.com>
In-Reply-To
<87lhtj8sqx.fsf_-_@spindle.srvr.nix>
Nix <nix@esperi.org.uk> writes:
Show 14 quoted lines
> 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?)
What do you mean by "the original fix"?

0232852b (t5537: move http tests out to t5539, 2014-02-13) you cited in your proposed log message? That is v1.9.1~12^2 and certainly is reachable from the master branch as master~185^2.

> But something like this is needed.

Thanks for marking the patch not to be applied / still broken. I agree that moving http bits into a separate test would be a good way to go.

> (signed off with my work email address for paranoia's sake.)

As long as your employer is fine with your patch contributed to us, and assuming that the patch was done on your employer's time, it would be the right thing to do ;-). Just FYI, if your From: address on your e-mail does not match that address, you can start your message body with "From: Nick Alcock <nick.alcock@oracle.com>", a blank line and then the true body of your message.

Show 180 quoted lines
>  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
Previous: NixNext: Nix
Message 9 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.