On 6/5/2019 3:26 PM, Jonathan Tan wrote: > 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. I'm all for testing the _right_ thing. > -test_expect_success 'large fetch-pack requests can be split across POSTs' ' > +test_expect_success 'large fetch-pack requests can be sent using chunked encoding' ' > GIT_TRACE_CURL=true git -c http.postbuffer=65536 \ > clone --bare "$HTTPD_URL/smart/repo.git" split.git 2>err && > - grep "^=> Send header: POST" err >posts && > - test_line_count = 2 posts > + grep "^=> Send header: Transfer-Encoding: chunked" err > ' And this does seem to be testing what you now claim it tests. LGTM. -Stolee