diff --git a/run_entries.py b/run_entries.py index d83e24047e482a11732c152ea9e94677d4cbb70d..d8ea08c0a1ab1596c560b8bbe65749e4ea8d0eed 100644 --- a/run_entries.py +++ b/run_entries.py @@ -19,7 +19,7 @@ parser.add_argument("-n", action='store_true', args = parser.parse_args() # Recovering data -assert Path(args.entries), "Specify valid path" +assert Path(args.entries).exists(), "Specify valid path" entries_file = open(args.entries, "r") try: @@ -37,6 +37,13 @@ for i, pkg_name in enumerate(pkg_list): print(f"Data {j + 1}/{len(data_list)}") pkg_path = (Path("packages") / Path(f"{pkg_name}")).with_suffix(".py") data_name = Path(data_path) - if not ((Path("benchmarks") / data_name / pkg_name / "info.json").exists() and args.n): + try: + assert args.n + info_file = open(str(Path("benchmarks") / + data_name / pkg_name / "info.json"), "r") + info = json.load(info_file) + assert not info["killed manually"] + assert not info["script error"] + except: subprocess.run(["python3", "runtest.py", str(pkg_path), str(("data" / Path(data_path)).with_suffix(".json"))] + ["--timeout", str(args.timeout)]*( args.timeout != None) + ["--mem", str(args.mem)]*(args.mem != None) + ["--perf"]*args.perf) diff --git a/runtest.py b/runtest.py index b38e36899857b3450f4ba6f141fe7017174ce350..07a18a2059c6ab4406757dfbe3fdb89b2f2a5f9e 100644 --- a/runtest.py +++ b/runtest.py @@ -158,6 +158,10 @@ if not args.norun: os.killpg(os.getpgid(p.pid), signal.SIGTERM) _, _ = p.communicate() info_dict["timeout error"] = True + except: + os.killpg(os.getpgid(p.pid), signal.SIGTERM) + _, _ = p.communicate() + out_file.close() log_file.close() diff --git a/synthesize.py b/synthesize.py index c1322e94e53fddf55bc9d8813afa5944aed8eb62..6a9858fec9c63ec03467310a40fccc81aa1ecb65 100644 --- a/synthesize.py +++ b/synthesize.py @@ -177,8 +177,8 @@ result_stats = { "q1steps": lambda res: steps_format(round(numpy.quantile([int(p) for p in res["steplist"] if p is not None], 0.25), 1)), "q3steps": lambda res: steps_format(round(numpy.quantile([int(p) for p in res["steplist"] if p is not None], 0.75), 1)), "maxprec": lambda res: str(max([int(p) for p in res["maxpreclist"]])), - "meanprec": lambda res: str(numpy.mean([int(p) for p in res["meanpreclist"]])), - "wmeanprec": lambda res: str(numpy.mean([int(p) for p in res["weightedmeanpreclist"]])), + "meanprec": lambda res: steps_format(numpy.mean([int(p) for p in res["meanpreclist"]])), + "wmeanprec": lambda res: steps_format(numpy.mean([int(p) for p in res["weightedmeanpreclist"]])), } def _table(data, branch, node):