Re: [PATCH] http: match headers case-insensitively when redacting
From: Jeff King <hidden>
Date: 2021-09-22 02:30:12
On Tue, Sep 21, 2021 at 05:20:45PM -0400, Taylor Blau wrote:
I'd be fine with assuming that the http2 module is available everywhere, but only because the tests are optional in the first place. I agree that we'd want to run our suite of HTTP-related tests in both HTTP/2 and HTTP/1.1 mode.
Yeah, it's really only a problem if we lose some coverage of http on particular platforms. But I suspect it's relatively rare for people to run the http tests in the first place.
But that doesn't mean we have to reconfigure our Apache server midway through the test, since HTTP/2 servers should keep the HTTP/1.1 conversation going if the client doesn't reply with 'Connection: upgrade; Upgrade: h2c'. At least, I think that's the case based on my fairly rudimentary understanding of HTTP/2 ;).
Right. If we were doing ALPN, curl would automatically do HTTP/2 if the server supports it. But since we're not, then yes, we can control it from the client side. I think I'd probably break it into two scripts anyway, though, like: #!/bin/sh test_description='variant of t5551 for http2' . ./test-lib.sh test_expect_success 'turn on http/2' ' git config --global http.version HTTP/2 && test_set_prereq HTTP2 ' # presumably it learns to skip its preamble if test_description is # already set. Or we could pull it out to a common lib-t5551 file. . t5551-http-fetch-smart.sh But TBH I'm not sure if it's even worth the effort. We did find one obscure case here, but AFAICT this would be unlikely to turn up anything useful. I dunno. And really, you'd want to do it for all http-related test scripts, not just this one. That's quite a bit more work. -Peff