Mercurial > hg > nginx-tests
annotate map.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 | 6a0d934950bc |
children | 1f8e15e1899a |
rev | line source |
---|---|
227
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
2 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
3 # (C) Maxim Dounin |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
4 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
5 # Tests for map module. |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
6 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
7 ############################################################################### |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
8 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
9 use warnings; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
10 use strict; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
11 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
12 use Test::More; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
13 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
14 BEGIN { use FindBin; chdir($FindBin::Bin); } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
15 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
16 use lib 'lib'; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
17 use Test::Nginx; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
18 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
19 ############################################################################### |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
20 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
21 select STDERR; $| = 1; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
22 select STDOUT; $| = 1; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
23 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
24 my $t = Test::Nginx->new()->has(qw/http map/)->plan(5); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
25 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
26 $t->write_file_expand('nginx.conf', <<'EOF'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
27 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
28 %%TEST_GLOBALS%% |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
29 |
249
6a0d934950bc
Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents:
241
diff
changeset
|
30 daemon off; |
227
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
31 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
32 events { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
33 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
34 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
35 http { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
36 %%TEST_GLOBALS_HTTP%% |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
37 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
38 map $args $x { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
39 default 0; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
40 foo bar; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
41 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
42 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
43 map $args $y { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
44 hostnames; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
45 default 0; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
46 example.com foo; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
47 example.* wildcard; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
48 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
49 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
50 server { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
51 listen 127.0.0.1:8080; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
52 server_name localhost; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
53 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
54 location / { |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
55 add_header X-Foo "x:$x y:$y\n"; |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
56 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
57 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
58 } |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
59 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
60 EOF |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
61 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
62 $t->write_file('index.html', ''); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
63 $t->run(); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
64 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
65 ############################################################################### |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
66 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
67 like(http_get('/?1'), qr/x:0 y:0/, 'map default'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
68 like(http_get('/?foo'), qr/x:bar y:0/, 'map foo bar'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
69 like(http_get('/?example.com'), qr/x:0 y:foo/, 'map example.com foo'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
70 like(http_get('/?example.org'), qr/x:0 y:wild/, 'map example.org wildcard'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
71 like(http_get('/?example.com.'), qr/x:0 y:foo/, 'map example.com. foo'); |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
72 |
16371849bd07
Tests: map module basic tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff
changeset
|
73 ############################################################################### |