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 4e2b6951d1..48fd2a0754 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 7c78cf7703..6e620f5d30 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 a21c4b9656..44f0574890 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 fc6aee8f78..94f3581343 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 89e9e65b3b..80a2af69e9 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 c7cf7fe529..abae3cf10e 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 4009d69f05..519b349fed 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 0a0dc1621c..98c3fbd179 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 88dafe2d3f..6bb4eafa40 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