bundle-uri client: add helper for testing server

Add a 'test-tool bundle-uri ls-remote' command. This is a thin wrapper
for issuing protocol v2 "bundle-uri" commands to a server, and to the
parsing routines in bundle-uri.c.

In the "git clone" case we'll have already done the handshake(),
but not here. Add an extra case to check for this handshake in
get_bundle_uri() for ease of use for future callers.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason
2022-12-22 15:14:12 +00:00
committed by Junio C Hamano
parent 1b759e0cf1
commit 70b9c10373
3 changed files with 99 additions and 0 deletions

View File

@ -119,3 +119,49 @@ test_expect_success "clone with $BUNDLE_URI_PROTOCOL:// using protocol v2: reque
# Client issued bundle-uri command
grep "> command=bundle-uri" log
'
# The remaining tests will all assume transfer.bundleURI=true
#
# This test can be removed when transfer.bundleURI is enabled by default.
test_expect_success 'enable transfer.bundleURI for remaining tests' '
git config --global transfer.bundleURI true
'
test_expect_success "test bundle-uri with $BUNDLE_URI_PROTOCOL:// using protocol v2" '
test_config -C "$BUNDLE_URI_PARENT" \
bundle.only.uri "$BUNDLE_URI_BUNDLE_URI_ESCAPED" &&
# All data about bundle URIs
cat >expect <<-EOF &&
[bundle]
version = 1
mode = all
EOF
test-tool bundle-uri \
ls-remote \
"$BUNDLE_URI_REPO_URI" \
>actual &&
test_cmp_config_output expect actual
'
test_expect_success "test bundle-uri with $BUNDLE_URI_PROTOCOL:// using protocol v2 and extra data" '
test_config -C "$BUNDLE_URI_PARENT" \
bundle.only.uri "$BUNDLE_URI_BUNDLE_URI_ESCAPED" &&
# Extra data should be ignored
test_config -C "$BUNDLE_URI_PARENT" bundle.only.extra bogus &&
# All data about bundle URIs
cat >expect <<-EOF &&
[bundle]
version = 1
mode = all
EOF
test-tool bundle-uri \
ls-remote \
"$BUNDLE_URI_REPO_URI" \
>actual &&
test_cmp_config_output expect actual
'