Mercurial > hg > nginx-tests
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'); |