From ef9b86ec03fb602ab39ec691fc1e0f0401311080 Mon Sep 17 00:00:00 2001 From: Wade Fife Date: Wed, 5 Mar 2025 21:23:11 -0600 Subject: [PATCH] fpga: tools: Fix CSV reporting in run_testbenches.py Original-commit: 1c719bc0a6ff8ceba7da74ee42bcceb43d164d2b --- tools/utils/run_testbenches.py | 50 ++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/tools/utils/run_testbenches.py b/tools/utils/run_testbenches.py index cd508c9..8b8173b 100755 --- a/tools/utils/run_testbenches.py +++ b/tools/utils/run_testbenches.py @@ -434,31 +434,35 @@ def do_cleanup(args): def do_report_csv(args, results): """Generate report file (.csv)""" - keys = [ - "module", - "status", - "retcode", - "start_time", - "wall_time", - "sim_time_ns", - "tc_expected", - "tc_run", - "tc_passed", - ] + template = { + "module": "", + "status": "NOT_RUN", + "retcode": "", + "start_time": "", + "wall_time": "", + "sim_time_ns": 0, + "tc_expected": 0, + "tc_run": 0, + "tc_passed": 0, + } with open(args.report, "w") as repfile: - repfile.write((",".join([x.upper() for x in keys])) + "\n") + repfile.write((",".join([x.upper() for x in template.keys()])) + "\n") for name in sorted(results): - r = results[name] - if r["retcode"] != RETCODE_SUCCESS: - results["retcode"] = retcode_to_str(r["retcode"]) - results["status"] = "ERROR" - results["start_time"] = r["start_time"] + line = template.copy() + result = results[name] + if result["retcode"] != RETCODE_SUCCESS: + line["module"] = str(name) + line["retcode"] = retcode_to_str(result["retcode"]) + line["status"] = "ERROR" + line["start_time"] = result["start_time"] else: - results = r - results["module"] = name - results["status"] = "PASSED" if r["passed"] else "FAILED" - results["retcode"] = retcode_to_str(r["retcode"]) - repfile.write((",".join([str(results[x]) for x in keys])) + "\n") + line = result + line["module"] = name + line["status"] = "PASSED" if result["passed"] else "FAILED" + line["retcode"] = retcode_to_str(result["retcode"]) + repfile.write( + (",".join([str(line[x]).replace(",", " ") for x in template.keys()])) + "\n" + ) _LOG.info("Testbench report (CSV format) written to " + args.report) return 0 @@ -486,7 +490,7 @@ def do_report_junit(args, results): return 0 -def do_report(args, results): +def do_report(args, results=None): """Generate report file (either .csv or .xml)""" def _load_results(args):