session: fix the testbench name used by build products.

main
Jean-François Nguyen 2 years ago
parent 84bad74a04
commit fa14ed223e

@ -175,12 +175,13 @@ class PowerFVSession:
return check.build(do_build=False, **kwargs) return check.build(do_build=False, **kwargs)


for check_name, check_args in self._checks.items(): for check_name, check_args in self._checks.items():
plan = prepare_check(check_name, check_args) plan = prepare_check(check_name, check_args)
root = str(build_dir / check_name) tb_name = "{}_tb".format(check_name.replace(":", "_"))
worker_inputs.append((check_name, plan, root, connect_to)) tb_root = str(build_dir / tb_name)
worker_inputs.append((tb_name, plan, tb_root, connect_to))


# Save an archive of the build files to the result directory. # Save an archive of the build files to the result directory.
plan.archive(result_dir / f"{check_name}.zip") plan.archive(result_dir / f"{tb_name}.zip")


# Execute build plans. # Execute build plans.


@ -204,23 +205,23 @@ class PowerFVSession:


# Write the results. # Write the results.


def write_result(check_name, products): def write_result(tb_name, products):
status = "unknown" status = "unknown"
for filename in ("PASS", "FAIL"): for filename in ("PASS", "FAIL"):
try: try:
products.get(f"{check_name}_tb/{filename}") products.get(f"{tb_name}/{filename}")
status = filename.lower() status = filename.lower()
except: except:
pass pass


with open(result_dir / "status.txt", "a") as statusfile: with open(result_dir / "status.txt", "a") as statusfile:
statusfile.write(f"{check_name} {status}\n") statusfile.write(f"{tb_name} {status}\n")


if status == "fail": if status == "fail":
with open(result_dir / f"{check_name}.log", "w") as logfile: with open(result_dir / f"{tb_name}.log", "w") as logfile:
logfile.write(products.get(f"{check_name}_tb/engine_0/logfile.txt", "t")) logfile.write(products.get(f"{tb_name}/engine_0/logfile.txt", "t"))
with open(result_dir / f"{check_name}.vcd", "w") as vcdfile: with open(result_dir / f"{tb_name}.vcd", "w") as vcdfile:
vcdfile.write(products.get(f"{check_name}_tb/engine_0/trace.vcd", "t")) vcdfile.write(products.get(f"{tb_name}/engine_0/trace.vcd", "t"))


for check_name, products in sorted(worker_outputs, key=itemgetter(0)): for tb_name, products in sorted(worker_outputs, key=itemgetter(0)):
write_result(check_name, products) write_result(tb_name, products)

Loading…
Cancel
Save