summaryrefslogtreecommitdiff
path: root/src/systemc/tests
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-08-30 01:37:00 -0700
committerGabe Black <gabeblack@google.com>2018-10-03 00:20:25 +0000
commit475e8cd58094b6acad8d5ef8859c6fed0b543a2e (patch)
tree88516e72e59bedebd0e9f33615f9a8454b7fae90 /src/systemc/tests
parentf6fda869ead3aae97e73d2222bfc9fdfd837491e (diff)
downloadgem5-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/systemc/tests')
-rwxr-xr-xsrc/systemc/tests/verify.py15
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()