27 argp = argparse.ArgumentParser(description=
'Run c-ares resolver tests')
28 argp.add_argument(
'--test_bin_path', default=
None, type=str,
29 help=
'Path to gtest test binary to invoke.')
30 argp.add_argument(
'--dns_server_bin_path', default=
None, type=str,
31 help=
'Path to local DNS server python script.')
32 argp.add_argument(
'--records_config_path', default=
None, type=str,
33 help=(
'Path to DNS records yaml file that '
34 'specifies records for the DNS sever. '))
35 argp.add_argument(
'--dns_server_port', default=
None, type=int,
36 help=(
'Port that local DNS server is listening on.'))
37 argp.add_argument(
'--dns_resolver_bin_path', default=
None, type=str,
38 help=(
'Path to the DNS health check utility.'))
39 argp.add_argument(
'--tcp_connect_bin_path', default=
None, type=str,
40 help=(
'Path to the TCP health check utility.'))
41 argp.add_argument(
'--extra_args', default=
'', type=str,
42 help=(
'Comma-separate list of command args to '
43 'plumb through to --test_bin_path'))
44 args = argp.parse_args()
47 sys.stderr.write(
'\n%s: %s\n' % (__file__, msg))
50 if platform.system() ==
'Windows':
51 return [sys.executable] + arg_list
54 cur_resolver = os.environ.get(
'GRPC_DNS_RESOLVER')
55 if cur_resolver
and cur_resolver !=
'ares':
57 'needs to use GRPC_DNS_RESOLVER=ares.'))
60 os.environ.update({
'GRPC_TRACE':
'cares_resolver,cares_address_sorting'})
63 dns_server_subprocess,
64 dns_server_subprocess_output):
65 for i
in range(0, 30):
66 test_runner_log(
'Health check: attempt to connect to DNS server over TCP.')
67 tcp_connect_subprocess = subprocess.Popen(
python_args([
68 args.tcp_connect_bin_path,
69 '--server_host',
'127.0.0.1',
70 '--server_port',
str(args.dns_server_port),
71 '--timeout',
str(1)]))
72 tcp_connect_subprocess.communicate()
73 if tcp_connect_subprocess.returncode == 0:
75 'query to DNS server.'))
76 dns_resolver_subprocess = subprocess.Popen(
python_args([
77 args.dns_resolver_bin_path,
78 '--qname',
'health-check-local-dns-server-is-alive.resolver-tests.grpctestingexp',
79 '--server_host',
'127.0.0.1',
80 '--server_port',
str(args.dns_server_port)]),
81 stdout=subprocess.PIPE)
82 dns_resolver_stdout, _ = dns_resolver_subprocess.communicate(str.encode(
'ascii'))
83 if dns_resolver_subprocess.returncode == 0:
84 if '123.123.123.123'.
encode(
'ascii')
in dns_resolver_stdout:
86 'Successfully reached it over UDP and TCP.'))
89 dns_server_subprocess.kill()
90 dns_server_subprocess.wait()
92 'Exitting without running tests.'))
94 '(merged stdout and stderr) =============')
95 with open(dns_server_subprocess_output,
'r')
as l:
100 dns_server_subprocess_output = tempfile.mktemp()
101 with open(dns_server_subprocess_output,
'w')
as l:
103 args.dns_server_bin_path,
104 '--port',
str(args.dns_server_port),
105 '--records_config_path', args.records_config_path]),
106 stdin=subprocess.PIPE,
112 dns_server_subprocess.kill()
113 dns_server_subprocess.wait()
116 signal.signal(signal.SIGINT, _quit_on_signal)
117 signal.signal(signal.SIGTERM, _quit_on_signal)
119 dns_server_subprocess,
120 dns_server_subprocess_output)
121 num_test_failures = 0
123 test_runner_log(
'Run test with target: %s' %
'no-srv-ipv4-single-target.resolver-tests-version-4.grpctestingexp.')
124 current_test_subprocess = subprocess.Popen([
126 '--target_name',
'no-srv-ipv4-single-target.resolver-tests-version-4.grpctestingexp.',
127 '--do_ordered_address_comparison',
'False',
128 '--expected_addrs',
'5.5.5.5:443,False',
129 '--expected_chosen_service_config',
'',
130 '--expected_service_config_error',
'',
131 '--expected_lb_policy',
'',
132 '--enable_srv_queries',
'True',
133 '--enable_txt_queries',
'True',
134 '--inject_broken_nameserver_list',
'False',
135 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
136 ] + args.extra_args.split(
','))
137 current_test_subprocess.communicate()
138 if current_test_subprocess.returncode != 0:
139 num_test_failures += 1
141 test_runner_log(
'Run test with target: %s' %
'srv-ipv4-single-target.resolver-tests-version-4.grpctestingexp.')
142 current_test_subprocess = subprocess.Popen([
144 '--target_name',
'srv-ipv4-single-target.resolver-tests-version-4.grpctestingexp.',
145 '--do_ordered_address_comparison',
'False',
146 '--expected_addrs',
'1.2.3.4:1234,True',
147 '--expected_chosen_service_config',
'',
148 '--expected_service_config_error',
'',
149 '--expected_lb_policy',
'',
150 '--enable_srv_queries',
'True',
151 '--enable_txt_queries',
'True',
152 '--inject_broken_nameserver_list',
'False',
153 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
154 ] + args.extra_args.split(
','))
155 current_test_subprocess.communicate()
156 if current_test_subprocess.returncode != 0:
157 num_test_failures += 1
159 test_runner_log(
'Run test with target: %s' %
'srv-ipv4-multi-target.resolver-tests-version-4.grpctestingexp.')
160 current_test_subprocess = subprocess.Popen([
162 '--target_name',
'srv-ipv4-multi-target.resolver-tests-version-4.grpctestingexp.',
163 '--do_ordered_address_comparison',
'False',
164 '--expected_addrs',
'1.2.3.5:1234,True;1.2.3.6:1234,True;1.2.3.7:1234,True',
165 '--expected_chosen_service_config',
'',
166 '--expected_service_config_error',
'',
167 '--expected_lb_policy',
'',
168 '--enable_srv_queries',
'True',
169 '--enable_txt_queries',
'True',
170 '--inject_broken_nameserver_list',
'False',
171 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
172 ] + args.extra_args.split(
','))
173 current_test_subprocess.communicate()
174 if current_test_subprocess.returncode != 0:
175 num_test_failures += 1
177 test_runner_log(
'Run test with target: %s' %
'srv-ipv6-single-target.resolver-tests-version-4.grpctestingexp.')
178 current_test_subprocess = subprocess.Popen([
180 '--target_name',
'srv-ipv6-single-target.resolver-tests-version-4.grpctestingexp.',
181 '--do_ordered_address_comparison',
'False',
182 '--expected_addrs',
'[2607:f8b0:400a:801::1001]:1234,True',
183 '--expected_chosen_service_config',
'',
184 '--expected_service_config_error',
'',
185 '--expected_lb_policy',
'',
186 '--enable_srv_queries',
'True',
187 '--enable_txt_queries',
'True',
188 '--inject_broken_nameserver_list',
'False',
189 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
190 ] + args.extra_args.split(
','))
191 current_test_subprocess.communicate()
192 if current_test_subprocess.returncode != 0:
193 num_test_failures += 1
195 test_runner_log(
'Run test with target: %s' %
'srv-ipv6-multi-target.resolver-tests-version-4.grpctestingexp.')
196 current_test_subprocess = subprocess.Popen([
198 '--target_name',
'srv-ipv6-multi-target.resolver-tests-version-4.grpctestingexp.',
199 '--do_ordered_address_comparison',
'False',
200 '--expected_addrs',
'[2607:f8b0:400a:801::1002]:1234,True;[2607:f8b0:400a:801::1003]:1234,True;[2607:f8b0:400a:801::1004]:1234,True',
201 '--expected_chosen_service_config',
'',
202 '--expected_service_config_error',
'',
203 '--expected_lb_policy',
'',
204 '--enable_srv_queries',
'True',
205 '--enable_txt_queries',
'True',
206 '--inject_broken_nameserver_list',
'False',
207 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
208 ] + args.extra_args.split(
','))
209 current_test_subprocess.communicate()
210 if current_test_subprocess.returncode != 0:
211 num_test_failures += 1
213 test_runner_log(
'Run test with target: %s' %
'srv-ipv4-simple-service-config.resolver-tests-version-4.grpctestingexp.')
214 current_test_subprocess = subprocess.Popen([
216 '--target_name',
'srv-ipv4-simple-service-config.resolver-tests-version-4.grpctestingexp.',
217 '--do_ordered_address_comparison',
'False',
218 '--expected_addrs',
'1.2.3.4:1234,True',
219 '--expected_chosen_service_config',
'{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}',
220 '--expected_service_config_error',
'',
221 '--expected_lb_policy',
'round_robin',
222 '--enable_srv_queries',
'True',
223 '--enable_txt_queries',
'True',
224 '--inject_broken_nameserver_list',
'False',
225 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
226 ] + args.extra_args.split(
','))
227 current_test_subprocess.communicate()
228 if current_test_subprocess.returncode != 0:
229 num_test_failures += 1
231 test_runner_log(
'Run test with target: %s' %
'ipv4-no-srv-simple-service-config.resolver-tests-version-4.grpctestingexp.')
232 current_test_subprocess = subprocess.Popen([
234 '--target_name',
'ipv4-no-srv-simple-service-config.resolver-tests-version-4.grpctestingexp.',
235 '--do_ordered_address_comparison',
'False',
236 '--expected_addrs',
'1.2.3.4:443,False',
237 '--expected_chosen_service_config',
'{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"NoSrvSimpleService"}],"waitForReady":true}]}',
238 '--expected_service_config_error',
'',
239 '--expected_lb_policy',
'round_robin',
240 '--enable_srv_queries',
'True',
241 '--enable_txt_queries',
'True',
242 '--inject_broken_nameserver_list',
'False',
243 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
244 ] + args.extra_args.split(
','))
245 current_test_subprocess.communicate()
246 if current_test_subprocess.returncode != 0:
247 num_test_failures += 1
249 test_runner_log(
'Run test with target: %s' %
'ipv4-no-config-for-cpp.resolver-tests-version-4.grpctestingexp.')
250 current_test_subprocess = subprocess.Popen([
252 '--target_name',
'ipv4-no-config-for-cpp.resolver-tests-version-4.grpctestingexp.',
253 '--do_ordered_address_comparison',
'False',
254 '--expected_addrs',
'1.2.3.4:443,False',
255 '--expected_chosen_service_config',
'',
256 '--expected_service_config_error',
'',
257 '--expected_lb_policy',
'',
258 '--enable_srv_queries',
'True',
259 '--enable_txt_queries',
'True',
260 '--inject_broken_nameserver_list',
'False',
261 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
262 ] + args.extra_args.split(
','))
263 current_test_subprocess.communicate()
264 if current_test_subprocess.returncode != 0:
265 num_test_failures += 1
267 test_runner_log(
'Run test with target: %s' %
'ipv4-cpp-config-has-zero-percentage.resolver-tests-version-4.grpctestingexp.')
268 current_test_subprocess = subprocess.Popen([
270 '--target_name',
'ipv4-cpp-config-has-zero-percentage.resolver-tests-version-4.grpctestingexp.',
271 '--do_ordered_address_comparison',
'False',
272 '--expected_addrs',
'1.2.3.4:443,False',
273 '--expected_chosen_service_config',
'',
274 '--expected_service_config_error',
'',
275 '--expected_lb_policy',
'',
276 '--enable_srv_queries',
'True',
277 '--enable_txt_queries',
'True',
278 '--inject_broken_nameserver_list',
'False',
279 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
280 ] + args.extra_args.split(
','))
281 current_test_subprocess.communicate()
282 if current_test_subprocess.returncode != 0:
283 num_test_failures += 1
285 test_runner_log(
'Run test with target: %s' %
'ipv4-second-language-is-cpp.resolver-tests-version-4.grpctestingexp.')
286 current_test_subprocess = subprocess.Popen([
288 '--target_name',
'ipv4-second-language-is-cpp.resolver-tests-version-4.grpctestingexp.',
289 '--do_ordered_address_comparison',
'False',
290 '--expected_addrs',
'1.2.3.4:443,False',
291 '--expected_chosen_service_config',
'{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"CppService"}],"waitForReady":true}]}',
292 '--expected_service_config_error',
'',
293 '--expected_lb_policy',
'round_robin',
294 '--enable_srv_queries',
'True',
295 '--enable_txt_queries',
'True',
296 '--inject_broken_nameserver_list',
'False',
297 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
298 ] + args.extra_args.split(
','))
299 current_test_subprocess.communicate()
300 if current_test_subprocess.returncode != 0:
301 num_test_failures += 1
303 test_runner_log(
'Run test with target: %s' %
'ipv4-config-with-percentages.resolver-tests-version-4.grpctestingexp.')
304 current_test_subprocess = subprocess.Popen([
306 '--target_name',
'ipv4-config-with-percentages.resolver-tests-version-4.grpctestingexp.',
307 '--do_ordered_address_comparison',
'False',
308 '--expected_addrs',
'1.2.3.4:443,False',
309 '--expected_chosen_service_config',
'{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"AlwaysPickedService"}],"waitForReady":true}]}',
310 '--expected_service_config_error',
'',
311 '--expected_lb_policy',
'round_robin',
312 '--enable_srv_queries',
'True',
313 '--enable_txt_queries',
'True',
314 '--inject_broken_nameserver_list',
'False',
315 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
316 ] + args.extra_args.split(
','))
317 current_test_subprocess.communicate()
318 if current_test_subprocess.returncode != 0:
319 num_test_failures += 1
321 test_runner_log(
'Run test with target: %s' %
'srv-ipv4-target-has-backend-and-balancer.resolver-tests-version-4.grpctestingexp.')
322 current_test_subprocess = subprocess.Popen([
324 '--target_name',
'srv-ipv4-target-has-backend-and-balancer.resolver-tests-version-4.grpctestingexp.',
325 '--do_ordered_address_comparison',
'False',
326 '--expected_addrs',
'1.2.3.4:1234,True;1.2.3.4:443,False',
327 '--expected_chosen_service_config',
'',
328 '--expected_service_config_error',
'',
329 '--expected_lb_policy',
'',
330 '--enable_srv_queries',
'True',
331 '--enable_txt_queries',
'True',
332 '--inject_broken_nameserver_list',
'False',
333 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
334 ] + args.extra_args.split(
','))
335 current_test_subprocess.communicate()
336 if current_test_subprocess.returncode != 0:
337 num_test_failures += 1
339 test_runner_log(
'Run test with target: %s' %
'srv-ipv6-target-has-backend-and-balancer.resolver-tests-version-4.grpctestingexp.')
340 current_test_subprocess = subprocess.Popen([
342 '--target_name',
'srv-ipv6-target-has-backend-and-balancer.resolver-tests-version-4.grpctestingexp.',
343 '--do_ordered_address_comparison',
'False',
344 '--expected_addrs',
'[2607:f8b0:400a:801::1002]:1234,True;[2607:f8b0:400a:801::1002]:443,False',
345 '--expected_chosen_service_config',
'',
346 '--expected_service_config_error',
'',
347 '--expected_lb_policy',
'',
348 '--enable_srv_queries',
'True',
349 '--enable_txt_queries',
'True',
350 '--inject_broken_nameserver_list',
'False',
351 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
352 ] + args.extra_args.split(
','))
353 current_test_subprocess.communicate()
354 if current_test_subprocess.returncode != 0:
355 num_test_failures += 1
357 test_runner_log(
'Run test with target: %s' %
'ipv4-config-causing-fallback-to-tcp.resolver-tests-version-4.grpctestingexp.')
358 current_test_subprocess = subprocess.Popen([
360 '--target_name',
'ipv4-config-causing-fallback-to-tcp.resolver-tests-version-4.grpctestingexp.',
361 '--do_ordered_address_comparison',
'False',
362 '--expected_addrs',
'1.2.3.4:443,False',
363 '--expected_chosen_service_config',
'{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooTwo","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooThree","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFour","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFive","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooSix","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooSeven","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooEight","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooNine","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooTen","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooEleven","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooTwelve","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooThirteen","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFourteen","service":"SimpleService"}],"waitForReady":true},{"name":[{"method":"FooFifteen","service":"SimpleService"}],"waitForReady":true}]}',
364 '--expected_service_config_error',
'',
365 '--expected_lb_policy',
'',
366 '--enable_srv_queries',
'True',
367 '--enable_txt_queries',
'True',
368 '--inject_broken_nameserver_list',
'False',
369 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
370 ] + args.extra_args.split(
','))
371 current_test_subprocess.communicate()
372 if current_test_subprocess.returncode != 0:
373 num_test_failures += 1
375 test_runner_log(
'Run test with target: %s' %
'srv-ipv4-single-target-srv-disabled.resolver-tests-version-4.grpctestingexp.')
376 current_test_subprocess = subprocess.Popen([
378 '--target_name',
'srv-ipv4-single-target-srv-disabled.resolver-tests-version-4.grpctestingexp.',
379 '--do_ordered_address_comparison',
'False',
380 '--expected_addrs',
'2.3.4.5:443,False',
381 '--expected_chosen_service_config',
'',
382 '--expected_service_config_error',
'',
383 '--expected_lb_policy',
'',
384 '--enable_srv_queries',
'False',
385 '--enable_txt_queries',
'True',
386 '--inject_broken_nameserver_list',
'False',
387 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
388 ] + args.extra_args.split(
','))
389 current_test_subprocess.communicate()
390 if current_test_subprocess.returncode != 0:
391 num_test_failures += 1
393 test_runner_log(
'Run test with target: %s' %
'srv-ipv4-multi-target-srv-disabled.resolver-tests-version-4.grpctestingexp.')
394 current_test_subprocess = subprocess.Popen([
396 '--target_name',
'srv-ipv4-multi-target-srv-disabled.resolver-tests-version-4.grpctestingexp.',
397 '--do_ordered_address_comparison',
'False',
398 '--expected_addrs',
'9.2.3.5:443,False;9.2.3.6:443,False;9.2.3.7:443,False',
399 '--expected_chosen_service_config',
'',
400 '--expected_service_config_error',
'',
401 '--expected_lb_policy',
'',
402 '--enable_srv_queries',
'False',
403 '--enable_txt_queries',
'True',
404 '--inject_broken_nameserver_list',
'False',
405 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
406 ] + args.extra_args.split(
','))
407 current_test_subprocess.communicate()
408 if current_test_subprocess.returncode != 0:
409 num_test_failures += 1
411 test_runner_log(
'Run test with target: %s' %
'srv-ipv6-single-target-srv-disabled.resolver-tests-version-4.grpctestingexp.')
412 current_test_subprocess = subprocess.Popen([
414 '--target_name',
'srv-ipv6-single-target-srv-disabled.resolver-tests-version-4.grpctestingexp.',
415 '--do_ordered_address_comparison',
'False',
416 '--expected_addrs',
'[2600::1001]:443,False',
417 '--expected_chosen_service_config',
'',
418 '--expected_service_config_error',
'',
419 '--expected_lb_policy',
'',
420 '--enable_srv_queries',
'False',
421 '--enable_txt_queries',
'True',
422 '--inject_broken_nameserver_list',
'False',
423 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
424 ] + args.extra_args.split(
','))
425 current_test_subprocess.communicate()
426 if current_test_subprocess.returncode != 0:
427 num_test_failures += 1
429 test_runner_log(
'Run test with target: %s' %
'srv-ipv6-multi-target-srv-disabled.resolver-tests-version-4.grpctestingexp.')
430 current_test_subprocess = subprocess.Popen([
432 '--target_name',
'srv-ipv6-multi-target-srv-disabled.resolver-tests-version-4.grpctestingexp.',
433 '--do_ordered_address_comparison',
'False',
434 '--expected_addrs',
'[2600::1002]:443,False;[2600::1003]:443,False;[2600::1004]:443,False',
435 '--expected_chosen_service_config',
'',
436 '--expected_service_config_error',
'',
437 '--expected_lb_policy',
'',
438 '--enable_srv_queries',
'False',
439 '--enable_txt_queries',
'True',
440 '--inject_broken_nameserver_list',
'False',
441 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
442 ] + args.extra_args.split(
','))
443 current_test_subprocess.communicate()
444 if current_test_subprocess.returncode != 0:
445 num_test_failures += 1
447 test_runner_log(
'Run test with target: %s' %
'srv-ipv4-simple-service-config-srv-disabled.resolver-tests-version-4.grpctestingexp.')
448 current_test_subprocess = subprocess.Popen([
450 '--target_name',
'srv-ipv4-simple-service-config-srv-disabled.resolver-tests-version-4.grpctestingexp.',
451 '--do_ordered_address_comparison',
'False',
452 '--expected_addrs',
'5.5.3.4:443,False',
453 '--expected_chosen_service_config',
'{"loadBalancingPolicy":"round_robin","methodConfig":[{"name":[{"method":"Foo","service":"SimpleService"}],"waitForReady":true}]}',
454 '--expected_service_config_error',
'',
455 '--expected_lb_policy',
'round_robin',
456 '--enable_srv_queries',
'False',
457 '--enable_txt_queries',
'True',
458 '--inject_broken_nameserver_list',
'False',
459 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
460 ] + args.extra_args.split(
','))
461 current_test_subprocess.communicate()
462 if current_test_subprocess.returncode != 0:
463 num_test_failures += 1
465 test_runner_log(
'Run test with target: %s' %
'srv-ipv4-simple-service-config-txt-disabled.resolver-tests-version-4.grpctestingexp.')
466 current_test_subprocess = subprocess.Popen([
468 '--target_name',
'srv-ipv4-simple-service-config-txt-disabled.resolver-tests-version-4.grpctestingexp.',
469 '--do_ordered_address_comparison',
'False',
470 '--expected_addrs',
'1.2.3.4:1234,True',
471 '--expected_chosen_service_config',
'',
472 '--expected_service_config_error',
'',
473 '--expected_lb_policy',
'',
474 '--enable_srv_queries',
'True',
475 '--enable_txt_queries',
'False',
476 '--inject_broken_nameserver_list',
'False',
477 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
478 ] + args.extra_args.split(
','))
479 current_test_subprocess.communicate()
480 if current_test_subprocess.returncode != 0:
481 num_test_failures += 1
483 test_runner_log(
'Run test with target: %s' %
'ipv4-cpp-config-has-zero-percentage-txt-disabled.resolver-tests-version-4.grpctestingexp.')
484 current_test_subprocess = subprocess.Popen([
486 '--target_name',
'ipv4-cpp-config-has-zero-percentage-txt-disabled.resolver-tests-version-4.grpctestingexp.',
487 '--do_ordered_address_comparison',
'False',
488 '--expected_addrs',
'1.2.3.4:443,False',
489 '--expected_chosen_service_config',
'',
490 '--expected_service_config_error',
'',
491 '--expected_lb_policy',
'',
492 '--enable_srv_queries',
'True',
493 '--enable_txt_queries',
'False',
494 '--inject_broken_nameserver_list',
'False',
495 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
496 ] + args.extra_args.split(
','))
497 current_test_subprocess.communicate()
498 if current_test_subprocess.returncode != 0:
499 num_test_failures += 1
501 test_runner_log(
'Run test with target: %s' %
'ipv4-second-language-is-cpp-txt-disabled.resolver-tests-version-4.grpctestingexp.')
502 current_test_subprocess = subprocess.Popen([
504 '--target_name',
'ipv4-second-language-is-cpp-txt-disabled.resolver-tests-version-4.grpctestingexp.',
505 '--do_ordered_address_comparison',
'False',
506 '--expected_addrs',
'1.2.3.4:443,False',
507 '--expected_chosen_service_config',
'',
508 '--expected_service_config_error',
'',
509 '--expected_lb_policy',
'',
510 '--enable_srv_queries',
'True',
511 '--enable_txt_queries',
'False',
512 '--inject_broken_nameserver_list',
'False',
513 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
514 ] + args.extra_args.split(
','))
515 current_test_subprocess.communicate()
516 if current_test_subprocess.returncode != 0:
517 num_test_failures += 1
519 test_runner_log(
'Run test with target: %s' %
'ipv4-svc_cfg_bad_json.resolver-tests-version-4.grpctestingexp.')
520 current_test_subprocess = subprocess.Popen([
522 '--target_name',
'ipv4-svc_cfg_bad_json.resolver-tests-version-4.grpctestingexp.',
523 '--do_ordered_address_comparison',
'False',
524 '--expected_addrs',
'1.2.3.4:443,False',
525 '--expected_chosen_service_config',
'',
526 '--expected_service_config_error',
'JSON parse error',
527 '--expected_lb_policy',
'',
528 '--enable_srv_queries',
'True',
529 '--enable_txt_queries',
'True',
530 '--inject_broken_nameserver_list',
'False',
531 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
532 ] + args.extra_args.split(
','))
533 current_test_subprocess.communicate()
534 if current_test_subprocess.returncode != 0:
535 num_test_failures += 1
537 test_runner_log(
'Run test with target: %s' %
'ipv4-svc_cfg_bad_client_language.resolver-tests-version-4.grpctestingexp.')
538 current_test_subprocess = subprocess.Popen([
540 '--target_name',
'ipv4-svc_cfg_bad_client_language.resolver-tests-version-4.grpctestingexp.',
541 '--do_ordered_address_comparison',
'False',
542 '--expected_addrs',
'1.2.3.4:443,False',
543 '--expected_chosen_service_config',
'',
544 '--expected_service_config_error',
'field:clientLanguage error:should be of type array',
545 '--expected_lb_policy',
'',
546 '--enable_srv_queries',
'True',
547 '--enable_txt_queries',
'True',
548 '--inject_broken_nameserver_list',
'False',
549 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
550 ] + args.extra_args.split(
','))
551 current_test_subprocess.communicate()
552 if current_test_subprocess.returncode != 0:
553 num_test_failures += 1
555 test_runner_log(
'Run test with target: %s' %
'ipv4-svc_cfg_bad_percentage.resolver-tests-version-4.grpctestingexp.')
556 current_test_subprocess = subprocess.Popen([
558 '--target_name',
'ipv4-svc_cfg_bad_percentage.resolver-tests-version-4.grpctestingexp.',
559 '--do_ordered_address_comparison',
'False',
560 '--expected_addrs',
'1.2.3.4:443,False',
561 '--expected_chosen_service_config',
'',
562 '--expected_service_config_error',
'field:percentage error:should be of type number',
563 '--expected_lb_policy',
'',
564 '--enable_srv_queries',
'True',
565 '--enable_txt_queries',
'True',
566 '--inject_broken_nameserver_list',
'False',
567 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
568 ] + args.extra_args.split(
','))
569 current_test_subprocess.communicate()
570 if current_test_subprocess.returncode != 0:
571 num_test_failures += 1
573 test_runner_log(
'Run test with target: %s' %
'ipv4-svc_cfg_bad_wait_for_ready.resolver-tests-version-4.grpctestingexp.')
574 current_test_subprocess = subprocess.Popen([
576 '--target_name',
'ipv4-svc_cfg_bad_wait_for_ready.resolver-tests-version-4.grpctestingexp.',
577 '--do_ordered_address_comparison',
'False',
578 '--expected_addrs',
'1.2.3.4:443,False',
579 '--expected_chosen_service_config',
'',
580 '--expected_service_config_error',
'field:waitForReady error:Type should be true/false',
581 '--expected_lb_policy',
'',
582 '--enable_srv_queries',
'True',
583 '--enable_txt_queries',
'True',
584 '--inject_broken_nameserver_list',
'False',
585 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
586 ] + args.extra_args.split(
','))
587 current_test_subprocess.communicate()
588 if current_test_subprocess.returncode != 0:
589 num_test_failures += 1
591 test_runner_log(
'Run test with target: %s' %
'no-srv-ipv4-single-target-inject-broken-nameservers.resolver-tests-version-4.grpctestingexp.')
592 current_test_subprocess = subprocess.Popen([
594 '--target_name',
'no-srv-ipv4-single-target-inject-broken-nameservers.resolver-tests-version-4.grpctestingexp.',
595 '--do_ordered_address_comparison',
'False',
596 '--expected_addrs',
'5.5.5.5:443,False',
597 '--expected_chosen_service_config',
'',
598 '--expected_service_config_error',
'',
599 '--expected_lb_policy',
'',
600 '--enable_srv_queries',
'True',
601 '--enable_txt_queries',
'True',
602 '--inject_broken_nameserver_list',
'True',
603 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
604 ] + args.extra_args.split(
','))
605 current_test_subprocess.communicate()
606 if current_test_subprocess.returncode != 0:
607 num_test_failures += 1
609 test_runner_log(
'Run test with target: %s' %
'ipv4-config-causing-fallback-to-tcp-inject-broken-nameservers.resolver-tests-version-4.grpctestingexp.')
610 current_test_subprocess = subprocess.Popen([
612 '--target_name',
'ipv4-config-causing-fallback-to-tcp-inject-broken-nameservers.resolver-tests-version-4.grpctestingexp.',
613 '--do_ordered_address_comparison',
'False',
614 '--expected_addrs',
'1.2.3.4:443,False',
615 '--expected_chosen_service_config',
'',
616 '--expected_service_config_error',
'field:loadBalancingPolicy error:type should be string',
617 '--expected_lb_policy',
'',
618 '--enable_srv_queries',
'True',
619 '--enable_txt_queries',
'True',
620 '--inject_broken_nameserver_list',
'True',
621 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
622 ] + args.extra_args.split(
','))
623 current_test_subprocess.communicate()
624 if current_test_subprocess.returncode != 0:
625 num_test_failures += 1
627 test_runner_log(
'Run test with target: %s' %
'load-balanced-name-with-dualstack-balancer.resolver-tests-version-4.grpctestingexp.')
628 current_test_subprocess = subprocess.Popen([
630 '--target_name',
'load-balanced-name-with-dualstack-balancer.resolver-tests-version-4.grpctestingexp.',
631 '--do_ordered_address_comparison',
'True',
632 '--expected_addrs',
'[::1]:1234,True;[2002::1111]:1234,True',
633 '--expected_chosen_service_config',
'',
634 '--expected_service_config_error',
'',
635 '--expected_lb_policy',
'',
636 '--enable_srv_queries',
'True',
637 '--enable_txt_queries',
'True',
638 '--inject_broken_nameserver_list',
'False',
639 '--local_dns_server_address',
'127.0.0.1:%d' % args.dns_server_port
640 ] + args.extra_args.split(
','))
641 current_test_subprocess.communicate()
642 if current_test_subprocess.returncode != 0:
643 num_test_failures += 1
646 dns_server_subprocess.kill()
647 dns_server_subprocess.wait()
649 sys.exit(num_test_failures)