mirror of https://github.com/grpc/grpc.git
commit
c163baa559
24 changed files with 589 additions and 1047 deletions
@ -0,0 +1,38 @@ |
|||||||
|
#!/usr/bin/env python2.7 |
||||||
|
|
||||||
|
# Copyright 2018 gRPC authors. |
||||||
|
# |
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
# you may not use this file except in compliance with the License. |
||||||
|
# You may obtain a copy of the License at |
||||||
|
# |
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0 |
||||||
|
# |
||||||
|
# Unless required by applicable law or agreed to in writing, software |
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
# See the License for the specific language governing permissions and |
||||||
|
# limitations under the License. |
||||||
|
|
||||||
|
import gen_build_yaml as gen |
||||||
|
import json |
||||||
|
|
||||||
|
def generate_args(): |
||||||
|
all_scenario_set = gen.generate_yaml() |
||||||
|
all_scenario_set = all_scenario_set['tests'] |
||||||
|
json_run_localhost_scenarios = \ |
||||||
|
[item for item in all_scenario_set if item['name'] == 'qps_json_driver'] |
||||||
|
json_run_localhost_arg_set = \ |
||||||
|
[item['args'][2] for item in json_run_localhost_scenarios \ |
||||||
|
if 'args' in item and len(item['args']) > 2] |
||||||
|
deserialized_scenarios = [json.loads(item)['scenarios'][0] \ |
||||||
|
for item in json_run_localhost_arg_set] |
||||||
|
all_scenarios = {scenario['name'].encode('ascii', 'ignore'): \ |
||||||
|
'\'{\'scenarios\' : [' + json.dumps(scenario) + ']}\'' \ |
||||||
|
for scenario in deserialized_scenarios} |
||||||
|
|
||||||
|
serialized_scenarios_str = str(all_scenarios).encode('ascii', 'ignore') |
||||||
|
with open('json_run_localhost_scenarios.bzl', 'wb') as f: |
||||||
|
f.write('JSON_RUN_LOCALHOST_SCENARIOS = ' + serialized_scenarios_str + '\n') |
||||||
|
|
||||||
|
generate_args() |
File diff suppressed because one or more lines are too long
@ -0,0 +1,72 @@ |
|||||||
|
# Copyright 2018 gRPC authors. |
||||||
|
# |
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
# you may not use this file except in compliance with the License. |
||||||
|
# You may obtain a copy of the License at |
||||||
|
# |
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0 |
||||||
|
# |
||||||
|
# Unless required by applicable law or agreed to in writing, software |
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
# See the License for the specific language governing permissions and |
||||||
|
# limitations under the License. |
||||||
|
|
||||||
|
# |
||||||
|
# This is for the gRPC build system. This isn't intended to be used outsite of |
||||||
|
# the BUILD file for gRPC. It contains the mapping for the template system we |
||||||
|
# use to generate other platform's build system files. |
||||||
|
# |
||||||
|
# Please consider that there should be a high bar for additions and changes to |
||||||
|
# this file. |
||||||
|
# Each rule listed must be re-written for Google's internal build system, and |
||||||
|
# each change must be ported from one to the other. |
||||||
|
# |
||||||
|
|
||||||
|
load("//bazel:grpc_build_system.bzl", "grpc_cc_binary", "grpc_cc_test") |
||||||
|
load("//test/cpp/qps:qps_json_driver_scenarios.bzl", "QPS_JSON_DRIVER_SCENARIOS") |
||||||
|
load("//test/cpp/qps:json_run_localhost_scenarios.bzl", "JSON_RUN_LOCALHOST_SCENARIOS") |
||||||
|
|
||||||
|
def qps_json_driver_batch(): |
||||||
|
for scenario in QPS_JSON_DRIVER_SCENARIOS: |
||||||
|
grpc_cc_test( |
||||||
|
name = "qps_json_driver_test_%s" % scenario, |
||||||
|
srcs = ["qps_json_driver.cc"], |
||||||
|
args = [ |
||||||
|
"--run_inproc", |
||||||
|
"--scenarios_json", |
||||||
|
QPS_JSON_DRIVER_SCENARIOS[scenario], |
||||||
|
], |
||||||
|
external_deps = [ |
||||||
|
"gflags", |
||||||
|
], |
||||||
|
deps = [ |
||||||
|
":benchmark_config", |
||||||
|
":driver_impl", |
||||||
|
"//:grpc++", |
||||||
|
"//test/cpp/util:test_config", |
||||||
|
"//test/cpp/util:test_util", |
||||||
|
], |
||||||
|
) |
||||||
|
|
||||||
|
def json_run_localhost_batch(): |
||||||
|
for scenario in JSON_RUN_LOCALHOST_SCENARIOS: |
||||||
|
grpc_cc_test( |
||||||
|
name = "json_run_localhost_%s" % scenario, |
||||||
|
srcs = ["json_run_localhost.cc"], |
||||||
|
args = [ |
||||||
|
"--scenarios_json", |
||||||
|
JSON_RUN_LOCALHOST_SCENARIOS[scenario], |
||||||
|
], |
||||||
|
data = [ |
||||||
|
"//test/cpp/qps:qps_json_driver", |
||||||
|
"//test/cpp/qps:qps_worker", |
||||||
|
], |
||||||
|
deps = [ |
||||||
|
"//:gpr", |
||||||
|
"//test/core/util:gpr_test_util", |
||||||
|
"//test/core/util:grpc_test_util", |
||||||
|
"//test/cpp/util:test_config", |
||||||
|
"//test/cpp/util:test_util", |
||||||
|
], |
||||||
|
) |
@ -0,0 +1,38 @@ |
|||||||
|
#!/usr/bin/env python2.7 |
||||||
|
|
||||||
|
# Copyright 2018 gRPC authors. |
||||||
|
# |
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
# you may not use this file except in compliance with the License. |
||||||
|
# You may obtain a copy of the License at |
||||||
|
# |
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0 |
||||||
|
# |
||||||
|
# Unless required by applicable law or agreed to in writing, software |
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
# See the License for the specific language governing permissions and |
||||||
|
# limitations under the License. |
||||||
|
|
||||||
|
import gen_build_yaml as gen |
||||||
|
import json |
||||||
|
|
||||||
|
def generate_args(): |
||||||
|
all_scenario_set = gen.generate_yaml() |
||||||
|
all_scenario_set = all_scenario_set['tests'] |
||||||
|
qps_json_driver_scenario_set = \ |
||||||
|
[item for item in all_scenario_set if item['name'] == 'qps_json_driver'] |
||||||
|
qps_json_driver_arg_set = \ |
||||||
|
[item['args'][2] for item in qps_json_driver_scenario_set \ |
||||||
|
if 'args' in item and len(item['args']) > 2] |
||||||
|
deserialized_scenarios = [json.loads(item)['scenarios'][0] \ |
||||||
|
for item in qps_json_driver_arg_set] |
||||||
|
all_scenarios = {scenario['name'].encode('ascii', 'ignore'): \ |
||||||
|
'\'{\'scenarios\' : [' + json.dumps(scenario) + ']}\'' \ |
||||||
|
for scenario in deserialized_scenarios} |
||||||
|
|
||||||
|
serialized_scenarios_str = str(all_scenarios).encode('ascii', 'ignore') |
||||||
|
with open('qps_json_driver_scenarios.bzl', 'w') as f: |
||||||
|
f.write('QPS_JSON_DRIVER_SCENARIOS = ' + serialized_scenarios_str + '\n') |
||||||
|
|
||||||
|
generate_args() |
File diff suppressed because one or more lines are too long
@ -0,0 +1,33 @@ |
|||||||
|
#!/usr/bin/env python |
||||||
|
|
||||||
|
# Copyright 2018 gRPC authors. |
||||||
|
# |
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
# you may not use this file except in compliance with the License. |
||||||
|
# You may obtain a copy of the License at |
||||||
|
# |
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0 |
||||||
|
# |
||||||
|
# Unless required by applicable law or agreed to in writing, software |
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
# See the License for the specific language governing permissions and |
||||||
|
# limitations under the License. |
||||||
|
|
||||||
|
import os |
||||||
|
import sys |
||||||
|
import subprocess |
||||||
|
|
||||||
|
os.chdir(os.path.join(os.path.dirname(sys.argv[0]), '../../../test/cpp/qps')) |
||||||
|
subprocess.call(['./json_run_localhost_scenario_gen.py']) |
||||||
|
subprocess.call(['./qps_json_driver_scenario_gen.py']) |
||||||
|
|
||||||
|
output = subprocess.check_output(['git', 'status', '--porcelain']) |
||||||
|
qps_json_driver_bzl = 'test/cpp/qps/qps_json_driver_scenarios.bzl' |
||||||
|
json_run_localhost_bzl = 'test/cpp/qps/json_run_localhost_scenarios.bzl' |
||||||
|
|
||||||
|
if qps_json_driver_bzl in output or json_run_localhost_bzl in output: |
||||||
|
print('qps benchmark scenarios have been updated, please commit ' |
||||||
|
'test/cpp/qps/qps_json_driver_scenarios.bzl and/or ' |
||||||
|
'test/cpp/qps/json_run_localhost_scenarios.bzl') |
||||||
|
sys.exit(1) |
Loading…
Reference in new issue