comparison geo.t @ 1044:1fe8d33f75ad

Tests: split out geo tests with binary base and skip by default. These tests require configuration with a large number of geo entries, which may cause long configuration parsing and enrage waitforfile().
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 30 Sep 2016 20:31:09 +0300
parents 2cf72e8a1a6b
children 766bcbb632ee
comparison
equal deleted inserted replaced
1043:b82f54728e14 1044:1fe8d33f75ad
155 ranges; 155 ranges;
156 default default; 156 default default;
157 127.0.0.0-127.0.0.255 test; 157 127.0.0.0-127.0.0.255 test;
158 127.0.0.1-127.0.0.255 loopback; 158 127.0.0.1-127.0.0.255 loopback;
159 } 159 }
160
161 geo $geo_base_create {
162 ranges;
163 include base.conf;
164 }
165
166 geo $geo_base_include {
167 ranges;
168 include base.conf;
169 }
170 160
171 server { 161 server {
172 listen 127.0.0.1:8080; 162 listen 127.0.0.1:8080;
173 server_name localhost; 163 server_name localhost;
174 164
182 add_header X-ABe $geo_before; 172 add_header X-ABe $geo_before;
183 add_header X-AAf $geo_after; 173 add_header X-AAf $geo_after;
184 add_header X-Ins $geo_insert; 174 add_header X-Ins $geo_insert;
185 add_header X-IBe $geo_insert_before; 175 add_header X-IBe $geo_insert_before;
186 add_header X-IAf $geo_insert_after; 176 add_header X-IAf $geo_insert_after;
187 add_header X-GBc $geo_base_create;
188 add_header X-GBi $geo_base_include;
189 add_header X-Arg $geo_from_arg; 177 add_header X-Arg $geo_from_arg;
190 add_header X-ARa $geo_arg_ranges; 178 add_header X-ARa $geo_arg_ranges;
191 add_header X-XFF $geo_proxy; 179 add_header X-XFF $geo_proxy;
192 add_header X-XFR $geo_proxy_recursive; 180 add_header X-XFR $geo_proxy_recursive;
193 } 181 }
203 191
204 $t->write_file('1', ''); 192 $t->write_file('1', '');
205 $t->write_file('2', ''); 193 $t->write_file('2', '');
206 $t->write_file('geo.conf', '127.0.0.0/8 loopback;'); 194 $t->write_file('geo.conf', '127.0.0.0/8 loopback;');
207 $t->write_file('geo-ranges.conf', '127.0.0.0-127.255.255.255 loopback;'); 195 $t->write_file('geo-ranges.conf', '127.0.0.0-127.255.255.255 loopback;');
208 $t->write_file('base.conf', join('', map {
209 "127." . $_/256/256 % 256 . "." . $_/256 % 256 . "." . $_ % 256 .
210 "-127." . $_/256/256 % 256 . "." . $_/256 % 256 . "." .$_ % 256 . " " .
211 ($_ == 1 ? "loopback" : "range$_") . ";" } (0 .. 100000)));
212 196
213 $t->run(); 197 $t->run();
214 198
215 plan(skip_all => 'no 127.0.0.1 on host') 199 plan(skip_all => 'no 127.0.0.1 on host')
216 if http_get('/1') !~ /X-IP: 127.0.0.1/m; 200 if http_get('/1') !~ /X-IP: 127.0.0.1/m;
217 201
218 $t->plan(24); 202 $t->plan(22);
219 203
220 ############################################################################### 204 ###############################################################################
221 205
222 my $r = http_get('/1'); 206 my $r = http_get('/1');
223 like($r, qr/^X-Geo: loopback/m, 'geo'); 207 like($r, qr/^X-Geo: loopback/m, 'geo');
238 like($r, qr/^X-ABe: loopback/m, 'geo ranges add before'); 222 like($r, qr/^X-ABe: loopback/m, 'geo ranges add before');
239 like($r, qr/^X-AAf: loopback/m, 'geo ranges add after'); 223 like($r, qr/^X-AAf: loopback/m, 'geo ranges add after');
240 like($r, qr/^X-Ins: loopback/m, 'geo ranges insert'); 224 like($r, qr/^X-Ins: loopback/m, 'geo ranges insert');
241 like($r, qr/^X-IBe: loopback/m, 'geo ranges insert before'); 225 like($r, qr/^X-IBe: loopback/m, 'geo ranges insert before');
242 like($r, qr/^X-IAf: loopback/m, 'geo ranges insert after'); 226 like($r, qr/^X-IAf: loopback/m, 'geo ranges insert after');
243 like($r, qr/^X-GBc: loopback/m, 'geo binary base create');
244 like($r, qr/^X-GBi: loopback/m, 'geo binary base include');
245 227
246 like(http_get('/1?ip=192.0.2.1'), qr/^X-Arg: test/m, 'geo from variable'); 228 like(http_get('/1?ip=192.0.2.1'), qr/^X-Arg: test/m, 'geo from variable');
247 like(http_get('/1?ip=10.0.0.1'), qr/^X-Arg: default/m, 'geo default'); 229 like(http_get('/1?ip=10.0.0.1'), qr/^X-Arg: default/m, 'geo default');
248 like(http_get('/1?ip=10.0.0.1'), qr/^X-ARa: default/m, 'geo ranges default'); 230 like(http_get('/1?ip=10.0.0.1'), qr/^X-ARa: default/m, 'geo ranges default');
249 like(http_get('/1?ip=10.13.2.1'), qr/^X-ARa: foo2/m, 'geo ranges add'); 231 like(http_get('/1?ip=10.13.2.1'), qr/^X-ARa: foo2/m, 'geo ranges add');