annotate proxy_cache_vary.t @ 1728:6d5ecf445e57

Tests: added HTTP/2 test with big request body. Notably, it is useful with body buffering in filters, in which case the stream window is flow controlled based on the preread buffer.
author Sergey Kandaurov <pluknet@nginx.com>
date Sat, 04 Sep 2021 14:50:02 +0300
parents 5ac6efbe5552
children ce4419d32383
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 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 location /asterisk {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 gzip off;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88 add_header Vary "*";
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
90
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
91 location /complex {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
92 gzip off;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
93 add_header Vary ",, Accept-encoding , ,";
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
94 }
1672
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
95
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
96 location /cold {
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
97 expires max;
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
98 add_header Vary $arg_vary;
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
99 add_header Xtra $arg_xtra;
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
100 }
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
101 }
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
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
104 EOF
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106 $t->write_file('index.html', 'SEE-THIS');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
107 $t->write_file('asterisk', 'SEE-THIS');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
108 $t->write_file('complex', 'SEE-THIS');
1672
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
109 $t->write_file('cold', 'SEE-THIS');
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
110
568
907e89fba9c3 Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 507
diff changeset
111 $t->run();
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
112
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
113 ###############################################################################
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
115 like(get('/', 'gzip'), qr/MISS/ms, 'first request');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
116 like(get('/', 'gzip'), qr/HIT/ms, 'vary match cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
117 like(get('/', 'deflate'), qr/MISS/ms, 'vary mismatch');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
118 like(get('/', 'deflate'), qr/HIT/ms, 'vary mismatch cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
119 like(get('/', 'foo'), qr/MISS/ms, 'vary mismatch 2');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
120 like(get('/', 'foo'), qr/HIT/ms, 'vary mismatch 2 cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
121 like(get('/', 'gzip'), qr/HIT/ms, 'multiple representations cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
122
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
123 SKIP: {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
124 skip 'long tests', 6 unless $ENV{TEST_NGINX_UNSAFE};
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
125
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
126 # make sure all variants are properly expire
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
127 # and removed after inactive timeout
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
128
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
129 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
130
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
131 like(get('/', 'gzip'), qr/EXPIRED/ms, 'first expired');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
132 like(get('/', 'deflate'), qr/EXPIRED/ms, 'second variant expired');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
133
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
134 like(get('/', 'gzip'), qr/HIT/ms, 'first cached after expire');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
135 like(get('/', 'deflate'), qr/HIT/ms, 'second cached after expire');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
136
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
137 sleep(12);
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 like(get('/', 'gzip'), qr/MISS/ms, 'first inactive removed');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
140 like(get('/', 'deflate'), qr/MISS/ms, 'second variant removed');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
141
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
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
144 SKIP: {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
145 skip 'long tests', 6 unless $ENV{TEST_NGINX_UNSAFE};
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 # check if the variant which was loaded first will be properly
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
148 # removed if it's not requested (but another variant is requested
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
149 # at the same time)
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
150
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, 'bump1');
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, 'bump2');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
155 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
156 like(get('/', 'deflate'), qr/EXPIRED/ms, 'bump3');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
157 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
158 like(get('/', 'deflate'), qr/EXPIRED/ms, 'bump4');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
159
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
160 TODO: {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
161 local $TODO = 'not yet';
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('/', 'gzip'), qr/MISS/ms, 'first not bumped by second requests');
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
476
4e335141aa4b Tests: fix head() remnants in Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 471
diff changeset
167 like(get('/', 'deflate'), qr/HIT/ms, 'second variant cached');
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
168
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
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
171 # if a response without Vary is returned to replace previously returned
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
172 # 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
173
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
174 like(get('/replace/', 'gzip'), qr/MISS/, 'replace first');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
175 like(get('/replace/', 'deflate'), qr/MISS/, 'replace second');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
176
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
177 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
178
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
179 like(get('/replace/?novary', 'deflate'), qr/EXPIRED/, 'replace novary');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
180 like(get('/replace/?zztest', 'gzip'), qr/HIT/, 'all replaced');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
181
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
182 # make sure revalidation of variants works fine
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
183
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
184 like(get('/revalidate/', 'gzip'), qr/MISS/, 'revalidate first');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
185 like(get('/revalidate/', 'deflate'), qr/MISS/, 'revalidate second');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
186
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
187 sleep(3);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
188
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
189 like(get('/revalidate/', 'gzip'), qr/REVALIDATED/, 'revalidated first');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
190 like(get('/revalidate/', 'deflate'), qr/REVALIDATED/, 'revalidated second');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
191 like(get('/revalidate/', 'gzip'), qr/HIT/, 'revalidate first after');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
192 like(get('/revalidate/', 'deflate'), qr/HIT/, 'revalidate second after');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
193
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
194 # if the Vary header is ignored, cached version can be returned
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
195 # regardless of request headers
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
196
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
197 like(get('/ignore/', 'gzip'), qr/MISS/ms, 'another request');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
198 like(get('/ignore/', 'deflate'), qr/HIT/ms, 'vary ignored');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
199
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
200 # check parsing of Vary with multiple headers listed
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
201
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
202 like(get('/complex', 'gzip'), qr/MISS/ms, 'vary complex first');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
203 like(get('/complex', 'deflate'), qr/MISS/ms, 'vary complex second');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
204 like(get('/complex', 'gzip'), qr/HIT/ms, 'vary complex first cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
205 like(get('/complex', 'deflate'), qr/HIT/ms, 'vary complex second cached');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
206
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
207 # From RFC 7231, "7.1.4. Vary",
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
208 # http://tools.ietf.org/html/rfc7231#section-7.1.4:
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
209 #
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
210 # A Vary field value of "*" signals that anything about the request
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
211 # might play a role in selecting the response representation, possibly
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
212 # including elements outside the message syntax (e.g., the client's
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
213 # network address). A recipient will not be able to determine whether
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
214 # this response is appropriate for a later request without forwarding
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
215 # the request to the origin server.
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
216 #
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
217 # 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
218 # 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
219 # with strong entity tags though, as representation with different
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
220 # content condings may share the same weak entity tag.
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
221
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
222 like(get('/asterisk', 'gzip'), qr/MISS/ms, 'vary asterisk first');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
223 like(get('/asterisk', 'gzip'), qr/MISS/ms, 'vary asterisk second');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
224
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
225 # From RFC 7234, "4.1. Calculating Secondary Keys with Vary",
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
226 # http://tools.ietf.org/html/rfc7234#section-4.1:
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 # 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
229 # 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
230 # the second request by applying any of the following:
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
231 #
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
232 # 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
233 # syntax
507
34280f6b0bc6 Tests: trailing spaces.
Maxim Dounin <mdounin@mdounin.ru>
parents: 489
diff changeset
234 #
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
235 # o combining multiple header fields with the same field name (see
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
236 # Section 3.2 of [RFC7230])
507
34280f6b0bc6 Tests: trailing spaces.
Maxim Dounin <mdounin@mdounin.ru>
parents: 489
diff changeset
237 #
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
238 # 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
239 # have identical semantics, according to the header field's
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
240 # specification (e.g., reordering field values when order is not
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
241 # significant; case-normalization, where values are defined to be
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
242 # case-insensitive)
489
3036e3af0e08 Tests: more Vary normalization tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 481
diff changeset
243 #
3036e3af0e08 Tests: more Vary normalization tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 481
diff changeset
244 # Only whitespace normalization is currently implemented.
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
245
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
246 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
247 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
248 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
249 like(get('/', 'foobar'), qr/MISS/ms, 'normalize no whitespace mismatch');
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
250
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
251 TODO: {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
252 local $TODO = 'not yet';
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
253
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
254 like(get('/', 'bar,foo'), qr/HIT/ms, 'normalize order');
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
255
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
256 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
257
1590
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
258 # 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
259
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
260 # 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
261 # 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
262
1672
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
263 get1('/cold?vary=z', 'z:1');
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
264 like(get1('/cold?vary=x,y', 'x:1'), qr/MISS/, 'change first');
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
265 like(get1('/cold?vary=x,y', 'x:1'), qr/HIT/, 'change first cached');
1590
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
266
1672
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
267 like(get1('/cold?vary=x,y&xtra=1', 'x:2'), qr/MISS/, 'change second');
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
268 like(get1('/cold?vary=x,y&xtra=1', 'x:2'), qr/HIT/, 'change second cached');
1590
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
269
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
270 $t->stop();
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
271 $t->run();
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
272
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
273 # 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
274
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
275 # 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
276 # 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
277
1672
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
278 like(get1('/cold?vary=x,y', 'x:1'), qr/HIT/, 'cold first');
feb754918372 Tests: adjusted caching time for Vary tests with cold cache.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1590
diff changeset
279 like(get1('/cold?vary=x,y&xtra=1', 'x:2'), qr/HIT/, 'cold second');
1590
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 $t->stop();
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
282
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
283 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
284
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
285 ###############################################################################
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
286
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
287 sub get {
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
288 my ($url, $extra) = @_;
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
289 return http(<<EOF);
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
290 GET $url HTTP/1.1
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
291 Host: localhost
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
292 Connection: close
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
293 Accept-Encoding: $extra
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
294
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
295 EOF
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
296 }
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
297
1590
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
298 sub get1 {
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
299 my ($url, $extra) = @_;
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
300 return http(<<EOF);
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
301 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
302 Host: localhost
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
303 Connection: close
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
304 $extra
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
305
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
306 EOF
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
307 }
e682d5ad3861 Tests: added two cache Vary cases fixed in 1.19.3.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1020
diff changeset
308
471
8816a0edfc7b Tests: cache Vary tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
309 ###############################################################################