annotate stream_geo.t @ 1021:ebdf239722b9

Tests: relaxed proxy_cache_lock.t nolock tests to fix on Solaris. Assumed that the order of responses being arrived in nolock case may be ignored. An important part of such case is that the only last response should be cached.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 02 Sep 2016 12:17:35 +0300
parents 2cf72e8a1a6b
children 1fe8d33f75ad
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Maxim Dounin
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Sergey Kandaurov
1013
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
5 # (C) Andrey Zelenkov
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # (C) Nginx, Inc.
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 # Tests for stream geo module.
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 ###############################################################################
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12 use warnings;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use strict;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 use Test::More;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 BEGIN { use FindBin; chdir($FindBin::Bin); }
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19 use lib 'lib';
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20 use Test::Nginx;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21 use Test::Nginx::Stream qw/ stream /;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 ###############################################################################
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25 select STDERR; $| = 1;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26 select STDOUT; $| = 1;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28 my $t = Test::Nginx->new()->has(qw/stream stream_return stream_map stream_geo/);
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30 $t->write_file_expand('nginx.conf', <<'EOF');
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32 %%TEST_GLOBALS%%
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 daemon off;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36 events {
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 }
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39 stream {
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40 geo $geo {
1012
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
41 127.0.0.0/8 loopback;
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
42 192.0.2.0/24 test;
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
43 0.0.0.0/0 world;
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44 }
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45
1013
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
46 geo $geo_include {
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
47 include geo.conf;
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
48 192.0.2.0/24 test;
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
49 0.0.0.0/0 world;
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
50 }
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
51
1014
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
52 geo $geo_delete {
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
53 127.0.0.0/8 loopback;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
54 192.0.2.0/24 test;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
55 0.0.0.0/0 world;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
56 delete 127.0.0.0/8;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
57 }
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
58
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59 geo $remote_addr $geo_from_addr {
1012
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
60 127.0.0.0/8 loopback;
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
61 192.0.2.0/24 test;
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62 }
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64 map $server_port $var {
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 %%PORT_8080%% "192.0.2.1";
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66 %%PORT_8081%% "10.0.0.1";
1014
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
67 %%PORT_8085%% "10.11.2.1";
1015
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
68 %%PORT_8086%% "loopback";
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
69 %%PORT_8087%% "10.13.2.1";
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
70 }
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
71
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
72 geo $var $geo_from_var {
1012
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
73 default default;
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
74 127.0.0.0/8 loopback;
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
75 192.0.2.0/24 test;
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
76 }
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
77
1014
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
78 geo $var $geo_var_ranges {
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
79 ranges;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
80 default default;
1015
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
81 127.0.0.0-127.0.0.1 loopback;
1014
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
82
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
83 # ranges with two /16 networks
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
84 # the latter network has greater two least octets
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
85 # (see 1301a58b5dac for details)
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
86 10.10.3.0-10.11.2.255 foo;
1015
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
87 10.12.3.0-10.13.2.255 foo2;
1014
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
88 delete 10.10.3.0-10.11.2.255;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
89 }
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
90
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
91 geo $var $geo_world {
1012
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
92 127.0.0.0/8 loopback;
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
93 192.0.2.0/24 test;
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
94 0.0.0.0/0 world;
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
95 }
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
96
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
97 geo $geo_ranges {
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
98 ranges;
1012
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
99 default default;
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
100 127.0.0.0-127.255.255.255 loopback;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
101 192.0.2.0-192.0.2.255 test;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
102 }
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
103
1013
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
104 geo $geo_ranges_include {
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
105 ranges;
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
106 default default;
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
107 include geo-ranges.conf;
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
108 192.0.2.0-192.0.2.255 test;
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
109 }
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
110
1014
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
111 geo $geo_ranges_delete {
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
112 ranges;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
113 default default;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
114 127.0.0.0-127.0.0.255 test;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
115 127.0.0.1-127.0.0.1 loopback;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
116 delete 127.0.0.0-127.0.0.0;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
117 delete 127.0.0.2-127.0.0.255;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
118 delete 127.0.0.1-127.0.0.1;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
119 }
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
120
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
121 # delete range with two /16
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
122 geo $geo_ranges_delete_2 {
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
123 ranges;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
124 default default;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
125 127.0.0.0-127.1.0.0 loopback;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
126 delete 127.0.0.0-127.1.0.0;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
127 }
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
128
1015
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
129 geo $geo_before {
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
130 ranges;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
131 default default;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
132 127.0.0.1-127.0.0.255 loopback;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
133 127.0.0.0-127.0.0.0 test;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
134 }
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
135
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
136 geo $geo_after {
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
137 ranges;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
138 default default;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
139 127.0.0.0-127.0.0.1 loopback;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
140 127.0.0.2-127.0.0.255 test;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
141 }
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
142
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
143 geo $geo_insert {
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
144 ranges;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
145 default default;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
146 127.0.0.0-127.0.0.255 test;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
147 127.0.0.1-127.0.0.2 test2;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
148 127.0.0.1-127.0.0.1 loopback;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
149 }
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
150
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
151 geo $geo_insert_before {
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
152 ranges;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
153 default default;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
154 127.0.0.0-127.0.0.255 test;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
155 127.0.0.0-127.0.0.1 loopback;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
156 }
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
157
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
158 geo $geo_insert_after {
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
159 ranges;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
160 default default;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
161 127.0.0.0-127.0.0.255 test;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
162 127.0.0.1-127.0.0.255 loopback;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
163 }
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
164
1016
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
165 geo $geo_base_create {
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
166 ranges;
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
167 include base.conf;
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
168 }
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
169
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
170 geo $geo_base_include {
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
171 ranges;
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
172 include base.conf;
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
173 }
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
174
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
175 server {
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
176 listen 127.0.0.1:8080;
1011
9b87810c75ca Tests: simplified variables parsing in stream_geo.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 978
diff changeset
177 return "geo:$geo
1013
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
178 geo_include:$geo_include
1014
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
179 geo_delete:$geo_delete
1012
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
180 geo_ranges:$geo_ranges
1013
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
181 geo_ranges_include:$geo_ranges_include
1015
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
182 geo_before:$geo_before
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
183 geo_after:$geo_after
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
184 geo_insert:$geo_insert
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
185 geo_insert_before:$geo_insert_before
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
186 geo_insert_after:$geo_insert_after
1016
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
187 geo_base_create:$geo_base_create
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
188 geo_base_include:$geo_base_include
1011
9b87810c75ca Tests: simplified variables parsing in stream_geo.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 978
diff changeset
189 geo_from_addr:$geo_from_addr
1012
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
190 geo_from_var:$geo_from_var";
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
191 }
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
192
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
193 server {
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
194 listen 127.0.0.1:8081;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
195 return $geo_from_var;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
196 }
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
197
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
198 server {
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
199 listen 127.0.0.1:8082;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
200 return $geo_world;
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
201 }
1014
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
202
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
203 server {
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
204 listen 127.0.0.1:8083;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
205 return $geo_ranges_delete;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
206 }
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
207
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
208 server {
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
209 listen 127.0.0.1:8084;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
210 return $geo_ranges_delete_2;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
211 }
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
212
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
213 server {
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
214 listen 127.0.0.1:8085;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
215 return $geo_var_ranges;
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
216 }
1015
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
217
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
218 server {
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
219 listen 127.0.0.1:8086;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
220 return $geo_var_ranges;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
221 }
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
222
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
223 server {
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
224 listen 127.0.0.1:8087;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
225 return $geo_var_ranges;
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
226 }
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
227 }
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
228
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
229 EOF
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
230
1013
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
231 $t->write_file('geo.conf', '127.0.0.0/8 loopback;');
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
232 $t->write_file('geo-ranges.conf', '127.0.0.0-127.255.255.255 loopback;');
1016
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
233 $t->write_file('base.conf', join('', map {
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
234 "127." . $_/256/256 % 256 . "." . $_/256 % 256 . "." . $_ % 256 .
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
235 "-127." . $_/256/256 % 256 . "." . $_/256 % 256 . "." .$_ % 256 . " " .
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
236 ($_ == 1 ? "loopback" : "range$_") . ";" } (0 .. 100000)));
1013
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
237
1016
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
238 $t->try_run('no stream geo')->plan(21);
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
239
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
240 ###############################################################################
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
241
1011
9b87810c75ca Tests: simplified variables parsing in stream_geo.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 978
diff changeset
242 my %data = stream()->read() =~ /(\w+):(\w+)/g;
9b87810c75ca Tests: simplified variables parsing in stream_geo.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 978
diff changeset
243 is($data{geo}, 'loopback', 'geo');
1013
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
244 is($data{geo_include}, 'loopback', 'geo include');
1014
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
245 is($data{geo_delete}, 'world', 'geo delete');
1012
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
246 is($data{geo_ranges}, 'loopback', 'geo ranges');
1013
8f92d97cf40e Tests: geo include tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1012
diff changeset
247 is($data{geo_ranges_include}, 'loopback', 'geo ranges include');
1012
a0758fe11465 Tests: style and rearrangements in geo tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1011
diff changeset
248
1014
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
249 TODO: {
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
250 todo_skip 'use-after-free', 2 unless $ENV{TEST_NGINX_UNSAFE}
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
251 or $t->has_version('1.11.4');
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
252
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
253 is(stream('127.0.0.1:' . port(8083))->read(), 'default', 'geo ranges delete');
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
254 is(stream('127.0.0.1:' . port(8084))->read(), 'default', 'geo ranges delete 2');
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
255
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
256 }
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
257
1015
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
258 is($data{geo_before}, 'loopback', 'geo ranges add before');
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
259 is($data{geo_after}, 'loopback', 'geo ranges add after');
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
260 is($data{geo_insert}, 'loopback', 'geo ranges insert');
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
261 is($data{geo_insert_before}, 'loopback', 'geo ranges insert before');
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
262 is($data{geo_insert_after}, 'loopback', 'geo ranges insert after');
1016
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
263 is($data{geo_base_create}, 'loopback', 'geo binary base create');
2cf72e8a1a6b Tests: geo binary base simple tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1015
diff changeset
264 is($data{geo_base_include}, 'loopback', 'geo binary base include');
1015
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
265
1011
9b87810c75ca Tests: simplified variables parsing in stream_geo.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 978
diff changeset
266 is($data{geo_from_addr}, 'loopback', 'geo from addr');
9b87810c75ca Tests: simplified variables parsing in stream_geo.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 978
diff changeset
267 is($data{geo_from_var}, 'test', 'geo from var');
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
268
1014
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
269 TODO: {
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
270 todo_skip 'use-after-free', 1 unless $ENV{TEST_NGINX_UNSAFE}
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
271 or $t->has_version('1.11.4');
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
272
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
273 is(stream('127.0.0.1:' . port(8085))->read(), 'default',
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
274 'geo delete range from variable');
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
275
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
276 }
61fbb879446a Tests: geo delete tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1013
diff changeset
277
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
278 is(stream('127.0.0.1:' . port(8081))->read(), 'default', 'geo default');
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
279 is(stream('127.0.0.1:' . port(8082))->read(), 'world', 'geo world');
1015
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
280 is(stream('127.0.0.1:' . port(8086))->read(), 'default', 'geo ranges default');
1d205c07ef59 Tests: more geo ranges tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1014
diff changeset
281 is(stream('127.0.0.1:' . port(8087))->read(), 'foo2', 'geo ranges add');
978
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
282
04cb1849005a Tests: basic tests for stream geo module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
283 ###############################################################################