summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2017-09-15 13:55:31 (GMT)
committerGitHub <noreply@github.com>2017-09-15 13:55:31 (GMT)
commit11f0807a407551d498bb6bd8cc932636f75f1cd7 (patch)
tree52dc38b07d3a83ccb045e9556244ffa4427b9690 /Lib/test
parentda3e5cf961f9bcc4bb376386cfe7a2865325086c (diff)
downloadcpython-11f0807a407551d498bb6bd8cc932636f75f1cd7.zip
cpython-11f0807a407551d498bb6bd8cc932636f75f1cd7.tar.gz
cpython-11f0807a407551d498bb6bd8cc932636f75f1cd7.tar.bz2
bpo-31234: test_multiprocessing: wait 30 seconds (#3599)
Give 30 seconds to join_process(), instead of 5 or 10 seconds, to wait until the process completes.
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/_test_multiprocessing.py31
1 files changed, 17 insertions, 14 deletions
diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
index bddcdad..fda20f1 100644
--- a/Lib/test/_test_multiprocessing.py
+++ b/Lib/test/_test_multiprocessing.py
@@ -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()