annotate slice.t @ 1248:70192b1baf01

Tests: added exception test to stream_js.t using 'require'. The stream js tests introduced in edf5a3c9e36a fail on njs 0.1.14. It doesn't currently provide an easy way to check its version, whilst we are obligated to gracefully handle such cases somehow. With such an addition of 'require', now the tests are skipped instead on the previous versions.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 21 Nov 2017 13:16:39 +0300
parents 0c15ba7d19b3
children 766bcbb632ee
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 ###############################################################################