Skip to content

Commit c99289b

Browse files
committed
feat(test): TestCase.coverage_key() = param_hash(params)
1 parent 9849ec9 commit c99289b

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

toolchain/mfc/test/case.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ def __init__(self, trace: str, mods: dict, ppn: int = None, override_tol: float
165165
self.restart_check = restart_check
166166
self.kind = kind
167167
self.convergence_spec = convergence_spec
168+
self.mods = mods
168169
merge = {**BASE_CFG.copy(), **mods}
169170
merge = {key: val for key, val in merge.items() if val is not None}
170171
super().__init__(merge)
@@ -246,6 +247,11 @@ def get_trace(self) -> str:
246247
def get_uuid(self) -> str:
247248
return trace_to_uuid(self.trace)
248249

250+
def coverage_key(self) -> str:
251+
from .coverage import param_hash
252+
253+
return param_hash(self.mods)
254+
249255
def get_dirpath(self):
250256
return os.path.join(common.MFC_TEST_DIR, self.get_uuid())
251257

toolchain/mfc/test/test_coverage_unit.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,3 +119,18 @@ def test_rung6_and_7_overlap_selects_subset():
119119
run, skip, _ = select_tests(cases, cov, {"src/simulation/m_bubbles_EE.fpp"})
120120
assert [c.coverage_key() for c in run] == ["hit"]
121121
assert [c.coverage_key() for c in skip] == ["miss"]
122+
123+
124+
def test_case_coverage_key_matches_param_hash():
125+
from mfc.test.case import TestCase
126+
127+
tc = TestCase("1D -> Foo", {"m": 100, "weno_order": 5})
128+
assert tc.coverage_key() == param_hash({"m": 100, "weno_order": 5})
129+
130+
131+
def test_case_coverage_key_ignores_trace():
132+
from mfc.test.case import TestCase
133+
134+
a = TestCase("1D -> Foo", {"m": 100})
135+
b = TestCase("totally -> different -> trace", {"m": 100})
136+
assert a.coverage_key() == b.coverage_key()

0 commit comments

Comments
 (0)