-# Copyright (c) 2006 The Regents of The University of Michigan
+# Copyright (c) 2006-2007 The Regents of The University of Michigan
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
#
# Authors: Steve Reinhardt
-import os, sys
+import os
+import sys
+import re
+import string
+
+from os.path import join as joinpath
+
+import m5
+
+# Since we're in batch mode, dont allow tcp socket connections
+m5.disableAllListeners()
# single "path" arg encodes everything we need to know about test
-(category, name, isa, opsys, config) = sys.argv[1].split('/')
+(category, name, isa, opsys, config) = sys.argv[1].split('/')[-5:]
# find path to directory containing this file
tests_root = os.path.dirname(__file__)
-test_progs = os.path.join(tests_root, 'test-progs')
+test_progs = os.environ.get('M5_TEST_PROGS', '/dist/m5/regression/test-progs')
+if not os.path.isdir(test_progs):
+ test_progs = joinpath(tests_root, 'test-progs')
# generate path to binary file
def binpath(app, file=None):
# executable has same name as app unless specified otherwise
if not file:
file = app
- return os.path.join(test_progs, app, 'bin', isa, opsys, file)
+ return joinpath(test_progs, app, 'bin', isa, opsys, file)
+
+# generate path to input file
+def inputpath(app, file=None):
+ # input file has same name as app unless specified otherwise
+ if not file:
+ file = app
+ return joinpath(test_progs, app, 'input', file)
# build configuration
-execfile(os.path.join(tests_root, 'configs', config + '.py'))
+sys.path.append(joinpath(tests_root, 'configs'))
+test_filename = config
+# for ruby configurations, remove the protocol name from the test filename
+if re.search('-ruby', test_filename):
+ test_filename = test_filename.split('-ruby')[0]+'-ruby'
+execfile(joinpath(tests_root, 'configs', test_filename + '.py'))
# set default maxtick... script can override
# -1 means run forever
-maxtick = -1
+maxtick = m5.MaxTick
# tweak configuration for specific test
-
-execfile(os.path.join(tests_root, category, name, 'test.py'))
+sys.path.append(joinpath(tests_root, category, name))
+execfile(joinpath(tests_root, category, name, 'test.py'))
# instantiate configuration
-m5.instantiate(root)
+m5.instantiate()
# simulate until program terminates
exit_event = m5.simulate(maxtick)