From 475e8cd58094b6acad8d5ef8859c6fed0b543a2e Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Thu, 30 Aug 2018 01:37:00 -0700 Subject: [PATCH] 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 --- src/systemc/tests/verify.py | 15 +++++++++++++-- 1 file 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() -- 2.30.2