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")
|
help="Pickled test results")
|
||||||
|
|
||||||
def _show(args):
|
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)
|
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)
|
formatter.dump_suites(suites)
|
||||||
|
|
||||||
def _test_args(subparsers):
|
def _test_args(subparsers):
|
||||||
|
@ -276,7 +286,11 @@ def _test_args(subparsers):
|
||||||
help="Pickled test results")
|
help="Pickled test results")
|
||||||
|
|
||||||
def _test(args):
|
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):
|
if all(s for s in suites):
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
Loading…
Reference in a new issue