From: Andreas Sandberg Date: Fri, 30 Jun 2017 09:38:48 +0000 (+0100) Subject: tests: Don't treat new stats as a cause for failures X-Git-Tag: v19.0.0.0~2677 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eeb8ade6c25feacbccc6bfce3ad07077b668bd89;p=gem5.git tests: Don't treat new stats as a cause for failures We currently fail the stat diff stage of tests if there are new stats. This is usually undesirable since this would require any change that adds a stat to also update the regressions. Change-Id: Ieadebac6fd17534e1b49b6b9a1d56f037a423325 Signed-off-by: Andreas Sandberg Reviewed-by: Nikos Nikoleris Reviewed-on: https://gem5-review.googlesource.com/3962 Reviewed-by: Anthony Gutierrez Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power --- diff --git a/tests/diff-out b/tests/diff-out index c00d4f3de..1eeac8137 100755 --- a/tests/diff-out +++ b/tests/diff-out @@ -361,8 +361,12 @@ if ($added_stats) } cleanup(); -# Exit code is 0 if all stats are found (with no extras) & no stats error, 1 otherwise -$status = ($missing_stats == 0 && $added_stats == 0 && $max_err_mag == 0.0) ? 0 : 1; +# Exit codes: +# 0 if all stats are found (with no extras) & no stats error +# 1 if there are additional stats, but no stat errors +# 2 otherwise +$no_hard_errors = $missing_stats == 0 && $max_err_mag == 0.0; +$status = $no_hard_errors ? ($added_stats == 0 ? 0 : 1) : 2; exit $status; sub cleanup diff --git a/tests/testing/units.py b/tests/testing/units.py index e8b87a0b2..220cf61f6 100644 --- a/tests/testing/units.py +++ b/tests/testing/units.py @@ -270,6 +270,10 @@ class DiffStatFile(TestUnit): self.stat_diff = os.path.join(_test_base, "diff-out") def _run(self): + STATUS_OK = 0 + STATUS_NEW_STATS = 1 + STATUS_FAILED = 2 + stats = "stats.txt" cmd = [ @@ -281,9 +285,9 @@ class DiffStatFile(TestUnit): stderr=subprocess.PIPE) as p: status, stdout, stderr = p.call() - if status == 0: + if status in (STATUS_OK, STATUS_NEW_STATS): return self.ok(stdout=stdout, stderr=stderr) - if status == 1: + elif status == STATUS_FAILED: return self.failure("Statistics mismatch", stdout=stdout, stderr=stderr) else: