run-tests: exit cleanly if parallel run is interrupted stable
authorBryan O'Sullivan <bryano@fb.com>
Tue, 15 Jan 2013 13:33:28 -0800
branchstable
changeset 1195 abba08b9f8e0
parent 1194 d55e5d564d22
child 1196 c0daf79e5680
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. [ original upstream message ]
tests/run-tests.py
--- 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)