Skip to content

Commit 93ea5bf

Browse files
peffgitster
authored andcommitted
t5551: handle v2 protocol in cookie test
After making a request, we check that it stored the expected cookies. This depends on the protocol version, because the cookies we store depend on the exact requests we made (and for ls-remote, v2 will always hit /git-upload-pack to get the refs, whereas v0 is happy with the initial ref advertisement). As a result, hardly anybody runs this test, as you'd have to manually set GIT_TEST_PROTOCOL_VERSION=0 to do so. Let's teach it to handle both protocol versions. One way to do this would be to make the expectation conditional on the protocol used. But there's a simpler solution. The reason that v0 doesn't hit /git-upload-pack is that ls-remote doesn't fetch any objects. If we instead do a fetch (making sure there's an actual object to grab), then both v0 and v2 will hit the same endpoints and set the same cookies. Note that we do have to clean up our new tag here; otherwise it confuses the later "clone 2,000 tags" test. Signed-off-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 87d38af commit 93ea5bf

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

t/t5551-http-fetch-smart.sh

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -295,19 +295,22 @@ test_expect_success 'cookies stored in http.cookiefile when http.savecookies set
295295
EOF
296296
sort >expect_cookies.txt <<-\EOF &&
297297
127.0.0.1 FALSE /smart_cookies/ FALSE 0 othername othervalue
298+
127.0.0.1 FALSE /smart_cookies/repo.git/ FALSE 0 name value
298299
127.0.0.1 FALSE /smart_cookies/repo.git/info/ FALSE 0 name value
299300
EOF
300301
git config http.cookiefile cookies.txt &&
301302
git config http.savecookies true &&
302-
git ls-remote $HTTPD_URL/smart_cookies/repo.git main &&
303303
304-
# NEEDSWORK: If the overspecification of the expected result is reduced, we
305-
# might be able to run this test in all protocol versions.
306-
if test "$GIT_TEST_PROTOCOL_VERSION" = 0
307-
then
308-
grep "^[^#]" cookies.txt | sort >cookies_stripped.txt &&
309-
test_cmp expect_cookies.txt cookies_stripped.txt
310-
fi
304+
test_when_finished "
305+
git --git-dir=\"\$HTTPD_DOCUMENT_ROOT_PATH/repo.git\" \
306+
tag -d cookie-tag
307+
" &&
308+
git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/repo.git" \
309+
tag -m "foo" cookie-tag &&
310+
git fetch $HTTPD_URL/smart_cookies/repo.git cookie-tag &&
311+
312+
grep "^[^#]" cookies.txt | sort >cookies_stripped.txt &&
313+
test_cmp expect_cookies.txt cookies_stripped.txt
311314
'
312315

313316
test_expect_success 'transfer.hiderefs works over smart-http' '

0 commit comments

Comments
 (0)