Mercurial > hg > nginx-tests
annotate slice.t @ 1215:26884729e06b
Tests: cope with resolver resend in mail resolver tests.
Currently, if resolver didn't find PTR type in the answer section of PTR
response, it keeps the node in the resend queue until the next timer event.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Thu, 31 Aug 2017 19:09:04 +0300 |
parents | 0c15ba7d19b3 |
children | 766bcbb632ee |
rev | line source |
---|---|
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 # Tests for slice filter. |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
1129
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
18 use Test::Nginx qw/ :DEFAULT http_end /; |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 ############################################################################### |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 select STDERR; $| = 1; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 select STDOUT; $| = 1; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 |
1129
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http proxy cache fastcgi slice rewrite/) |
1211
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
26 ->plan(76); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 $t->write_file_expand('nginx.conf', <<'EOF'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 %%TEST_GLOBALS%% |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 daemon off; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 events { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 http { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 %%TEST_GLOBALS_HTTP%% |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 proxy_cache_path %%TESTDIR%%/cache keys_zone=NAME:1m; |
1129
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
41 proxy_cache_path %%TESTDIR%%/cach3 keys_zone=NAME3:1m; |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 proxy_cache_key $uri$is_args$args$slice_range; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 fastcgi_cache_path %%TESTDIR%%/cache2 keys_zone=NAME2:1m; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 fastcgi_cache_key $uri$is_args$args$slice_range; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 server { |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
48 listen 127.0.0.1:8080; |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 server_name localhost; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 location / { } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 |
1211
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
53 location /proxy/ { |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
54 slice 2; |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
55 |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
56 proxy_pass http://127.0.0.1:8081/; |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
57 |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
58 proxy_set_header Range $slice_range; |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
59 } |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
60 |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 location /cache/ { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 slice 2; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
64 proxy_pass http://127.0.0.1:8081/; |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
66 proxy_cache NAME; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 proxy_set_header Range $slice_range; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
69 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
70 proxy_cache_valid 200 206 1h; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 add_header X-Cache-Status $upstream_cache_status; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
75 location /fastcgi { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
76 slice 2; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
77 |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
78 fastcgi_pass 127.0.0.1:8082; |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 fastcgi_cache NAME2; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
81 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 fastcgi_param Range $slice_range; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 fastcgi_cache_valid 200 206 1h; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
85 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
86 fastcgi_force_ranges on; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
87 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
88 add_header X-Cache-Status $upstream_cache_status; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
89 } |
1129
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
90 |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
91 location /cache-redirect { |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
92 error_page 404 = @fallback; |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
93 } |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
94 |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
95 location @fallback { |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
96 slice 2; |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
97 |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
98 proxy_pass http://127.0.0.1:8081/t$is_args$args; |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
99 |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
100 proxy_cache NAME3; |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
101 |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
102 proxy_set_header Range $slice_range; |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
103 |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
104 proxy_cache_valid 200 206 1h; |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
105 } |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
106 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
107 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
108 server { |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
109 listen 127.0.0.1:8081; |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
110 server_name localhost; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
111 |
1129
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
112 location / { |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
113 if ($http_range = "") { |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
114 set $limit_rate 100; |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
115 } |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
116 } |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
117 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
118 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
119 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
120 EOF |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
121 |
1007
174e900c00dc
Tests: adjusted slice.t to test with various range header lengths.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
122 $t->write_file('t', '0123456789abcdef'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
123 $t->run(); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
124 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
125 ############################################################################### |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
126 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
127 my $r; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
128 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
129 like(http_get('/cache/nx'), qr/ 404 /, 'not found'); |
1007
174e900c00dc
Tests: adjusted slice.t to test with various range header lengths.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
130 like(http_get('/cache/t'), qr/ 200 .*0123456789abcdef$/ms, 'no range'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
131 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
132 $r = get('/cache/t?single', "Range: bytes=0-0"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
133 like($r, qr/ 206 /, 'single - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
134 like($r, qr/^0$/m, 'single - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
135 like($r, qr/Status: MISS/m, 'single - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
136 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
137 $r = get('/cache/t?single', "Range: bytes=0-0"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
138 like($r, qr/ 206 /, 'single cached - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
139 like($r, qr/^0$/m, 'single cached - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
140 like($r, qr/Status: HIT/m, 'single cached - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
141 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
142 $r = get('/cache/t?single', "Range: bytes=1-1"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
143 like($r, qr/ 206 /, 'single next - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
144 like($r, qr/^1$/m, 'single next - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
145 like($r, qr/Status: HIT/m, 'single next - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
146 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
147 $r = get('/cache/t?single', "Range: bytes=2-2"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
148 like($r, qr/ 206 /, 'slice next - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
149 like($r, qr/^2$/m, 'slice next - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
150 like($r, qr/Status: MISS/m, 'slice next - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
151 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
152 $r = get('/cache/t?single', "Range: bytes=2-2"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
153 like($r, qr/ 206 /, 'slice next cached - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
154 like($r, qr/^2$/m, 'slice next cached - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
155 like($r, qr/Status: HIT/m, 'slice next cached - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
156 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
157 $r = get('/cache/t?median', "Range: bytes=2-2"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
158 like($r, qr/ 206 /, 'slice median - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
159 like($r, qr/^2$/m, 'slice median - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
160 like($r, qr/Status: MISS/m, 'slice median - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
161 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
162 $r = get('/cache/t?median', "Range: bytes=0-0"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
163 like($r, qr/ 206 /, 'before median - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
164 like($r, qr/^0$/m, 'before median - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
165 like($r, qr/Status: MISS/m, 'before median - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
166 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
167 # range span to multiple slices |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
168 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
169 $r = get('/cache/t?range', "Range: bytes=1-2"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
170 like($r, qr/ 206 /, 'slice range - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
171 like($r, qr/^12$/m, 'slice range - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
172 like($r, qr/Status: MISS/m, 'slice range - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
173 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
174 $r = get('/cache/t?range', "Range: bytes=0-0"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
175 like($r, qr/ 206 /, 'slice 1st - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
176 like($r, qr/^0$/m, 'slice 1st - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
177 like($r, qr/Status: HIT/m, 'slice 1st - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
178 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
179 $r = get('/cache/t?range', "Range: bytes=2-2"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
180 like($r, qr/ 206 /, 'slice 2nd - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
181 like($r, qr/^2$/m, 'slice 2nd - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
182 like($r, qr/Status: HIT/m, 'slice 2nd - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
183 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
184 $r = get('/cache/t?mrange', "Range: bytes=3-4"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
185 like($r, qr/ 206 /, 'range median - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
186 like($r, qr/^34$/m, 'range median - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
187 like($r, qr/Status: MISS/m, 'range median - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
188 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
189 $r = get('/cache/t?mrange', "Range: bytes=2-3"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
190 like($r, qr/ 206 /, 'range prev - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
191 like($r, qr/^23$/m, 'range prev - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
192 like($r, qr/Status: HIT/m, 'range prev - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
193 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
194 $r = get('/cache/t?mrange', "Range: bytes=4-5"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
195 like($r, qr/ 206 /, 'range next - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
196 like($r, qr/^45$/m, 'range next - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
197 like($r, qr/Status: HIT/m, 'range next - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
198 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
199 $r = get('/cache/t?first', "Range: bytes=2-"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
200 like($r, qr/ 206 /, 'first bytes - 206 partial reply'); |
1007
174e900c00dc
Tests: adjusted slice.t to test with various range header lengths.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
201 like($r, qr/^23456789abcdef$/m, 'first bytes - correct content'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
202 like($r, qr/Status: MISS/m, 'first bytes - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
203 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
204 $r = get('/cache/t?first', "Range: bytes=4-"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
205 like($r, qr/ 206 /, 'first bytes cached - 206 partial reply'); |
1007
174e900c00dc
Tests: adjusted slice.t to test with various range header lengths.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
206 like($r, qr/^456789abcdef$/m, 'first bytes cached - correct content'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
207 like($r, qr/Status: HIT/m, 'first bytes cached - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
208 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
209 # multiple ranges |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
210 # we want 206, but 200 is also fine |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
211 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
212 $r = get('/cache/t?many', "Range: bytes=3-3,4-4"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
213 like($r, qr/200 OK/, 'many - 206 partial reply'); |
1007
174e900c00dc
Tests: adjusted slice.t to test with various range header lengths.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
214 like($r, qr/^0123456789abcdef$/m, 'many - correct content'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
215 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
216 $r = get('/cache/t?last', "Range: bytes=-10"); |
1007
174e900c00dc
Tests: adjusted slice.t to test with various range header lengths.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
217 like($r, qr/206 /, 'last bytes - 206 partial reply'); |
174e900c00dc
Tests: adjusted slice.t to test with various range header lengths.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
218 like($r, qr/^6789abcdef$/m, 'last bytes - correct content'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
219 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
220 # respect not modified and range filters |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
221 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
222 my ($etag) = http_get('/t') =~ /ETag: (.*)/; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
223 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
224 like(get('/cache/t?inm', "If-None-Match: $etag"), qr/ 304 /, 'inm'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
225 like(get('/cache/t?inm', "If-None-Match: bad"), qr/ 200 /, 'inm bad'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
226 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
227 like(get('/cache/t?im', "If-Match: $etag"), qr/ 200 /, 'im'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
228 like(get('/cache/t?im', "If-Match: bad"), qr/ 412 /, 'im bad'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
229 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
230 $r = get('/cache/t?if', "Range: bytes=3-4\nIf-Range: $etag"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
231 like($r, qr/ 206 /, 'if-range - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
232 like($r, qr/^34$/m, 'if-range - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
233 |
1211
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
234 # respect Last-Modified from non-cacheable response with If-Range |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
235 |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
236 TODO: { |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
237 local $TODO = 'not yet' unless $t->has_version('1.13.5'); |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
238 |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
239 my ($lm) = http_get('/t') =~ /Last-Modified: (.*)/; |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
240 $r = get('/proxy/t', "Range: bytes=3-4\nIf-Range: $lm"); |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
241 like($r, qr/ 206 /, 'if-range last-modified proxy - 206 partial reply'); |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
242 like($r, qr/^34$/m, 'if-range last-modified proxy - correct content'); |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
243 |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
244 } |
0c15ba7d19b3
Tests: If-Range tests with proxy.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1129
diff
changeset
|
245 |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
246 $r = get('/cache/t?ifb', "Range: bytes=3-4\nIf-Range: bad"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
247 like($r, qr/ 200 /, 'if-range bad - 200 ok'); |
1007
174e900c00dc
Tests: adjusted slice.t to test with various range header lengths.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
248 like($r, qr/^0123456789abcdef$/m, 'if-range bad - correct content'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
249 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
250 # first slice isn't known |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
251 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
252 $r = get('/cache/t?skip', "Range: bytes=6-7\nIf-Range: $etag"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
253 like($r, qr/ 206 /, 'if-range skip slice - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
254 like($r, qr/^67$/m, 'if-range skip slice - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
255 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
256 $r = get('/cache/t?skip', "Range: bytes=6-7\nIf-Range: $etag"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
257 like($r, qr/ 206 /, 'if-range skip slice - cached - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
258 like($r, qr/^67$/m, 'if-range skip slice - cached - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
259 like($r, qr/HIT/, 'if-range skip bytes - cached - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
260 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
261 $r = get('/cache/t?skip', "Range: bytes=2-3"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
262 like($r, qr/ 206 /, 'if-range skip slice - skipped - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
263 like($r, qr/^23$/m, 'if-range skip slice - skipped - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
264 like($r, qr/MISS/, 'if-range skip bytes - skipped - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
265 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
266 SKIP: { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
267 eval { require FCGI; }; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
268 skip 'FCGI not installed', 5 if $@; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
269 skip 'win32', 5 if $^O eq 'MSWin32'; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
270 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
271 $t->run_daemon(\&fastcgi_daemon); |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
272 $t->waitforsocket('127.0.0.1:' . port(8082)); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
273 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
274 like(http_get('/fastcgi'), qr/200 OK.*MISS.*^012345678$/ms, 'fastcgi'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
275 like(http_get('/fastcgi'), qr/200 OK.*HIT.*^012345678$/ms, |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
276 'fastcgi cached'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
277 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
278 like(get("/fastcgi?1", "Range: bytes=0-0"), qr/ 206 .*MISS.*^0$/ms, |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
279 'fastcgi slice'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
280 like(get("/fastcgi?1", "Range: bytes=1-1"), qr/ 206 .*HIT.*^1$/ms, |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
281 'fastcgi slice cached'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
282 like(get("/fastcgi?1", "Range: bytes=2-2"), qr/ 206 .*MISS.*^2$/ms, |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
283 'fastcgi slice next'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
284 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
285 |
1129
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
286 # slicing in named location |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
287 |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
288 my $s = http_get('/cache-redirect', start => 1); |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
289 # loop protection used with limit_rate, exit loop if subrequest has lost range |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
290 unless ($t->has_version('1.11.10')) { |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
291 select undef, undef, undef, 0.2; |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
292 $t->write_file('/cache-redirect', ''); |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
293 } |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
294 $r = http_end($s); |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
295 |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
296 TODO: { |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
297 local $TODO = 'not yet' unless $t->has_version('1.11.10'); |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
298 |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
299 like($r, qr/ 200 .*^0123456789abcdef$/ms, 'in named location'); |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
300 is(scalar @{[ glob $t->testdir() . '/cach3/*' ]}, 8, |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
301 'in named location - cache entries'); |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
302 |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
303 } |
1173800a4a19
Tests: added slice filter tests in named location.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1020
diff
changeset
|
304 |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
305 ############################################################################### |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
306 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
307 sub get { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
308 my ($url, $extra) = @_; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
309 return http(<<EOF); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
310 GET $url HTTP/1.1 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
311 Host: localhost |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
312 Connection: close |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
313 $extra |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
314 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
315 EOF |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
316 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
317 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
318 ############################################################################### |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
319 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
320 sub fastcgi_daemon { |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
321 my $socket = FCGI::OpenSocket('127.0.0.1:' . port(8082), 5); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
322 my $request = FCGI::Request(\*STDIN, \*STDOUT, \*STDERR, \%ENV, |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
323 $socket); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
324 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
325 my $body = '012345678'; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
326 my $len = length($body); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
327 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
328 while ($request->Accept() >= 0) { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
329 my ($start, $stop) = $ENV{Range} =~ /bytes=(\d+)-(\d+)/; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
330 my $body = substr($body, $start, ($stop - $start) + 1); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
331 $stop = $len - 1 if $stop > $len - 1; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
332 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
333 print <<EOF; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
334 Status: 206 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
335 Content-Type: text/html |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
336 Content-Range: bytes $start-$stop/$len |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
337 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
338 EOF |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
339 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
340 print $body; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
341 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
342 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
343 FCGI::CloseSocket($socket); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
344 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
345 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
346 ############################################################################### |