diff options
Diffstat (limited to 'util/regress')
-rwxr-xr-x | util/regress | 90 |
1 files changed, 16 insertions, 74 deletions
diff --git a/util/regress b/util/regress index 067f9f092..8e60b6fee 100755 --- a/util/regress +++ b/util/regress @@ -1,5 +1,5 @@ #! /usr/bin/env python -# Copyright (c) 2005 The Regents of The University of Michigan +# Copyright (c) 2005-2006 The Regents of The University of Michigan # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -32,39 +32,22 @@ import os import optparse import datetime -# -# Regression invocation: -# -# regress \ -# --workdir poolfs \ -# --scons-opts 'BATCH=yes USE_MYSQL=no -j 30 -Q' \ -# --recurse - progname = os.path.basename(sys.argv[0]) optparser = optparse.OptionParser() optparser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help='echo commands before executing') -optparser.add_option('--scratch', dest='scratch', action='store_true', - default=False, - help='rebuld from scratch') optparser.add_option('--builds', dest='builds', - default='ALPHA_SE,ALPHA_FS,ALPHA_FS_TL', - help='comma-separated list of builds to test') + default='ALPHA_SE,ALPHA_FS,MIPS_SE,SPARC_SE', + help='comma-separated list of build targets to test ' + " (default: '%default')" ) optparser.add_option('--variants', dest='variants', default='opt', - help='comma-separated list of build variants to test') -optparser.add_option('--workdir', dest='workdir', - help='directory for checked-out source trees') + help='comma-separated list of build variants to test ' + " (default: '%default')" ) optparser.add_option('--scons-opts', dest='scons_opts', default='', - help='scons options') -optparser.add_option('--no-pull', dest='pull', action='store_false', - default=True, - help="don't pull changes from repository") -optparser.add_option('--recurse', dest='recurse', action='store_true', - default=False, - help='call recursively to get summary up front') + help='scons options', metavar='OPTS') (options, tests) = optparser.parse_args() @@ -73,9 +56,6 @@ optparser.add_option('--recurse', dest='recurse', action='store_true', builds = options.builds.split(',') variants = options.variants.split(',') -# Repositories to clone/update -repos = ['m5', 'm5-test', 'ext'] - # Call os.system() and raise exception if return status is non-zero def system(cmd): if options.verbose: @@ -93,58 +73,20 @@ def shellquote(s): s = "'%s'" % s return s -# The '--recurse' option invokes scons once to perform any necessary -# rebuilds/test runs with the (possibly verbose) output placed in a -# log file, then (if the buld was successful) returns scons to print a -# summary of the results. -if options.recurse: - sys.argv.remove('--recurse') # avoid infinite recursion... - timestr = datetime.datetime.now().isoformat('-')[:19] - logfile = '%s-%s' % (progname, timestr) - # quote args for shell - qargs = [shellquote(a) for a in sys.argv] - # always run the sub-job in verbose mode - qargs.append('-v') - cmd = '%s > %s 2>&1' % (' '.join(qargs), logfile) - try: - system(cmd) - except OSError, exc: - print "Error: recursive invocation failed, aborting." - print exc - print "=======================" - os.system('cat %s' % logfile) - sys.exit(1) - # recursive call succeeded... re-run to generate summary - # don't *re*-build from scratch now - options.scratch = False - # no need to re-pull since the recursive call shoudl have done that - options.pull = False - print "Recursive invocation successful, see %s for output." % logfile - try: - if options.workdir: - if options.verbose: - print 'cd', options.workdir - os.chdir(options.workdir) - - if options.scratch: - for dir in repos: - system('rm -rf %s' % dir) - system('bk clone /bk/%s' % dir) - elif options.pull: - for dir in repos: - system('cd %s; bk pull' % dir) - if not tests: print "No tests specified." sys.exit(1) - if options.verbose: - print 'cd m5/build' - os.chdir('m5/build') - - targets = ['%s/test/%s/%s' % (build, variant, test) - for build in builds for variant in variants for test in tests] + if 'all' in tests: + targets = ['build/%s/tests/%s' % (build, variant) + for build in builds + for variant in variants] + else: + targets = ['build/%s/tests/%s/%s' % (build, variant, test) + for build in builds + for variant in variants + for test in tests] system('scons %s %s' % (options.scons_opts, ' '.join(targets))) |