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

Reply via email to