]> granicus.if.org Git - python/commitdiff
bpo-31234: test_multiprocessing: wait 30 seconds (#3599)
authorVictor Stinner <victor.stinner@gmail.com>
Fri, 15 Sep 2017 13:55:31 +0000 (06:55 -0700)
committerGitHub <noreply@github.com>
Fri, 15 Sep 2017 13:55:31 +0000 (06:55 -0700)
Give 30 seconds to join_process(), instead of 5 or 10 seconds, to
wait until the process completes.

Lib/test/_test_multiprocessing.py

index bddcdadfeee25ad3074a14fe50c0ef482b3cd6b0..fda20f1f408f9042a74eab90e43421ae9ec0b2bc 100644 (file)
@@ -63,6 +63,9 @@ except ImportError:
 #
 #
 
+# Timeout to wait until a process completes
+TIMEOUT = 30.0 # seconds
+
 def latin(s):
     return s.encode('latin')
 
@@ -73,10 +76,10 @@ def close_queue(queue):
         queue.join_thread()
 
 
-def join_process(process, timeout):
+def join_process(process):
     # Since multiprocessing.Process has the same API than threading.Thread
     # (join() and is_alive(), the support function can be reused
-    support.join_thread(process, timeout)
+    support.join_thread(process, timeout=TIMEOUT)
 
 
 #
@@ -484,7 +487,7 @@ class _TestProcess(BaseTestCase):
         for p in procs:
             p.start()
         for p in procs:
-            join_process(p, timeout=10)
+            join_process(p)
         for p in procs:
             self.assertEqual(p.exitcode, 0)
 
@@ -496,7 +499,7 @@ class _TestProcess(BaseTestCase):
         for p in procs:
             p.terminate()
         for p in procs:
-            join_process(p, timeout=10)
+            join_process(p)
         if os.name != 'nt':
             for p in procs:
                 self.assertEqual(p.exitcode, -signal.SIGTERM)
@@ -659,7 +662,7 @@ class _TestSubclassingProcess(BaseTestCase):
             p = self.Process(target=self._test_sys_exit, args=(reason, testfn))
             p.daemon = True
             p.start()
-            join_process(p, timeout=5)
+            join_process(p)
             self.assertEqual(p.exitcode, 1)
 
             with open(testfn, 'r') as f:
@@ -672,7 +675,7 @@ class _TestSubclassingProcess(BaseTestCase):
             p = self.Process(target=sys.exit, args=(reason,))
             p.daemon = True
             p.start()
-            join_process(p, timeout=5)
+            join_process(p)
             self.assertEqual(p.exitcode, reason)
 
 #
@@ -1261,7 +1264,7 @@ class _TestCondition(BaseTestCase):
                 state.value += 1
                 cond.notify()
 
-        join_process(p, timeout=5)
+        join_process(p)
         self.assertEqual(p.exitcode, 0)
 
     @classmethod
@@ -1288,7 +1291,7 @@ class _TestCondition(BaseTestCase):
                          args=(cond, state, success, sem))
         p.daemon = True
         p.start()
-        self.assertTrue(sem.acquire(timeout=10))
+        self.assertTrue(sem.acquire(timeout=TIMEOUT))
 
         # Only increment 3 times, so state == 4 is never reached.
         for i in range(3):
@@ -1297,7 +1300,7 @@ class _TestCondition(BaseTestCase):
                 state.value += 1
                 cond.notify()
 
-        join_process(p, timeout=5)
+        join_process(p)
         self.assertTrue(success.value)
 
     @classmethod
@@ -3079,7 +3082,7 @@ class _TestPicklingConnections(BaseTestCase):
     @classmethod
     def tearDownClass(cls):
         from multiprocessing import resource_sharer
-        resource_sharer.stop(timeout=5)
+        resource_sharer.stop(timeout=TIMEOUT)
 
     @classmethod
     def _listener(cls, conn, families):
@@ -4011,7 +4014,7 @@ class TestTimeouts(unittest.TestCase):
             self.assertEqual(conn.recv(), 456)
             conn.close()
             l.close()
-            join_process(p, timeout=10)
+            join_process(p)
         finally:
             socket.setdefaulttimeout(old_timeout)
 
@@ -4047,7 +4050,7 @@ class TestForkAwareThreadLock(unittest.TestCase):
             p = multiprocessing.Process(target=cls.child, args=(n-1, conn))
             p.start()
             conn.close()
-            join_process(p, timeout=5)
+            join_process(p)
         else:
             conn.send(len(util._afterfork_registry))
         conn.close()
@@ -4060,7 +4063,7 @@ class TestForkAwareThreadLock(unittest.TestCase):
         p.start()
         w.close()
         new_size = r.recv()
-        join_process(p, timeout=5)
+        join_process(p)
         self.assertLessEqual(new_size, old_size)
 
 #
@@ -4115,7 +4118,7 @@ class TestCloseFds(unittest.TestCase):
             p.start()
             writer.close()
             e = reader.recv()
-            join_process(p, timeout=5)
+            join_process(p)
         finally:
             self.close(fd)
             writer.close()