annotate proxy_cache_vary.t @ 1606:e4e0695552ed

Tests: fixed stream_proxy_ssl_conf_command.t. The stream_proxy_ssl_conf_command.t test used stream return module to return the response. Since this ignores actual request, but the perl test code used http_get(). This might result in the request being sent after the response is returned and the connection closed by the server, resulting in RST being generated and no response seen by the client at all. Fix is to use "stream(...)->read()" instead of http_get(), so no request is sent at all, eliminating possibility of RST being generated.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 10 Nov 2020 05:03:29 +0300
parents e682d5ad3861
children feb754918372
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for http proxy cache, the Vary header.
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
1020
196d33c2bb45 Tests: removed TODO and try_run() checks for legacy versions.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 974
diff changeset
24 my $t = Test::Nginx->new()->has(qw/http proxy cache gzip rewrite/)
1590
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
25 ->plan(49)->write_file_expand('nginx.conf', <<'EOF');
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 %%TEST_GLOBALS%%
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 daemon off;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 events {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 http {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 %%TEST_GLOBALS_HTTP%%
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 proxy_cache_path %%TESTDIR%%/cache keys_zone=one:1m inactive=5s;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 proxy_cache_key $uri;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
41 listen 127.0.0.1:8080;
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 server_name localhost;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 add_header X-Cache-Status $upstream_cache_status;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 location / {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
47 proxy_pass http://127.0.0.1:8081/;
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 proxy_cache one;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 location /replace/ {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
52 proxy_pass http://127.0.0.1:8081/;
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 proxy_cache one;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 location /revalidate/ {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
57 proxy_pass http://127.0.0.1:8081/;
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58 proxy_cache one;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 proxy_cache_revalidate on;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 location /ignore/ {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
63 proxy_pass http://127.0.0.1:8081/;
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 proxy_cache one;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 proxy_ignore_headers Vary;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
70 listen 127.0.0.1:8081;
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 server_name localhost;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 gzip on;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74 gzip_min_length 0;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75 gzip_http_version 1.0;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 gzip_vary on;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 expires 2s;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
79
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
80 location / {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81 if ($args = "novary") {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82 return 200 "the only variant\n";
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 }
1590
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
84
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
85 add_header Vary $arg_vary;
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
86 add_header Xtra $arg_xtra;
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89 location /asterisk {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
90 gzip off;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
91 add_header Vary "*";
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
92 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
93
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
94 location /complex {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
95 gzip off;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
96 add_header Vary ",, Accept-encoding , ,";
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
97 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
98 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
99 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
100
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
101 EOF
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
102
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
103 $t->write_file('index.html', 'SEE-THIS');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
104 $t->write_file('asterisk', 'SEE-THIS');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105 $t->write_file('complex', 'SEE-THIS');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106
568
907e89fba9c3 Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 507
diff changeset
107 $t->run();
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
108
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
109 ###############################################################################
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
110
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
111 like(get('/', 'gzip'), qr/MISS/ms, 'first request');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
112 like(get('/', 'gzip'), qr/HIT/ms, 'vary match cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
113 like(get('/', 'deflate'), qr/MISS/ms, 'vary mismatch');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114 like(get('/', 'deflate'), qr/HIT/ms, 'vary mismatch cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
115 like(get('/', 'foo'), qr/MISS/ms, 'vary mismatch 2');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
116 like(get('/', 'foo'), qr/HIT/ms, 'vary mismatch 2 cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
117 like(get('/', 'gzip'), qr/HIT/ms, 'multiple representations cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
118
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
119 SKIP: {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
120 skip 'long tests', 6 unless $ENV{TEST_NGINX_UNSAFE};
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
121
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
122 # make sure all variants are properly expire
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
123 # and removed after inactive timeout
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
124
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
125 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
126
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
127 like(get('/', 'gzip'), qr/EXPIRED/ms, 'first expired');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
128 like(get('/', 'deflate'), qr/EXPIRED/ms, 'second variant expired');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
129
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
130 like(get('/', 'gzip'), qr/HIT/ms, 'first cached after expire');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
131 like(get('/', 'deflate'), qr/HIT/ms, 'second cached after expire');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
132
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
133 sleep(12);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
134
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
135 like(get('/', 'gzip'), qr/MISS/ms, 'first inactive removed');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
136 like(get('/', 'deflate'), qr/MISS/ms, 'second variant removed');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
137
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
138 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
139
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
140 SKIP: {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
141 skip 'long tests', 6 unless $ENV{TEST_NGINX_UNSAFE};
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
142
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
143 # check if the variant which was loaded first will be properly
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
144 # removed if it's not requested (but another variant is requested
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
145 # at the same time)
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
146
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
147 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
148 like(get('/', 'deflate'), qr/EXPIRED/ms, 'bump1');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
149 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
150 like(get('/', 'deflate'), qr/EXPIRED/ms, 'bump2');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
151 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
152 like(get('/', 'deflate'), qr/EXPIRED/ms, 'bump3');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
153 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
154 like(get('/', 'deflate'), qr/EXPIRED/ms, 'bump4');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
155
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
156 TODO: {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
157 local $TODO = 'not yet';
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
158
476
4e335141aa4b Tests: fix head() remnants in Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 471
diff changeset
159 like(get('/', 'gzip'), qr/MISS/ms, 'first not bumped by second requests');
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
160
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
161 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
162
476
4e335141aa4b Tests: fix head() remnants in Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 471
diff changeset
163 like(get('/', 'deflate'), qr/HIT/ms, 'second variant cached');
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
164
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
165 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
166
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
167 # if a response without Vary is returned to replace previously returned
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
168 # responses with Vary, make sure it is then used in all cases
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
169
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
170 like(get('/replace/', 'gzip'), qr/MISS/, 'replace first');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
171 like(get('/replace/', 'deflate'), qr/MISS/, 'replace second');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
172
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
173 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
174
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
175 like(get('/replace/?novary', 'deflate'), qr/EXPIRED/, 'replace novary');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
176 like(get('/replace/?zztest', 'gzip'), qr/HIT/, 'all replaced');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
177
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
178 # make sure revalidation of variants works fine
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
179
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
180 like(get('/revalidate/', 'gzip'), qr/MISS/, 'revalidate first');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
181 like(get('/revalidate/', 'deflate'), qr/MISS/, 'revalidate second');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
182
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
183 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
184
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
185 like(get('/revalidate/', 'gzip'), qr/REVALIDATED/, 'revalidated first');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
186 like(get('/revalidate/', 'deflate'), qr/REVALIDATED/, 'revalidated second');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
187 like(get('/revalidate/', 'gzip'), qr/HIT/, 'revalidate first after');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
188 like(get('/revalidate/', 'deflate'), qr/HIT/, 'revalidate second after');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
189
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
190 # if the Vary header is ignored, cached version can be returned
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
191 # regardless of request headers
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
192
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
193 like(get('/ignore/', 'gzip'), qr/MISS/ms, 'another request');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
194 like(get('/ignore/', 'deflate'), qr/HIT/ms, 'vary ignored');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
195
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
196 # check parsing of Vary with multiple headers listed
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
197
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
198 like(get('/complex', 'gzip'), qr/MISS/ms, 'vary complex first');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
199 like(get('/complex', 'deflate'), qr/MISS/ms, 'vary complex second');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
200 like(get('/complex', 'gzip'), qr/HIT/ms, 'vary complex first cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
201 like(get('/complex', 'deflate'), qr/HIT/ms, 'vary complex second cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
202
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
203 # From RFC 7231, "7.1.4. Vary",
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
204 # http://tools.ietf.org/html/rfc7231#section-7.1.4:
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
205 #
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
206 # A Vary field value of "*" signals that anything about the request
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
207 # might play a role in selecting the response representation, possibly
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
208 # including elements outside the message syntax (e.g., the client's
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
209 # network address). A recipient will not be able to determine whether
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
210 # this response is appropriate for a later request without forwarding
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
211 # the request to the origin server.
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
212 #
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
213 # In theory, If-None-Match can be used to check if the representation
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
214 # present in the cache is appropriate. This seems to be only possible
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
215 # with strong entity tags though, as representation with different
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
216 # content condings may share the same weak entity tag.
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
217
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
218 like(get('/asterisk', 'gzip'), qr/MISS/ms, 'vary asterisk first');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
219 like(get('/asterisk', 'gzip'), qr/MISS/ms, 'vary asterisk second');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
220
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
221 # From RFC 7234, "4.1. Calculating Secondary Keys with Vary",
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
222 # http://tools.ietf.org/html/rfc7234#section-4.1:
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
223 #
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
224 # The selecting header fields from two requests are defined to match if
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
225 # and only if those in the first request can be transformed to those in
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
226 # the second request by applying any of the following:
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
227 #
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
228 # o adding or removing whitespace, where allowed in the header field's
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
229 # syntax
507
34280f6b0bc6 Tests: trailing spaces.
Maxim Dounin <mdounin@mdounin.ru>
parents: 489
diff changeset
230 #
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
231 # o combining multiple header fields with the same field name (see
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
232 # Section 3.2 of [RFC7230])
507
34280f6b0bc6 Tests: trailing spaces.
Maxim Dounin <mdounin@mdounin.ru>
parents: 489
diff changeset
233 #
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
234 # o normalizing both header field values in a way that is known to
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
235 # have identical semantics, according to the header field's
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
236 # specification (e.g., reordering field values when order is not
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
237 # significant; case-normalization, where values are defined to be
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
238 # case-insensitive)
489
3036e3af0e08 Tests: more Vary normalization tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 481
diff changeset
239 #
3036e3af0e08 Tests: more Vary normalization tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 481
diff changeset
240 # Only whitespace normalization is currently implemented.
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
241
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
242 like(get('/', 'foo, bar'), qr/MISS/ms, 'normalize first');
481
7e823c8f7d31 Tests: adjusted TODOs for cache Vary support committed in 1.7.7.
Sergey Kandaurov <pluknet@nginx.com>
parents: 478
diff changeset
243 like(get('/', 'foo,bar'), qr/HIT/ms, 'normalize whitespace');
7e823c8f7d31 Tests: adjusted TODOs for cache Vary support committed in 1.7.7.
Sergey Kandaurov <pluknet@nginx.com>
parents: 478
diff changeset
244 like(get('/', 'foo,, ,bar , '), qr/HIT/ms, 'normalize empty');
489
3036e3af0e08 Tests: more Vary normalization tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 481
diff changeset
245 like(get('/', 'foobar'), qr/MISS/ms, 'normalize no whitespace mismatch');
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
246
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
247 TODO: {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
248 local $TODO = 'not yet';
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
249
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
250 like(get('/', 'bar,foo'), qr/HIT/ms, 'normalize order');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
251
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
252 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
253
1590
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
254 # keep c->body_start when Vary changes (ticket #2029)
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
255
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
256 # before 1.19.3, this prevented updating c->body_start of a main key
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
257 # triggering "cache file .. has too long header" critical errors
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
258
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
259 like(get1('/?vary=x,y', 'x:1'), qr/MISS/, 'change first');
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
260
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
261 TODO: {
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
262 local $TODO = 'not yet' unless $t->has_version('1.19.3');
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
263
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
264 like(get1('/?vary=x,y', 'x:1'), qr/HIT/, 'change first cached');
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
265
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
266 }
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
267
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
268 like(get1('/?vary=x,y&xtra=1', 'x:2'), qr/MISS/, 'change second');
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
269 like(get1('/?vary=x,y&xtra=1', 'x:2'), qr/HIT/, 'change second cached');
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
270
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
271 $t->stop();
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
272 $t->run();
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
273
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
274 # reset c->body_start when loading a secondary key variant
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
275
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
276 # before 1.19.3, it was loaded using a variant stored with a main key
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
277 # triggering "cache file .. has too long header" critical errors
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
278
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
279 like(get1('/?vary=x,y', 'x:1'), qr/HIT/, 'cold first');
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
280
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
281 TODO: {
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
282 local $TODO = 'not yet' unless $t->has_version('1.19.3');
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
283
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
284 like(get1('/?vary=x,y&xtra=1', 'x:2'), qr/HIT/, 'cold second');
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
285
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
286 }
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
287
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
288 $t->stop();
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
289
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
290 TODO: {
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
291 local $TODO = 'not yet' unless $t->has_version('1.19.3');
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
292
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
293 like(`grep -F '[crit]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no crit');
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
294
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
295 }
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
296
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
297 ###############################################################################
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
298
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
299 sub get {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
300 my ($url, $extra) = @_;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
301 return http(<<EOF);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
302 GET $url HTTP/1.1
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
303 Host: localhost
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
304 Connection: close
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
305 Accept-Encoding: $extra
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
306
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
307 EOF
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
308 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
309
1590
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
310 sub get1 {
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
311 my ($url, $extra) = @_;
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
312 return http(<<EOF);
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
313 GET $url HTTP/1.1
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
314 Host: localhost
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
315 Connection: close
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
316 $extra
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
317
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
318 EOF
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
319 }
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
320
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
321 ###############################################################################