Refactor tests
[SymbiYosys.git] / tests / keepgoing / keepgoing_multi_step.py
1 import sys
2 from check_output import *
3
4 src = "keepgoing_multi_step.sv"
5
6 workdir = sys.argv[1]
7
8 assert_0 = line_ref(workdir, src, "assert(0)")
9 step_3_7 = line_ref(workdir, src, "step 3,7")
10 step_5 = line_ref(workdir, src, "step 5")
11 step_7 = line_ref(workdir, src, "step 7")
12
13 log = open(workdir + "/logfile.txt").read()
14 log_per_trace = log.split("Writing trace to VCD file")[:-1]
15
16 assert len(log_per_trace) == 4
17
18
19 assert re.search(r"Assert failed in test: %s \(.*\)$" % assert_0, log_per_trace[0], re.M)
20
21 for i in range(1, 4):
22 assert re.search(r"Assert failed in test: %s \(.*\) \[failed before\]$" % assert_0, log_per_trace[i], re.M)
23
24
25 assert re.search(r"Assert failed in test: %s \(.*\)$" % step_3_7, log_per_trace[1], re.M)
26 assert re.search(r"Assert failed in test: %s \(.*\)$" % step_5, log_per_trace[2], re.M)
27 assert re.search(r"Assert failed in test: %s \(.*\) \[failed before\]$" % step_3_7, log_per_trace[3], re.M)
28 assert re.search(r"Assert failed in test: %s \(.*\)$" % step_7, log_per_trace[3], re.M)
29
30 pattern = f"Property ASSERT in test at {assert_0} failed. Trace file: engine_0/trace0.vcd"
31 assert re.search(pattern, open(f"{workdir}/{workdir}.xml").read())