◐ Shell
clean mode source ↗

bpo-31234: test_multiprocessing: wait 30 seconds by vstinner · Pull Request #3599 · python/cpython

Expand Up @@ -63,6 +63,9 @@ # #
# Timeout to wait until a process completes TIMEOUT = 30.0 # seconds
def latin(s): return s.encode('latin')
Expand All @@ -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)

# Expand Down Expand Up @@ -484,7 +487,7 @@ def test_many_processes(self): 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)
Expand All @@ -496,7 +499,7 @@ def test_many_processes(self): 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) Expand Down Expand Up @@ -659,7 +662,7 @@ def test_sys_exit(self): 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: Expand All @@ -672,7 +675,7 @@ def test_sys_exit(self): 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)
# Expand Down Expand Up @@ -1261,7 +1264,7 @@ def test_waitfor(self): state.value += 1 cond.notify()
join_process(p, timeout=5) join_process(p) self.assertEqual(p.exitcode, 0)
@classmethod Expand All @@ -1288,7 +1291,7 @@ def test_waitfor_timeout(self): 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): Expand All @@ -1297,7 +1300,7 @@ def test_waitfor_timeout(self): state.value += 1 cond.notify()
join_process(p, timeout=5) join_process(p) self.assertTrue(success.value)
@classmethod Expand Down Expand Up @@ -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): Expand Down Expand Up @@ -4011,7 +4014,7 @@ def test_timeout(self): self.assertEqual(conn.recv(), 456) conn.close() l.close() join_process(p, timeout=10) join_process(p) finally: socket.setdefaulttimeout(old_timeout)
Expand Down Expand Up @@ -4047,7 +4050,7 @@ def child(cls, n, conn): 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() Expand All @@ -4060,7 +4063,7 @@ def test_lock(self): p.start() w.close() new_size = r.recv() join_process(p, timeout=5) join_process(p) self.assertLessEqual(new_size, old_size)
# Expand Down Expand Up @@ -4115,7 +4118,7 @@ def test_closefd(self): p.start() writer.close() e = reader.recv() join_process(p, timeout=5) join_process(p) finally: self.close(fd) writer.close() Expand Down