From: Gabe Black Date: Thu, 30 Aug 2018 08:37:00 +0000 (-0700) Subject: systemc: Teach verify.py how to expect failing error codes. X-Git-Tag: v19.0.0.0~1685 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=475e8cd58094b6acad8d5ef8859c6fed0b543a2e;p=gem5.git 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 Maintainer: Gabe Black --- 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()