mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-28 22:25:32 -04:00
regtesting: Print test values again to restore survey
This commit is contained in:
parent
d1d1b08660
commit
9f8b4e1b1e
1 changed files with 13 additions and 9 deletions
|
|
@ -326,15 +326,18 @@ class TestResult:
|
|||
test: Union[Regtest, Unittest],
|
||||
duration: float,
|
||||
status: TestStatus,
|
||||
value: Optional[float] = None,
|
||||
error: Optional[str] = None,
|
||||
):
|
||||
self.test = test
|
||||
self.duration = duration
|
||||
self.status = status
|
||||
self.value = value
|
||||
self.error = error
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f" {self.test.name :<50s} {self.status :>30s} ( {self.duration:6.2f} sec)"
|
||||
value = f"{self.value:.10g}" if self.value else "-"
|
||||
return f" {self.test.name :<50s} {value :>17} {self.status :>12s} ( {self.duration:6.2f} sec)"
|
||||
|
||||
|
||||
# ======================================================================================
|
||||
|
|
@ -449,10 +452,10 @@ async def run_unittests(batch: Batch, cfg: Config) -> List[TestResult]:
|
|||
error = "x" * 100 + f"\n{test.out_path}\n{output_tail}\n\n"
|
||||
if timed_out:
|
||||
error += f"Timed out after {duration} seconds."
|
||||
results.append(TestResult(test, duration, "TIMED OUT", error))
|
||||
results.append(TestResult(test, duration, "TIMED OUT", error=error))
|
||||
elif returncode != 0:
|
||||
error += f"Runtime failure with code {returncode}."
|
||||
results.append(TestResult(test, duration, "RUNTIME FAIL", error))
|
||||
results.append(TestResult(test, duration, "RUNTIME FAIL", error=error))
|
||||
else:
|
||||
results.append(TestResult(test, duration, "OK"))
|
||||
|
||||
|
|
@ -522,27 +525,28 @@ def eval_regtest(
|
|||
error = "x" * 100 + f"\n{test.out_path}\n"
|
||||
if timed_out:
|
||||
error += f"{output_tail}\n\nTimed out after {duration} seconds."
|
||||
return TestResult(test, duration, "TIMED OUT", error)
|
||||
return TestResult(test, duration, "TIMED OUT", error=error)
|
||||
elif returncode != 0:
|
||||
error += f"{output_tail}\n\nRuntime failure with code {returncode}."
|
||||
return TestResult(test, duration, "RUNTIME FAIL", error)
|
||||
return TestResult(test, duration, "RUNTIME FAIL", error=error)
|
||||
elif not test.test_type:
|
||||
return TestResult(test, duration, "OK") # test type zero
|
||||
else:
|
||||
value_txt = test.test_type.grep(output)
|
||||
if not value_txt:
|
||||
error += f"{output_tail}\n\nResult not found: '{test.test_type.pattern}'."
|
||||
return TestResult(test, duration, "WRONG RESULT", error)
|
||||
return TestResult(test, duration, "WRONG RESULT", error=error)
|
||||
else:
|
||||
# compare result to reference
|
||||
diff = float(value_txt) - test.ref_value
|
||||
value = float(value_txt)
|
||||
diff = value - test.ref_value
|
||||
rel_error = abs(diff / test.ref_value if test.ref_value != 0.0 else diff)
|
||||
if rel_error <= test.tolerance:
|
||||
return TestResult(test, duration, "OK")
|
||||
return TestResult(test, duration, "OK", value)
|
||||
else:
|
||||
error += f"Difference too large: {rel_error:.2e} > {test.tolerance}, "
|
||||
error += f"ref_value: {test.ref_value_txt}, value: {value_txt}."
|
||||
return TestResult(test, duration, "WRONG RESULT", error)
|
||||
return TestResult(test, duration, "WRONG RESULT", value, error)
|
||||
|
||||
|
||||
# ======================================================================================
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue