t5551: test usage of chunked encoding explicitly

When run using GIT_TEST_PROTOCOL_VERSION=2, a test in t5551 fails because 4 POSTs (probe, ls-refs, probe, fetch) are sent instead of 2 (probe, fetch). One way to resolve this would be to relax the condition (from "= 2" to greater than 1, say), but upon further inspection, the test probably shouldn't be counting the number of POSTs. This test states that large requests are split across POSTs, but this is not correct; the main change is that chunked transfer encoding is used, but the request is still contained within one POST. (The test coincidentally works because Git indeed sends 2 POSTs in the case of a large request, but that is because, as stated above, the first POST is a probing RPC - see post_rpc() in remote-curl.c for more information.) Therefore, instead of counting POSTs, check that chunked transfer encoding is used. This also has the desirable side effect of passing with GIT_TEST_PROTOCOL_VERSION=2. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Acked-by: Derrick Stolee <dstolee@microsoft.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jonathan Tan committed Jun 5, 2019 at 12:26 UTC 8d45ad8c29dd509d1aefe9052124ef497c287476
1 file changed +2 -3
t/t5551-http-fetch-smart.sh
+2 -3
@@ -272,11 +272,10 @@ test_expect_success CMDLINE_LIMIT \
272 )
273 '
274
275 -test_expect_success 'large fetch-pack requests can be split across POSTs' '
275 +test_expect_success 'large fetch-pack requests can be sent using chunked encoding' '
276 GIT_TRACE_CURL=true git -c http.postbuffer=65536 \
277 clone --bare "$HTTPD_URL/smart/repo.git" split.git 2>err &&
278 - grep "^=> Send header: POST" err >posts &&
279 - test_line_count = 2 posts
278 + grep "^=> Send header: Transfer-Encoding: chunked" err
279 '
280
281 test_expect_success 'test allowreachablesha1inwant' '