diff options
author | Gabe Black <gabeblack@google.com> | 2018-08-30 01:37:00 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-10-03 00:20:25 +0000 |
commit | 475e8cd58094b6acad8d5ef8859c6fed0b543a2e (patch) | |
tree | 88516e72e59bedebd0e9f33615f9a8454b7fae90 /src | |
parent | f6fda869ead3aae97e73d2222bfc9fdfd837491e (diff) | |
download | gem5-475e8cd58094b6acad8d5ef8859c6fed0b543a2e.tar.xz |
systemc: Teach verify.py how to expect failing error codes.
Some tests expect to fail. For those tests (and only those tests) we
need to tell verify.py that it's ok if their exit status isn't 0. Also
if those tests *don't* fail, then that will also be flagged as an
error.
This is done by adding an expected_returncode file into the test's
source directory which holds what the expected return code should be.
Change-Id: I239a28e1d98dd3f76b71028660e492f675a0b3cb
Reviewed-on: https://gem5-review.googlesource.com/c/12446
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src')
-rwxr-xr-x | src/systemc/tests/verify.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/systemc/tests/verify.py b/src/systemc/tests/verify.py index c2605a2cd..57e2c7d29 100755 --- a/src/systemc/tests/verify.py +++ b/src/systemc/tests/verify.py @@ -78,6 +78,9 @@ class Test(object): def src_dir(self): return os.path.join(script_dir, self.path) + def expected_returncode_file(self): + return os.path.join(self.src_dir(), 'expected_returncode') + def golden_dir(self): return os.path.join(self.src_dir(), 'golden') @@ -383,11 +386,19 @@ class VerifyPhase(TestPhaseBase): with open(test.returncode_file()) as rc: returncode = int(rc.read()) + expected_returncode = 0 + if os.path.exists(test.expected_returncode_file()): + with open(test.expected_returncode_file()) as erc: + expected_returncode = int(erc.read()) + if returncode == 124: self.failed(test, 'time out') continue - elif returncode != 0: - self.failed(test, 'abort') + elif returncode != expected_returncode: + if expected_returncode == 0: + self.failed(test, 'abort') + else: + self.failed(test, 'missed abort') continue out_dir = test.m5out_dir() |