Git fork

{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>

authored by

Ævar Arnfjörð Bjarmason and committed by
Junio C Hamano
760486a1 5befe8a1

+147
+147
t/t5555-http-smart-common.sh
··· 1 + #!/bin/sh 2 + 3 + test_description='test functionality common to smart fetch & push' 4 + 5 + . ./test-lib.sh 6 + 7 + test_expect_success 'setup' ' 8 + test_commit --no-tag initial 9 + ' 10 + 11 + test_expect_success 'git upload-pack --advertise-refs' ' 12 + cat >expect <<-EOF && 13 + $(git rev-parse HEAD) HEAD 14 + $(git rev-parse HEAD) $(git symbolic-ref HEAD) 15 + 0000 16 + EOF 17 + 18 + # We only care about GIT_PROTOCOL, not GIT_TEST_PROTOCOL_VERSION 19 + sane_unset GIT_PROTOCOL && 20 + GIT_TEST_PROTOCOL_VERSION=2 \ 21 + git upload-pack --advertise-refs . >out 2>err && 22 + 23 + test-tool pkt-line unpack <out >actual && 24 + test_must_be_empty err && 25 + test_cmp actual expect && 26 + 27 + # The --advertise-refs alias works 28 + git upload-pack --advertise-refs . >out 2>err && 29 + 30 + test-tool pkt-line unpack <out >actual && 31 + test_must_be_empty err && 32 + test_cmp actual expect 33 + ' 34 + 35 + test_expect_success 'git upload-pack --advertise-refs: v0' ' 36 + # With no specified protocol 37 + cat >expect <<-EOF && 38 + $(git rev-parse HEAD) HEAD 39 + $(git rev-parse HEAD) $(git symbolic-ref HEAD) 40 + 0000 41 + EOF 42 + 43 + git upload-pack --advertise-refs . >out 2>err && 44 + test-tool pkt-line unpack <out >actual && 45 + test_must_be_empty err && 46 + test_cmp actual expect && 47 + 48 + # With explicit v0 49 + GIT_PROTOCOL=version=0 \ 50 + git upload-pack --advertise-refs . >out 2>err && 51 + test-tool pkt-line unpack <out >actual 2>err && 52 + test_must_be_empty err && 53 + test_cmp actual expect 54 + 55 + ' 56 + 57 + test_expect_success 'git receive-pack --advertise-refs: v0' ' 58 + # With no specified protocol 59 + cat >expect <<-EOF && 60 + $(git rev-parse HEAD) $(git symbolic-ref HEAD) 61 + 0000 62 + EOF 63 + 64 + git receive-pack --advertise-refs . >out 2>err && 65 + test-tool pkt-line unpack <out >actual && 66 + test_must_be_empty err && 67 + test_cmp actual expect && 68 + 69 + # With explicit v0 70 + GIT_PROTOCOL=version=0 \ 71 + git receive-pack --advertise-refs . >out 2>err && 72 + test-tool pkt-line unpack <out >actual 2>err && 73 + test_must_be_empty err && 74 + test_cmp actual expect 75 + 76 + ' 77 + 78 + test_expect_success 'git upload-pack --advertise-refs: v1' ' 79 + # With no specified protocol 80 + cat >expect <<-EOF && 81 + version 1 82 + $(git rev-parse HEAD) HEAD 83 + $(git rev-parse HEAD) $(git symbolic-ref HEAD) 84 + 0000 85 + EOF 86 + 87 + GIT_PROTOCOL=version=1 \ 88 + git upload-pack --advertise-refs . >out && 89 + 90 + test-tool pkt-line unpack <out >actual 2>err && 91 + test_must_be_empty err && 92 + test_cmp actual expect 93 + ' 94 + 95 + test_expect_success 'git receive-pack --advertise-refs: v1' ' 96 + # With no specified protocol 97 + cat >expect <<-EOF && 98 + version 1 99 + $(git rev-parse HEAD) $(git symbolic-ref HEAD) 100 + 0000 101 + EOF 102 + 103 + GIT_PROTOCOL=version=1 \ 104 + git receive-pack --advertise-refs . >out && 105 + 106 + test-tool pkt-line unpack <out >actual 2>err && 107 + test_must_be_empty err && 108 + test_cmp actual expect 109 + ' 110 + 111 + test_expect_success 'git upload-pack --advertise-refs: v2' ' 112 + cat >expect <<-EOF && 113 + version 2 114 + agent=FAKE 115 + ls-refs=unborn 116 + fetch=shallow wait-for-done 117 + server-option 118 + object-format=$(test_oid algo) 119 + object-info 120 + 0000 121 + EOF 122 + 123 + GIT_PROTOCOL=version=2 \ 124 + GIT_USER_AGENT=FAKE \ 125 + git upload-pack --advertise-refs . >out 2>err && 126 + 127 + test-tool pkt-line unpack <out >actual && 128 + test_must_be_empty err && 129 + test_cmp actual expect 130 + ' 131 + 132 + test_expect_success 'git receive-pack --advertise-refs: v2' ' 133 + # There is no v2 yet for receive-pack, implicit v0 134 + cat >expect <<-EOF && 135 + $(git rev-parse HEAD) $(git symbolic-ref HEAD) 136 + 0000 137 + EOF 138 + 139 + GIT_PROTOCOL=version=2 \ 140 + git receive-pack --advertise-refs . >out 2>err && 141 + 142 + test-tool pkt-line unpack <out >actual && 143 + test_must_be_empty err && 144 + test_cmp actual expect 145 + ' 146 + 147 + test_done