summaryrefslogtreecommitdiff
path: root/configs
diff options
context:
space:
mode:
Diffstat (limited to 'configs')
-rw-r--r--configs/test/SysPaths.py60
-rw-r--r--configs/test/fs.py1
-rw-r--r--configs/test/test.py1
3 files changed, 37 insertions, 25 deletions
diff --git a/configs/test/SysPaths.py b/configs/test/SysPaths.py
index c7c7db4e7..9acfedc8b 100644
--- a/configs/test/SysPaths.py
+++ b/configs/test/SysPaths.py
@@ -1,32 +1,42 @@
-from m5 import *
-
-import os.path
-import sys
-
-# Edit the following list to include the possible paths to the binary
-# and disk image directories. The first directory on the list that
-# exists will be selected.
-SYSTEMDIR_PATH = ['/n/poolfs/z/dist/m5/system']
-
-SYSTEMDIR = None
-for d in SYSTEMDIR_PATH:
- if os.path.exists(d):
- SYSTEMDIR = d
- break
-
-if not SYSTEMDIR:
- print >>sys.stderr, "Can't find a path to system files."
- sys.exit(1)
-
-BINDIR = SYSTEMDIR + '/binaries'
-DISKDIR = SYSTEMDIR + '/disks'
+import os, sys
+from os.path import isdir, join as joinpath
+from os import environ as env
+
+systemdir = None
+bindir = None
+diskdir = None
+scriptdir = None
+
+def load_defaults():
+ global systemdir, bindir, diskdir, scriptdir
+ if not systemdir:
+ try:
+ path = env['M5_PATH'].split(':')
+ except KeyError:
+ path = [ '/dist/m5/system' ]
+
+ for systemdir in path:
+ if os.path.isdir(systemdir):
+ break
+ else:
+ raise ImportError, "Can't find a path to system files."
+
+ if not bindir:
+ bindir = joinpath(systemdir, 'binaries')
+ if not diskdir:
+ diskdir = joinpath(systemdir, 'disks')
+ if not scriptdir:
+ scriptdir = joinpath(systemdir, 'boot')
def disk(file):
- return os.path.join(DISKDIR, file)
+ load_defaults()
+ return joinpath(diskdir, file)
def binary(file):
- return os.path.join(BINDIR, file)
+ load_defaults()
+ return joinpath(bindir, file)
def script(file):
- return os.path.join(SYSTEMDIR, 'boot', file)
+ load_defaults()
+ return joinpath(scriptdir, file)
diff --git a/configs/test/fs.py b/configs/test/fs.py
index c742e916c..aa530dd55 100644
--- a/configs/test/fs.py
+++ b/configs/test/fs.py
@@ -8,6 +8,7 @@ parser = optparse.OptionParser(option_list=m5.standardOptions)
parser.add_option("-t", "--timing", action="store_true")
(options, args) = parser.parse_args()
+m5.setStandardOptions(options)
if args:
print "Error: script doesn't take any positional arguments"
diff --git a/configs/test/test.py b/configs/test/test.py
index 2b5a6769f..a570c1a08 100644
--- a/configs/test/test.py
+++ b/configs/test/test.py
@@ -17,6 +17,7 @@ parser.add_option("-d", "--detailed", action="store_true")
parser.add_option("-m", "--maxtick", type="int")
(options, args) = parser.parse_args()
+m5.setStandardOptions(options)
if args:
print "Error: script doesn't take any positional arguments"