summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2021-03-22 12:31:16 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-04-02 05:16:35 -0400
commita915466205e800927aaf99b999b73fc4414f34f1 (patch)
treeaa44144991495ec37ee5662d6ae125539e9fe132
parent78ca4a27fd960033dcb16f65f15a0007b1062cc0 (diff)
downloadhaskell-a915466205e800927aaf99b999b73fc4414f34f1.tar.gz
testsuite: Check test stats only after test correctness
Ticket #19576 noted that a test that failed in correctness (e.g. due to stderr mismatch) *and* failed due to a metrics change would report misleading stats. This was due to the testsuite driver *first* checking stats, before checking for correctness. Fix this. Closes #19576.
-rw-r--r--testsuite/driver/testlib.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py
index e2818e4ab8..55be360d66 100644
--- a/testsuite/driver/testlib.py
+++ b/testsuite/driver/testlib.py
@@ -1626,11 +1626,6 @@ def simple_build(name: Union[TestName, str],
# ToDo: if the sub-shell was killed by ^C, then exit
- if isCompilerStatsTest():
- statsResult = check_stats(TestName(name), way, in_testdir(stats_file), opts.stats_range_fields)
- if badResult(statsResult):
- return statsResult
-
if should_fail:
if exit_code == 0:
stderr_contents = actual_stderr_path.read_text(encoding='UTF-8', errors='replace')
@@ -1640,6 +1635,11 @@ def simple_build(name: Union[TestName, str],
stderr_contents = actual_stderr_path.read_text(encoding='UTF-8', errors='replace')
return failBecause('exit code non-0', stderr=stderr_contents)
+ if isCompilerStatsTest():
+ statsResult = check_stats(TestName(name), way, in_testdir(stats_file), opts.stats_range_fields)
+ if badResult(statsResult):
+ return statsResult
+
return passed()
# -----------------------------------------------------------------------------