1# Copyright (c) 2012 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

--- 28 unchanged lines hidden (view full) ---

37# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38#
39# Authors: Steve Reinhardt
40
41# Simple test script
42#
43# "m5 test.py"
44
45import os
45import optparse
46import sys
48from os.path import join as joinpath
47
48import m5
49from m5.defines import buildEnv
50from m5.objects import *
51from m5.util import addToPath, fatal
52
53addToPath('../common')
54addToPath('../ruby')
55
56import Options
57import Ruby
59
58import Simulation
59import CacheConfig
60from Caches import *
61from cpu2000 import *
62
65# Get paths we might need. It's expected this file is in m5/configs/example.
66config_path = os.path.dirname(os.path.abspath(__file__))
67config_root = os.path.dirname(config_path)
68m5_root = os.path.dirname(config_root)
69
63parser = optparse.OptionParser()
64Options.addCommonOptions(parser)
65Options.addSEOptions(parser)
66
72# Benchmark options
73parser.add_option("-c", "--cmd",
74 default=joinpath(m5_root, "tests/test-progs/hello/bin/%s/linux/hello" % \
75 buildEnv['TARGET_ISA']),
76 help="The binary to run in syscall emulation mode.")
77parser.add_option("-o", "--options", default="",
78 help='The options to pass to the binary, use " " around the entire string')
79parser.add_option("-i", "--input", default="", help="Read stdin from a file.")
80parser.add_option("--output", default="", help="Redirect stdout to a file.")
81parser.add_option("--errout", default="", help="Redirect stderr to a file.")
82
83execfile(os.path.join(config_root, "common", "Options.py"))
84
67if '--ruby' in sys.argv:
68 Ruby.define_options(parser)
69
70(options, args) = parser.parse_args()
71
72if args:
73 print "Error: script doesn't take any positional arguments"
74 sys.exit(1)

--- 12 unchanged lines hidden (view full) ---

87 if buildEnv['TARGET_ISA'] == 'alpha':
88 exec("workload = %s('alpha', 'tru64', 'ref')" % app)
89 else:
90 exec("workload = %s(buildEnv['TARGET_ISA'], 'linux', 'ref')" % app)
91 multiprocesses.append(workload.makeLiveProcess())
92 except:
93 print >>sys.stderr, "Unable to find workload for %s: %s" % (buildEnv['TARGET_ISA'], app)
94 sys.exit(1)
113else:
95elif options.cmd:
96 process = LiveProcess()
97 process.executable = options.cmd
98 process.cmd = [options.cmd] + options.options.split()
99 multiprocesses.append(process)
100else:
101 print >> sys.stderr, "No workload specified. Exiting!\n"
102 sys.exit(1)
103
104
105if options.input != "":
106 process.input = options.input
107if options.output != "":
108 process.output = options.output
109if options.errout != "":
110 process.errout = options.errout

--- 84 unchanged lines hidden ---