35,42d34
< #
< # Regression invocation:
< #
< # regress \
< # --workdir poolfs \
< # --scons-opts 'BATCH=yes USE_MYSQL=no -j 30 -Q' \
< # --recurse
<
49,51d40
< optparser.add_option('--scratch', dest='scratch', action='store_true',
< default=False,
< help='rebuld from scratch')
58,59d46
< optparser.add_option('--workdir', dest='workdir',
< help='directory for checked-out source trees')
62,67d48
< 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')
76,78d56
< # Repositories to clone/update
< repos = ['m5']
<
96,123d73
< # 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
<
125,137d74
< 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)
<
142,145d78
< if options.verbose:
< print 'cd m5'
< os.chdir('m5')
<