Mercurial > hg > nginx-tests
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 |
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 ############################################################################### |