annotate proxy_cache_lock.t @ 540:481d705b8610

Tests: SSL support in mail backends. Socket is now embedded into every mail module. Socket methods are wrapped where appropriate. The new "SSL" extra flag specifies to accept connection over SSL.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 03 Apr 2015 00:11:38 +0300
parents 071e8941e3bf
children 28a8248740ca
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for http proxy cache lock.
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
438
60888e2c3f5a Tests: new http_start() and http_end() functions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
17 use Test::Nginx qw/ :DEFAULT http_end /;
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
223
f9325406df0b Tests: skip tests not appropriate for win32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 213
diff changeset
24 plan(skip_all => 'win32') if $^O eq 'MSWin32';
f9325406df0b Tests: skip tests not appropriate for win32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 213
diff changeset
25
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26 my $t = Test::Nginx->new()->has(qw/http proxy cache/)
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 ->write_file_expand('nginx.conf', <<'EOF');
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 %%TEST_GLOBALS%%
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
249
6a0d934950bc Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents: 233
diff changeset
31 daemon off;
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 events {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36 http {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 proxy_cache_path %%TESTDIR%%/cache levels=1:2
503
071e8941e3bf Tests: reduce shared memory zone sizes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 499
diff changeset
40 keys_zone=NAME:1m;
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 server {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 listen 127.0.0.1:8080;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 server_name localhost;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 location / {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 proxy_pass http://127.0.0.1:8081;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 proxy_cache NAME;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 proxy_cache_lock on;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 location /timeout {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 proxy_pass http://127.0.0.1:8081;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 proxy_cache NAME;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 proxy_cache_lock on;
233
1a5574d84917 Tests: tweak various timeouts and replace sleep() with select().
Maxim Dounin <mdounin@mdounin.ru>
parents: 223
diff changeset
58 proxy_cache_lock_timeout 200ms;
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 location /nolock {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 proxy_pass http://127.0.0.1:8081;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63 proxy_cache NAME;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 EOF
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70 $t->run_daemon(\&http_fake_daemon);
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71
397
847ea345becb Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 392
diff changeset
72 $t->run()->plan(19);
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73
213
4ac0807cc3cf Tests: eliminate race in proxy_cache_lock.t startup.
Maxim Dounin <mdounin@mdounin.ru>
parents: 212
diff changeset
74 $t->waitforsocket('127.0.0.1:8081');
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 ###############################################################################
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 # sequentional requests
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
79
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
80 for my $i (1 .. 5) {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81 like(http_get('/seq'), qr/request 1/, 'sequentional request ' . $i);
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84 # parallel requests
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 my @sockets;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88 for my $i (1 .. 5) {
438
60888e2c3f5a Tests: new http_start() and http_end() functions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
89 $sockets[$i] = http_get('/par1', start => 1);
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
90 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
91
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
92 for my $i (1 .. 5) {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
93 like(http_end($sockets[$i]), qr/request 1/, 'parallel request ' . $i);
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
94 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
95
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
96 like(http_get('/par1'), qr/request 1/, 'first request cached');
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
97
498
420fbf3555dd Tests: cache lock timeout behavior changed in 1.7.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 474
diff changeset
98 # since 1.7.8, parallel requests with cache lock timeout expired are not cached
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
99
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
100 for my $i (1 .. 3) {
438
60888e2c3f5a Tests: new http_start() and http_end() functions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
101 $sockets[$i] = http_get('/timeout', start => 1);
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
102 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
103
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
104 for my $i (1 .. 3) {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105 like(http_end($sockets[$i]), qr/request $i/, 'lock timeout ' . $i);
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
107
498
420fbf3555dd Tests: cache lock timeout behavior changed in 1.7.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 474
diff changeset
108 TODO: {
499
a3b03c333ad5 Tests: adjusted proxy cache lock TODO, improved its description.
Sergey Kandaurov <pluknet@nginx.com>
parents: 498
diff changeset
109 local $TODO = 'behavior change' unless $t->has_version('1.7.8');
498
420fbf3555dd Tests: cache lock timeout behavior changed in 1.7.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 474
diff changeset
110
420fbf3555dd Tests: cache lock timeout behavior changed in 1.7.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 474
diff changeset
111 like(http_get('/timeout'), qr/request 1/, 'lock timeout - first only cached');
420fbf3555dd Tests: cache lock timeout behavior changed in 1.7.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 474
diff changeset
112
420fbf3555dd Tests: cache lock timeout behavior changed in 1.7.8.
Sergey Kandaurov <pluknet@nginx.com>
parents: 474
diff changeset
113 }
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
115 # no lock
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
116
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
117 for my $i (1 .. 3) {
438
60888e2c3f5a Tests: new http_start() and http_end() functions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
118 $sockets[$i] = http_get('/nolock', start => 1);
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
119 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
120
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
121 for my $i (1 .. 3) {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
122 like(http_end($sockets[$i]), qr/request $i/, 'nolock ' . $i);
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
123 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
124
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
125 like(http_get('/nolock'), qr/request 3/, 'nolock - last cached');
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
126
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
127 ###############################################################################
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
128
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
129 sub http_fake_daemon {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
130 my $server = IO::Socket::INET->new(
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
131 Proto => 'tcp',
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
132 LocalAddr => '127.0.0.1:8081',
191
bc6ecf23cc9c Tests: enlarge listen queue for cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 184
diff changeset
133 Listen => 5,
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
134 Reuse => 1
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
135 )
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
136 or die "Can't create listening socket: $!\n";
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
137
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
138 my $num = 0;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
139 my $uri = '';
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
140
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
141 while (my $client = $server->accept()) {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
142 $client->autoflush(1);
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
143
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
144 while (<$client>) {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
145 if (/GET (.*) HTTP/ && $1 ne $uri) {
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
146 $uri = $1;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
147 $num = 0;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
148 }
212
a7cc4371f4ad Tests: whitespace fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 191
diff changeset
149
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
150 $uri = $1 if /GET (.*) HTTP/;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
151 last if /^\x0d?\x0a?$/;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
152 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
153
213
4ac0807cc3cf Tests: eliminate race in proxy_cache_lock.t startup.
Maxim Dounin <mdounin@mdounin.ru>
parents: 212
diff changeset
154 next unless $uri;
4ac0807cc3cf Tests: eliminate race in proxy_cache_lock.t startup.
Maxim Dounin <mdounin@mdounin.ru>
parents: 212
diff changeset
155
233
1a5574d84917 Tests: tweak various timeouts and replace sleep() with select().
Maxim Dounin <mdounin@mdounin.ru>
parents: 223
diff changeset
156 select(undef, undef, undef, 0.5);
184
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
157
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
158 $num++;
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
159 print $client <<"EOF";
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
160 HTTP/1.1 200 OK
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
161 Cache-Control: max-age=300
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
162 Connection: close
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
163
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
164 request $num
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
165 EOF
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
166 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
167 }
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
168
f432f11a3b12 Tests: proxy cache lock tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
169 ###############################################################################