test.py revision 13680
113680Syazakram@ucdavis.edu# Copyright (c) 2018 The Regents of the University of California 213680Syazakram@ucdavis.edu# All Rights Reserved. 313680Syazakram@ucdavis.edu# 413680Syazakram@ucdavis.edu# Redistribution and use in source and binary forms, with or without 513680Syazakram@ucdavis.edu# modification, are permitted provided that the following conditions are 613680Syazakram@ucdavis.edu# met: redistributions of source code must retain the above copyright 713680Syazakram@ucdavis.edu# notice, this list of conditions and the following disclaimer; 813680Syazakram@ucdavis.edu# redistributions in binary form must reproduce the above copyright 913680Syazakram@ucdavis.edu# notice, this list of conditions and the following disclaimer in the 1013680Syazakram@ucdavis.edu# documentation and/or other materials provided with the distribution; 1113680Syazakram@ucdavis.edu# neither the name of the copyright holders nor the names of its 1213680Syazakram@ucdavis.edu# contributors may be used to endorse or promote products derived from 1313680Syazakram@ucdavis.edu# this software without specific prior written permission. 1413680Syazakram@ucdavis.edu# 1513680Syazakram@ucdavis.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1613680Syazakram@ucdavis.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1713680Syazakram@ucdavis.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1813680Syazakram@ucdavis.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1913680Syazakram@ucdavis.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2013680Syazakram@ucdavis.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2113680Syazakram@ucdavis.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2213680Syazakram@ucdavis.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2313680Syazakram@ucdavis.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2413680Syazakram@ucdavis.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2513680Syazakram@ucdavis.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2613680Syazakram@ucdavis.edu# 2713680Syazakram@ucdavis.edu# Authors: Jason Lowe-Power 2813680Syazakram@ucdavis.edu 2913680Syazakram@ucdavis.edu''' 3013680Syazakram@ucdavis.eduTest file containing simple workloads to run on CPU models. 3113680Syazakram@ucdavis.eduEach test takes ~10 seconds to run. 3213680Syazakram@ucdavis.edu''' 3313680Syazakram@ucdavis.edu 3413680Syazakram@ucdavis.edufrom testlib import * 3513680Syazakram@ucdavis.edu 3613680Syazakram@ucdavis.eduworkloads = ('Bubblesort','FloatMM') 3713680Syazakram@ucdavis.edu 3813680Syazakram@ucdavis.eduvalid_isas = { 3913680Syazakram@ucdavis.edu 'x86': ('AtomicSimpleCPU', 'TimingSimpleCPU', 'DerivO3CPU'), 4013680Syazakram@ucdavis.edu 'arm': ('AtomicSimpleCPU', 'TimingSimpleCPU', 'MinorCPU', 'DerivO3CPU'), 4113680Syazakram@ucdavis.edu} 4213680Syazakram@ucdavis.edu 4313680Syazakram@ucdavis.edu 4413680Syazakram@ucdavis.edufor isa in valid_isas: 4513680Syazakram@ucdavis.edu bm_dir = joinpath('gem5/cpu_tests/benchmarks/bin/', isa) 4613680Syazakram@ucdavis.edu for workload in workloads: 4713680Syazakram@ucdavis.edu ref_path = joinpath(getcwd(), 'ref', workload) 4813680Syazakram@ucdavis.edu verifiers = ( 4913680Syazakram@ucdavis.edu verifier.MatchStdout(ref_path), 5013680Syazakram@ucdavis.edu ) 5113680Syazakram@ucdavis.edu 5213680Syazakram@ucdavis.edu workload_binary = DownloadedProgram(bm_dir, workload) 5313680Syazakram@ucdavis.edu workload_path = workload_binary.path 5413680Syazakram@ucdavis.edu 5513680Syazakram@ucdavis.edu for cpu in valid_isas[isa]: 5613680Syazakram@ucdavis.edu gem5_verify_config( 5713680Syazakram@ucdavis.edu name='cpu_test_{}_{}'.format(cpu,workload), 5813680Syazakram@ucdavis.edu verifiers=verifiers, 5913680Syazakram@ucdavis.edu config=joinpath(getcwd(), 'run.py'), 6013680Syazakram@ucdavis.edu config_args=['--cpu={}'.format(cpu), workload_path], 6113680Syazakram@ucdavis.edu valid_isas=(isa.upper(),), 6213680Syazakram@ucdavis.edu fixtures=[workload_binary] 6313680Syazakram@ucdavis.edu ) 64