Mercurial > hg > nginx-tests
view gunzip_ssi.t @ 391:915ef26ac6eb
Tests: fix proxy_unfinished.t failures with big buffers.
With newer systems it becomes common to use huge socket buffers, and
the "no proxy temp" test may unexpectedly fail because disk buffering will
not be used. To reduce this possibility, the "listen ... sndbuf=32k" was
added.
Additionally, regular expression was changed to silently allow full
responses.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 15 Apr 2014 22:04:08 +0400 |
parents | 6a0d934950bc |
children | c877f91a71b4 |
line wrap: on
line source
#!/usr/bin/perl # (C) Maxim Dounin # Tests for gunzip filter module with subrequests. ############################################################################### use warnings; use strict; use Test::More; BEGIN { use FindBin; chdir($FindBin::Bin); } use lib 'lib'; use Test::Nginx qw/ :DEFAULT :gzip /; ############################################################################### select STDERR; $| = 1; select STDOUT; $| = 1; eval { require IO::Compress::Gzip; }; Test::More::plan(skip_all => "IO::Compress::Gzip not found") if $@; my $t = Test::Nginx->new()->has(qw/http gunzip ssi proxy gzip_static/) ->plan(4); $t->write_file_expand('nginx.conf', <<'EOF'); %%TEST_GLOBALS%% daemon off; events { } http { %%TEST_GLOBALS_HTTP%% server { listen 127.0.0.1:8080; server_name localhost; location / { gunzip on; gzip_vary on; proxy_pass http://127.0.0.1:8081/; proxy_set_header Accept-Encoding gzip; } location /t.html { ssi on; } } server { listen 127.0.0.1:8081; server_name localhost; location / { default_type text/plain; gzip_static on; gzip_http_version 1.0; gzip_types text/plain; } } } EOF my $in = join('', map { sprintf "X%03dXXXXXX", $_ } (0 .. 99)); my $out; IO::Compress::Gzip::gzip(\$in => \$out); $t->write_file('t1.gz', $out); $t->write_file('t.html', 'xxx <!--#include virtual="/t1" --> xxx'); $t->run(); ############################################################################### my $r = http_get('/t.html'); unlike($r, qr/Content-Encoding/, 'no content encoding'); like($r, qr/^xxx (X\d\d\dXXXXXX){100} xxx$/m, 'correct gunzipped response'); $r = http_gzip_request('/t.html'); unlike($r, qr/Content-Encoding/, 'gzip - no content encoding'); like($r, qr/(X\d\d\dXXXXXX){100}/m, 'gzip - correct gunzipped response'); ###############################################################################