run-tests: exit cleanly if parallel run is interrupted
If interrupted while running with "--jobs N", run-tests asynchronously
spewed a bunch of output and backtraces from both the master and
slave processes, leaving the terminal full of goop. This patch makes
it behave more sensibly.
--- a/tests/run-tests.py Sun Jan 13 01:39:16 2013 -0600
+++ b/tests/run-tests.py Tue Jan 15 13:33:28 2013 -0800
@@ -1125,8 +1125,8 @@
pid, status, fp = waitq.get()
try:
childresults = pickle.load(fp)
- except pickle.UnpicklingError:
- pass
+ except (pickle.UnpicklingError, EOFError):
+ sys.exit(255)
else:
passed += len(childresults['p'])
skipped += len(childresults['s'])
@@ -1221,7 +1221,8 @@
outputcoverage(options)
except KeyboardInterrupt:
failed = True
- print "\ninterrupted!"
+ if not options.child:
+ print "\ninterrupted!"
if failed:
sys.exit(1)