On Wed, Jun 05, 2019 at 12:26:24PM -0700, 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.) That seems reasonable. What I was really going for with this test was just ensuring that we were actually hitting the "large request" code path at all. And checking for chunked encoding is another way of doing that. (And I certainly agree that "split across POSTs" is an inaccurate way of describing what it was trying for). > With this change, all tests pass at master with > GIT_TEST_PROTOCOL_VERSION=2. Yay. Thanks for your persistence with this. -Peff