5b6294e466c613a201309cf9c5cae21c4a6f6f8e
[gem5.git] / tests / gem5 / memory / test.py
1 # Copyright (c) 2018 The Regents of the University of California.
2 # All rights reserved.
3 #
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are
6 # met: redistributions of source code must retain the above copyright
7 # notice, this list of conditions and the following disclaimer;
8 # redistributions in binary form must reproduce the above copyright
9 # notice, this list of conditions and the following disclaimer in the
10 # documentation and/or other materials provided with the distribution;
11 # neither the name of the copyright holders nor the names of its
12 # contributors may be used to endorse or promote products derived from
13 # this software without specific prior written permission.
14 #
15 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27 '''
28 Test file for simple memory test
29 TODO: Add stats checking
30 '''
31 from testlib import *
32
33 gem5_verify_config(
34 name='simple_mem_default',
35 verifiers=(), # No need for verfiers this will return non-zero on fail
36 config=joinpath(getcwd(), 'simple-run.py'),
37 config_args = [],
38 valid_isas=(constants.null_tag,),
39 )
40
41 simple_mem_params = [
42 ('inf-bandwidth', {'bandwidth': '0GB/s'}),
43 ('low-latency', {'latency': '1ns'}),
44 ('high-latency', {'latency': '1us'}),
45 ('low-bandwidth', {'bandwidth': '1MB/s'}),
46 ('high-var', {'latency_var': '100ns'})
47 ]
48
49
50 for name, params in simple_mem_params:
51 args = ['--' + key + '=' + val for key,val in params.iteritems()]
52
53 gem5_verify_config(
54 name='simple_mem_' + name,
55 verifiers=(), # No need for verfiers this will return non-zero on fail
56 config=joinpath(getcwd(), 'simple-run.py'),
57 config_args = args,
58 valid_isas=(constants.null_tag,),
59 ) # This tests for validity as well as performance
60
61 gem5_verify_config(
62 name='memtest',
63 verifiers=(), # No need for verfiers this will return non-zero on fail
64 config=joinpath(getcwd(), 'memtest-run.py'),
65 config_args = [],
66 valid_isas=(constants.null_tag,),
67 )
68
69 null_tests = [
70 ('garnet_synth_traffic', ['--sim-cycles', '5000000']),
71 ('memcheck', ['--maxtick', '2000000000', '--prefetchers']),
72 ('ruby_mem_test', ['--abs-max-tick', '20000000',
73 '--functional', '10']),
74 ('ruby_random_test', ['--maxloads', '5000']),
75 ('ruby_direct_test', ['--requests', '50000']),
76 ]
77
78 for basename_noext, args in null_tests:
79 gem5_verify_config(
80 name=basename_noext,
81 fixtures=(),
82 verifiers=(),
83 config=joinpath(config.base_dir, 'configs',
84 'example', basename_noext + '.py'),
85 config_args=args,
86 valid_isas=('NULL',),
87 valid_hosts=constants.supported_hosts,
88 )