tests: Enable test running outside of gem5's source tree

The learning gem5 scripts currently assumes that the current working
directory is the root of gem5's source tree. This isn't necessarily
the case when running the tests using gem5's new test runner.

Change-Id: Ief569bbe77b1b3e2b0fb0e6c575fb0705bbba9b3
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
This commit is contained in:
Andreas Sandberg 2016-05-09 11:32:07 +01:00
parent 2ae8b365c1
commit 8b412fcfd6
4 changed files with 23 additions and 3 deletions

View file

@ -35,5 +35,10 @@ root = None
def run_test(root):
# Called from tests/run.py
# Set the working directory in case we are executing from
# outside gem5's source tree
import os
os.chdir(os.path.join(os.path.dirname(__file__), "../"))
# Execute the script we are wrapping
execfile('configs/learning_gem5/part1/simple.py')
execfile(srcpath('configs/learning_gem5/part1/simple.py'))

View file

@ -37,6 +37,12 @@ import m5
def run_test(root):
# Called from tests/run.py
# Set the working directory in case we are executing from
# outside gem5's source tree
import os
os.chdir(os.path.join(os.path.dirname(__file__), "../"))
# Add paths that we need
m5.util.addToPath('../configs/learning_gem5/part1')
m5.util.addToPath('../configs/common')
@ -49,4 +55,4 @@ def run_test(root):
# For instance, sys.argv.append('--l2_size=512kB')
# Execute the script we are wrapping
execfile('configs/learning_gem5/part1/two_level.py')
execfile(srcpath('configs/learning_gem5/part1/two_level.py'))

View file

@ -47,6 +47,11 @@ root = None
def run_test(root):
# Called from tests/run.py
# Set the working directory in case we are executing from
# outside gem5's source tree
import os
os.chdir(os.path.join(os.path.dirname(__file__), "../"))
# The path to this script is the only parameter. Delete it so
# we can execute the script that we want to execute.
import sys
@ -56,4 +61,4 @@ def run_test(root):
sys.argv.append('-m %d' % maxtick)
# Execute the script we are wrapping
execfile('configs/example/memcheck.py', globals())
execfile(srcpath('configs/example/memcheck.py'), globals())

View file

@ -171,6 +171,10 @@ def inputpath(app, file=None):
file = app
return joinpath(test_progs, app, 'input', file)
def srcpath(path):
"""Path to file in gem5's source tree"""
return joinpath(os.path.dirname(__file__), "..", path)
# build configuration
sys.path.append(joinpath(tests_root, 'configs'))
test_filename = config