summaryrefslogtreecommitdiff
path: root/tb/gfx_shader_bind/testbench/data.py
diff options
context:
space:
mode:
Diffstat (limited to 'tb/gfx_shader_bind/testbench/data.py')
-rw-r--r--tb/gfx_shader_bind/testbench/data.py22
1 files changed, 18 insertions, 4 deletions
diff --git a/tb/gfx_shader_bind/testbench/data.py b/tb/gfx_shader_bind/testbench/data.py
index 4aa3630..d119210 100644
--- a/tb/gfx_shader_bind/testbench/data.py
+++ b/tb/gfx_shader_bind/testbench/data.py
@@ -11,13 +11,27 @@ class FrontWave:
return other.__eq__(self)
if other._soft:
- return self.group == other.group and \
- ((other.insn is None and self.insn is None) or \
- (other.insn is not None and (not self.insn or self.insn == other.insn)))
+ if self.group != other.group:
+ return False
+ elif other.insn is None and self.insn is None:
+ return True
+ elif other.insn is None:
+ return False
+ elif self.insn is None:
+ return True
+ elif type(other.insn) is tuple:
+ return self.insn in other.insn
+ else:
+ return self.insn == other.insn
return self.group == other.group and self.insn == other.insn
def __repr__(self):
- insn = f', insn=0x{self.insn:08x}' if not self.retry else ''
+ if type(self.insn) is tuple:
+ insn = '(' + ','.join(f'0x{insn:08x}' for insn in self.insn) + ')'
+ elif self.insn is not None:
+ insn = f'0x{self.insn:08x}'
+
+ insn = f', insn={insn}' if not self.retry else ''
soft = f', soft' if self._soft else ''
return f'FrontWave(group={self.group}, retry={int(self.retry)}{insn}{soft})'