Mercurial > hg > nginx-tests
annotate proxy_unfinished.t @ 391:915ef26ac6eb
Tests: fix proxy_unfinished.t failures with big buffers.
With newer systems it becomes common to use huge socket buffers, and
the "no proxy temp" test may unexpectedly fail because disk buffering will
not be used. To reduce this possibility, the "listen ... sndbuf=32k" was
added.
Additionally, regular expression was changed to silently allow full
responses.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 15 Apr 2014 22:04:08 +0400 |
parents | e7dc8f4d0a4b |
children | 847ea345becb |
rev | line source |
---|---|
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
2 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
3 # (C) Maxim Dounin |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
4 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
5 # Tests for http proxy and prematurely closed connections. Incomplete |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
6 # responses shouldn't loose information about their incompleteness. |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
7 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
8 # In particular, incomplete responses: |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
9 # |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
10 # - shouldn't be cached |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
11 # |
343
e7dc8f4d0a4b
Tests: whitespace and spelling fixes.
Sergey Kandaurov <pluknet@nginx.com>
parents:
319
diff
changeset
|
12 # - if a response is sent using chunked transfer encoding, |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
13 # final chunk shouldn't be sent |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
14 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
15 ############################################################################### |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
16 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
17 use warnings; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
18 use strict; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
19 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
20 use Test::More; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
21 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
22 use Socket qw/ CRLF /; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
23 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
24 BEGIN { use FindBin; chdir($FindBin::Bin); } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
25 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
26 use lib 'lib'; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
27 use Test::Nginx; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
28 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
29 ############################################################################### |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
30 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
31 select STDERR; $| = 1; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
32 select STDOUT; $| = 1; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
33 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
34 plan(skip_all => 'win32') if $^O eq 'MSWin32'; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
35 |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
36 my $t = Test::Nginx->new()->has(qw/http proxy cache sub/)->plan(15) |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
37 ->write_file_expand('nginx.conf', <<'EOF'); |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
38 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
39 %%TEST_GLOBALS%% |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
40 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
41 daemon off; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
42 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
43 events { |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
44 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
45 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
46 http { |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
47 %%TEST_GLOBALS_HTTP%% |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
48 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
49 proxy_cache_path %%TESTDIR%%/cache levels=1:2 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
50 keys_zone=one:1m; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
51 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
52 server { |
391
915ef26ac6eb
Tests: fix proxy_unfinished.t failures with big buffers.
Maxim Dounin <mdounin@mdounin.ru>
parents:
343
diff
changeset
|
53 listen 127.0.0.1:8080 sndbuf=32k; |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
54 server_name localhost; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
55 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
56 location / { |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
57 sub_filter foo bar; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
58 sub_filter_types *; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
59 proxy_pass http://127.0.0.1:8081; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
60 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
61 |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
62 location /un/ { |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
63 sub_filter foo bar; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
64 sub_filter_types *; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
65 proxy_pass http://127.0.0.1:8081/; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
66 proxy_buffering off; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
67 } |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
68 |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
69 location /cache/ { |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
70 proxy_pass http://127.0.0.1:8081/; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
71 proxy_cache one; |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
72 add_header X-Cache-Status $upstream_cache_status; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
73 } |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
74 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
75 location /proxy/ { |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
76 sub_filter foo bar; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
77 sub_filter_types *; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
78 proxy_pass http://127.0.0.1:8080/local/; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
79 proxy_buffer_size 1k; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
80 proxy_buffers 4 1k; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
81 } |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
82 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
83 location /local/ { |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
84 alias %%TESTDIR%%/; |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
85 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
86 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
87 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
88 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
89 EOF |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
90 |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
91 $t->write_file('big.html', 'X' x (1024 * 1024) . 'finished'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
92 |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
93 $t->run_daemon(\&http_daemon); |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
94 $t->run()->waitforsocket('127.0.0.1:8081'); |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
95 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
96 ############################################################################### |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
97 |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
98 http_get('/cache/length'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
99 like(http_get('/cache/length'), qr/MISS/, 'unfinished not cached'); |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
100 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
101 TODO: { |
319
e9de4da234c0
Tests: add version checks to TODOs for committed patches.
Maxim Dounin <mdounin@mdounin.ru>
parents:
307
diff
changeset
|
102 local $TODO = 'not yet' unless $t->has_version('1.5.3'); |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
103 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
104 # chunked encoding has enough information to don't cache a response, |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
105 # much like with Content-Length available |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
106 |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
107 http_get('/cache/chunked'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
108 like(http_get('/cache/chunked'), qr/MISS/, 'unfinished chunked'); |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
109 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
110 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
111 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
112 TODO: { |
319
e9de4da234c0
Tests: add version checks to TODOs for committed patches.
Maxim Dounin <mdounin@mdounin.ru>
parents:
307
diff
changeset
|
113 local $TODO = 'not yet' unless $t->has_version('1.5.3'); |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
114 |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
115 # make sure there is no final chunk in unfinished responses |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
116 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
117 like(http_get_11('/length'), qr/unfinished(?!.*\x0d\x0a?0\x0d\x0a?)/s, |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
118 'length no final chunk'); |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
119 like(http_get_11('/chunked'), qr/unfinished(?!.*\x0d\x0a?0\x0d\x0a?)/s, |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
120 'chunked no final chunk'); |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
121 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
122 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
123 |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
124 # but there is final chunk in complete responses |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
125 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
126 like(http_get_11('/length/ok'), qr/finished.*\x0d\x0a?0\x0d\x0a?/s, |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
127 'length final chunk'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
128 like(http_get_11('/chunked/ok'), qr/finished.*\x0d\x0a?0\x0d\x0a?/s, |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
129 'chunked final chunk'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
130 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
131 TODO: { |
319
e9de4da234c0
Tests: add version checks to TODOs for committed patches.
Maxim Dounin <mdounin@mdounin.ru>
parents:
307
diff
changeset
|
132 local $TODO = 'not yet' unless $t->has_version('1.5.3'); |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
133 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
134 # the same with proxy_buffering set to off |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
135 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
136 like(http_get_11('/un/length'), qr/unfinished(?!.*\x0d\x0a?0\x0d\x0a?)/s, |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
137 'unbuffered length no final chunk'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
138 like(http_get_11('/un/chunked'), qr/unfinished(?!.*\x0d\x0a?0\x0d\x0a?)/s, |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
139 'unbuffered chunked no final chunk'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
140 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
141 } |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
142 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
143 like(http_get_11('/un/length/ok'), qr/finished.*\x0d\x0a?0\x0d\x0a?/s, |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
144 'unbuffered length final chunk'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
145 like(http_get_11('/un/chunked/ok'), qr/finished.*\x0d\x0a?0\x0d\x0a?/s, |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
146 'unbuffered chunked final chunk'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
147 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
148 # big responses |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
149 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
150 like(http_get('/big', sleep => 0.1), qr/unfinished/s, 'big unfinished'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
151 like(http_get('/big/ok', sleep => 0.1), qr/finished/s, 'big finished'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
152 like(http_get('/un/big', sleep => 0.1), qr/unfinished/s, 'big unfinished un'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
153 like(http_get('/un/big/ok', sleep => 0.1), qr/finished/s, 'big finished un'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
154 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
155 TODO: { |
319
e9de4da234c0
Tests: add version checks to TODOs for committed patches.
Maxim Dounin <mdounin@mdounin.ru>
parents:
307
diff
changeset
|
156 local $TODO = 'not yet' unless $t->has_version('1.5.3'); |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
157 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
158 # if disk buffering fails for some reason, there should be |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
159 # no final chunk |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
160 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
161 chmod(0000, $t->testdir() . '/proxy_temp'); |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
162 like(http_get_11('/proxy/big.html', sleep => 0.5), |
391
915ef26ac6eb
Tests: fix proxy_unfinished.t failures with big buffers.
Maxim Dounin <mdounin@mdounin.ru>
parents:
343
diff
changeset
|
163 qr/X(?!.*\x0d\x0a?0\x0d\x0a?)|finished/s, 'no proxy temp'); |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
164 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
165 } |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
166 |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
167 ############################################################################### |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
168 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
169 sub http_get_11 { |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
170 my ($uri, %extra) = @_; |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
171 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
172 return http( |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
173 "GET $uri HTTP/1.1" . CRLF . |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
174 "Connection: close" . CRLF . |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
175 "Host: localhost" . CRLF . CRLF, |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
176 %extra |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
177 ); |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
178 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
179 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
180 ############################################################################### |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
181 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
182 sub http_daemon { |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
183 my $server = IO::Socket::INET->new( |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
184 Proto => 'tcp', |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
185 LocalAddr => '127.0.0.1:8081', |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
186 Listen => 5, |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
187 Reuse => 1 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
188 ) |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
189 or die "Can't create listening socket: $!\n"; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
190 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
191 local $SIG{PIPE} = 'IGNORE'; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
192 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
193 while (my $client = $server->accept()) { |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
194 $client->autoflush(1); |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
195 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
196 my $headers = ''; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
197 my $uri = ''; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
198 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
199 while (<$client>) { |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
200 $headers .= $_; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
201 last if (/^\x0d?\x0a?$/); |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
202 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
203 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
204 $uri = $1 if $headers =~ /^\S+\s+([^ ]+)\s+HTTP/i; |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
205 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
206 if ($uri eq '/length') { |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
207 print $client |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
208 "HTTP/1.1 200 OK" . CRLF . |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
209 "Content-Length: 100" . CRLF . |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
210 "Cache-Control: max-age=300" . CRLF . |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
211 "Connection: close" . CRLF . |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
212 CRLF . |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
213 "unfinished" . CRLF; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
214 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
215 } elsif ($uri eq '/length/ok') { |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
216 print $client |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
217 "HTTP/1.1 200 OK" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
218 "Content-Length: 10" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
219 "Cache-Control: max-age=300" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
220 "Connection: close" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
221 CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
222 "finished" . CRLF; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
223 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
224 } elsif ($uri eq '/big') { |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
225 print $client |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
226 "HTTP/1.1 200 OK" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
227 "Content-Length: 1000100" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
228 "Cache-Control: max-age=300" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
229 "Connection: close" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
230 CRLF; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
231 for (1 .. 10000) { |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
232 print $client ("X" x 98) . CRLF; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
233 } |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
234 print $client "unfinished" . CRLF; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
235 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
236 } elsif ($uri eq '/big/ok') { |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
237 print $client |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
238 "HTTP/1.1 200 OK" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
239 "Content-Length: 1000010" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
240 "Cache-Control: max-age=300" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
241 "Connection: close" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
242 CRLF; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
243 for (1 .. 10000) { |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
244 print $client ("X" x 98) . CRLF; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
245 } |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
246 print $client "finished" . CRLF; |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
247 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
248 } elsif ($uri eq '/chunked') { |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
249 print $client |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
250 "HTTP/1.1 200 OK" . CRLF . |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
251 "Transfer-Encoding: chunked" . CRLF . |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
252 "Cache-Control: max-age=300" . CRLF . |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
253 "Connection: close" . CRLF . |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
254 CRLF . |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
255 "ff" . CRLF . |
307
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
256 "unfinished" . CRLF; |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
257 |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
258 } elsif ($uri eq '/chunked/ok') { |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
259 print $client |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
260 "HTTP/1.1 200 OK" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
261 "Transfer-Encoding: chunked" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
262 "Cache-Control: max-age=300" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
263 "Connection: close" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
264 CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
265 "a" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
266 "finished" . CRLF . |
81c98592661f
Tests: more unfinished tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
299
diff
changeset
|
267 CRLF . "0" . CRLF . CRLF; |
299
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
268 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
269 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
270 } |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
271 |
44c42894fdfd
Tests: move unfinished tests to a separate file.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
272 ############################################################################### |