tests: Warn not fail when reading invalid pickle status files
With this change, the test script will output a warning when it reads an incomplete (e.g., when a regression is still running) or corrupt status file instead of throwing an exception. When the scipt is used to show the results the corrupt file is skipped; when it is used to test if all regressions run successfully it will return an error value (2). Change-Id: Ie7d9b457b200e3abc7ae6238e3efbf3d18cf4297 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2320 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
parent
083cd6da78
commit
e2805f825a
1 changed files with 16 additions and 2 deletions
|
@ -242,8 +242,18 @@ def _show_args(subparsers):
|
|||
help="Pickled test results")
|
||||
|
||||
def _show(args):
|
||||
def _load(f):
|
||||
# Load the pickled status file, sometimes e.g., when a
|
||||
# regression is still running the status file might be
|
||||
# incomplete.
|
||||
try:
|
||||
return pickle.load(f)
|
||||
except EOFError:
|
||||
print >> sys.stderr, 'Could not read file %s' % f.name
|
||||
return []
|
||||
|
||||
formatter = _create_formatter(args)
|
||||
suites = sum([ pickle.load(f) for f in args.result ], [])
|
||||
suites = sum([ _load(f) for f in args.result ], [])
|
||||
formatter.dump_suites(suites)
|
||||
|
||||
def _test_args(subparsers):
|
||||
|
@ -276,7 +286,11 @@ def _test_args(subparsers):
|
|||
help="Pickled test results")
|
||||
|
||||
def _test(args):
|
||||
suites = sum([ pickle.load(f) for f in args.result ], [])
|
||||
try:
|
||||
suites = sum([ pickle.load(f) for f in args.result ], [])
|
||||
except EOFError:
|
||||
print >> sys.stderr, 'Could not read all files'
|
||||
sys.exit(2)
|
||||
|
||||
if all(s for s in suites):
|
||||
sys.exit(0)
|
||||
|
|
Loading…
Reference in a new issue