git/t/t5555-http-smart-common.sh
Ævar Arnfjörð Bjarmason d96fb140f9 leak tests: mark some misc tests as passing with SANITIZE=leak
As in 7ff24785cb (leak tests: mark some misc tests as passing with
SANITIZE=leak, 2021-10-12) continue marking various miscellaneous
tests as passing when git is compiled with SANITIZE=leak. They'll now
be listed as running under the "GIT_TEST_PASSING_SANITIZE_LEAK=true"
test mode (the "linux-leaks" CI target).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-11-01 11:23:08 -07:00

162 lines
3.9 KiB
Bash
Executable file

#!/bin/sh
test_description='test functionality common to smart fetch & push'
TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
test_expect_success 'setup' '
test_commit --no-tag initial
'
test_expect_success 'git upload-pack --http-backend-info-refs and --advertise-refs are aliased' '
git upload-pack --http-backend-info-refs . >expected 2>err.expected &&
git upload-pack --advertise-refs . >actual 2>err.actual &&
test_cmp err.expected err.actual &&
test_cmp expected actual
'
test_expect_success 'git receive-pack --http-backend-info-refs and --advertise-refs are aliased' '
git receive-pack --http-backend-info-refs . >expected 2>err.expected &&
git receive-pack --advertise-refs . >actual 2>err.actual &&
test_cmp err.expected err.actual &&
test_cmp expected actual
'
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