Mercurial > hg > nginx-tests
annotate proxy_cache_use_stale.t @ 1731:c9b4c0ef5059
Tests: added server_name_in_redirect and port_in_redirect tests.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Wed, 15 Sep 2021 18:04:24 +0300 |
parents | e3dd111410fe |
children | a095b971fbcc |
rev | line source |
---|---|
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 # Tests for http proxy cache, proxy_cache_use_stale. |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
15 use IO::Select; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
16 |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 BEGIN { use FindBin; chdir($FindBin::Bin); } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 use lib 'lib'; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 use Test::Nginx qw/ :DEFAULT http_end /; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 ############################################################################### |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 select STDERR; $| = 1; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 select STDOUT; $| = 1; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
27 my $t = Test::Nginx->new()->has(qw/http proxy cache rewrite limit_req ssi/) |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 ->write_file_expand('nginx.conf', <<'EOF'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 %%TEST_GLOBALS%% |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 daemon off; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 events { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 http { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 %%TEST_GLOBALS_HTTP%% |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 proxy_cache_path %%TESTDIR%%/cache levels=1:2 keys_zone=NAME:1m; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 |
1412
aaaa8a40250b
Tests: adjusted proxy_cache_use_stale.t for slow hosts.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1381
diff
changeset
|
42 limit_req_zone $binary_remote_addr zone=one:1m rate=10r/m; |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 server { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 listen 127.0.0.1:8080; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 server_name localhost; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
48 location /ssi.html { |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
49 ssi on; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
50 sendfile_max_chunk 4k; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
51 } |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
52 |
1256
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
53 location /escape { |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
54 proxy_pass http://127.0.0.1:8081; |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
55 proxy_cache NAME; |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
56 proxy_cache_background_update on; |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
57 add_header X-Cache-Status $upstream_cache_status; |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
58 } |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
59 |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 location / { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 proxy_pass http://127.0.0.1:8081; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 proxy_cache NAME; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 proxy_cache_key $uri; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
66 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 proxy_cache_revalidate on; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
69 proxy_cache_background_update on; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
70 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 add_header X-Cache-Status $upstream_cache_status; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 location /t4.html { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 proxy_pass http://127.0.0.1:8081/t.html; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
75 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
76 proxy_cache_revalidate off; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
77 } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
78 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 location /t5.html { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 proxy_pass http://127.0.0.1:8081/t.html; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
81 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 proxy_cache_background_update off; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 |
1414
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
85 location ~ /(reg)(?P<name>exp).html { |
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
86 proxy_pass http://127.0.0.1:8081/$1$name.html; |
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
87 |
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
88 proxy_cache_background_update on; |
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
89 } |
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
90 |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
91 location /updating/ { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
92 proxy_pass http://127.0.0.1:8081/; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
93 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 proxy_cache_use_stale updating; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
97 location /t7.html { |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
98 proxy_pass http://127.0.0.1:8081; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
99 |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
100 sendfile_max_chunk 4k; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
101 } |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
102 |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
103 location /t8.html { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
104 proxy_pass http://127.0.0.1:8081/t.html; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
105 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
106 proxy_cache_valid 1s; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
107 } |
1138
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
108 |
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
109 if ($arg_if) { |
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
110 # nothing |
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
111 } |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
112 } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
113 } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
114 server { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
115 listen 127.0.0.1:8081; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
116 server_name localhost; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
117 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
118 add_header Cache-Control $http_x_cache_control; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
119 |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
120 if ($arg_lim) { |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
121 set $limit_rate 1k; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
122 } |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
123 |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
124 if ($arg_e) { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
125 return 500; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
126 } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
127 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
128 location / { } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
129 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
130 location /t6.html { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
131 limit_req zone=one burst=2; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
132 } |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
133 |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
134 location /t9.html { |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
135 add_header Cache-Control "max-age=1, stale-while-revalidate=10"; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
136 } |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
137 } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
138 } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
139 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
140 EOF |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
141 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
142 $t->write_file('t.html', 'SEE-THIS'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
143 $t->write_file('tt.html', 'SEE-THIS'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
144 $t->write_file('t2.html', 'SEE-THIS'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
145 $t->write_file('t3.html', 'SEE-THIS'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
146 $t->write_file('t6.html', 'SEE-THIS'); |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
147 $t->write_file('t7.html', 'SEE-THIS' x 1024); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
148 $t->write_file('t9.html', 'SEE-THIS' x 1024); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
149 $t->write_file('ssi.html', 'xxx <!--#include virtual="/t9.html" --> xxx'); |
1256
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
150 $t->write_file('escape.html', 'SEE-THIS'); |
1414
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
151 $t->write_file('regexp.html', 'SEE-THIS'); |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
152 |
1707
e3dd111410fe
Tests: removed spaces in URI in various other tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1704
diff
changeset
|
153 $t->run()->plan(34); |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
154 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
155 ############################################################################### |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
156 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
157 like(get('/t.html', 'max-age=1, stale-if-error=5'), qr/MISS/, 'stale-if-error'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
158 like(http_get('/t.html?e=1'), qr/HIT/, 's-i-e - cached'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
159 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
160 like(get('/t2.html', 'max-age=1, stale-while-revalidate=10'), qr/MISS/, |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
161 'stale-while-revalidate'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
162 like(http_get('/t2.html'), qr/HIT/, 's-w-r - cached'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
163 |
1230
a3d23d16712d
Tests: adjusted cache validity time in proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1210
diff
changeset
|
164 get('/tt.html', 'max-age=1, stale-if-error=3'); |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
165 get('/t3.html', 'max-age=1, stale-while-revalidate=2'); |
1230
a3d23d16712d
Tests: adjusted cache validity time in proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1210
diff
changeset
|
166 get('/t4.html', 'max-age=1, stale-while-revalidate=3'); |
a3d23d16712d
Tests: adjusted cache validity time in proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1210
diff
changeset
|
167 get('/t5.html', 'max-age=1, stale-while-revalidate=3'); |
1210
3ca5b0081bc6
Tests: proxy_cache_use_stale.t adjusted.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1186
diff
changeset
|
168 get('/t6.html', 'max-age=1, stale-while-revalidate=4'); |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
169 get('/t7.html', 'max-age=1, stale-while-revalidate=10'); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
170 http_get('/ssi.html'); |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
171 get('/updating/t.html', 'max-age=1'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
172 get('/updating/t2.html', 'max-age=1, stale-while-revalidate=2'); |
1587
17b227c271a2
Tests: 4xx and 5xx codes with stale-while-revalidate.
Roman Arutyunyan <arut@nginx.com>
parents:
1535
diff
changeset
|
173 get('/updating/tt.html', 'max-age=1, stale-if-error=5'); |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
174 get('/t8.html', 'stale-while-revalidate=10'); |
1256
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
175 get('/escape.htm%6C', 'max-age=1, stale-while-revalidate=10'); |
1414
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
176 get('/regexp.html', 'max-age=1, stale-while-revalidate=10'); |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
177 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
178 sleep 2; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
179 |
1587
17b227c271a2
Tests: 4xx and 5xx codes with stale-while-revalidate.
Roman Arutyunyan <arut@nginx.com>
parents:
1535
diff
changeset
|
180 # stale 5xx response is ignored since 1.19.3, |
17b227c271a2
Tests: 4xx and 5xx codes with stale-while-revalidate.
Roman Arutyunyan <arut@nginx.com>
parents:
1535
diff
changeset
|
181 # "proxy_cache_use_stale updating;" allows to get it still |
17b227c271a2
Tests: 4xx and 5xx codes with stale-while-revalidate.
Roman Arutyunyan <arut@nginx.com>
parents:
1535
diff
changeset
|
182 |
17b227c271a2
Tests: 4xx and 5xx codes with stale-while-revalidate.
Roman Arutyunyan <arut@nginx.com>
parents:
1535
diff
changeset
|
183 like(http_get('/t.html?e=1'), qr/ 500 /, 's-i-e - stale 5xx ignore'); |
17b227c271a2
Tests: 4xx and 5xx codes with stale-while-revalidate.
Roman Arutyunyan <arut@nginx.com>
parents:
1535
diff
changeset
|
184 like(http_get('/tt.html?e=1'), qr/ 500 /, 's-i-e - stale 5xx ignore 2'); |
17b227c271a2
Tests: 4xx and 5xx codes with stale-while-revalidate.
Roman Arutyunyan <arut@nginx.com>
parents:
1535
diff
changeset
|
185 like(http_get('/updating/tt.html'), qr/STALE/, 's-i-e - stale 5xx updating'); |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
186 like(http_get('/t.html'), qr/REVALIDATED/, 's-i-e - revalidated'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
187 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
188 like(http_get('/t2.html?e=1'), qr/STALE/, 's-w-r - revalidate error'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
189 like(http_get('/t2.html'), qr/STALE/, 's-w-r - stale while revalidate'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
190 like(http_get('/t2.html'), qr/HIT/, 's-w-r - revalidated'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
191 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
192 like(get('/t4.html', 'max-age=1, stale-while-revalidate=2'), qr/STALE/, |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
193 's-w-r - unconditional revalidate'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
194 like(http_get('/t4.html'), qr/HIT/, 's-w-r - unconditional revalidated'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
195 |
1587
17b227c271a2
Tests: 4xx and 5xx codes with stale-while-revalidate.
Roman Arutyunyan <arut@nginx.com>
parents:
1535
diff
changeset
|
196 like(http_get('/t5.html?e=1'), qr/ 500 /, |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
197 's-w-r - foreground revalidate error'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
198 like(http_get('/t5.html'), qr/REVALIDATED/, 's-w-r - foreground revalidated'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
199 |
1414
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
200 # proxy_pass to regular expression with named and positional captures |
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
201 |
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
202 like(http_get('/regexp.html'), qr/STALE/, 's-w-r - regexp background update'); |
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
203 like(http_get('/regexp.html'), qr/HIT/, 's-w-r - regexp revalidated'); |
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
204 |
1186
0352ed25af20
Tests: converted UTF-8 character to ASCII, no functional changes.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1179
diff
changeset
|
205 # UPDATING while s-w-r |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
206 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
207 $t->write_file('t6.html', 'SEE-THAT'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
208 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
209 my $s = get('/t6.html', 'max-age=1, stale-while-revalidate=2', start => 1); |
1137
129b9e4ca3b3
Tests: reduced race in proxy_cache_use_stale tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1134
diff
changeset
|
210 select undef, undef, undef, 0.2; |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
211 like(http_get('/t6.html'), qr/UPDATING.*SEE-THIS/s, 's-w-r - updating'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
212 like(http_end($s), qr/STALE.*SEE-THIS/s, 's-w-r - updating stale'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
213 like(http_get('/t6.html'), qr/HIT.*SEE-THAT/s, 's-w-r - updating revalidated'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
214 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
215 # stale-while-revalidate with proxy_cache_use_stale updating |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
216 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
217 like(http_get('/updating/t.html'), qr/STALE/, |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
218 's-w-r - use_stale updating stale'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
219 like(http_get('/updating/t.html'), qr/HIT/, |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
220 's-w-r - use_stale updating revalidated'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
221 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
222 # stale-while-revalidate with proxy_cache_valid |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
223 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
224 like(http_get('/t8.html'), qr/STALE/, 's-w-r - proxy_cache_valid revalidate'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
225 like(http_get('/t8.html'), qr/HIT/, 's-w-r - proxy_cache_valid revalidated'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
226 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
227 sleep 2; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
228 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
229 like(http_get('/t2.html?e=1'), qr/STALE/, 's-w-r - stale after revalidate'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
230 like(http_get('/t3.html?e=1'), qr/ 500 /, 's-w-r - ceased'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
231 like(http_get('/tt.html?e=1'), qr/ 500 /, 's-i-e - ceased'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
232 like(http_get('/updating/t2.html'), qr/STALE/, |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
233 's-w-r - overriden with use_stale updating'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
234 |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
235 # stale response not blocked by background update. |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
236 # before 1.13.1, if stale response was not sent in one pass, its remaining |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
237 # part was blocked and not sent until background update has been finished |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
238 |
1704
4b808861a318
Tests: proxy_cache_use_stale.t speedup.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1693
diff
changeset
|
239 $t->write_file('t7.html', 'SEE-THAT' x 256); |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
240 |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
241 my $r = read_all(get('/t7.html?lim=1', 'max-age=1', start => 1)); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
242 like($r, qr/STALE.*^(SEE-THIS){1024}$/ms, 's-w-r - stale response not blocked'); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
243 |
1704
4b808861a318
Tests: proxy_cache_use_stale.t speedup.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1693
diff
changeset
|
244 $t->write_file('t9.html', 'SEE-THAT' x 256); |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
245 $t->write_file('ssi.html', 'xxx <!--#include virtual="/t9.html?lim=1" --> xxx'); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
246 |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
247 $r = read_all(http_get('/ssi.html', start => 1)); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
248 like($r, qr/^xxx (SEE-THIS){1024} xxx$/ms, 's-w-r - not blocked in subrequest'); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
249 |
1179
660147bfe68c
Tests: TODO proxy_cache_use_stale.t alert seen with "aio_write".
Sergey Kandaurov <pluknet@nginx.com>
parents:
1178
diff
changeset
|
250 # "aio_write" is used to produce "open socket ... left in connection" alerts. |
660147bfe68c
Tests: TODO proxy_cache_use_stale.t alert seen with "aio_write".
Sergey Kandaurov <pluknet@nginx.com>
parents:
1178
diff
changeset
|
251 |
660147bfe68c
Tests: TODO proxy_cache_use_stale.t alert seen with "aio_write".
Sergey Kandaurov <pluknet@nginx.com>
parents:
1178
diff
changeset
|
252 $t->todo_alerts() if $t->read_file('nginx.conf') =~ /aio_write on/ |
660147bfe68c
Tests: TODO proxy_cache_use_stale.t alert seen with "aio_write".
Sergey Kandaurov <pluknet@nginx.com>
parents:
1178
diff
changeset
|
253 and $t->read_file('nginx.conf') =~ /aio threads/ and $^O eq 'freebsd'; |
660147bfe68c
Tests: TODO proxy_cache_use_stale.t alert seen with "aio_write".
Sergey Kandaurov <pluknet@nginx.com>
parents:
1178
diff
changeset
|
254 |
1138
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
255 # due to the missing content_handler inheritance in a cloned subrequest, |
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
256 # this used to access a static file in the update request |
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
257 |
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
258 like(http_get('/t2.html?if=1'), qr/STALE/, 'background update in if'); |
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
259 like(http_get('/t2.html?if=1'), qr/HIT/, 'background update in if - updated'); |
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
260 |
1256
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
261 # ticket #1430, uri escaping in cloned subrequests |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
262 |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
263 $t->write_file('escape.html', 'SEE-THAT'); |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
264 |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
265 get('/escape.htm%6C', 'max-age=1'); |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
266 |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
267 like(http_get('/escape.htm%6C'), qr/HIT/, 'escaped after escaped'); |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
268 like(http_get('/escape.html'), qr/MISS/, 'unescaped after escaped'); |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
269 |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
270 ############################################################################### |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
271 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
272 sub get { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
273 my ($url, $extra, %extra) = @_; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
274 return http(<<EOF, %extra); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
275 GET $url HTTP/1.1 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
276 Host: localhost |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
277 Connection: close |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
278 X-Cache-Control: $extra |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
279 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
280 EOF |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
281 } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
282 |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
283 # background update is known to postpone closing connection with client |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
284 |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
285 sub read_all { |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
286 my ($s) = @_; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
287 my $r = ''; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
288 while (IO::Select->new($s)->can_read(1)) { |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
289 $s->sysread(my $buf, 8192) or last; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
290 log_in($buf); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
291 $r .= $buf; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
292 } |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
293 return $r; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
294 } |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
295 |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
296 ############################################################################### |