diff --git a/eval.py b/eval.py index 61efc4250d444a966e70ec39ad324984958daea8..3e0ab5adc8c5c48f96eb1a1e27eb43e6712dc421 100755 --- a/eval.py +++ b/eval.py @@ -20,6 +20,12 @@ ARTIFACT_DESC = subprocess.check_output( 'git describe --dirty --always'.split(), cwd=ROOT_DIR, text=True)[:-1] +def err(msg: str): + """print error message and exit with statsu 1""" + print(f'ERROR: {msg}', file=sys.stderr) + sys.exit(1) + + def emper_create_env_worker_count(worker_count): return f'EMPER_WORKER_COUNT={worker_count}' @@ -720,6 +726,22 @@ if __name__ == '__main__': _sizes = args.sizes or SIZES ARGS = list(itertools.product(_cons, _sizes)) + # select emper flavors to evaluate + selected_flavors = EMPER_FLAVORS + if args.flavors: + filtered_flavors = {} + for selected_flavor in args.flavors: + selection = { + f: selected_flavors[f] + for f in fnmatch.filter(selected_flavors.keys(), + selected_flavor) + } + if not selection: + err(f'{selected_flavor} does not select any available flavor') + filtered_flavors.update(selection) + + selected_flavors = filtered_flavors + print("Building the artifact ...") make_cmd = ['make'] if not args.verbose: @@ -743,18 +765,6 @@ if __name__ == '__main__': write_desc(DATA_DIR, verbose=args.verbose) prepare_client(args.verbose) - selected_flavors = EMPER_FLAVORS - if args.flavors: - filtered_flavors = {} - for selected_flavor in args.flavors: - filtered_flavors.update({ - f: selected_flavors[f] - for f in fnmatch.filter(selected_flavors.keys(), - selected_flavor) - }) - - selected_flavors = filtered_flavors - # generate emper flavors if 'emper' in SERVER_CMDS: prepare_emper_flavors(selected_flavors, args.verbose)