Mercurial > hg > nginx-tests
annotate stream_geo_ipv6.t @ 1248:70192b1baf01
Tests: added exception test to stream_js.t using 'require'.
The stream js tests introduced in edf5a3c9e36a fail on njs 0.1.14. It doesn't
currently provide an easy way to check its version, whilst we are obligated to
gracefully handle such cases somehow. With such an addition of 'require', now
the tests are skipped instead on the previous versions.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 21 Nov 2017 13:16:39 +0300 |
parents | 3fc6817cd84a |
children | 766bcbb632ee |
rev | line source |
---|---|
1018
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
2 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
3 # (C) Andrey Zelenkov |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
5 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
6 # Stream tests for geo module with IPv6. |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
7 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
9 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
11 use strict; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
12 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
14 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
16 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
19 use Test::Nginx::Stream qw/ stream /; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
20 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
21 ############################################################################### |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
22 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
23 select STDERR; $| = 1; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
24 select STDOUT; $| = 1; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
25 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
26 my $t = Test::Nginx->new()->has(qw/stream stream_return stream_map stream_geo/) |
1170
cf14cfe9ec8c
Tests: dropped obsolete ipv6 prerequisite.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1018
diff
changeset
|
27 ->write_file_expand('nginx.conf', <<'EOF'); |
1018
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
28 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
29 %%TEST_GLOBALS%% |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
30 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
31 daemon off; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
32 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
33 events { |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
34 } |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
35 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
36 stream { |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
37 geo $geo { |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
38 ::1/128 loopback; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
39 2001:0db8::/32 test; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
40 ::/0 world; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
41 } |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
42 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
43 geo $geo_delete { |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
44 ::1/128 loopback; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
45 2001:0db8::/32 test; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
46 ::/0 world; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
47 delete ::1/128; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
48 } |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
49 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
50 map $server_port $var { |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
51 %%PORT_8080%% "::1"; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
52 %%PORT_8081%% "::ffff:192.0.2.1"; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
53 } |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
54 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
55 geo $var $geo_var { |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
56 default default; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
57 192.0.2.1 test; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
58 } |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
59 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
60 geo $var $geo_var_ranges { |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
61 ranges; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
62 default default; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
63 127.0.0.1-127.0.0.2 loopback; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
64 192.0.2.0-192.0.2.1 test; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
65 } |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
66 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
67 server { |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
68 listen 127.0.0.1:8080; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
69 proxy_pass [::1]:%%PORT_8080%%; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
70 } |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
71 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
72 server { |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
73 listen [::1]:%%PORT_8080%%; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
74 return "geo:$geo |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
75 geo_delete:$geo_delete |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
76 geo_var:$geo_var |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
77 geo_var_ranges:$geo_var_ranges"; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
78 } |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
79 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
80 server { |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
81 listen 127.0.0.1:8081; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
82 return "geo_var:$geo_var |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
83 geo_var_ranges:$geo_var_ranges"; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
84 } |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
85 } |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
86 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
87 EOF |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
88 |
1190
fcd65708672d
Tests: let tests pass on travis-ci VMs with disabled IPv6 loopback.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1171
diff
changeset
|
89 $t->try_run('no stream geo or inet6 support')->plan(6); |
1018
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
90 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
91 ############################################################################### |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
92 |
1235
3fc6817cd84a
Tests: explicit peer port in stream tests now required.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
1190
diff
changeset
|
93 my %data = stream('127.0.0.1:' . port(8080))->read() =~ /(\w+):(\w+)/g; |
1018
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
94 is($data{geo}, 'loopback', 'geo ipv6'); |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
95 is($data{geo_delete}, 'world', 'geo ipv6 delete'); |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
96 is($data{geo_var}, 'default', 'geo ipv6 from variable'); |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
97 is($data{geo_var_ranges}, 'default', 'geo ipv6 from variable range'); |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
98 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
99 %data = stream('127.0.0.1:' . port(8081))->read() =~ /(\w+):(\w+)/g; |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
100 is($data{geo_var}, 'test', 'geo ipv6 ipv4-mapped from variable'); |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
101 is($data{geo_var_ranges}, 'test', 'geo ipv6 ipv4-mapped from variable range'); |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
102 |
2120f5808c32
Tests: added stream geo IPv6 tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff
changeset
|
103 ############################################################################### |