Mercurial > hg > nginx-tests
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 ############################################################################### |