|
|
|
@ -46,6 +46,24 @@ import performance.scenario_config as scenario_config |
|
|
|
|
def _scenario_json_string(scenario_json): |
|
|
|
|
return json.dumps(scenario_config.remove_nonproto_fields(scenario_json)) |
|
|
|
|
|
|
|
|
|
def threads_of_type(scenario_json, path): |
|
|
|
|
d = scenario_json |
|
|
|
|
for el in path.split('/'): |
|
|
|
|
if el not in d: |
|
|
|
|
return 0 |
|
|
|
|
d = d[el] |
|
|
|
|
return d |
|
|
|
|
|
|
|
|
|
def guess_cpu(scenario_json): |
|
|
|
|
client = threads_of_type(scenario_json, 'client_config/async_client_threads') |
|
|
|
|
server = threads_of_type(scenario_json, 'server_config/async_server_threads') |
|
|
|
|
# make an arbitrary guess if set to auto-detect |
|
|
|
|
# about the size of the jenkins instances we have for unit tests |
|
|
|
|
if client == 0: client = 8 |
|
|
|
|
if server == 0: server = 8 |
|
|
|
|
return (scenario_json['num_clients'] * client + |
|
|
|
|
scenario_json['num_servers'] * server) |
|
|
|
|
|
|
|
|
|
print yaml.dump({ |
|
|
|
|
'tests': [ |
|
|
|
|
{ |
|
|
|
@ -59,7 +77,7 @@ print yaml.dump({ |
|
|
|
|
'language': 'c++', |
|
|
|
|
'boringssl': True, |
|
|
|
|
'defaults': 'boringssl', |
|
|
|
|
'cpu_cost': 1000.0, |
|
|
|
|
'cpu_cost': guess_cpu(scenario_json), |
|
|
|
|
'exclude_configs': [] |
|
|
|
|
} |
|
|
|
|
for scenario_json in scenario_config.CXXLanguage().scenarios() |
|
|
|
|