Mercurial > hg > nginx-tests
annotate proxy_cache_use_stale.t @ 1571:1b4ceab9cb1c
Tests: fixed ssl_certificate.t with LibreSSL client.
Net::SSLeay::connect() that manages TLS handshake could return unexpected
error when receiving server alert, as seen in server certificate tests if
it could not been selected. Typically, it returns the expected error -1,
but with certain libssl implementations it can be 0, as explained below.
The error is propagated from libssl's SSL_connect(), which is usually -1.
In modern OpenSSL versions, it is the default error code used in the state
machine returned when something went wrong with parsing TLS message header.
In versions up to OpenSSL 1.0.2, with SSLv23_method() used by default, -1
is the only error code in the ssl_connect() method implementation which is
used as well if receiving alert while parsing ServerHello. BoringSSL also
seems to return -1. But it is not so with LibreSSL that returns zero.
Previously, tests failed with client built with LibreSSL with SSLv3 removed.
Here, the error is propagated directly from ssl_read_bytes() method, which
is always implemented as ssl3_read_bytes() in all TLS methods. It could be
also seen with OpenSSL up to 1.0.2 with non-default methods explicitly set.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Fri, 29 May 2020 23:10:20 +0300 |
parents | 144c6ce732e4 |
children | 17b227c271a2 |
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'); |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
151 $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
|
152 $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
|
153 |
1414
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
154 $t->run()->plan(35); |
1134
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 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
158 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
|
159 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
|
160 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
161 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
|
162 'stale-while-revalidate'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
163 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
|
164 |
1230
a3d23d16712d
Tests: adjusted cache validity time in proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1210
diff
changeset
|
165 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
|
166 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
|
167 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
|
168 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
|
169 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
|
170 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
|
171 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
|
172 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
|
173 get('/updating/t2.html', 'max-age=1, stale-while-revalidate=2'); |
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'); |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
176 get('/escape html', '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
|
177 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
|
178 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
179 sleep 2; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
180 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
181 like(http_get('/t.html?e=1'), qr/STALE/, 's-i-e - stale'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
182 like(http_get('/tt.html?e=1'), qr/STALE/, 's-i-e - stale 2'); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
183 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
|
184 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
185 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
|
186 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
|
187 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
|
188 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
189 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
|
190 '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
|
191 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
|
192 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
193 like(http_get('/t5.html?e=1'), qr/STALE/, |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
194 '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
|
195 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
|
196 |
1414
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
197 # 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
|
198 |
f5b18471e17a
Tests: proxy cache background update with regex captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1412
diff
changeset
|
199 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
|
200 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
|
201 |
1186
0352ed25af20
Tests: converted UTF-8 character to ASCII, no functional changes.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1179
diff
changeset
|
202 # 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
|
203 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
204 $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
|
205 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
206 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
|
207 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
|
208 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
|
209 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
|
210 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
|
211 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
212 # 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
|
213 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
214 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
|
215 '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
|
216 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
|
217 '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
|
218 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
219 # 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
|
220 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
221 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
|
222 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
|
223 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
224 sleep 2; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
225 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
226 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
|
227 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
|
228 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
|
229 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
|
230 '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
|
231 |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
232 # 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
|
233 # 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
|
234 # 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
|
235 |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
236 $t->write_file('t7.html', 'SEE-THAT' x 1024); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
237 |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
238 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
|
239 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
|
240 |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
241 $t->write_file('t9.html', 'SEE-THAT' x 1024); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
242 $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
|
243 |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
244 $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
|
245 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
|
246 |
1179
660147bfe68c
Tests: TODO proxy_cache_use_stale.t alert seen with "aio_write".
Sergey Kandaurov <pluknet@nginx.com>
parents:
1178
diff
changeset
|
247 # "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
|
248 |
660147bfe68c
Tests: TODO proxy_cache_use_stale.t alert seen with "aio_write".
Sergey Kandaurov <pluknet@nginx.com>
parents:
1178
diff
changeset
|
249 $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
|
250 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
|
251 |
1138
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
252 # 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
|
253 # 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
|
254 |
d6acd17ca4e3
Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1137
diff
changeset
|
255 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
|
256 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
|
257 |
1256
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
258 # 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
|
259 |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
260 $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
|
261 $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
|
262 |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
263 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
|
264 get('/escape html', 'max-age=1'); |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
265 |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
266 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
|
267 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
|
268 like(http_get('/escape html'), qr/HIT/, 'space after escaped space'); |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
269 like(http_get('/escape%20html'), qr/HIT/, 'escaped space after escaped space'); |
fc43a3555095
Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1251
diff
changeset
|
270 |
1134
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 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
273 sub get { |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
274 my ($url, $extra, %extra) = @_; |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
275 return http(<<EOF, %extra); |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
276 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
|
277 Host: localhost |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
278 Connection: close |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
279 X-Cache-Control: $extra |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
280 |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
281 EOF |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
282 } |
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
283 |
1178
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
284 # 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
|
285 |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
286 sub read_all { |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
287 my ($s) = @_; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
288 my $r = ''; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
289 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
|
290 $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
|
291 log_in($buf); |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
292 $r .= $buf; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
293 } |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
294 return $r; |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
295 } |
4039b6b3a75a
Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1138
diff
changeset
|
296 |
1134
d77c331affff
Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
297 ############################################################################### |