mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
Close issue #12948: multiprocessing test failures can hang the buildbots
This commit is contained in:
parent
79c9d4faa7
commit
6f6016bc59
1 changed files with 27 additions and 3 deletions
|
|
@ -264,6 +264,7 @@ class _TestProcess(BaseTestCase):
|
|||
p = self.Process(target=time.sleep, args=(DELTA,))
|
||||
self.assertNotIn(p, self.active_children())
|
||||
|
||||
p.daemon = True
|
||||
p.start()
|
||||
self.assertIn(p, self.active_children())
|
||||
|
||||
|
|
@ -334,6 +335,7 @@ class _TestSubclassingProcess(BaseTestCase):
|
|||
|
||||
def test_subclassing(self):
|
||||
uppercaser = _UpperCaser()
|
||||
uppercaser.daemon = True
|
||||
uppercaser.start()
|
||||
self.assertEqual(uppercaser.submit('hello'), 'HELLO')
|
||||
self.assertEqual(uppercaser.submit('world'), 'WORLD')
|
||||
|
|
@ -512,6 +514,7 @@ class _TestQueue(BaseTestCase):
|
|||
|
||||
# fork process
|
||||
p = self.Process(target=self._test_fork, args=(queue,))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
|
||||
# check that all expected items are in the queue
|
||||
|
|
@ -552,6 +555,7 @@ class _TestQueue(BaseTestCase):
|
|||
for i in xrange(4)]
|
||||
|
||||
for p in workers:
|
||||
p.daemon = True
|
||||
p.start()
|
||||
|
||||
for i in xrange(10):
|
||||
|
|
@ -816,7 +820,9 @@ class _TestEvent(BaseTestCase):
|
|||
|
||||
#self.assertEqual(event.is_set(), False)
|
||||
|
||||
self.Process(target=self._test_event, args=(event,)).start()
|
||||
p = self.Process(target=self._test_event, args=(event,))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
self.assertEqual(wait(), True)
|
||||
|
||||
#
|
||||
|
|
@ -856,6 +862,7 @@ class _TestValue(BaseTestCase):
|
|||
self.assertEqual(sv.value, cv[1])
|
||||
|
||||
proc = self.Process(target=self._test, args=(values,))
|
||||
proc.daemon = True
|
||||
proc.start()
|
||||
proc.join()
|
||||
|
||||
|
|
@ -919,6 +926,7 @@ class _TestArray(BaseTestCase):
|
|||
self.f(seq)
|
||||
|
||||
p = self.Process(target=self.f, args=(arr,))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
p.join()
|
||||
|
||||
|
|
@ -1285,6 +1293,7 @@ class _TestRemoteManager(BaseTestCase):
|
|||
manager.start()
|
||||
|
||||
p = self.Process(target=self._putter, args=(manager.address, authkey))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
|
||||
manager2 = QueueManager2(
|
||||
|
|
@ -1326,6 +1335,7 @@ class _TestManagerRestart(BaseTestCase):
|
|||
manager.start()
|
||||
|
||||
p = self.Process(target=self._putter, args=(manager.address, authkey))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
queue = manager.get_queue()
|
||||
self.assertEqual(queue.get(), 'hello world')
|
||||
|
|
@ -1449,6 +1459,7 @@ class _TestConnection(BaseTestCase):
|
|||
conn, child_conn = self.Pipe()
|
||||
|
||||
p = self.Process(target=self._echo, args=(child_conn,))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
child_conn.close() # this might complete before child initializes
|
||||
|
||||
|
|
@ -1521,6 +1532,7 @@ class _TestConnection(BaseTestCase):
|
|||
conn, child_conn = self.Pipe(duplex=True)
|
||||
|
||||
p = self.Process(target=self._writefd, args=(child_conn, b"foo"))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
with open(test_support.TESTFN, "wb") as f:
|
||||
fd = f.fileno()
|
||||
|
|
@ -1544,6 +1556,7 @@ class _TestConnection(BaseTestCase):
|
|||
conn, child_conn = self.Pipe(duplex=True)
|
||||
|
||||
p = self.Process(target=self._writefd, args=(child_conn, b"bar", True))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
with open(test_support.TESTFN, "wb") as f:
|
||||
fd = f.fileno()
|
||||
|
|
@ -1632,11 +1645,13 @@ class _TestPicklingConnections(BaseTestCase):
|
|||
|
||||
lconn, lconn0 = self.Pipe()
|
||||
lp = self.Process(target=self._listener, args=(lconn0, families))
|
||||
lp.daemon = True
|
||||
lp.start()
|
||||
lconn0.close()
|
||||
|
||||
rconn, rconn0 = self.Pipe()
|
||||
rp = self.Process(target=self._remote, args=(rconn0,))
|
||||
rp.daemon = True
|
||||
rp.start()
|
||||
rconn0.close()
|
||||
|
||||
|
|
@ -1774,6 +1789,7 @@ class _TestSharedCTypes(BaseTestCase):
|
|||
string.value = latin('hello')
|
||||
|
||||
p = self.Process(target=self._double, args=(x, y, foo, arr, string))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
p.join()
|
||||
|
||||
|
|
@ -1846,6 +1862,7 @@ class _TestFinalize(BaseTestCase):
|
|||
conn, child_conn = self.Pipe()
|
||||
|
||||
p = self.Process(target=self._test_finalize, args=(child_conn,))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
p.join()
|
||||
|
||||
|
|
@ -1915,12 +1932,16 @@ class _TestLogging(BaseTestCase):
|
|||
reader, writer = multiprocessing.Pipe(duplex=False)
|
||||
|
||||
logger.setLevel(LEVEL1)
|
||||
self.Process(target=self._test_level, args=(writer,)).start()
|
||||
p = self.Process(target=self._test_level, args=(writer,))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
self.assertEqual(LEVEL1, reader.recv())
|
||||
|
||||
logger.setLevel(logging.NOTSET)
|
||||
root_logger.setLevel(LEVEL2)
|
||||
self.Process(target=self._test_level, args=(writer,)).start()
|
||||
p = self.Process(target=self._test_level, args=(writer,))
|
||||
p.daemon = True
|
||||
p.start()
|
||||
self.assertEqual(LEVEL2, reader.recv())
|
||||
|
||||
root_logger.setLevel(root_level)
|
||||
|
|
@ -2106,6 +2127,7 @@ def _ThisSubProcess(q):
|
|||
def _TestProcess(q):
|
||||
queue = multiprocessing.Queue()
|
||||
subProc = multiprocessing.Process(target=_ThisSubProcess, args=(queue,))
|
||||
subProc.daemon = True
|
||||
subProc.start()
|
||||
subProc.join()
|
||||
|
||||
|
|
@ -2142,11 +2164,13 @@ class TestStdinBadfiledescriptor(unittest.TestCase):
|
|||
def test_queue_in_process(self):
|
||||
queue = multiprocessing.Queue()
|
||||
proc = multiprocessing.Process(target=_TestProcess, args=(queue,))
|
||||
proc.daemon = True
|
||||
proc.start()
|
||||
proc.join()
|
||||
|
||||
def test_pool_in_process(self):
|
||||
p = multiprocessing.Process(target=pool_in_process)
|
||||
p.daemon = True
|
||||
p.start()
|
||||
p.join()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue