114143Snikos.nikoleris@arm.com# Copyright (c) 2019 ARM Limited 214143Snikos.nikoleris@arm.com# All rights reserved 314143Snikos.nikoleris@arm.com# 414143Snikos.nikoleris@arm.com# The license below extends only to copyright in the software and shall 514143Snikos.nikoleris@arm.com# not be construed as granting a license to any other intellectual 614143Snikos.nikoleris@arm.com# property including but not limited to intellectual property relating 714143Snikos.nikoleris@arm.com# to a hardware implementation of the functionality of the software 814143Snikos.nikoleris@arm.com# licensed hereunder. You may use the software subject to the license 914143Snikos.nikoleris@arm.com# terms below provided that you ensure that this notice is replicated 1014143Snikos.nikoleris@arm.com# unmodified and in its entirety in all distributions of the software, 1114143Snikos.nikoleris@arm.com# modified or unmodified, in source code or in binary form. 1214143Snikos.nikoleris@arm.com# 1314143Snikos.nikoleris@arm.com# Redistribution and use in source and binary forms, with or without 1414143Snikos.nikoleris@arm.com# modification, are permitted provided that the following conditions are 1514143Snikos.nikoleris@arm.com# met: redistributions of source code must retain the above copyright 1614143Snikos.nikoleris@arm.com# notice, this list of conditions and the following disclaimer; 1714143Snikos.nikoleris@arm.com# redistributions in binary form must reproduce the above copyright 1814143Snikos.nikoleris@arm.com# notice, this list of conditions and the following disclaimer in the 1914143Snikos.nikoleris@arm.com# documentation and/or other materials provided with the distribution; 2014143Snikos.nikoleris@arm.com# neither the name of the copyright holders nor the names of its 2114143Snikos.nikoleris@arm.com# contributors may be used to endorse or promote products derived from 2214143Snikos.nikoleris@arm.com# this software without specific prior written permission. 2314143Snikos.nikoleris@arm.com# 2414143Snikos.nikoleris@arm.com# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2514143Snikos.nikoleris@arm.com# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2614143Snikos.nikoleris@arm.com# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2714143Snikos.nikoleris@arm.com# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2814143Snikos.nikoleris@arm.com# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2914143Snikos.nikoleris@arm.com# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 3014143Snikos.nikoleris@arm.com# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 3114143Snikos.nikoleris@arm.com# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 3214143Snikos.nikoleris@arm.com# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 3314143Snikos.nikoleris@arm.com# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 3414143Snikos.nikoleris@arm.com# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3514143Snikos.nikoleris@arm.com# 3614143Snikos.nikoleris@arm.com# Authors: Nikos Nikoleris 3714143Snikos.nikoleris@arm.com 3814143Snikos.nikoleris@arm.com''' 3914143Snikos.nikoleris@arm.comArm FS simulation tests 4014143Snikos.nikoleris@arm.com''' 4114143Snikos.nikoleris@arm.com 4214143Snikos.nikoleris@arm.comfrom os.path import join as joinpath 4314143Snikos.nikoleris@arm.com 4414143Snikos.nikoleris@arm.comfrom testlib import * 4514143Snikos.nikoleris@arm.com 4614143Snikos.nikoleris@arm.comarm_fs_quick_tests = [ 4714143Snikos.nikoleris@arm.com 'realview-simple-atomic', 4814143Snikos.nikoleris@arm.com 'realview-simple-atomic-dual', 4914143Snikos.nikoleris@arm.com 'realview-simple-atomic-checkpoint', 5014143Snikos.nikoleris@arm.com 'realview-simple-timing', 5114143Snikos.nikoleris@arm.com 'realview-simple-timing-dual', 5214143Snikos.nikoleris@arm.com 'realview-switcheroo-atomic', 5314143Snikos.nikoleris@arm.com 'realview-switcheroo-timing', 5414143Snikos.nikoleris@arm.com] 5514143Snikos.nikoleris@arm.com 5614143Snikos.nikoleris@arm.comarm_fs_long_tests = [ 5714143Snikos.nikoleris@arm.com 'realview-o3', 5814143Snikos.nikoleris@arm.com 'realview-o3-checker', 5914143Snikos.nikoleris@arm.com 'realview-o3-dual', 6014143Snikos.nikoleris@arm.com 'realview-minor', 6114143Snikos.nikoleris@arm.com 'realview-minor-dual', 6214143Snikos.nikoleris@arm.com 'realview-switcheroo-noncaching-timing', 6314143Snikos.nikoleris@arm.com 'realview-switcheroo-o3', 6414143Snikos.nikoleris@arm.com 'realview-switcheroo-full', 6514143Snikos.nikoleris@arm.com 'realview64-simple-atomic', 6614143Snikos.nikoleris@arm.com 'realview64-simple-atomic-checkpoint', 6714143Snikos.nikoleris@arm.com 'realview64-simple-atomic-dual', 6814143Snikos.nikoleris@arm.com 'realview64-simple-timing', 6914143Snikos.nikoleris@arm.com 'realview64-simple-timing-dual', 7014143Snikos.nikoleris@arm.com 'realview64-o3', 7114143Snikos.nikoleris@arm.com 'realview64-o3-checker', 7214143Snikos.nikoleris@arm.com 'realview64-o3-dual', 7314143Snikos.nikoleris@arm.com 'realview64-minor', 7414143Snikos.nikoleris@arm.com 'realview64-minor-dual', 7514143Snikos.nikoleris@arm.com 'realview64-switcheroo-atomic', 7614143Snikos.nikoleris@arm.com 'realview64-switcheroo-timing', 7714143Snikos.nikoleris@arm.com 'realview64-switcheroo-o3', 7814143Snikos.nikoleris@arm.com 'realview64-switcheroo-full', 7914143Snikos.nikoleris@arm.com 'realview-simple-timing-ruby', 8014143Snikos.nikoleris@arm.com 'realview-simple-timing-dual-ruby', 8114143Snikos.nikoleris@arm.com 'realview64-simple-timing-ruby', 8214143Snikos.nikoleris@arm.com 'realview64-simple-timing-dual-ruby', 8314143Snikos.nikoleris@arm.com] 8414143Snikos.nikoleris@arm.com 8514143Snikos.nikoleris@arm.comtarball = 'aarch-system-2014-10.tar.bz2' 8614143Snikos.nikoleris@arm.comurl = "http://gem5.org/dist/current/arm/" + tarball 8714143Snikos.nikoleris@arm.compath = os.path.dirname(os.path.abspath(__file__)) 8814143Snikos.nikoleris@arm.comarm_fs_binaries = DownloadedArchive(url, path, tarball) 8914143Snikos.nikoleris@arm.com 9014143Snikos.nikoleris@arm.comfor name in arm_fs_quick_tests: 9114143Snikos.nikoleris@arm.com args = [ joinpath(config.base_dir, 'tests', 'configs', name + '.py') ] 9214143Snikos.nikoleris@arm.com gem5_verify_config( 9314143Snikos.nikoleris@arm.com name=name, 9414143Snikos.nikoleris@arm.com verifiers=(), # Add basic stat verifiers 9514143Snikos.nikoleris@arm.com config=joinpath(path, 'run.py'), 9614143Snikos.nikoleris@arm.com config_args=args, 9714143Snikos.nikoleris@arm.com valid_isas=(constants.arm_tag,), 9814143Snikos.nikoleris@arm.com length=constants.quick_tag, 9914143Snikos.nikoleris@arm.com fixtures=(arm_fs_binaries,) 10014143Snikos.nikoleris@arm.com ) 10114143Snikos.nikoleris@arm.com 10214143Snikos.nikoleris@arm.comfor name in arm_fs_long_tests: 10314143Snikos.nikoleris@arm.com args = [ joinpath(config.base_dir, 'tests', 'configs', name + '.py') ] 10414143Snikos.nikoleris@arm.com gem5_verify_config( 10514143Snikos.nikoleris@arm.com name=name, 10614143Snikos.nikoleris@arm.com verifiers=(), # TODO: Add basic stat verifiers 10714143Snikos.nikoleris@arm.com config=joinpath(path, 'run.py'), 10814143Snikos.nikoleris@arm.com config_args=args, 10914143Snikos.nikoleris@arm.com valid_isas=(constants.arm_tag,), 11014143Snikos.nikoleris@arm.com length=constants.long_tag, 11114143Snikos.nikoleris@arm.com fixtures=(arm_fs_binaries,) 11214143Snikos.nikoleris@arm.com ) 113