annotate proxy_cache_use_stale.t @ 1260:eadd24ccfda1

Tests: postponed startup in certain ssl certificate tests on win32. At least, some win32 hosts exhibit a round-off error or some such in the notBefore field of the certificate generated before starting nginx, such that it can be set to the value one second ahead of the current time. This manifests in spurious test failures due to certificate verify error with a failure reason "certificate is not yet valid".
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 12 Dec 2017 12:53:53 +0300
parents fc43a3555095
children 97c8280de681
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
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42 limit_req_zone $binary_remote_addr zone=one:1m rate=15r/m;
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
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
85 location /updating/ {
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86 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
87
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
88 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
89 }
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90
1178
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
91 location /t7.html {
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
92 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
93
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
94 sendfile_max_chunk 4k;
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
95 }
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
96
1134
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
97 location /t8.html {
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
98 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
99
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
100 proxy_cache_valid 1s;
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
101 }
1138
d6acd17ca4e3 Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1137
diff changeset
102
d6acd17ca4e3 Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1137
diff changeset
103 if ($arg_if) {
d6acd17ca4e3 Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1137
diff changeset
104 # nothing
d6acd17ca4e3 Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1137
diff changeset
105 }
1134
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
106 }
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
107 }
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
108 server {
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
109 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
110 server_name localhost;
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
111
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
112 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
113
1178
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
114 if ($arg_lim) {
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
115 set $limit_rate 1k;
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
116 }
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
117
1134
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
118 if ($arg_e) {
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
119 return 500;
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
120 }
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
121
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
122 location / { }
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
123
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
124 location /t6.html {
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
125 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
126 }
1178
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
127
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
128 location /t9.html {
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
129 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
130 }
1134
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
131 }
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
132 }
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
133
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
134 EOF
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
135
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
136 $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
137 $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
138 $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
139 $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
140 $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
141 $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
142 $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
143 $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
144 $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
145 $t->write_file('escape html', 'SEE-THIS');
1134
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
146
1256
fc43a3555095 Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
147 $t->run()->plan(33);
1134
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
148
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
149 ###############################################################################
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
150
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
151 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
152 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
153
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
154 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
155 'stale-while-revalidate');
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
156 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
157
1230
a3d23d16712d Tests: adjusted cache validity time in proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1210
diff changeset
158 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
159 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
160 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
161 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
162 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
163 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
164 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
165 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
166 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
167 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
168 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
169 get('/escape 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
170
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
171 sleep 2;
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
172
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
173 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
174 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
175 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
176
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
177 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
178 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
179 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
180
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
181 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
182 '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
183 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
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('/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
186 '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
187 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
188
1186
0352ed25af20 Tests: converted UTF-8 character to ASCII, no functional changes.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1179
diff changeset
189 # 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
190
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
191 $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
192
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
193 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
194 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
195 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
196 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
197 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
198
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
199 # 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
200
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
201 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
202 '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
203 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
204 '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
205
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
206 # 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
207
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
208 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
209 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
210
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
211 sleep 2;
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
212
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
213 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
214 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
215 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
216 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
217 '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
218
1178
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
219 # 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
220 # 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
221 # 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
222
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
223 TODO: {
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
224 local $TODO = 'not yet' unless $t->has_version('1.13.1');
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
225
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
226 $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
227
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
228 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
229 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
230
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
231 $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
232 $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
233
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
234 $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
235 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
236
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
1179
660147bfe68c Tests: TODO proxy_cache_use_stale.t alert seen with "aio_write".
Sergey Kandaurov <pluknet@nginx.com>
parents: 1178
diff changeset
239 # "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
240
660147bfe68c Tests: TODO proxy_cache_use_stale.t alert seen with "aio_write".
Sergey Kandaurov <pluknet@nginx.com>
parents: 1178
diff changeset
241 $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
242 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
243
1138
d6acd17ca4e3 Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1137
diff changeset
244 # 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
245 # 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
246
d6acd17ca4e3 Tests: added proxy_cache_background_update + if test.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1137
diff changeset
247 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
248 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
249
1256
fc43a3555095 Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
250 # 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
251
fc43a3555095 Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
252 $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
253 $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
254
fc43a3555095 Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
255 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
256 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
257
fc43a3555095 Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
258 TODO: {
fc43a3555095 Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
259 local $TODO = 'not yet' unless $t->has_version('1.13.8');
fc43a3555095 Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
260
fc43a3555095 Tests: added uri escaping tests to proxy_cache_use_stale.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
261 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
262 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
263 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
264
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
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%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
268
1134
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
269 ###############################################################################
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
270
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
271 sub get {
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
272 my ($url, $extra, %extra) = @_;
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
273 return http(<<EOF, %extra);
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
274 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
275 Host: localhost
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
276 Connection: close
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
277 X-Cache-Control: $extra
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
278
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
279 EOF
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
1178
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
282 # 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
283
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
284 sub read_all {
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
285 my ($s) = @_;
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
286 my $r = '';
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
287 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
288 $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
289 log_in($buf);
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
290 $r .= $buf;
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
291 }
4039b6b3a75a Tests: added tests for background subrequests for cache updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1138
diff changeset
292 return $r;
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
1134
d77c331affff Tests: proxy_cache_use_stale tests with Cache-Control in response.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
295 ###############################################################################