{upload,receive}-pack tests: add --advertise-refs tests
The --advertise-refs option had no explicit tests of its own, only other http tests that would fail at a distance if it it was broken. Let's test its behavior explicitly. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5befe8a1f1
commit
760486a1f7
147
t/t5555-http-smart-common.sh
Executable file
147
t/t5555-http-smart-common.sh
Executable file
@ -0,0 +1,147 @@
|
||||
#!/bin/sh
|
||||
|
||||
test_description='test functionality common to smart fetch & push'
|
||||
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success 'setup' '
|
||||
test_commit --no-tag initial
|
||||
'
|
||||
|
||||
test_expect_success 'git upload-pack --advertise-refs' '
|
||||
cat >expect <<-EOF &&
|
||||
$(git rev-parse HEAD) HEAD
|
||||
$(git rev-parse HEAD) $(git symbolic-ref HEAD)
|
||||
0000
|
||||
EOF
|
||||
|
||||
# We only care about GIT_PROTOCOL, not GIT_TEST_PROTOCOL_VERSION
|
||||
sane_unset GIT_PROTOCOL &&
|
||||
GIT_TEST_PROTOCOL_VERSION=2 \
|
||||
git upload-pack --advertise-refs . >out 2>err &&
|
||||
|
||||
test-tool pkt-line unpack <out >actual &&
|
||||
test_must_be_empty err &&
|
||||
test_cmp actual expect &&
|
||||
|
||||
# The --advertise-refs alias works
|
||||
git upload-pack --advertise-refs . >out 2>err &&
|
||||
|
||||
test-tool pkt-line unpack <out >actual &&
|
||||
test_must_be_empty err &&
|
||||
test_cmp actual expect
|
||||
'
|
||||
|
||||
test_expect_success 'git upload-pack --advertise-refs: v0' '
|
||||
# With no specified protocol
|
||||
cat >expect <<-EOF &&
|
||||
$(git rev-parse HEAD) HEAD
|
||||
$(git rev-parse HEAD) $(git symbolic-ref HEAD)
|
||||
0000
|
||||
EOF
|
||||
|
||||
git upload-pack --advertise-refs . >out 2>err &&
|
||||
test-tool pkt-line unpack <out >actual &&
|
||||
test_must_be_empty err &&
|
||||
test_cmp actual expect &&
|
||||
|
||||
# With explicit v0
|
||||
GIT_PROTOCOL=version=0 \
|
||||
git upload-pack --advertise-refs . >out 2>err &&
|
||||
test-tool pkt-line unpack <out >actual 2>err &&
|
||||
test_must_be_empty err &&
|
||||
test_cmp actual expect
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'git receive-pack --advertise-refs: v0' '
|
||||
# With no specified protocol
|
||||
cat >expect <<-EOF &&
|
||||
$(git rev-parse HEAD) $(git symbolic-ref HEAD)
|
||||
0000
|
||||
EOF
|
||||
|
||||
git receive-pack --advertise-refs . >out 2>err &&
|
||||
test-tool pkt-line unpack <out >actual &&
|
||||
test_must_be_empty err &&
|
||||
test_cmp actual expect &&
|
||||
|
||||
# With explicit v0
|
||||
GIT_PROTOCOL=version=0 \
|
||||
git receive-pack --advertise-refs . >out 2>err &&
|
||||
test-tool pkt-line unpack <out >actual 2>err &&
|
||||
test_must_be_empty err &&
|
||||
test_cmp actual expect
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'git upload-pack --advertise-refs: v1' '
|
||||
# With no specified protocol
|
||||
cat >expect <<-EOF &&
|
||||
version 1
|
||||
$(git rev-parse HEAD) HEAD
|
||||
$(git rev-parse HEAD) $(git symbolic-ref HEAD)
|
||||
0000
|
||||
EOF
|
||||
|
||||
GIT_PROTOCOL=version=1 \
|
||||
git upload-pack --advertise-refs . >out &&
|
||||
|
||||
test-tool pkt-line unpack <out >actual 2>err &&
|
||||
test_must_be_empty err &&
|
||||
test_cmp actual expect
|
||||
'
|
||||
|
||||
test_expect_success 'git receive-pack --advertise-refs: v1' '
|
||||
# With no specified protocol
|
||||
cat >expect <<-EOF &&
|
||||
version 1
|
||||
$(git rev-parse HEAD) $(git symbolic-ref HEAD)
|
||||
0000
|
||||
EOF
|
||||
|
||||
GIT_PROTOCOL=version=1 \
|
||||
git receive-pack --advertise-refs . >out &&
|
||||
|
||||
test-tool pkt-line unpack <out >actual 2>err &&
|
||||
test_must_be_empty err &&
|
||||
test_cmp actual expect
|
||||
'
|
||||
|
||||
test_expect_success 'git upload-pack --advertise-refs: v2' '
|
||||
cat >expect <<-EOF &&
|
||||
version 2
|
||||
agent=FAKE
|
||||
ls-refs=unborn
|
||||
fetch=shallow wait-for-done
|
||||
server-option
|
||||
object-format=$(test_oid algo)
|
||||
object-info
|
||||
0000
|
||||
EOF
|
||||
|
||||
GIT_PROTOCOL=version=2 \
|
||||
GIT_USER_AGENT=FAKE \
|
||||
git upload-pack --advertise-refs . >out 2>err &&
|
||||
|
||||
test-tool pkt-line unpack <out >actual &&
|
||||
test_must_be_empty err &&
|
||||
test_cmp actual expect
|
||||
'
|
||||
|
||||
test_expect_success 'git receive-pack --advertise-refs: v2' '
|
||||
# There is no v2 yet for receive-pack, implicit v0
|
||||
cat >expect <<-EOF &&
|
||||
$(git rev-parse HEAD) $(git symbolic-ref HEAD)
|
||||
0000
|
||||
EOF
|
||||
|
||||
GIT_PROTOCOL=version=2 \
|
||||
git receive-pack --advertise-refs . >out 2>err &&
|
||||
|
||||
test-tool pkt-line unpack <out >actual &&
|
||||
test_must_be_empty err &&
|
||||
test_cmp actual expect
|
||||
'
|
||||
|
||||
test_done
|
Loading…
Reference in New Issue
Block a user