On Thu, Nov 10, 2016 at 01:33:29PM -0800, Junio C Hamano wrote:
> Jeff King <[email protected]> writes:
>
> > IMHO, the value in the http tests is not testing the server side, but
> > the client side. Without being able to set up a dummy HTTP server, we do
> > not have any way to exercise the client side of git-over-http at all.
> > And people on macOS _do_ use that. :)
>
> Amen to that.
>
> I however do not know what the universally available simplest dummy
> HTTP server would be. There probably are better alternative than
> Apache with distro-customized ways of configuration that we have to
> adjust.
>
> A solution around HTTP::Server::Simple sounds attractive but is it
> a realistic alternative or too much effort required? I dunno.
I'm less concerned about the amount of effort (though I agree it may be
a blocker) than about the fact that it may not behave similarly to real
servers. We have had real bugs and surprises with the way that various
web servers implement things. A few that come to mind are:
1. Buffering/deadlock issues between the webserver and the CGI (this
was an issue with Apache, but I don't know about other servers).
2. The handling of CONTENT_LENGTH with chunked-encoding (this is still
an issue with IIS).
3. What happens when you ask for "foo.git/info/refs" and "foo.git" is
a bundle file (Apache gives you a 404, lighttpd serves the bundle).
Ideally we'd test against a lot of different webservers, but that's
expensive (in CPU, but also in developer time). But I'd guess that
Apache is at least more representative than HTTP::Server::Simple of real
servers in the wild.
So if we had a simple fallback in addition to Apache, I'd be OK with
that. But we still have a problem that (say) people on MacOS would never
actually test against Apache, because it's not supported there.
-Peff