resolver_component_tests_runner.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 # Copyright 2015 gRPC authors.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 
16 # This file is auto-generated
17 
18 import argparse
19 import os
20 import platform
21 import signal
22 import subprocess
23 import sys
24 import tempfile
25 import time
26 
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()
45 
46 def test_runner_log(msg):
47  sys.stderr.write('\n%s: %s\n' % (__file__, msg))
48 
49 def python_args(arg_list):
50  if platform.system() == 'Windows':
51  return [sys.executable] + arg_list
52  return arg_list
53 
54 cur_resolver = os.environ.get('GRPC_DNS_RESOLVER')
55 if cur_resolver and cur_resolver != 'ares':
56  test_runner_log(('WARNING: cur resolver set to %s. This set of tests '
57  'needs to use GRPC_DNS_RESOLVER=ares.'))
58  test_runner_log('Exit 1 without running tests.')
59  sys.exit(1)
60 os.environ.update({'GRPC_TRACE': 'cares_resolver,cares_address_sorting'})
61 
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:
74  test_runner_log(('Health check: attempt to make an A-record '
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:
85  test_runner_log(('DNS server is up! '
86  'Successfully reached it over UDP and TCP.'))
87  return
88  time.sleep(0.1)
89  dns_server_subprocess.kill()
90  dns_server_subprocess.wait()
91  test_runner_log(('Failed to reach DNS server over TCP and/or UDP. '
92  'Exitting without running tests.'))
93  test_runner_log('======= DNS server stdout '
94  '(merged stdout and stderr) =============')
95  with open(dns_server_subprocess_output, 'r') as l:
96  test_runner_log(l.read())
97  test_runner_log('======= end DNS server output=========')
98  sys.exit(1)
99 
100 dns_server_subprocess_output = tempfile.mktemp()
101 with open(dns_server_subprocess_output, 'w') as l:
102  dns_server_subprocess = subprocess.Popen(python_args([
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,
107  stdout=l,
108  stderr=l)
109 
110 def _quit_on_signal(signum, _frame):
111  test_runner_log('Received signal: %d' % signum)
112  dns_server_subprocess.kill()
113  dns_server_subprocess.wait()
114  sys.exit(1)
115 
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
122 
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([
125  args.test_bin_path,
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
140 
141 test_runner_log('Run test with target: %s' % 'srv-ipv4-single-target.resolver-tests-version-4.grpctestingexp.')
142 current_test_subprocess = subprocess.Popen([
143  args.test_bin_path,
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
158 
159 test_runner_log('Run test with target: %s' % 'srv-ipv4-multi-target.resolver-tests-version-4.grpctestingexp.')
160 current_test_subprocess = subprocess.Popen([
161  args.test_bin_path,
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
176 
177 test_runner_log('Run test with target: %s' % 'srv-ipv6-single-target.resolver-tests-version-4.grpctestingexp.')
178 current_test_subprocess = subprocess.Popen([
179  args.test_bin_path,
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
194 
195 test_runner_log('Run test with target: %s' % 'srv-ipv6-multi-target.resolver-tests-version-4.grpctestingexp.')
196 current_test_subprocess = subprocess.Popen([
197  args.test_bin_path,
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
212 
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([
215  args.test_bin_path,
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
230 
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([
233  args.test_bin_path,
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
248 
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([
251  args.test_bin_path,
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
266 
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([
269  args.test_bin_path,
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
284 
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([
287  args.test_bin_path,
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
302 
303 test_runner_log('Run test with target: %s' % 'ipv4-config-with-percentages.resolver-tests-version-4.grpctestingexp.')
304 current_test_subprocess = subprocess.Popen([
305  args.test_bin_path,
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
320 
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([
323  args.test_bin_path,
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
338 
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([
341  args.test_bin_path,
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
356 
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([
359  args.test_bin_path,
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
374 
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([
377  args.test_bin_path,
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
392 
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([
395  args.test_bin_path,
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
410 
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([
413  args.test_bin_path,
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
428 
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([
431  args.test_bin_path,
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
446 
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([
449  args.test_bin_path,
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
464 
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([
467  args.test_bin_path,
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
482 
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([
485  args.test_bin_path,
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
500 
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([
503  args.test_bin_path,
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
518 
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([
521  args.test_bin_path,
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
536 
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([
539  args.test_bin_path,
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
554 
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([
557  args.test_bin_path,
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
572 
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([
575  args.test_bin_path,
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
590 
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([
593  args.test_bin_path,
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
608 
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([
611  args.test_bin_path,
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
626 
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([
629  args.test_bin_path,
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
644 
645 test_runner_log('now kill DNS server')
646 dns_server_subprocess.kill()
647 dns_server_subprocess.wait()
648 test_runner_log('%d tests failed.' % num_test_failures)
649 sys.exit(num_test_failures)
xds_interop_client.str
str
Definition: xds_interop_client.py:487
resolver_component_tests_runner.python_args
def python_args(arg_list)
Definition: resolver_component_tests_runner.py:49
capstone.range
range
Definition: third_party/bloaty/third_party/capstone/bindings/python/capstone/__init__.py:6
resolver_component_tests_runner.test_runner_log
def test_runner_log(msg)
Definition: resolver_component_tests_runner.py:46
grpc._common.encode
def encode(s)
Definition: grpc/_common.py:68
open
#define open
Definition: test-fs.c:46
resolver_component_tests_runner._quit_on_signal
def _quit_on_signal(signum, _frame)
Definition: resolver_component_tests_runner.py:110
resolver_component_tests_runner.wait_until_dns_server_is_up
def wait_until_dns_server_is_up(args, dns_server_subprocess, dns_server_subprocess_output)
Definition: resolver_component_tests_runner.py:62


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:11