Messages in this thread Patch in this message |  | | Subject | Re: [PATCH 06/13] verification/rvgen: Convert __fill_verify_guards_func() to Lark | | From | Gabriele Monaco <> | | Date | Wed, 06 May 2026 16:51:41 +0200 |
| |
On Tue, 2026-05-05 at 08:59 +0200, Nam Cao wrote: > Prepare to remove self.guards and self.__parse_constraints(), convert > __fill_verify_guards_func() to use the parsed transitions from Lark. > > Signed-off-by: Nam Cao <namcao@linutronix.de> > --- > tools/verification/rvgen/rvgen/dot2k.py | 39 ++++++++++++++++++++----- > 1 file changed, 31 insertions(+), 8 deletions(-) > > diff --git a/tools/verification/rvgen/rvgen/dot2k.py > b/tools/verification/rvgen/rvgen/dot2k.py > index 3a39ae29e41e..cf7e5ddc649c 100644 > --- a/tools/verification/rvgen/rvgen/dot2k.py > +++ b/tools/verification/rvgen/rvgen/dot2k.py > @@ -221,6 +221,20 @@ class ha2k(dot2k): > def __parse_single_constraint(self, rule: dict, value: str) -> str: > return f"ha_get_env(ha_mon, {rule["env"]}{self.enum_suffix}, time_ns) > {rule["op"]} {value}" > > + def __parse_guard_rule(self, rule) -> str: > + buff = [] > + for c, sep in rule.rules: > + env = c.env + self.enum_suffix > + op = c.op > + val = self.__adjust_value(c.val, c.unit) > + > + cond = f"ha_get_env(ha_mon, {env}, time_ns) {op} {val}" > + if sep: > + cond += f" {sep}" > + buff.append(cond) > + buff[-1] += ';' > + return buff > +
That's going to add the ; before closing the parenthesis (if there's one), so the ; should be added in __format_guard_rules() (which adds parentheses):
diff --git a/tools/verification/rvgen/rvgen/dot2k.py b/tools/verification/rvgen/rvgen/dot2k.py index 12589fbb180c..52570d5f1a4e 100644 --- a/tools/verification/rvgen/rvgen/dot2k.py +++ b/tools/verification/rvgen/rvgen/dot2k.py @@ -226,7 +226,6 @@ class ha2k(dot2k): if sep: cond += f" {sep}" buff.append(cond) - buff[-1] += ';' return buff def __start_to_invariant_check(self, inv: ConstraintRule) -> str: @@ -266,7 +265,7 @@ class ha2k(dot2k): rules = invalid_checks + rules separator = "\n\t\t " if sum(len(r) for r in rules) > 80 else " " - return ["res = " + separator.join(rules)] + return ["res = " + separator.join(rules) + ";"] def __fill_verify_invariants_func(self) -> list[str]: if not self.has_invariant:
I found this and the other issue running on the tests/specs/test_ha.dot from my selftests patch.
Going to check the code more, but besides the above it looks good.
Thanks, Gabriele
|  |