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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 ###############################################################################