From 2d279a9d0131b27a4ea554ddb0af400044b37853 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Thu, 20 Aug 2020 17:41:24 -0700 Subject: [PATCH] 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 Reviewed-by: Jason Lowe-Power Tested-by: kokoro Maintainer: Jason Lowe-Power --- ext/testlib/configuration.py | 8 ++++++-- tests/.gitignore | 5 ----- tests/gem5/cpu_tests/test.py | 5 +---- tests/gem5/fixture.py | 2 +- tests/gem5/fs/linux/arm/test.py | 2 +- tests/gem5/hello_se/test_hello_se.py | 6 +----- tests/gem5/insttest_se/test.py | 5 +---- tests/gem5/m5_util/test_exit.py | 6 +----- tests/gem5/m5threads_test_atomic/test.py | 6 +----- 9 files changed, 13 insertions(+), 32 deletions(-) diff --git a/ext/testlib/configuration.py b/ext/testlib/configuration.py index 4e2b6951d..48fd2a075 100644 --- a/ext/testlib/configuration.py +++ b/ext/testlib/configuration.py @@ -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', diff --git a/tests/.gitignore b/tests/.gitignore index 7c78cf770..6e620f5d3 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -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 diff --git a/tests/gem5/cpu_tests/test.py b/tests/gem5/cpu_tests/test.py index a21c4b965..44f057489 100644 --- a/tests/gem5/cpu_tests/test.py +++ b/tests/gem5/cpu_tests/test.py @@ -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: diff --git a/tests/gem5/fixture.py b/tests/gem5/fixture.py index fc6aee8f7..94f358134 100644 --- a/tests/gem5/fixture.py +++ b/tests/gem5/fixture.py @@ -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) diff --git a/tests/gem5/fs/linux/arm/test.py b/tests/gem5/fs/linux/arm/test.py index 89e9e65b3..80a2af69e 100644 --- a/tests/gem5/fs/linux/arm/test.py +++ b/tests/gem5/fs/linux/arm/test.py @@ -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: diff --git a/tests/gem5/hello_se/test_hello_se.py b/tests/gem5/hello_se/test_hello_se.py index c7cf7fe52..abae3cf10 100644 --- a/tests/gem5/hello_se/test_hello_se.py +++ b/tests/gem5/hello_se/test_hello_se.py @@ -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/' diff --git a/tests/gem5/insttest_se/test.py b/tests/gem5/insttest_se/test.py index 4009d69f0..519b349fe 100644 --- a/tests/gem5/insttest_se/test.py +++ b/tests/gem5/insttest_se/test.py @@ -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: diff --git a/tests/gem5/m5_util/test_exit.py b/tests/gem5/m5_util/test_exit.py index 0a0dc1621..98c3fbd17 100644 --- a/tests/gem5/m5_util/test_exit.py +++ b/tests/gem5/m5_util/test_exit.py @@ -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) diff --git a/tests/gem5/m5threads_test_atomic/test.py b/tests/gem5/m5threads_test_atomic/test.py index 88dafe2d3..6bb4eafa4 100644 --- a/tests/gem5/m5threads_test_atomic/test.py +++ b/tests/gem5/m5threads_test_atomic/test.py @@ -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 -- 2.30.2