tests: Standardized test resources download dir

We were downloading resources to various different locations, for no
real reason. This standardizes the process. From this commit onwards,
all testing resources are downloaded to `tests/gem5/resources` by
default. This may be overriden via the `--bin-path` TestLib argument.

Note: In order to do this I have changed the meaning of the `bin-path`
TestLib argument slightly. Previously the `bin-path` assumed a flat
(non-existant) hierarchy. A simple directory of local resources. This
new bin-path functionality maintains logical sub-directories. This is
technically an API change and will be noted in the release notes.

Change-Id: I4df85c121fa65f787fd71f03d74361afea121380
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33145
Reviewed-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
This commit is contained in:
Bobby R. Bruce
2020-08-20 17:41:24 -07:00
parent db3c71125d
commit 2d279a9d01
9 changed files with 13 additions and 32 deletions

View File

@@ -215,6 +215,10 @@ def define_defaults(defaults):
os.pardir))
defaults.result_path = os.path.join(os.getcwd(), '.testing-results')
defaults.resource_url = 'http://dist.gem5.org/dist/develop'
defaults.resource_path = os.path.abspath(os.path.join(defaults.base_dir,
'tests',
'gem5',
'resources'))
def define_constants(constants):
'''
@@ -569,8 +573,8 @@ def define_common_args(config):
Argument(
'--bin-path',
action='store',
default=None,
help='Path where binaries are stored (downloaded if not present)'
default=config._defaults.resource_path,
help='Path where resources are stored (downloaded if not present)'
),
Argument(
'--resource-url',

5
tests/.gitignore vendored
View File

@@ -1,7 +1,2 @@
.testing-results
gem5/cpu_tests/benchmarks
gem5/fs/linux/arm/*.tar.bz2
gem5/fs/linux/arm/binaries
gem5/fs/linux/arm/disks
gem5/test-progs
gem5/resources

View File

@@ -51,10 +51,7 @@ valid_isas = {
'riscv': ('AtomicSimpleCPU', 'TimingSimpleCPU', 'MinorCPU', 'DerivO3CPU'),
}
if config.bin_path:
base_path = config.bin_path
else:
base_path = joinpath(absdirpath(__file__), 'benchmarks', 'bin')
base_path = joinpath(config.bin_path, 'cpu_tests')
base_url = config.resource_url + '/gem5/cpu_tests/benchmarks/bin/'
for isa in valid_isas:

View File

@@ -223,7 +223,7 @@ class MakeTarget(Fixture):
class TestProgram(MakeTarget):
def __init__(self, program, isa, os, recompile=False):
make_dir = joinpath('test-progs', program)
make_dir = joinpath(config.bin_dir, program)
make_fixture = MakeFixture(make_dir)
target = joinpath('bin', isa, os, program)
super(TestProgram, self).__init__(target, make_fixture)

View File

@@ -91,7 +91,7 @@ arm_fs_long_tests = [
tarball = 'aarch-system-201901106.tar.bz2'
url = config.resource_url + "/arm/" + tarball
filepath = os.path.dirname(os.path.abspath(__file__))
path = config.bin_path if config.bin_path else filepath
path = joinpath(config.bin_path, 'arm')
arm_fs_binaries = DownloadedArchive(url, path, tarball)
for name in arm_fs_quick_tests:

View File

@@ -82,11 +82,7 @@ os_length = {
'sparc' : constants.long_tag,
}
if config.bin_path:
base_path = config.bin_path
else:
base_path = joinpath(absdirpath(__file__), '..', 'test-progs', 'hello',
'bin')
base_path = joinpath(config.bin_path, 'hello')
urlbase = config.resource_url + '/test-progs/hello/bin/'

View File

@@ -43,10 +43,7 @@ supported_os = {
'sparc' : ('linux',)
}
if config.bin_path:
base_path = config.bin_path
else:
base_path = joinpath(absdirpath(__file__), '..', 'test-progs')
base_path = joinpath(config.bin_path, 'insttest')
urlbase = config.resource_url + '/test-progs/insttest/bin/'
for isa in test_progs:

View File

@@ -47,11 +47,7 @@ m5_exit_regex = re.compile(
r'Exiting @ tick \d* because m5_exit instruction encountered'
)
if config.bin_path:
path = config.bin_path
else:
path = joinpath(absdirpath(__file__), '..',
'test-progs', 'hello', 'bin', 'x86', 'linux')
path = joinpath(config.bin_path, 'test-progs', 'hello', 'bin', 'x86', 'linux')
filename = 'm5_exit'
url = (config.resource_url + '/test-progs/m5-exit/bin/x86/linux/m5_exit')
test_program = DownloadedProgram(url, path, filename)

View File

@@ -38,11 +38,7 @@ cpu_types = (
# 'TimingSimpleCPU',
)
if config.bin_path:
base_path = config.bin_path
else:
base_path = joinpath(absdirpath(__file__), '..', 'test-progs',
'test_atomic', 'bin')
base_path = joinpath(config.bin_path, 'pthreads', 'sparc64')
binary = 'test_atomic'
url = config.resource_url + '/test-progs/pthreads/sparc64/' + binary