test/cpp/naming/gen_build_yaml.py
Go to the documentation of this file.
1 #!/usr/bin/env python2.7
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 """Generates the appropriate build.json data for all the naming tests."""
16 
17 import collections
18 import hashlib
19 import json
20 
21 import yaml
22 
23 _LOCAL_DNS_SERVER_ADDRESS = '127.0.0.1:15353'
24 
25 
26 def _append_zone_name(name, zone_name):
27  return '%s.%s' % (name, zone_name)
28 
29 
30 def _build_expected_addrs_cmd_arg(expected_addrs):
31  out = []
32  for addr in expected_addrs:
33  out.append('%s,%s' % (addr['address'], str(addr['is_balancer'])))
34  return ';'.join(out)
35 
36 
37 def _resolver_test_cases(resolver_component_data):
38  out = []
39  for test_case in resolver_component_data['resolver_component_tests']:
40  target_name = _append_zone_name(
41  test_case['record_to_resolve'],
42  resolver_component_data['resolver_tests_common_zone_name'])
43  out.append({
44  'test_title':
45  target_name,
46  'arg_names_and_values': [
47  ('target_name', target_name),
48  ('do_ordered_address_comparison',
49  test_case['do_ordered_address_comparison']),
50  ('expected_addrs',
51  _build_expected_addrs_cmd_arg(test_case['expected_addrs'])),
52  ('expected_chosen_service_config',
53  (test_case['expected_chosen_service_config'] or '')),
54  ('expected_service_config_error',
55  (test_case['expected_service_config_error'] or '')),
56  ('expected_lb_policy', (test_case['expected_lb_policy'] or '')),
57  ('enable_srv_queries', test_case['enable_srv_queries']),
58  ('enable_txt_queries', test_case['enable_txt_queries']),
59  ('inject_broken_nameserver_list',
60  test_case['inject_broken_nameserver_list']),
61  ],
62  })
63  return out
64 
65 
66 def main():
67  resolver_component_data = ''
68  with open('test/cpp/naming/resolver_test_record_groups.yaml') as f:
69  resolver_component_data = yaml.load(f, Loader=yaml.FullLoader)
70 
71  json = {
72  'resolver_tests_common_zone_name':
73  resolver_component_data['resolver_tests_common_zone_name'],
74  # this data is required by the resolver_component_tests_runner.py.template
75  'resolver_component_test_cases':
76  _resolver_test_cases(resolver_component_data),
77  }
78 
79  print(yaml.dump(json))
80 
81 
82 if __name__ == '__main__':
83  main()
xds_interop_client.str
str
Definition: xds_interop_client.py:487
gen_build_yaml._resolver_test_cases
def _resolver_test_cases(resolver_component_data)
Definition: test/cpp/naming/gen_build_yaml.py:37
gen_build_yaml.main
def main()
Definition: src/proto/gen_build_yaml.py:52
gen_build_yaml._append_zone_name
def _append_zone_name(name, zone_name)
Definition: test/cpp/naming/gen_build_yaml.py:26
gen_build_yaml._build_expected_addrs_cmd_arg
def _build_expected_addrs_cmd_arg(expected_addrs)
Definition: test/cpp/naming/gen_build_yaml.py:30
main
Definition: main.py:1
open
#define open
Definition: test-fs.c:46


grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:25