Mercurial > hg > nginx-tests
comparison 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 | 64 |
65 geo $arg_ip $geo_arg_ranges { | 65 geo $arg_ip $geo_arg_ranges { |
66 ranges; | 66 ranges; |
67 default default; | 67 default default; |
68 127.0.0.0-127.0.0.1 loopback; | |
68 | 69 |
69 # ranges with two /16 networks | 70 # ranges with two /16 networks |
70 # the latter network has greater two least octets | 71 # the latter network has greater two least octets |
71 # (see 1301a58b5dac for details) | 72 # (see 1301a58b5dac for details) |
72 10.10.3.0-10.11.2.255 foo; | 73 10.10.3.0-10.11.2.255 foo; |
74 10.12.3.0-10.13.2.255 foo2; | |
73 delete 10.10.3.0-10.11.2.255; | 75 delete 10.10.3.0-10.11.2.255; |
74 } | 76 } |
75 | 77 |
76 geo $geo_proxy { | 78 geo $geo_proxy { |
77 default default; | 79 default default; |
117 ranges; | 119 ranges; |
118 default default; | 120 default default; |
119 127.0.0.0-127.1.0.0 loopback; | 121 127.0.0.0-127.1.0.0 loopback; |
120 delete 127.0.0.0-127.1.0.0; | 122 delete 127.0.0.0-127.1.0.0; |
121 } | 123 } |
124 | |
125 geo $geo_before { | |
126 ranges; | |
127 default default; | |
128 127.0.0.1-127.0.0.255 loopback; | |
129 127.0.0.0-127.0.0.0 test; | |
130 } | |
131 | |
132 geo $geo_after { | |
133 ranges; | |
134 default default; | |
135 127.0.0.0-127.0.0.1 loopback; | |
136 127.0.0.2-127.0.0.255 test; | |
137 } | |
138 | |
139 geo $geo_insert { | |
140 ranges; | |
141 default default; | |
142 127.0.0.0-127.0.0.255 test; | |
143 127.0.0.1-127.0.0.2 test2; | |
144 127.0.0.1-127.0.0.1 loopback; | |
145 } | |
146 | |
147 geo $geo_insert_before { | |
148 ranges; | |
149 default default; | |
150 127.0.0.0-127.0.0.255 test; | |
151 127.0.0.0-127.0.0.1 loopback; | |
152 } | |
153 | |
154 geo $geo_insert_after { | |
155 ranges; | |
156 default default; | |
157 127.0.0.0-127.0.0.255 test; | |
158 127.0.0.1-127.0.0.255 loopback; | |
159 } | |
122 | 160 |
123 server { | 161 server { |
124 listen 127.0.0.1:8080; | 162 listen 127.0.0.1:8080; |
125 server_name localhost; | 163 server_name localhost; |
126 | 164 |
129 add_header X-Geo $geo; | 167 add_header X-Geo $geo; |
130 add_header X-Inc $geo_include; | 168 add_header X-Inc $geo_include; |
131 add_header X-Del $geo_delete; | 169 add_header X-Del $geo_delete; |
132 add_header X-Ran $geo_ranges; | 170 add_header X-Ran $geo_ranges; |
133 add_header X-RIn $geo_ranges_include; | 171 add_header X-RIn $geo_ranges_include; |
172 add_header X-ABe $geo_before; | |
173 add_header X-AAf $geo_after; | |
174 add_header X-Ins $geo_insert; | |
175 add_header X-IBe $geo_insert_before; | |
176 add_header X-IAf $geo_insert_after; | |
134 add_header X-Arg $geo_from_arg; | 177 add_header X-Arg $geo_from_arg; |
135 add_header X-ARa $geo_arg_ranges; | 178 add_header X-ARa $geo_arg_ranges; |
136 add_header X-XFF $geo_proxy; | 179 add_header X-XFF $geo_proxy; |
137 add_header X-XFR $geo_proxy_recursive; | 180 add_header X-XFR $geo_proxy_recursive; |
138 } | 181 } |
154 $t->run(); | 197 $t->run(); |
155 | 198 |
156 plan(skip_all => 'no 127.0.0.1 on host') | 199 plan(skip_all => 'no 127.0.0.1 on host') |
157 if http_get('/1') !~ /X-IP: 127.0.0.1/m; | 200 if http_get('/1') !~ /X-IP: 127.0.0.1/m; |
158 | 201 |
159 $t->plan(15); | 202 $t->plan(22); |
160 | 203 |
161 ############################################################################### | 204 ############################################################################### |
162 | 205 |
163 my $r = http_get('/1'); | 206 my $r = http_get('/1'); |
164 like($r, qr/^X-Geo: loopback/m, 'geo'); | 207 like($r, qr/^X-Geo: loopback/m, 'geo'); |
174 like(http_get('/2'), qr/^X-RDe: default/m, 'geo ranges delete'); | 217 like(http_get('/2'), qr/^X-RDe: default/m, 'geo ranges delete'); |
175 like(http_get('/2'), qr/^X-RD2: default/m, 'geo ranges delete 2'); | 218 like(http_get('/2'), qr/^X-RD2: default/m, 'geo ranges delete 2'); |
176 | 219 |
177 } | 220 } |
178 | 221 |
222 like($r, qr/^X-ABe: loopback/m, 'geo ranges add before'); | |
223 like($r, qr/^X-AAf: loopback/m, 'geo ranges add after'); | |
224 like($r, qr/^X-Ins: loopback/m, 'geo ranges insert'); | |
225 like($r, qr/^X-IBe: loopback/m, 'geo ranges insert before'); | |
226 like($r, qr/^X-IAf: loopback/m, 'geo ranges insert after'); | |
227 | |
179 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'); |
180 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'); |
230 like(http_get('/1?ip=10.0.0.1'), qr/^X-ARa: default/m, 'geo ranges default'); | |
231 like(http_get('/1?ip=10.13.2.1'), qr/^X-ARa: foo2/m, 'geo ranges add'); | |
181 | 232 |
182 TODO: { | 233 TODO: { |
183 todo_skip 'use-after-free', 1 unless $ENV{TEST_NGINX_UNSAFE} | 234 todo_skip 'use-after-free', 1 unless $ENV{TEST_NGINX_UNSAFE} |
184 or $t->has_version('1.11.4'); | 235 or $t->has_version('1.11.4'); |
185 | 236 |