stats: undo parser change from initparam change
[gem5.git] / tests / run.py
index df26c88c5f51580fd3ea956682548d7c9bab8d27..f4105fb411bc58e623f9d15b092cde91ff95f151 100644 (file)
 
 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
@@ -38,38 +43,42 @@ m5.disableAllListeners()
 
 # find path to directory containing this file
 tests_root = os.path.dirname(__file__)
-if os.path.isdir('/dist/m5/regression/test-progs'):
-    test_progs = '/dist/m5/regression/test-progs'
-else:
-    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 os.path.join(test_progs, app, 'input', file)
+    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 = 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)