MCPcopy Index your code
hub / github.com/python/cpython / test_wait_socket

Method test_wait_socket

Lib/test/_test_multiprocessing.py:5615–5648  ·  view source on GitHub ↗
(self, slow=False)

Source from the content-addressed store, hash-verified

5613
5614 @warnings_helper.ignore_fork_in_thread_deprecation_warnings()
5615 def test_wait_socket(self, slow=False):
5616 from multiprocessing.connection import wait
5617 l = socket.create_server((socket_helper.HOST, 0))
5618 addr = l.getsockname()
5619 readers = []
5620 procs = []
5621 dic = {}
5622
5623 for i in range(4):
5624 p = multiprocessing.Process(target=self._child_test_wait_socket,
5625 args=(addr, slow))
5626 p.daemon = True
5627 p.start()
5628 procs.append(p)
5629 self.addCleanup(p.join)
5630
5631 for i in range(4):
5632 r, _ = l.accept()
5633 readers.append(r)
5634 dic[r] = []
5635 l.close()
5636
5637 while readers:
5638 for r in wait(readers):
5639 msg = r.recv(32)
5640 if not msg:
5641 readers.remove(r)
5642 r.close()
5643 else:
5644 dic[r].append(msg)
5645
5646 expected = ''.join('%s\n' % i for i in range(10)).encode('ascii')
5647 for v in dic.values():
5648 self.assertEqual(b''.join(v), expected)
5649
5650 def test_wait_slow(self):
5651 self.test_wait(True)

Callers 1

test_wait_socket_slowMethod · 0.95

Calls 15

waitFunction · 0.90
addCleanupMethod · 0.80
create_serverMethod · 0.45
getsocknameMethod · 0.45
ProcessMethod · 0.45
startMethod · 0.45
appendMethod · 0.45
acceptMethod · 0.45
closeMethod · 0.45
recvMethod · 0.45
removeMethod · 0.45
encodeMethod · 0.45

Tested by

no test coverage detected