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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 ###############################################################################