Mercurial > hg > nginx-tests
annotate perl.t @ 1571:1b4ceab9cb1c
Tests: fixed ssl_certificate.t with LibreSSL client.
Net::SSLeay::connect() that manages TLS handshake could return unexpected
error when receiving server alert, as seen in server certificate tests if
it could not been selected. Typically, it returns the expected error -1,
but with certain libssl implementations it can be 0, as explained below.
The error is propagated from libssl's SSL_connect(), which is usually -1.
In modern OpenSSL versions, it is the default error code used in the state
machine returned when something went wrong with parsing TLS message header.
In versions up to OpenSSL 1.0.2, with SSLv23_method() used by default, -1
is the only error code in the ssl_connect() method implementation which is
used as well if receiving alert while parsing ServerHello. BoringSSL also
seems to return -1. But it is not so with LibreSSL that returns zero.
Previously, tests failed with client built with LibreSSL with SSLv3 removed.
Here, the error is propagated directly from ssl_read_bytes() method, which
is always implemented as ssl3_read_bytes() in all TLS methods. It could be
also seen with OpenSSL up to 1.0.2 with non-default methods explicitly set.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Fri, 29 May 2020 23:10:20 +0300 |
parents | c2bbf805388d |
children | 5ac6efbe5552 |
rev | line source |
---|---|
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
2 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
3 # (C) Maxim Dounin |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
4 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
5 # Tests for embedded perl module. |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
6 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
7 ############################################################################### |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
8 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
9 use warnings; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
10 use strict; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
11 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
12 use Test::More; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
13 |
282
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
14 use Socket qw/ CRLF /; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
15 |
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
16 BEGIN { use FindBin; chdir($FindBin::Bin); } |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
17 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
18 use lib 'lib'; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
19 use Test::Nginx; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
20 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
21 ############################################################################### |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
22 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
23 select STDERR; $| = 1; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
24 select STDOUT; $| = 1; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
25 |
1491
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
26 my $t = Test::Nginx->new()->has(qw/http perl rewrite/)->plan(24) |
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
27 ->write_file_expand('nginx.conf', <<'EOF'); |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
28 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
29 %%TEST_GLOBALS%% |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
30 |
249
6a0d934950bc
Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents:
166
diff
changeset
|
31 daemon off; |
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
32 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
33 events { |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
34 } |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
35 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
36 http { |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
37 %%TEST_GLOBALS_HTTP%% |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
38 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
39 server { |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
40 listen 127.0.0.1:8080; |
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
41 server_name localhost; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
42 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
43 location / { |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
44 set $testvar "TEST"; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
45 perl 'sub { |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
46 use warnings; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
47 use strict; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
48 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
49 my $r = shift; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
50 |
1489
82be9398a9fa
Tests: perl header_only, status, and args tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1487
diff
changeset
|
51 $r->status(204) if $r->args =~ /204/; |
82be9398a9fa
Tests: perl header_only, status, and args tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1487
diff
changeset
|
52 |
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
53 $r->send_http_header("text/plain"); |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
54 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
55 return OK if $r->header_only; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
56 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
57 my $v = $r->variable("testvar"); |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
58 |
297
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
59 $r->print("testvar: $v\n"); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
60 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
61 $r->print("host: ", $r->header_in("Host"), "\n"); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
62 $r->print("xfoo: ", $r->header_in("X-Foo"), "\n"); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
63 $r->print("cookie: ", $r->header_in("Cookie"), "\n"); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
64 $r->print("xff: ", $r->header_in("X-Forwarded-For"), "\n"); |
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
65 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
66 return OK; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
67 }'; |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
68 } |
282
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
69 |
1152
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
70 location /range { |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
71 perl 'sub { |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
72 use warnings; |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
73 use strict; |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
74 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
75 my $r = shift; |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
76 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
77 $r->header_out("Content-Length", "42"); |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
78 $r->allow_ranges(); |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
79 $r->send_http_header("text/plain"); |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
80 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
81 return OK if $r->header_only; |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
82 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
83 $r->print("x" x 42); |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
84 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
85 return OK; |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
86 }'; |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
87 } |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
88 |
282
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
89 location /body { |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
90 perl 'sub { |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
91 use warnings; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
92 use strict; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
93 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
94 my $r = shift; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
95 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
96 if ($r->has_request_body(\&post)) { |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
97 return OK; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
98 } |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
99 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
100 return HTTP_BAD_REQUEST; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
101 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
102 sub post { |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
103 my $r = shift; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
104 $r->send_http_header; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
105 $r->print("body: ", $r->request_body, "\n"); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
106 $r->print("file: ", $r->request_body_file, "\n"); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
107 } |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
108 }'; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
109 } |
1491
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
110 |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
111 location /discard { |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
112 perl 'sub { |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
113 use warnings; |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
114 use strict; |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
115 |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
116 my $r = shift; |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
117 |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
118 $r->discard_request_body; |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
119 |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
120 $r->send_http_header("text/plain"); |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
121 |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
122 return OK if $r->header_only; |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
123 |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
124 $r->print("host: ", $r->header_in("Host"), "\n"); |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
125 |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
126 return OK; |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
127 }'; |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
128 } |
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
129 } |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
130 } |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
131 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
132 EOF |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
133 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
134 $t->run(); |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
135 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
136 ############################################################################### |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
137 |
1489
82be9398a9fa
Tests: perl header_only, status, and args tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1487
diff
changeset
|
138 like(http_get('/'), qr/ 200 .*TEST/s, 'perl response'); |
82be9398a9fa
Tests: perl header_only, status, and args tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1487
diff
changeset
|
139 like(http_head('/'), qr/ 200 (?!.*TEST)/s, 'perl header_only'); |
82be9398a9fa
Tests: perl header_only, status, and args tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1487
diff
changeset
|
140 like(http_get('/?204'), qr/ 204 (?!.*TEST)/s, 'perl status, args'); |
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
141 |
297
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
142 # various $r->header_in() cases |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
143 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
144 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
145 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
146 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
147 ), qr/host: localhost/, 'perl header_in known'); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
148 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
149 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
150 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
151 . 'X-Foo: foo' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
152 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
153 ), qr/xfoo: foo/, 'perl header_in unknown'); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
154 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
155 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
156 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
157 . 'Cookie: foo' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
158 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
159 ), qr/cookie: foo/, 'perl header_in cookie'); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
160 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
161 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
162 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
163 . 'Cookie: foo1' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
164 . 'Cookie: foo2' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
165 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
166 ), qr/cookie: foo1; foo2/, 'perl header_in cookie2'); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
167 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
168 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
169 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
170 . 'X-Forwarded-For: foo' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
171 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
172 ), qr/xff: foo/, 'perl header_in xff'); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
173 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
174 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
175 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
176 . 'X-Forwarded-For: foo1' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
177 . 'X-Forwarded-For: foo2' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
178 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
179 ), qr/xff: foo1, foo2/, 'perl header_in xff2'); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
180 |
1152
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
181 # headers_out content-length tests with range filter |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
182 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
183 like(http_get('/range'), qr/Content-Length: 42.*^x{42}$/ms, |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
184 'perl header_out content-length'); |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
185 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
186 like(http( |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
187 'GET /range HTTP/1.0' . CRLF |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
188 . 'Host: localhost' . CRLF |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
189 . 'Range: bytes=0-1' . CRLF . CRLF |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
190 ), qr/Content-Length: 2.*^xx$/ms, 'perl header_out content-length range'); |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
191 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
192 like(http( |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
193 'GET /range HTTP/1.0' . CRLF |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
194 . 'Host: localhost' . CRLF |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
195 . 'Range: bytes=0-1,3-5' . CRLF . CRLF |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
196 ), qr/Content-Length: (?!42).*^xx\x0d.*^xxx\x0d/ms, |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
197 'perl header_out content-length multipart'); |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
198 |
1180
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
199 TODO: { |
1490
8f79fac049df
Tests: adjusted perl.t TODO for not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1489
diff
changeset
|
200 local $TODO = 'not yet' unless $t->has_version('1.17.2'); |
1180
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
201 |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
202 like(http( |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
203 'GET /range HTTP/1.0' . CRLF |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
204 . 'Host: localhost' . CRLF |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
205 . 'Range: bytes=100000-' . CRLF . CRLF |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
206 ), qr|^\QHTTP/1.1 416\E.*(?!xxx)|ms, 'perl range not satisfiable'); |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
207 |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
208 } |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
209 |
1487
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
210 TODO: { |
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
211 todo_skip 'leaves coredump', 1 unless $t->has_version('1.17.1') |
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
212 or $ENV{TEST_NGINX_UNSAFE}; |
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
213 |
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
214 like(http( |
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
215 'GET / HTTP/1.0' . CRLF |
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
216 . 'Host: localhost' . CRLF |
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
217 . 'If-Match: tt' . CRLF . CRLF |
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
218 ), qr|200 OK|ms, 'perl precondition failed'); |
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
219 |
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
220 } |
fe0765147e15
Tests: perl and conditional requests processing.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1180
diff
changeset
|
221 |
297
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
222 # various request body tests |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
223 |
1491
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
224 like(http_get('/body'), qr/400 Bad Request/, 'perl no body'); |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
225 |
282
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
226 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
227 'GET /body HTTP/1.0' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
228 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
229 . 'Content-Length: 10' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
230 . '1234567890' |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
231 ), qr/body: 1234567890/, 'perl body preread'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
232 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
233 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
234 'GET /body HTTP/1.0' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
235 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
236 . 'Content-Length: 10' . CRLF . CRLF, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
237 sleep => 0.1, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
238 body => '1234567890' |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
239 ), qr/body: 1234567890/, 'perl body late'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
240 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
241 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
242 'GET /body HTTP/1.0' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
243 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
244 . 'Content-Length: 10' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
245 . '12345', |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
246 sleep => 0.1, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
247 body => '67890' |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
248 ), qr/body: 1234567890/, 'perl body split'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
249 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
250 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
251 'GET /body HTTP/1.1' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
252 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
253 . 'Connection: close' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
254 . 'Transfer-Encoding: chunked' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
255 . 'a' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
256 . '1234567890' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
257 . '0' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
258 ), qr/body: 1234567890/, 'perl body chunked'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
259 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
260 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
261 'GET /body HTTP/1.1' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
262 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
263 . 'Connection: close' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
264 . 'Transfer-Encoding: chunked' . CRLF . CRLF, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
265 sleep => 0.1, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
266 body => 'a' . CRLF . '1234567890' . CRLF . '0' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
267 ), qr/body: 1234567890/, 'perl body chunked late'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
268 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
269 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
270 'GET /body HTTP/1.1' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
271 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
272 . 'Connection: close' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
273 . 'Transfer-Encoding: chunked' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
274 . 'a' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
275 . '12345', |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
276 sleep => 0.1, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
277 body => '67890' . CRLF . '0' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
278 ), qr/body: 1234567890/, 'perl body chunked split'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
279 |
1491
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
280 like(http( |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
281 'GET /discard HTTP/1.1' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
282 . 'Host: localhost' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
283 . 'Connection: close' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
284 . 'Transfer-Encoding: chunked' . CRLF . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
285 . 'a' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
286 . '1234567890' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
287 . '0' . CRLF . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
288 ), qr/host: localhost/, 'perl body discard'); |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
289 |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
290 TODO: { |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
291 local $TODO = 'not yet' unless $t->has_version('1.17.2'); |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
292 |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
293 like(http( |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
294 'GET /discard HTTP/1.1' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
295 . 'Host: localhost' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
296 . 'Connection: close' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
297 . 'Transfer-Encoding: chunked' . CRLF . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
298 . 'ak' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
299 . '1234567890' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
300 . '0' . CRLF . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
301 ), qr/400 Bad Request/, 'perl body discard bad chunk'); |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
302 |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
303 like(http( |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
304 'GET /body HTTP/1.1' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
305 . 'Host: localhost' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
306 . 'Connection: close' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
307 . 'Transfer-Encoding: chunked' . CRLF . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
308 . 'ak' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
309 . '1234567890' . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
310 . '0' . CRLF . CRLF |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
311 ), qr/400 Bad Request/, 'perl body bad chunk'); |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
312 |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
313 } |
c2bbf805388d
Tests: more perl request body tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1490
diff
changeset
|
314 |
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
315 ############################################################################### |