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:
@@ -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
5
tests/.gitignore
vendored
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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/'
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user