(self, slow=False)
| 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) |
no test coverage detected