Mercurial > hg > nginx-tests
comparison http_header_buffers.t @ 1144:66c7dee0431c
Tests: some more large_client_header_buffers tests.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 02 Mar 2017 05:21:11 +0300 |
parents | b9d9c962255f |
children |
comparison
equal
deleted
inserted
replaced
1143:b9d9c962255f | 1144:66c7dee0431c |
---|---|
22 ############################################################################### | 22 ############################################################################### |
23 | 23 |
24 select STDERR; $| = 1; | 24 select STDERR; $| = 1; |
25 select STDOUT; $| = 1; | 25 select STDOUT; $| = 1; |
26 | 26 |
27 my $t = Test::Nginx->new()->has(qw/http rewrite/)->plan(8) | 27 my $t = Test::Nginx->new()->has(qw/http rewrite/)->plan(10) |
28 ->write_file_expand('nginx.conf', <<'EOF'); | 28 ->write_file_expand('nginx.conf', <<'EOF'); |
29 | 29 |
30 %%TEST_GLOBALS%% | 30 %%TEST_GLOBALS%% |
31 | 31 |
32 daemon off; | 32 daemon off; |
147 | 147 |
148 like(http( | 148 like(http( |
149 "GET / HTTP/1.1" . CRLF . | 149 "GET / HTTP/1.1" . CRLF . |
150 "Host: foo" . CRLF . | 150 "Host: foo" . CRLF . |
151 "X-Foo: " . ("1234567890" x 20) . CRLF . | 151 "X-Foo: " . ("1234567890" x 20) . CRLF . |
152 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
153 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
152 CRLF . | 154 CRLF . |
153 "GET / HTTP/1.1" . CRLF . | 155 "GET / HTTP/1.1" . CRLF . |
154 "Host: foo" . CRLF . | 156 "Host: foo" . CRLF . |
155 "Connection: close" . CRLF . | 157 "Connection: close" . CRLF . |
156 "X-Foo: foo" . ("1234567890" x 20) . "bar" . CRLF . | 158 "X-Foo: foo" . ("1234567890" x 20) . "bar" . CRLF . |
158 ), qr/X-Foo: foo(1234567890){20}bar/, 'long header after pipelining'); | 160 ), qr/X-Foo: foo(1234567890){20}bar/, 'long header after pipelining'); |
159 | 161 |
160 like(http( | 162 like(http( |
161 "GET / HTTP/1.1" . CRLF . | 163 "GET / HTTP/1.1" . CRLF . |
162 "Host: foo" . CRLF . | 164 "Host: foo" . CRLF . |
165 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
166 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
163 "X-Foo: " . ("1234567890" x 20) . CRLF . | 167 "X-Foo: " . ("1234567890" x 20) . CRLF . |
164 CRLF . | 168 CRLF . |
165 "GET /foo" . ("1234567890" x 20) . "bar HTTP/1.1" . CRLF . | 169 "GET /foo" . ("1234567890" x 20) . "bar HTTP/1.1" . CRLF . |
166 "Host: foo" . CRLF . | 170 "Host: foo" . CRLF . |
167 "Connection: close" . CRLF . | 171 "Connection: close" . CRLF . |
173 | 177 |
174 like(http( | 178 like(http( |
175 "GET / HTTP/1.1" . CRLF . | 179 "GET / HTTP/1.1" . CRLF . |
176 "Host: foo" . CRLF . | 180 "Host: foo" . CRLF . |
177 "X-Foo: " . ("1234567890" x 20) . CRLF . | 181 "X-Foo: " . ("1234567890" x 20) . CRLF . |
182 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
183 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
178 CRLF, | 184 CRLF, |
179 sleep => 0.1, body => | 185 sleep => 0.1, body => |
180 "GET / HTTP/1.1" . CRLF . | 186 "GET / HTTP/1.1" . CRLF . |
181 "Host: foo" . CRLF . | 187 "Host: foo" . CRLF . |
182 "Connection: close" . CRLF . | 188 "Connection: close" . CRLF . |
186 | 192 |
187 like(http( | 193 like(http( |
188 "GET / HTTP/1.1" . CRLF . | 194 "GET / HTTP/1.1" . CRLF . |
189 "Host: foo" . CRLF . | 195 "Host: foo" . CRLF . |
190 "X-Foo: " . ("1234567890" x 20) . CRLF . | 196 "X-Foo: " . ("1234567890" x 20) . CRLF . |
197 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
198 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
191 CRLF, | 199 CRLF, |
192 sleep => 0.1, body => | 200 sleep => 0.1, body => |
193 "GET /foo" . ("1234567890" x 20) . "bar HTTP/1.1" . CRLF . | 201 "GET /foo" . ("1234567890" x 20) . "bar HTTP/1.1" . CRLF . |
194 "Host: foo" . CRLF . | 202 "Host: foo" . CRLF . |
195 "Connection: close" . CRLF . | 203 "Connection: close" . CRLF . |
196 CRLF | 204 CRLF |
197 ), qr!X-URI: /foo(1234567890){20}bar!, 'long request line after keepalive'); | 205 ), qr!X-URI: /foo(1234567890){20}bar!, 'long request line after keepalive'); |
198 | 206 |
199 ############################################################################### | 207 # the same as the above, but with pipelining and then keepalive; |
208 # this ensures that previously allocated buffers are properly cleaned | |
209 # up when we set keepalive handler, including hc->free | |
210 | |
211 like(http( | |
212 "GET / HTTP/1.1" . CRLF . | |
213 "Host: foo" . CRLF . | |
214 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
215 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
216 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
217 CRLF . | |
218 "GET / HTTP/1.1" . CRLF . | |
219 "Host: foo" . CRLF . | |
220 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
221 CRLF, | |
222 sleep => 0.1, body => | |
223 "GET / HTTP/1.1" . CRLF . | |
224 "Host: foo" . CRLF . | |
225 "Connection: close" . CRLF . | |
226 "X-Foo: foo" . ("1234567890" x 20) . "bar" . CRLF . | |
227 CRLF | |
228 ), qr/X-Foo: foo(1234567890){20}bar/, 'long header after both'); | |
229 | |
230 like(http( | |
231 "GET / HTTP/1.1" . CRLF . | |
232 "Host: foo" . CRLF . | |
233 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
234 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
235 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
236 CRLF . | |
237 "GET / HTTP/1.1" . CRLF . | |
238 "Host: foo" . CRLF . | |
239 "X-Foo: " . ("1234567890" x 20) . CRLF . | |
240 CRLF, | |
241 sleep => 0.1, body => | |
242 "GET /foo" . ("1234567890" x 20) . "bar HTTP/1.1" . CRLF . | |
243 "Host: foo" . CRLF . | |
244 "Connection: close" . CRLF . | |
245 CRLF | |
246 ), qr!X-URI: /foo(1234567890){20}bar!, 'long request line after both'); | |
247 | |
248 ############################################################################### |