se.py (8896:6df06e5975c6) | se.py (8920:99083b5b7ed4) |
---|---|
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 | 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 | |
46import optparse 47import sys | 45import optparse 46import sys |
48from os.path import join as joinpath | |
49 50import m5 51from m5.defines import buildEnv 52from m5.objects import * 53from m5.util import addToPath, fatal 54 55addToPath('../common') 56addToPath('../ruby') 57 | 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 |
|
58import Ruby | 57import Ruby |
59 | |
60import Simulation 61import CacheConfig 62from Caches import * 63from cpu2000 import * 64 | 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 | |
70parser = optparse.OptionParser() | 63parser = optparse.OptionParser() |
64Options.addCommonOptions(parser) 65Options.addSEOptions(parser) |
|
71 | 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 | |
85if '--ruby' in sys.argv: 86 Ruby.define_options(parser) 87 88(options, args) = parser.parse_args() 89 90if args: 91 print "Error: script doesn't take any positional arguments" 92 sys.exit(1) --- 12 unchanged lines hidden (view full) --- 105 if buildEnv['TARGET_ISA'] == 'alpha': 106 exec("workload = %s('alpha', 'tru64', 'ref')" % app) 107 else: 108 exec("workload = %s(buildEnv['TARGET_ISA'], 'linux', 'ref')" % app) 109 multiprocesses.append(workload.makeLiveProcess()) 110 except: 111 print >>sys.stderr, "Unable to find workload for %s: %s" % (buildEnv['TARGET_ISA'], app) 112 sys.exit(1) | 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: |
114 process = LiveProcess() 115 process.executable = options.cmd 116 process.cmd = [options.cmd] + options.options.split() 117 multiprocesses.append(process) | 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) |
|
118 119 120if options.input != "": 121 process.input = options.input 122if options.output != "": 123 process.output = options.output 124if options.errout != "": 125 process.errout = options.errout --- 84 unchanged lines hidden --- | 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 --- |