Mercurial > hg > nginx-tests
view not_modified.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 | 5c25acbc870a |
line wrap: on
line source
#!/usr/bin/perl # (C) Maxim Dounin # Tests for not modified filter module. ############################################################################### use warnings; use strict; use Test::More; BEGIN { use FindBin; chdir($FindBin::Bin); } use lib 'lib'; use Test::Nginx; ############################################################################### select STDERR; $| = 1; select STDOUT; $| = 1; my $t = Test::Nginx->new()->has('http')->plan(12) ->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 / { if_modified_since before; } } } EOF $t->write_file('t', ''); $t->run(); ############################################################################### like(http_get_ims('/t', 'Wed, 08 Jul 2037 22:53:52 GMT'), qr/304/, '0x7F000000'); like(http_get_ims('/t', 'Tue, 19 Jan 2038 03:14:07 GMT'), qr/304/, '0x7FFFFFFF'); SKIP: { skip "only for 32-bit time_t", 2 if (gmtime(0xFFFFFFFF))[5] == 206; like(http_get_ims('/t', 'Tue, 19 Jan 2038 03:14:08 GMT'), qr/200/, '0x7FFFFFFF + 1'); like(http_get_ims('/t', 'Fri, 25 Feb 2174 09:42:23 GMT'), qr/200/, '0x17FFFFFFF'); } # If-Match, If-None-Match tests my ($t1, $etag); $t1 = http_get('/t'); SKIP: { skip "no etag support", 8 if $t1 !~ /ETag: (".*")/; $etag = $1; like(http_get_inm('/t', $etag), qr/304/, 'if-none-match'); like(http_get_inm('/t', '"foo"'), qr/200/, 'if-none-match fail'); like(http_get_inm('/t', '"foo", "bar", ' . $etag . ' , "baz"'), qr/304/, 'if-none-match with complex list'); like(http_get_inm('/t', '*'), qr/304/, 'if-none-match all'); like(http_get_im('/t', $etag), qr/200/, 'if-match'); like(http_get_im('/t', '"foo"'), qr/412/, 'if-match fail'); like(http_get_im('/t', '"foo", "bar", ' . "\t" . $etag . ' , "baz"'), qr/200/, 'if-match with complex list'); like(http_get_im('/t', '*'), qr/200/, 'if-match all'); } ############################################################################### sub http_get_ims { my ($url, $ims) = @_; return http(<<EOF); GET $url HTTP/1.0 Host: localhost If-Modified-Since: $ims EOF } sub http_get_inm { my ($url, $inm) = @_; return http(<<EOF); GET $url HTTP/1.0 Host: localhost If-None-Match: $inm EOF } sub http_get_im { my ($url, $inm) = @_; return http(<<EOF); GET $url HTTP/1.0 Host: localhost If-Match: $inm EOF } ###############################################################################