X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=util%2Fregress;h=8ff07c4533dcdc77dca195d3afa5c72710d9b2a5;hb=dd6a21190e33f6d09ee6ff5ed045f92000c5e801;hp=5d6f321f250c1bb4427ad188dc5e8c4cfd86b010;hpb=bc05f5982e8ac89f3e11e3aa3853e651a644778a;p=gem5.git diff --git a/util/regress b/util/regress index 5d6f321f2..8ff07c453 100755 --- a/util/regress +++ b/util/regress @@ -1,5 +1,5 @@ #! /usr/bin/env python -# Copyright (c) 2005-2006 The Regents of The University of Michigan +# Copyright (c) 2005-2007 The Regents of The University of Michigan # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -31,6 +31,7 @@ import sys import os import optparse import datetime +from subprocess import call progname = os.path.basename(sys.argv[0]) @@ -39,7 +40,7 @@ optparser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help='echo commands before executing') optparser.add_option('--builds', dest='builds', - default='ALPHA_SE,ALPHA_FS,MIPS_SE,SPARC_SE', + default='ALPHA_SE,ALPHA_FS,MIPS_SE,SPARC_SE,SPARC_FS', help='comma-separated list of build targets to test ' " (default: '%default')" ) optparser.add_option('--variants', dest='variants', @@ -60,14 +61,20 @@ variants = options.variants.split(',') # Call os.system() and raise exception if return status is non-zero def system(cmd): - if options.verbose: - print cmd - status = os.system(cmd) - if status != 0: - upper = (status & 0xff00) >> 8 - lower = (status & 0xff) - raise OSError, "shell command '%s' failed, status %d:%d" \ - % (cmd, upper, lower) + try: + retcode = call(cmd, shell=True) + if retcode < 0: + print >>sys.stderr, "Child was terminated by signal", -retcode + print >>sys.stderr, "When attemping to execute: %s" % cmd + sys.exit(1) + elif retcode > 0: + print >>sys.stderr, "Child returned", retcode + print >>sys.stderr, "When attemping to execute: %s" % cmd + sys.exit(1) + except OSError, e: + print >>sys.stderr, "Execution failed:", e + print >>sys.stderr, "When attemping to execute: %s" % cmd + sys.exit(1) # Quote string s so it can be passed as a shell arg def shellquote(s): @@ -75,30 +82,29 @@ def shellquote(s): s = "'%s'" % s return s -try: - if not tests: - print "No tests specified, just building binaries." - targets = ['build/%s/m5.%s' % (build, variant) - for build in builds - for variant in variants] - elif '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] +if not tests: + print "No tests specified, just building binaries." + targets = ['build/%s/m5.%s' % (build, variant) + for build in builds + for variant in variants] +elif 'all' in tests: + targets = ['build/%s/tests/%s' % (build, variant) + for build in builds + for variant in variants] +else: + # Ugly! Since we don't have any quick SPARC_FS tests remove the SPARC_FS target + # If we ever get a quick SPARC_FS test, this code should be removed + if 'quick' in tests and 'SPARC_FS' in builds: + builds.remove('SPARC_FS') + targets = ['build/%s/tests/%s/%s' % (build, variant, test) + for build in builds + for variant in variants + for test in tests] - scons_opts = options.scons_opts - if options.jobs != 1: - scons_opts += ' -j %d' % options.jobs +scons_opts = options.scons_opts +if options.jobs != 1: + scons_opts += ' -j %d' % options.jobs - system('scons %s %s' % (scons_opts, ' '.join(targets))) +system('scons IGNORE_STYLE=True %s %s' % (scons_opts, ' '.join(targets))) - sys.exit(0) - -except OSError, exc: - print "%s: " % progname, exc - sys.exit(1) +sys.exit(0)