pagespeed/ngx_pagespeed — pull request #209 by jeffkaufman (2013-04-02 21:11:56+00:00)
Title: system-test: handle beacons, fix beacon handling bugs

* Add test that we handle beacons.
* Fix a segfault in handling beacons.
** This required switching NgxRequestContext to take an ngx_http_request_t
instead of a ps_request_ctx.
* Support running tests under valgrind:

USE_VALGRIND=true test/nginx_pagespeed_test.sh ...

But: we don't set a Content-Length header on our `204 No Content` response,
which makes wget wait for 60s to time it out. Compare:

wget --save-headers -O - http://localhost:8050/ngx_pagespeed_beacon
curl -D- http://localhost:8050/ngx_pagespeed_beacon

The headers we send are:

HTTP/1.1 204 No Content
Server: nginx/1.2.4
Date: Tue, 02 Apr 2013 21:07:02 GMT
Connection: keep-alive

While Apache sends:

HTTP/1.1 204 No Content
Date: Tue, 02 Apr 2013 21:07:43 GMT
Server: Apache/2.2.3 (CentOS)
Content-Length: 0
Content-Type: text/plain; charset=UTF-8

I can't get nginx to send a content length. I've tried manually doing the
opposite of ngx_http_clear_content_length but that didn't work.