summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-11-21 17:51:46 -0800
committerGabe Black <gabeblack@google.com>2018-11-29 01:23:11 +0000
commitfed1a56919e31fc5d17cc2cdbebd758561e8766a (patch)
tree5ee9fa7f388bcbd78d1d761c14139c1eced49832
parente186f870896f9b32a324958f0fa06e45c79c0534 (diff)
downloadgem5-fed1a56919e31fc5d17cc2cdbebd758561e8766a.tar.xz
systemc: Run the systemc tests directly from their build directories.
We were previously running them from the current directory to start with, and then having the config script switch to the build directory. That worked, except when output streams might be opened as part of the global constructors which would run before the config script. This change makes us start from the build directory directly, making the switch in the config script unnecessary and ensuring that no files leak outside of the build when running tests. Change-Id: I484168793bfc5abc4e5631fb3468733fb9d829af Reviewed-on: https://gem5-review.googlesource.com/c/14519 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
-rwxr-xr-xsrc/systemc/tests/verify.py10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/systemc/tests/verify.py b/src/systemc/tests/verify.py
index c9ede77a0..def0fdc79 100755
--- a/src/systemc/tests/verify.py
+++ b/src/systemc/tests/verify.py
@@ -153,30 +153,26 @@ class RunPhase(TestPhaseBase):
'--kill-after', str(args.timeout * 2),
str(args.timeout)
]
- curdir = os.getcwd()
def run_test(test):
cmd = []
if args.timeout:
cmd.extend(timeout_cmd)
cmd.extend([
- test.full_path(),
+ os.path.abspath(test.full_path()),
'-rd', os.path.abspath(test.m5out_dir()),
'--listener-mode=off',
'--quiet',
- config_path,
- '--working-dir',
- os.path.dirname(test.dir())
+ os.path.abspath(config_path),
])
# Ensure the output directory exists.
if not os.path.exists(test.m5out_dir()):
os.makedirs(test.m5out_dir())
try:
- subprocess.check_call(cmd)
+ subprocess.check_call(cmd, cwd=os.path.dirname(test.dir()))
except subprocess.CalledProcessError, error:
returncode = error.returncode
else:
returncode = 0
- os.chdir(curdir)
with open(test.returncode_file(), 'w') as rc:
rc.write('%d\n' % returncode)