Imported Upstream version 1.27.0
[platform/upstream/grpc.git] / test / cpp / qps / json_run_localhost_scenario_gen.py
1 #!/usr/bin/env python2.7
2
3 # Copyright 2018 gRPC authors.
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #     http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16
17 import gen_build_yaml as gen
18 import json
19
20
21 def generate_args():
22     all_scenario_set = gen.generate_yaml()
23     all_scenario_set = all_scenario_set['tests']
24     json_run_localhost_scenarios = \
25         [item for item in all_scenario_set if item['name'] == 'json_run_localhost']
26     json_run_localhost_arg_set = \
27         [item['args'][1] for item in json_run_localhost_scenarios \
28         if 'args' in item and len(item['args']) > 1]
29     deserialized_scenarios = [json.loads(item)['scenarios'][0] \
30                               for item in json_run_localhost_arg_set]
31     all_scenarios = {scenario['name'].encode('ascii', 'ignore'): \
32                     '\'{\'scenarios\' : [' + json.dumps(scenario) + ']}\'' \
33                     for scenario in deserialized_scenarios}
34
35     serialized_scenarios_str = str(all_scenarios).encode('ascii', 'ignore')
36     with open('json_run_localhost_scenarios.bzl', 'wb') as f:
37         f.write('"""Scenarios run on localhost."""\n\n')
38         f.write('JSON_RUN_LOCALHOST_SCENARIOS = ' + serialized_scenarios_str +
39                 '\n')
40
41
42 generate_args()