3
0
Fork 0
mirror of https://github.com/YosysHQ/sby.git synced 2025-07-18 04:26:44 +00:00

Turn .format() strings into f-strings

This commit is contained in:
piegames 2021-06-25 00:02:22 +02:00
parent 1f6700f21d
commit 2d7d48885b
10 changed files with 219 additions and 172 deletions

View file

@ -37,19 +37,19 @@ def run(mode, job, engine_idx, engine):
if solver_args[0] == "btormc":
solver_cmd = ""
if random_seed:
solver_cmd += "BTORSEED={} ".format(random_seed)
solver_cmd += job.exe_paths["btormc"] + " --stop-first {} -v 1 -kmax {}".format(0 if mode == "cover" else 1, job.opt_depth - 1)
solver_cmd += f"BTORSEED={random_seed} "
solver_cmd += job.exe_paths["btormc"] + f""" --stop-first {0 if mode == "cover" else 1} -v 1 -kmax {job.opt_depth - 1}"""
if job.opt_skip is not None:
solver_cmd += " -kmin {}".format(job.opt_skip)
solver_cmd += f" -kmin {job.opt_skip}"
solver_cmd += " ".join([""] + solver_args[1:])
elif solver_args[0] == "pono":
if random_seed:
job.error("Setting the random seed is not available for the pono solver.")
solver_cmd = job.exe_paths["pono"] + " -v 1 -e bmc -k {}".format(job.opt_depth - 1)
solver_cmd = job.exe_paths["pono"] + f" -v 1 -e bmc -k {job.opt_depth - 1}"
else:
job.error("Invalid solver command {}.".format(solver_args[0]))
job.error(f"Invalid solver command {solver_args[0]}.")
common_state = SimpleNamespace()
common_state.solver_status = None
@ -72,7 +72,7 @@ def run(mode, job, engine_idx, engine):
elif common_state.solver_status == "unsat":
task_status = "FAIL"
else:
job.error("engine_{}: Engine terminated without status.".format(engine_idx))
job.error(f"engine_{engine_idx}: Engine terminated without status.")
else:
if common_state.expected_cex == 0:
task_status = "pass"
@ -81,20 +81,20 @@ def run(mode, job, engine_idx, engine):
elif common_state.solver_status == "unsat":
task_status = "pass"
else:
job.error("engine_{}: Engine terminated without status.".format(engine_idx))
job.error(f"engine_{engine_idx}: Engine terminated without status.")
job.update_status(task_status.upper())
job.log("engine_{}: Status returned by engine: {}".format(engine_idx, task_status))
job.summary.append("engine_{} ({}) returned {}".format(engine_idx, " ".join(engine), task_status))
job.log(f"engine_{engine_idx}: Status returned by engine: {task_status}")
job.summary.append(f"""engine_{engine_idx} ({" ".join(engine)}) returned {task_status}""")
if len(common_state.produced_traces) == 0:
job.log("engine_{}: Engine did not produce a{}example.".format(engine_idx, " counter" if mode != "cover" else "n "))
job.log(f"""engine_{engine_idx}: Engine did not produce a{" counter" if mode != "cover" else "n "}example.""")
elif len(common_state.produced_traces) <= common_state.print_traces_max:
job.summary.extend(common_state.produced_traces)
else:
job.summary.extend(common_state.produced_traces[:common_state.print_traces_max])
excess_traces = len(common_state.produced_traces) - common_state.print_traces_max
job.summary.append("and {} further trace{}".format(excess_traces, "s" if excess_traces > 1 else ""))
job.summary.append(f"""and {excess_traces} further trace{"s" if excess_traces > 1 else ""}""")
job.terminate()
@ -112,9 +112,9 @@ def run(mode, job, engine_idx, engine):
def exit_callback2(retcode):
assert retcode == 0
vcdpath = "{}/engine_{}/trace{}.vcd".format(job.workdir, engine_idx, suffix)
vcdpath = f"{job.workdir}/engine_{engine_idx}/trace{suffix}.vcd"
if os.path.exists(vcdpath):
common_state.produced_traces.append("{}trace: {}".format("" if mode == "cover" else "counterexample ", vcdpath))
common_state.produced_traces.append(f"""{"" if mode == "cover" else "counterexample "}trace: {vcdpath}""")
common_state.running_tasks -= 1
if (common_state.running_tasks == 0):
@ -131,14 +131,14 @@ def run(mode, job, engine_idx, engine):
assert common_state.produced_cex == 0
else:
job.error("engine_{}: BTOR solver '{}' is currently not supported in cover mode.".format(engine_idx, solver_args[0]))
job.error(f"engine_{engine_idx}: BTOR solver '{solver_args[0]}' is currently not supported in cover mode.")
if (common_state.produced_cex < common_state.expected_cex) and line == "sat":
assert common_state.wit_file == None
if common_state.expected_cex == 1:
common_state.wit_file = open("{}/engine_{}/trace.wit".format(job.workdir, engine_idx), "w")
common_state.wit_file = open(f"{job.workdir}/engine_{engine_idx}/trace.wit", "w")
else:
common_state.wit_file = open("{}/engine_{}/trace{}.wit".format(job.workdir, engine_idx, common_state.produced_cex), "w")
common_state.wit_file = open(f"""{job.workdir}/engine_{engine_idx}/trace{common_state.produced_cex}.wit""", "w")
if solver_args[0] != "btormc":
task.log("Found satisfiability witness.")
@ -149,9 +149,13 @@ def run(mode, job, engine_idx, engine):
suffix = ""
else:
suffix = common_state.produced_cex
task2 = SbyTask(job, "engine_{}_{}".format(engine_idx, common_state.produced_cex), job.model("btor"),
"cd {dir} ; btorsim -c --vcd engine_{idx}/trace{i}.vcd --hierarchical-symbols --info model/design_btor.info model/design_btor.btor engine_{idx}/trace{i}.wit".format(dir=job.workdir, idx=engine_idx, i=suffix),
logfile=open("{dir}/engine_{idx}/logfile2.txt".format(dir=job.workdir, idx=engine_idx), "w"))
task2 = SbyTask(
job,
f"engine_{engine_idx}_{common_state.produced_cex}",
job.model("btor"),
"cd {dir} ; btorsim -c --vcd engine_{idx}/trace{i}.vcd --hierarchical-symbols --info model/design_btor.info model/design_btor.btor engine_{idx}/trace{i}.wit".format(dir=job.workdir, idx=engine_idx, i=suffix),
logfile=open(f"{job.workdir}/engine_{engine_idx}/logfile2.txt", "w")
)
task2.output_callback = output_callback2
task2.exit_callback = make_exit_callback(suffix)
task2.checkretcode = True
@ -198,20 +202,23 @@ def run(mode, job, engine_idx, engine):
if common_state.solver_status == "unsat":
if common_state.expected_cex == 1:
with open("{}/engine_{}/trace.wit".format(job.workdir, engine_idx), "w") as wit_file:
with open(f"""{job.workdir}/engine_{engine_idx}/trace.wit""", "w") as wit_file:
print("unsat", file=wit_file)
else:
for i in range(common_state.produced_cex, common_state.expected_cex):
with open("{}/engine_{}/trace{}.wit".format(job.workdir, engine_idx, i), "w") as wit_file:
with open(f"{job.workdir}/engine_{engine_idx}/trace{i}.wit", "w") as wit_file:
print("unsat", file=wit_file)
common_state.running_tasks -= 1
if (common_state.running_tasks == 0):
print_traces_and_terminate()
task = SbyTask(job, "engine_{}".format(engine_idx), job.model("btor"),
"cd {}; {} model/design_btor.btor".format(job.workdir, solver_cmd),
logfile=open("{}/engine_{}/logfile.txt".format(job.workdir, engine_idx), "w"))
task = SbyTask(
job,
f"engine_{engine_idx}", job.model("btor"),
f"cd {job.workdir}; {solver_cmd} model/design_btor.btor",
logfile=open("{job.workdir}/engine_{engine_idx}/logfile.txt", "w")
)
task.output_callback = output_callback
task.exit_callback = exit_callback