Mercurial > hg > nginx-tests
annotate slice.t @ 1021:ebdf239722b9
Tests: relaxed proxy_cache_lock.t nolock tests to fix on Solaris.
Assumed that the order of responses being arrived in nolock case may be ignored.
An important part of such case is that the only last response should be cached.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Fri, 02 Sep 2016 12:17:35 +0300 |
parents | 196d33c2bb45 |
children | 1173800a4a19 |
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'; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
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 |
1020
196d33c2bb45
Tests: removed TODO and try_run() checks for legacy versions.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
1007
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http proxy cache fastcgi slice/) |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 ->plan(72); |
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; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 proxy_cache_key $uri$is_args$args$slice_range; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 fastcgi_cache_path %%TESTDIR%%/cache2 keys_zone=NAME2:1m; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 fastcgi_cache_key $uri$is_args$args$slice_range; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 server { |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
47 listen 127.0.0.1:8080; |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 server_name localhost; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 location / { } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 location /cache/ { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
53 slice 2; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
54 |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
55 proxy_pass http://127.0.0.1:8081/; |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
57 proxy_cache NAME; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
59 proxy_set_header Range $slice_range; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 proxy_cache_valid 200 206 1h; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 add_header X-Cache-Status $upstream_cache_status; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 } |
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 location /fastcgi { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 slice 2; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
69 fastcgi_pass 127.0.0.1:8082; |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
70 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 fastcgi_cache NAME2; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 fastcgi_param Range $slice_range; |
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 fastcgi_cache_valid 200 206 1h; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
76 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
77 fastcgi_force_ranges on; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
78 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 add_header X-Cache-Status $upstream_cache_status; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 } |
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 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 server { |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
84 listen 127.0.0.1:8081; |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
85 server_name localhost; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
86 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
87 location / { } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
88 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
89 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
90 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
91 EOF |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
92 |
1007
174e900c00dc
Tests: adjusted slice.t to test with various range header lengths.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
93 $t->write_file('t', '0123456789abcdef'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 $t->run(); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 ############################################################################### |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
97 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
98 my $r; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
99 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
100 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
|
101 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
|
102 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
103 $r = get('/cache/t?single', "Range: bytes=0-0"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
104 like($r, qr/ 206 /, 'single - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
105 like($r, qr/^0$/m, 'single - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
106 like($r, qr/Status: MISS/m, 'single - cache status'); |
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 $r = get('/cache/t?single', "Range: bytes=0-0"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
109 like($r, qr/ 206 /, 'single cached - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
110 like($r, qr/^0$/m, 'single cached - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
111 like($r, qr/Status: HIT/m, 'single cached - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
112 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
113 $r = get('/cache/t?single', "Range: bytes=1-1"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
114 like($r, qr/ 206 /, 'single next - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
115 like($r, qr/^1$/m, 'single next - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
116 like($r, qr/Status: HIT/m, 'single next - cache status'); |
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 $r = get('/cache/t?single', "Range: bytes=2-2"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
119 like($r, qr/ 206 /, 'slice next - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
120 like($r, qr/^2$/m, 'slice next - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
121 like($r, qr/Status: MISS/m, 'slice next - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
122 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
123 $r = get('/cache/t?single', "Range: bytes=2-2"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
124 like($r, qr/ 206 /, 'slice next cached - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
125 like($r, qr/^2$/m, 'slice next cached - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
126 like($r, qr/Status: HIT/m, 'slice next cached - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
127 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
128 $r = get('/cache/t?median', "Range: bytes=2-2"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
129 like($r, qr/ 206 /, 'slice median - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
130 like($r, qr/^2$/m, 'slice median - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
131 like($r, qr/Status: MISS/m, 'slice median - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
132 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
133 $r = get('/cache/t?median', "Range: bytes=0-0"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
134 like($r, qr/ 206 /, 'before median - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
135 like($r, qr/^0$/m, 'before median - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
136 like($r, qr/Status: MISS/m, 'before median - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
137 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
138 # range span to multiple slices |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
139 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
140 $r = get('/cache/t?range', "Range: bytes=1-2"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
141 like($r, qr/ 206 /, 'slice range - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
142 like($r, qr/^12$/m, 'slice range - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
143 like($r, qr/Status: MISS/m, 'slice range - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
144 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
145 $r = get('/cache/t?range', "Range: bytes=0-0"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
146 like($r, qr/ 206 /, 'slice 1st - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
147 like($r, qr/^0$/m, 'slice 1st - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
148 like($r, qr/Status: HIT/m, 'slice 1st - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
149 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
150 $r = get('/cache/t?range', "Range: bytes=2-2"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
151 like($r, qr/ 206 /, 'slice 2nd - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
152 like($r, qr/^2$/m, 'slice 2nd - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
153 like($r, qr/Status: HIT/m, 'slice 2nd - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
154 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
155 $r = get('/cache/t?mrange', "Range: bytes=3-4"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
156 like($r, qr/ 206 /, 'range median - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
157 like($r, qr/^34$/m, 'range median - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
158 like($r, qr/Status: MISS/m, 'range median - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
159 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
160 $r = get('/cache/t?mrange', "Range: bytes=2-3"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
161 like($r, qr/ 206 /, 'range prev - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
162 like($r, qr/^23$/m, 'range prev - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
163 like($r, qr/Status: HIT/m, 'range prev - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
164 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
165 $r = get('/cache/t?mrange', "Range: bytes=4-5"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
166 like($r, qr/ 206 /, 'range next - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
167 like($r, qr/^45$/m, 'range next - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
168 like($r, qr/Status: HIT/m, 'range next - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
169 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
170 $r = get('/cache/t?first', "Range: bytes=2-"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
171 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
|
172 like($r, qr/^23456789abcdef$/m, 'first bytes - correct content'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
173 like($r, qr/Status: MISS/m, 'first bytes - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
174 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
175 $r = get('/cache/t?first', "Range: bytes=4-"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
176 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
|
177 like($r, qr/^456789abcdef$/m, 'first bytes cached - correct content'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
178 like($r, qr/Status: HIT/m, 'first bytes cached - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
179 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
180 # multiple ranges |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
181 # we want 206, but 200 is also fine |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
182 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
183 $r = get('/cache/t?many', "Range: bytes=3-3,4-4"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
184 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
|
185 like($r, qr/^0123456789abcdef$/m, 'many - correct content'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
186 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
187 $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
|
188 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
|
189 like($r, qr/^6789abcdef$/m, 'last bytes - correct content'); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
190 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
191 # respect not modified and range filters |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
192 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
193 my ($etag) = http_get('/t') =~ /ETag: (.*)/; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
194 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
195 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
|
196 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
|
197 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
198 like(get('/cache/t?im', "If-Match: $etag"), qr/ 200 /, 'im'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
199 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
|
200 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
201 $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
|
202 like($r, qr/ 206 /, 'if-range - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
203 like($r, qr/^34$/m, 'if-range - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
204 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
205 $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
|
206 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
|
207 like($r, qr/^0123456789abcdef$/m, 'if-range bad - correct content'); |
796
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 # first slice isn't known |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
210 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
211 $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
|
212 like($r, qr/ 206 /, 'if-range skip slice - 206 partial reply'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
213 like($r, qr/^67$/m, 'if-range skip slice - correct content'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
214 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
215 $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
|
216 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
|
217 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
|
218 like($r, qr/HIT/, 'if-range skip bytes - cached - cache status'); |
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 $r = get('/cache/t?skip', "Range: bytes=2-3"); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
221 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
|
222 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
|
223 like($r, qr/MISS/, 'if-range skip bytes - skipped - cache status'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
224 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
225 SKIP: { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
226 eval { require FCGI; }; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
227 skip 'FCGI not installed', 5 if $@; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
228 skip 'win32', 5 if $^O eq 'MSWin32'; |
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 $t->run_daemon(\&fastcgi_daemon); |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
231 $t->waitforsocket('127.0.0.1:' . port(8082)); |
796
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
232 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
233 like(http_get('/fastcgi'), qr/200 OK.*MISS.*^012345678$/ms, 'fastcgi'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
234 like(http_get('/fastcgi'), qr/200 OK.*HIT.*^012345678$/ms, |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
235 'fastcgi cached'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
236 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
237 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
|
238 'fastcgi slice'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
239 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
|
240 'fastcgi slice cached'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
241 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
|
242 'fastcgi slice next'); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
243 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
244 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
245 ############################################################################### |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
246 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
247 sub get { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
248 my ($url, $extra) = @_; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
249 return http(<<EOF); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
250 GET $url HTTP/1.1 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
251 Host: localhost |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
252 Connection: close |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
253 $extra |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
254 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
255 EOF |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
256 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
257 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
258 ############################################################################### |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
259 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
260 sub fastcgi_daemon { |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
261 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
|
262 my $request = FCGI::Request(\*STDIN, \*STDOUT, \*STDERR, \%ENV, |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
263 $socket); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
264 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
265 my $body = '012345678'; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
266 my $len = length($body); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
267 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
268 while ($request->Accept() >= 0) { |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
269 my ($start, $stop) = $ENV{Range} =~ /bytes=(\d+)-(\d+)/; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
270 my $body = substr($body, $start, ($stop - $start) + 1); |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
271 $stop = $len - 1 if $stop > $len - 1; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
272 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
273 print <<EOF; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
274 Status: 206 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
275 Content-Type: text/html |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
276 Content-Range: bytes $start-$stop/$len |
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 EOF |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
279 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
280 print $body; |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
281 } |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
282 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
283 FCGI::CloseSocket($socket); |
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 |
92375c379a0a
Tests: slice filter tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
286 ############################################################################### |