git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
blob 77bfd4f0119b9ef116ea80a71d0a37c4f388437c 3395 bytes (raw)
name: t/lib-bundle-uri-protocol.sh 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
 
# Set up and run tests of the 'bundle-uri' command in protocol v2
#
# The test that includes this script should set BUNDLE_URI_PROTOCOL
# to one of "file", "git", or "http".

BUNDLE_URI_TEST_PARENT=
BUNDLE_URI_TEST_URI=
BUNDLE_URI_TEST_BUNDLE_URI=
case "$BUNDLE_URI_PROTOCOL" in
file)
	BUNDLE_URI_PARENT=file_parent
	BUNDLE_URI_REPO_URI="file://$PWD/file_parent"
	BUNDLE_URI_BUNDLE_URI="$BUNDLE_URI_REPO_URI/fake.bdl"
	test_set_prereq BUNDLE_URI_FILE
	;;
git)
	. "$TEST_DIRECTORY"/lib-git-daemon.sh
	start_git_daemon --export-all --enable=receive-pack
	BUNDLE_URI_PARENT="$GIT_DAEMON_DOCUMENT_ROOT_PATH/parent"
	BUNDLE_URI_REPO_URI="$GIT_DAEMON_URL/parent"
	BUNDLE_URI_BUNDLE_URI="https://example.com/fake.bdl"
	test_set_prereq BUNDLE_URI_GIT
	;;
http)
	. "$TEST_DIRECTORY"/lib-httpd.sh
	start_httpd
	BUNDLE_URI_PARENT="$HTTPD_DOCUMENT_ROOT_PATH/http_parent"
	BUNDLE_URI_REPO_URI="$HTTPD_URL/smart/http_parent"
	BUNDLE_URI_BUNDLE_URI="https://example.com/fake.bdl"
	test_set_prereq BUNDLE_URI_HTTP
	;;
*)
	BUG "Need to pass valid BUNDLE_URI_PROTOCOL (was \"$BUNDLE_URI_PROTOCOL\")"
	;;
esac

test_expect_success "setup protocol v2 $BUNDLE_URI_PROTOCOL:// tests" '
	git init "$BUNDLE_URI_PARENT" &&
	test_commit -C "$BUNDLE_URI_PARENT" one &&
	git -C "$BUNDLE_URI_PARENT" config uploadpack.advertiseBundleURIs true
'

case "$BUNDLE_URI_PROTOCOL" in
http)
	test_expect_success "setup config for $BUNDLE_URI_PROTOCOL:// tests" '
		git -C "$BUNDLE_URI_PARENT" config http.receivepack true
	'
	;;
*)
	;;
esac
BUNDLE_URI_BUNDLE_URI_ESCAPED=$(echo "$BUNDLE_URI_BUNDLE_URI" | test_uri_escape)

test_expect_success "connect with $BUNDLE_URI_PROTOCOL:// using protocol v2: no bundle-uri" '
	test_when_finished "rm -f log" &&
	test_when_finished "git -C \"$BUNDLE_URI_PARENT\" config uploadpack.advertiseBundleURIs true" &&
	git -C "$BUNDLE_URI_PARENT" config uploadpack.advertiseBundleURIs false &&

	GIT_TRACE_PACKET="$PWD/log" \
	git \
		-c protocol.version=2 \
		ls-remote --symref "$BUNDLE_URI_REPO_URI" \
		>actual 2>err &&

	# Server responded using protocol v2
	grep "< version 2" log &&

	! grep bundle-uri log
'

test_expect_success "connect with $BUNDLE_URI_PROTOCOL:// using protocol v2: have bundle-uri" '
	test_when_finished "rm -f log" &&

	GIT_TRACE_PACKET="$PWD/log" \
	git \
		-c protocol.version=2 \
		ls-remote --symref "$BUNDLE_URI_REPO_URI" \
		>actual 2>err &&

	# Server responded using protocol v2
	grep "< version 2" log &&

	# Server advertised bundle-uri capability
	grep "< bundle-uri" log
'

test_expect_success "clone with $BUNDLE_URI_PROTOCOL:// using protocol v2: request bundle-uris" '
	test_when_finished "rm -rf log cloned cloned2" &&

	GIT_TRACE_PACKET="$PWD/log" \
	GIT_TEST_BUNDLE_URI=0 \
	git \
		-c protocol.version=2 \
		clone "$BUNDLE_URI_REPO_URI" cloned \
		>actual 2>err &&

	# Server responded using protocol v2
	grep "< version 2" log &&

	# Server advertised bundle-uri capability
	grep "< bundle-uri" log &&

	# Client did not issue bundle-uri command
	! grep "> command=bundle-uri" log &&

	GIT_TRACE_PACKET="$PWD/log" \
	git \
		-c transfer.bundleURI=true \
		-c protocol.version=2 \
		clone "$BUNDLE_URI_REPO_URI" cloned2 \
		>actual 2>err &&

	# Server responded using protocol v2
	grep "< version 2" log &&

	# Server advertised bundle-uri capability
	grep "< bundle-uri" log &&

	# Client issued bundle-uri command
	grep "> command=bundle-uri" log
'

debug log:

solving 77bfd4f0119 ...
found 77bfd4f0119 in https://public-inbox.org/git/e46118e60f7a59ef25edf5f1378b4ef0c007cce8.1670262639.git.gitgitgadget@gmail.com/
found d44c6e10f9e in https://80x24.org/mirrors/git.git
preparing index
index prepared:
100644 d44c6e10f9ea242c2f39cc0e4651c5b6dbea6fb0	t/lib-bundle-uri-protocol.sh

applying [1/1] https://public-inbox.org/git/e46118e60f7a59ef25edf5f1378b4ef0c007cce8.1670262639.git.gitgitgadget@gmail.com/
diff --git a/t/lib-bundle-uri-protocol.sh b/t/lib-bundle-uri-protocol.sh
index d44c6e10f9e..77bfd4f0119 100644

Checking patch t/lib-bundle-uri-protocol.sh...
Applied patch t/lib-bundle-uri-protocol.sh cleanly.

index at:
100644 77bfd4f0119b9ef116ea80a71d0a37c4f388437c	t/lib-bundle-uri-protocol.sh

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).