annotate proxy_store.t @ 251:df984d23f9d1

Tests: improve fastcgi keepalive tests. On some platforms fastcgi_keepalive.t tests failed due to problems in handling of data split into multiple packets. Harden tests to fail on all platforms by adding more sleeps, and mark them as TODO till underlying problems are fixed. Additionally, add some padding testing.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 25 Jan 2013 20:53:53 +0400
parents 6a0d934950bc
children f175dc25f249
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
46
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for proxy_store functionality.
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
121
8ac1faaddd2c Tests: better handle various configure arguments.
Maxim Dounin <mdounin@mdounin.ru>
parents: 107
diff changeset
12 use Test::More;
46
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 my $t = Test::Nginx->new();
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25
121
8ac1faaddd2c Tests: better handle various configure arguments.
Maxim Dounin <mdounin@mdounin.ru>
parents: 107
diff changeset
26 $t->write_file_expand('nginx.conf', <<'EOF')->has(qw/http proxy ssi/)->plan(7);
46
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27
107
1c0ec30614c6 Tests: add TEST_GLOBALS and TEST_GLOBALS_HTTP config chunks.
Maxim Dounin <mdounin@mdounin.ru>
parents: 90
diff changeset
28 %%TEST_GLOBALS%%
1c0ec30614c6 Tests: add TEST_GLOBALS and TEST_GLOBALS_HTTP config chunks.
Maxim Dounin <mdounin@mdounin.ru>
parents: 90
diff changeset
29
249
6a0d934950bc Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents: 236
diff changeset
30 daemon off;
46
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 events {
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 }
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 http {
107
1c0ec30614c6 Tests: add TEST_GLOBALS and TEST_GLOBALS_HTTP config chunks.
Maxim Dounin <mdounin@mdounin.ru>
parents: 90
diff changeset
36 %%TEST_GLOBALS_HTTP%%
46
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 server {
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 listen 127.0.0.1:8080;
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 server_name localhost;
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41
89
abbe4b123795 Tests: simplify proxy-store tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 88
diff changeset
42 location /store- {
abbe4b123795 Tests: simplify proxy-store tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 88
diff changeset
43 proxy_pass http://127.0.0.1:8080/;
87
f2d09159a8f3 Tests: proxy_store leaving temporary files bug test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
44 proxy_store on;
f2d09159a8f3 Tests: proxy_store leaving temporary files bug test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
45 }
90
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
46 location /ssi.html {
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
47 ssi on;
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
48 }
47
bb6d65d833cd Tests: test for X-Accel-Expires switching off proxy_store.
Maxim Dounin <mdounin@mdounin.ru>
parents: 46
diff changeset
49 location /index-nostore.html {
bb6d65d833cd Tests: test for X-Accel-Expires switching off proxy_store.
Maxim Dounin <mdounin@mdounin.ru>
parents: 46
diff changeset
50 add_header X-Accel-Expires 0;
bb6d65d833cd Tests: test for X-Accel-Expires switching off proxy_store.
Maxim Dounin <mdounin@mdounin.ru>
parents: 46
diff changeset
51 }
87
f2d09159a8f3 Tests: proxy_store leaving temporary files bug test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
52 location /index-big.html {
f2d09159a8f3 Tests: proxy_store leaving temporary files bug test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
53 limit_rate 200k;
f2d09159a8f3 Tests: proxy_store leaving temporary files bug test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
54 }
46
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 }
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 }
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58 EOF
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 $t->write_file('index.html', 'SEE-THIS');
47
bb6d65d833cd Tests: test for X-Accel-Expires switching off proxy_store.
Maxim Dounin <mdounin@mdounin.ru>
parents: 46
diff changeset
61 $t->write_file('index-nostore.html', 'SEE-THIS');
87
f2d09159a8f3 Tests: proxy_store leaving temporary files bug test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
62 $t->write_file('index-big.html', 'x' x (100 << 10));
90
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
63 $t->write_file('ssi.html',
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
64 '<!--#include virtual="/store-index-big.html?1" -->' .
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
65 '<!--#include virtual="/store-index-big.html?2" -->'
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
66 );
46
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67 $t->run();
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69 ###############################################################################
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70
89
abbe4b123795 Tests: simplify proxy-store tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 88
diff changeset
71 like(http_get('/store-index.html'), qr/SEE-THIS/, 'proxy request');
abbe4b123795 Tests: simplify proxy-store tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 88
diff changeset
72 ok(-e $t->testdir() . '/store-index.html', 'result stored');
46
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73
89
abbe4b123795 Tests: simplify proxy-store tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 88
diff changeset
74 like(http_get('/store-index-nostore.html'), qr/SEE-THIS/,
abbe4b123795 Tests: simplify proxy-store tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 88
diff changeset
75 'proxy request with x-accel-expires');
47
bb6d65d833cd Tests: test for X-Accel-Expires switching off proxy_store.
Maxim Dounin <mdounin@mdounin.ru>
parents: 46
diff changeset
76
bb6d65d833cd Tests: test for X-Accel-Expires switching off proxy_store.
Maxim Dounin <mdounin@mdounin.ru>
parents: 46
diff changeset
77 TODO: {
224
ba992cfdc606 Tests: remove TODO from tests which pass in 1.2.x.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
78 local $TODO = 'patch rejected';
47
bb6d65d833cd Tests: test for X-Accel-Expires switching off proxy_store.
Maxim Dounin <mdounin@mdounin.ru>
parents: 46
diff changeset
79
89
abbe4b123795 Tests: simplify proxy-store tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 88
diff changeset
80 ok(!-e $t->testdir() . '/store-index-nostore.html', 'result not stored');
47
bb6d65d833cd Tests: test for X-Accel-Expires switching off proxy_store.
Maxim Dounin <mdounin@mdounin.ru>
parents: 46
diff changeset
81 }
bb6d65d833cd Tests: test for X-Accel-Expires switching off proxy_store.
Maxim Dounin <mdounin@mdounin.ru>
parents: 46
diff changeset
82
bb6d65d833cd Tests: test for X-Accel-Expires switching off proxy_store.
Maxim Dounin <mdounin@mdounin.ru>
parents: 46
diff changeset
83 ok(scalar @{[ glob $t->testdir() . '/proxy_temp/*' ]} == 0, 'no temp files');
bb6d65d833cd Tests: test for X-Accel-Expires switching off proxy_store.
Maxim Dounin <mdounin@mdounin.ru>
parents: 46
diff changeset
84
89
abbe4b123795 Tests: simplify proxy-store tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 88
diff changeset
85 http_get('/store-index-big.html', aborted => 1, sleep => 0.1);
236
5ac875a3088e Tests: improve proxy_store.t timeouts a bit.
Maxim Dounin <mdounin@mdounin.ru>
parents: 233
diff changeset
86
233
1a5574d84917 Tests: tweak various timeouts and replace sleep() with select().
Maxim Dounin <mdounin@mdounin.ru>
parents: 224
diff changeset
87 select(undef, undef, undef, 0.5);
236
5ac875a3088e Tests: improve proxy_store.t timeouts a bit.
Maxim Dounin <mdounin@mdounin.ru>
parents: 233
diff changeset
88 select(undef, undef, undef, 2.5)
5ac875a3088e Tests: improve proxy_store.t timeouts a bit.
Maxim Dounin <mdounin@mdounin.ru>
parents: 233
diff changeset
89 if scalar @{[ glob $t->testdir() . '/proxy_temp/*' ]};
87
f2d09159a8f3 Tests: proxy_store leaving temporary files bug test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
90
f2d09159a8f3 Tests: proxy_store leaving temporary files bug test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
91 ok(scalar @{[ glob $t->testdir() . '/proxy_temp/*' ]} == 0,
f2d09159a8f3 Tests: proxy_store leaving temporary files bug test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
92 'no temp files after aborted request');
f2d09159a8f3 Tests: proxy_store leaving temporary files bug test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 64
diff changeset
93
90
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
94 http_get('/ssi.html', aborted => 1, sleep => 0.1);
236
5ac875a3088e Tests: improve proxy_store.t timeouts a bit.
Maxim Dounin <mdounin@mdounin.ru>
parents: 233
diff changeset
95
233
1a5574d84917 Tests: tweak various timeouts and replace sleep() with select().
Maxim Dounin <mdounin@mdounin.ru>
parents: 224
diff changeset
96 select(undef, undef, undef, 0.5);
236
5ac875a3088e Tests: improve proxy_store.t timeouts a bit.
Maxim Dounin <mdounin@mdounin.ru>
parents: 233
diff changeset
97 select(undef, undef, undef, 2.5)
5ac875a3088e Tests: improve proxy_store.t timeouts a bit.
Maxim Dounin <mdounin@mdounin.ru>
parents: 233
diff changeset
98 if scalar @{[ glob $t->testdir() . '/proxy_temp/*' ]};
90
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
99
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
100 ok(scalar @{[ glob $t->testdir() . '/proxy_temp/*' ]} == 0,
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
101 'no temp files after aborted ssi');
1d3c82227a05 Tests: subrequests with proxy_store todo test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 89
diff changeset
102
46
239a346b4913 Tests: add proxy_store basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
103 ###############################################################################