Mercurial > hg > nginx-tests
annotate stream_geo_ipv6.t @ 1542:451e787aad76
Tests: reworked libgd version detection.
The "libgd-config" binary is deprecated in recent versions and may not exist
or have unexpected output. More, it may not present within older versions,
as well, if installed separately, which previously broke test assumptions.
The fix is change the fallback to skip tests. In addition, recent Perl GD
module (2.57) started to export libgd version, which is now also consulted.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 13 Jan 2020 18:15:35 +0300 |
parents | 766bcbb632ee |
children | f3ba4c74de31 |
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 |
1251
766bcbb632ee
Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1235
diff
changeset
|
89 $t->try_run('no 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 ############################################################################### |