Mercurial > hg > nginx-tests
annotate perl.t @ 1427:eb1d883305ea
Tests: avoid edge cases in upstream random two test.
Unavailable servers contribute to the number of attempts, if selected,
before the balancer would fall back to the default round-robin method.
This means that it's quite possible to get server with more connections.
To facilitate with selecting two alive servers, down server was removed
from the upstream configuration at the cost of slightly worse coverage.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Thu, 10 Jan 2019 17:42:34 +0300 |
parents | a69de1aba1ad |
children | fe0765147e15 |
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 |
1180
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
26 my $t = Test::Nginx->new()->has(qw/http perl rewrite/)->plan(17) |
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 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
51 $r->send_http_header("text/plain"); |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
52 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
53 return OK if $r->header_only; |
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 my $v = $r->variable("testvar"); |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
56 |
297
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
57 $r->print("testvar: $v\n"); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
58 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
59 $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
|
60 $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
|
61 $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
|
62 $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
|
63 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
64 return OK; |
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 } |
282
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
67 |
1152
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
68 location /range { |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
69 perl 'sub { |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
70 use warnings; |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
71 use strict; |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
72 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
73 my $r = shift; |
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 $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
|
76 $r->allow_ranges(); |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
77 $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
|
78 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
79 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
|
80 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
81 $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
|
82 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
83 return OK; |
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 } |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
86 |
282
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
87 location /body { |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
88 perl 'sub { |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
89 use warnings; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
90 use strict; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
91 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
92 my $r = shift; |
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 if ($r->has_request_body(\&post)) { |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
95 return OK; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
96 } |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
97 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
98 return HTTP_BAD_REQUEST; |
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 sub post { |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
101 my $r = shift; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
102 $r->send_http_header; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
103 $r->print("body: ", $r->request_body, "\n"); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
104 $r->print("file: ", $r->request_body_file, "\n"); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
105 } |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
106 }'; |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
107 } |
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
108 } |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
109 } |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
110 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
111 EOF |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
112 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
113 $t->run(); |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
114 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
115 ############################################################################### |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
116 |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
117 like(http_get('/'), qr/TEST/, 'perl response'); |
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
118 |
297
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
119 # various $r->header_in() cases |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
120 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
121 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
122 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
123 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
124 ), qr/host: localhost/, 'perl header_in known'); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
125 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
126 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
127 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
128 . 'X-Foo: foo' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
129 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
130 ), qr/xfoo: foo/, 'perl header_in unknown'); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
131 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
132 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
133 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
134 . 'Cookie: foo' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
135 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
136 ), qr/cookie: foo/, 'perl header_in cookie'); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
137 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
138 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
139 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
140 . 'Cookie: foo1' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
141 . 'Cookie: foo2' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
142 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
143 ), 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
|
144 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
145 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
146 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
147 . 'X-Forwarded-For: foo' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
148 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
149 ), qr/xff: foo/, 'perl header_in xff'); |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
150 |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
151 like(http( |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
152 'GET / HTTP/1.0' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
153 . 'X-Forwarded-For: foo1' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
154 . 'X-Forwarded-For: foo2' . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
155 . 'Host: localhost' . CRLF . CRLF |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
156 ), 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
|
157 |
1152
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
158 # 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
|
159 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
160 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
|
161 '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
|
162 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
163 like(http( |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
164 '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
|
165 . 'Host: localhost' . CRLF |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
166 . '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
|
167 ), 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
|
168 |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
169 like(http( |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
170 '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
|
171 . 'Host: localhost' . CRLF |
8241ebbe753d
Tests: added perl header_out content-length tests with ranges.
Sergey Kandaurov <pluknet@nginx.com>
parents:
974
diff
changeset
|
172 . '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
|
173 ), 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
|
174 '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
|
175 |
1180
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
176 TODO: { |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
177 local $TODO = 'not yet'; |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
178 |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
179 like(http( |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
180 'GET /range HTTP/1.0' . CRLF |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
181 . 'Host: localhost' . CRLF |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
182 . 'Range: bytes=100000-' . CRLF . CRLF |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
183 ), 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
|
184 |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
185 } |
a69de1aba1ad
Tests: added perl test with not satisfiable range.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1152
diff
changeset
|
186 |
297
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
187 # various request body tests |
389cee4c78aa
Tests: perl tests for $r->header_in().
Maxim Dounin <mdounin@mdounin.ru>
parents:
285
diff
changeset
|
188 |
282
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
189 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
190 'GET /body HTTP/1.0' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
191 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
192 . 'Content-Length: 10' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
193 . '1234567890' |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
194 ), qr/body: 1234567890/, 'perl body preread'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
195 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
196 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
197 'GET /body HTTP/1.0' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
198 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
199 . 'Content-Length: 10' . CRLF . CRLF, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
200 sleep => 0.1, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
201 body => '1234567890' |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
202 ), qr/body: 1234567890/, 'perl body late'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
203 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
204 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
205 'GET /body HTTP/1.0' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
206 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
207 . 'Content-Length: 10' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
208 . '12345', |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
209 sleep => 0.1, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
210 body => '67890' |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
211 ), qr/body: 1234567890/, 'perl body split'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
212 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
213 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
214 'GET /body HTTP/1.1' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
215 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
216 . 'Connection: close' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
217 . 'Transfer-Encoding: chunked' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
218 . 'a' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
219 . '1234567890' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
220 . '0' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
221 ), qr/body: 1234567890/, 'perl body chunked'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
222 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
223 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
224 'GET /body HTTP/1.1' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
225 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
226 . 'Connection: close' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
227 . 'Transfer-Encoding: chunked' . CRLF . CRLF, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
228 sleep => 0.1, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
229 body => 'a' . CRLF . '1234567890' . CRLF . '0' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
230 ), qr/body: 1234567890/, 'perl body chunked late'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
231 |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
232 like(http( |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
233 'GET /body HTTP/1.1' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
234 . 'Host: localhost' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
235 . 'Connection: close' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
236 . 'Transfer-Encoding: chunked' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
237 . 'a' . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
238 . '12345', |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
239 sleep => 0.1, |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
240 body => '67890' . CRLF . '0' . CRLF . CRLF |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
241 ), qr/body: 1234567890/, 'perl body chunked split'); |
04832fc79805
Tests: perl request body testing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
249
diff
changeset
|
242 |
118
4bf7a819358c
Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
243 ############################################################################### |