comparison stream_geo.t @ 1015:1d205c07ef59

Tests: more geo ranges tests.
author Andrey Zelenkov <zelenkov@nginx.com>
date Fri, 26 Aug 2016 16:31:44 +0300
parents 61fbb879446a
children 2cf72e8a1a6b
comparison
equal deleted inserted replaced
1014:61fbb879446a 1015:1d205c07ef59
63 63
64 map $server_port $var { 64 map $server_port $var {
65 %%PORT_8080%% "192.0.2.1"; 65 %%PORT_8080%% "192.0.2.1";
66 %%PORT_8081%% "10.0.0.1"; 66 %%PORT_8081%% "10.0.0.1";
67 %%PORT_8085%% "10.11.2.1"; 67 %%PORT_8085%% "10.11.2.1";
68 %%PORT_8086%% "loopback";
69 %%PORT_8087%% "10.13.2.1";
68 } 70 }
69 71
70 geo $var $geo_from_var { 72 geo $var $geo_from_var {
71 default default; 73 default default;
72 127.0.0.0/8 loopback; 74 127.0.0.0/8 loopback;
74 } 76 }
75 77
76 geo $var $geo_var_ranges { 78 geo $var $geo_var_ranges {
77 ranges; 79 ranges;
78 default default; 80 default default;
81 127.0.0.0-127.0.0.1 loopback;
79 82
80 # ranges with two /16 networks 83 # ranges with two /16 networks
81 # the latter network has greater two least octets 84 # the latter network has greater two least octets
82 # (see 1301a58b5dac for details) 85 # (see 1301a58b5dac for details)
83 10.10.3.0-10.11.2.255 foo; 86 10.10.3.0-10.11.2.255 foo;
87 10.12.3.0-10.13.2.255 foo2;
84 delete 10.10.3.0-10.11.2.255; 88 delete 10.10.3.0-10.11.2.255;
85 } 89 }
86 90
87 geo $var $geo_world { 91 geo $var $geo_world {
88 127.0.0.0/8 loopback; 92 127.0.0.0/8 loopback;
119 ranges; 123 ranges;
120 default default; 124 default default;
121 127.0.0.0-127.1.0.0 loopback; 125 127.0.0.0-127.1.0.0 loopback;
122 delete 127.0.0.0-127.1.0.0; 126 delete 127.0.0.0-127.1.0.0;
123 } 127 }
128
129 geo $geo_before {
130 ranges;
131 default default;
132 127.0.0.1-127.0.0.255 loopback;
133 127.0.0.0-127.0.0.0 test;
134 }
135
136 geo $geo_after {
137 ranges;
138 default default;
139 127.0.0.0-127.0.0.1 loopback;
140 127.0.0.2-127.0.0.255 test;
141 }
142
143 geo $geo_insert {
144 ranges;
145 default default;
146 127.0.0.0-127.0.0.255 test;
147 127.0.0.1-127.0.0.2 test2;
148 127.0.0.1-127.0.0.1 loopback;
149 }
150
151 geo $geo_insert_before {
152 ranges;
153 default default;
154 127.0.0.0-127.0.0.255 test;
155 127.0.0.0-127.0.0.1 loopback;
156 }
157
158 geo $geo_insert_after {
159 ranges;
160 default default;
161 127.0.0.0-127.0.0.255 test;
162 127.0.0.1-127.0.0.255 loopback;
163 }
124 164
125 server { 165 server {
126 listen 127.0.0.1:8080; 166 listen 127.0.0.1:8080;
127 return "geo:$geo 167 return "geo:$geo
128 geo_include:$geo_include 168 geo_include:$geo_include
129 geo_delete:$geo_delete 169 geo_delete:$geo_delete
130 geo_ranges:$geo_ranges 170 geo_ranges:$geo_ranges
131 geo_ranges_include:$geo_ranges_include 171 geo_ranges_include:$geo_ranges_include
172 geo_before:$geo_before
173 geo_after:$geo_after
174 geo_insert:$geo_insert
175 geo_insert_before:$geo_insert_before
176 geo_insert_after:$geo_insert_after
132 geo_from_addr:$geo_from_addr 177 geo_from_addr:$geo_from_addr
133 geo_from_var:$geo_from_var"; 178 geo_from_var:$geo_from_var";
134 } 179 }
135 180
136 server { 181 server {
155 200
156 server { 201 server {
157 listen 127.0.0.1:8085; 202 listen 127.0.0.1:8085;
158 return $geo_var_ranges; 203 return $geo_var_ranges;
159 } 204 }
205
206 server {
207 listen 127.0.0.1:8086;
208 return $geo_var_ranges;
209 }
210
211 server {
212 listen 127.0.0.1:8087;
213 return $geo_var_ranges;
214 }
160 } 215 }
161 216
162 EOF 217 EOF
163 218
164 $t->write_file('geo.conf', '127.0.0.0/8 loopback;'); 219 $t->write_file('geo.conf', '127.0.0.0/8 loopback;');
165 $t->write_file('geo-ranges.conf', '127.0.0.0-127.255.255.255 loopback;'); 220 $t->write_file('geo-ranges.conf', '127.0.0.0-127.255.255.255 loopback;');
166 221
167 $t->try_run('no stream geo')->plan(12); 222 $t->try_run('no stream geo')->plan(19);
168 223
169 ############################################################################### 224 ###############################################################################
170 225
171 my %data = stream()->read() =~ /(\w+):(\w+)/g; 226 my %data = stream()->read() =~ /(\w+):(\w+)/g;
172 is($data{geo}, 'loopback', 'geo'); 227 is($data{geo}, 'loopback', 'geo');
182 is(stream('127.0.0.1:' . port(8083))->read(), 'default', 'geo ranges delete'); 237 is(stream('127.0.0.1:' . port(8083))->read(), 'default', 'geo ranges delete');
183 is(stream('127.0.0.1:' . port(8084))->read(), 'default', 'geo ranges delete 2'); 238 is(stream('127.0.0.1:' . port(8084))->read(), 'default', 'geo ranges delete 2');
184 239
185 } 240 }
186 241
242 is($data{geo_before}, 'loopback', 'geo ranges add before');
243 is($data{geo_after}, 'loopback', 'geo ranges add after');
244 is($data{geo_insert}, 'loopback', 'geo ranges insert');
245 is($data{geo_insert_before}, 'loopback', 'geo ranges insert before');
246 is($data{geo_insert_after}, 'loopback', 'geo ranges insert after');
247
187 is($data{geo_from_addr}, 'loopback', 'geo from addr'); 248 is($data{geo_from_addr}, 'loopback', 'geo from addr');
188 is($data{geo_from_var}, 'test', 'geo from var'); 249 is($data{geo_from_var}, 'test', 'geo from var');
189 250
190 TODO: { 251 TODO: {
191 todo_skip 'use-after-free', 1 unless $ENV{TEST_NGINX_UNSAFE} 252 todo_skip 'use-after-free', 1 unless $ENV{TEST_NGINX_UNSAFE}
196 257
197 } 258 }
198 259
199 is(stream('127.0.0.1:' . port(8081))->read(), 'default', 'geo default'); 260 is(stream('127.0.0.1:' . port(8081))->read(), 'default', 'geo default');
200 is(stream('127.0.0.1:' . port(8082))->read(), 'world', 'geo world'); 261 is(stream('127.0.0.1:' . port(8082))->read(), 'world', 'geo world');
201 262 is(stream('127.0.0.1:' . port(8086))->read(), 'default', 'geo ranges default');
202 ############################################################################### 263 is(stream('127.0.0.1:' . port(8087))->read(), 'foo2', 'geo ranges add');
264
265 ###############################################################################