annotate proxy_cache_revalidate.t @ 431:05c46688b54b

Tests: ssl_password_file.t fixes. Make sure to always specify listen socket in all servers as the default vary (under root, nginx will try to listen on 80). Make sure to detect if an https request was processed by http.
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 09 Jul 2014 05:19:51 +0400
parents f620d9529ed6
children 43e05ac6c23c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
353
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for http proxy cache revalidation with conditional requests.
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13 use Socket qw/ CRLF /;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use lib 'lib';
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18 use Test::Nginx qw/ :DEFAULT :gzip /;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20 ###############################################################################
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDERR; $| = 1;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23 select STDOUT; $| = 1;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 plan(skip_all => 'win32') if $^O eq 'MSWin32';
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 my $t = Test::Nginx->new()->has(qw/http proxy cache/)
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28 ->write_file_expand('nginx.conf', <<'EOF');
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30 %%TEST_GLOBALS%%
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 daemon off;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 events {
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 }
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 http {
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 %%TEST_GLOBALS_HTTP%%
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 proxy_cache_path %%TESTDIR%%/cache levels=1:2
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 keys_zone=one:1m;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 proxy_cache_revalidate on;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 server {
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 listen 127.0.0.1:8080;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 server_name localhost;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 location / {
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 proxy_pass http://127.0.0.1:8081;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 proxy_cache one;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 proxy_cache_valid 200 1s;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 add_header X-Cache-Status $upstream_cache_status;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 }
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 }
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 server {
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 listen 127.0.0.1:8081;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 server_name localhost;
413
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
62
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
63 location / { }
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
64 location /etag/ {
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
65 proxy_pass http://127.0.0.1:8081/;
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
66 proxy_hide_header Last-Modified;
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
67 }
353
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 }
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69 }
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 EOF
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 $t->write_file('t', 'SEE-THIS');
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74 $t->write_file('t2', 'SEE-THIS');
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75
413
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
76 $t->run()->plan(17);
353
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 ###############################################################################
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
79
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
80 # request documents and make sure they are cached
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82 like(http_get('/t'), qr/X-Cache-Status: MISS.*SEE/ms, 'request');
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 like(http_get('/t'), qr/X-Cache-Status: HIT.*SEE/ms, 'request cached');
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85 like(http_get('/t2'), qr/X-Cache-Status: MISS.*SEE/ms, '2nd request');
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 like(http_get('/t2'), qr/X-Cache-Status: HIT.*SEE/ms, '2nd request cached');
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87
413
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
88 like(http_get('/etag/t'), qr/X-Cache-Status: MISS.*SEE/ms, 'etag');
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
89 like(http_get('/etag/t'), qr/X-Cache-Status: HIT.*SEE/ms, 'etag cached');
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
90
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
91 like(http_get('/etag/t2'), qr/X-Cache-Status: MISS.*SEE/ms, 'etag2');
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
92 like(http_get('/etag/t2'), qr/X-Cache-Status: HIT.*SEE/ms, 'etag2 cached');
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
93
353
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
94 # wait for a while for cached responses to expire
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
95
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
96 select undef, undef, undef, 2.5;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
97
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
98 # 1st document isn't modified, and should be revalidated on first request
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
99 # (a 304 status code will appear in backend's logs), then cached again
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
100
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
101 like(http_get('/t'), qr/X-Cache-Status: REVALIDATED.*SEE/ms, 'revalidated');
413
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
102 like(http_get('/t'), qr/X-Cache-Status: HIT.*SEE/ms, 'cached again');
354
fb366c51eac6 Tests: reduce race in cache revalidate test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 353
diff changeset
103
fb366c51eac6 Tests: reduce race in cache revalidate test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 353
diff changeset
104 select undef, undef, undef, 0.1;
353
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105 like(read_file($t->testdir() . '/access.log'), qr/ 304 /, 'not modified');
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
107 # 2nd document is recreated with a new content
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
108
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
109 $t->write_file('t2', 'NEW');
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
110 like(http_get('/t2'), qr/X-Cache-Status: EXPIRED.*NEW/ms, 'revalidate failed');
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
111 like(http_get('/t2'), qr/X-Cache-Status: HIT.*NEW/ms, 'new response cached');
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
112
413
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
113 # the same for etag:
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
114 # 1st document isn't modified
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
115 # 2nd document is recreated
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
116
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
117 TODO: {
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
118 local $TODO = 'not yet';
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
119
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
120 like(http_get('/etag/t'), qr/X-Cache-Status: REVALIDATED.*SEE/ms,
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
121 'etag revalidated');
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
122
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
123 }
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
124
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
125 like(http_get('/etag/t'), qr/X-Cache-Status: HIT.*SEE/ms,
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
126 'etag cached again');
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
127 like(http_get('/etag/t2'), qr/X-Cache-Status: EXPIRED.*NEW/ms,
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
128 'etag2 revalidate failed');
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
129 like(http_get('/etag/t2'), qr/X-Cache-Status: HIT.*NEW/ms,
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
130 'etag2 new response cached');
f620d9529ed6 Tests: cache revalidate tests with ETag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 397
diff changeset
131
353
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
132 ###############################################################################
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
133
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
134 sub read_file {
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
135 my ($file) = @_;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
136 my $log;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
137
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
138 local $/;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
139
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
140 open LOG, $file or die "Can't open $file: $!\n";
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
141 $log = <LOG>;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
142 close LOG;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
143
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
144 return $log;
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
145 }
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
146
19f58e91617a Tests: proxy cache revalidate tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
147 ###############################################################################