[Python-checkins] cpython (3.3): Make test_terminate() succeed or fail quickly.

richard.oudkerk python-checkins at python.org
Sun Oct 13 01:55:09 CEST 2013


http://hg.python.org/cpython/rev/87f484679a39
changeset:   86270:87f484679a39
branch:      3.3
parent:      86268:3b6401c27e39
user:        Richard Oudkerk <shibturn at gmail.com>
date:        Sun Oct 13 00:49:27 2013 +0100
summary:
  Make test_terminate() succeed or fail quickly.

This does not fix #19227, but should stop the Gentoo buildbot from hanging.

files:
  Lib/test/test_multiprocessing.py |  16 ++++++++++++++--
  1 files changed, 14 insertions(+), 2 deletions(-)


diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -270,7 +270,7 @@
 
     @classmethod
     def _test_terminate(cls):
-        time.sleep(1000)
+        time.sleep(100)
 
     def test_terminate(self):
         if self.TYPE == 'threads':
@@ -296,7 +296,19 @@
 
         p.terminate()
 
-        self.assertEqual(join(), None)
+        if hasattr(signal, 'alarm'):
+            def handler(*args):
+                raise RuntimeError('join took too long: pid=%s' % p.pid)
+            old_handler = signal.signal(signal.SIGALRM, handler)
+            try:
+                signal.alarm(10)
+                self.assertEqual(join(), None)
+                signal.alarm(0)
+            finally:
+                signal.signal(signal.SIGALRM, old_handler)
+        else:
+            self.assertEqual(join(), None)
+
         self.assertTimingAlmostEqual(join.elapsed, 0.0)
 
         self.assertEqual(p.is_alive(), False)

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list