(self, slow=False)
| 5284 | s.close() |
| 5285 | |
| 5286 | def test_wait_socket(self, slow=False): |
| 5287 | from multiprocessing.connection import wait |
| 5288 | l = socket.create_server((socket_helper.HOST, 0)) |
| 5289 | addr = l.getsockname() |
| 5290 | readers = [] |
| 5291 | procs = [] |
| 5292 | dic = {} |
| 5293 | |
| 5294 | for i in range(4): |
| 5295 | p = multiprocessing.Process(target=self._child_test_wait_socket, |
| 5296 | args=(addr, slow)) |
| 5297 | p.daemon = True |
| 5298 | p.start() |
| 5299 | procs.append(p) |
| 5300 | self.addCleanup(p.join) |
| 5301 | |
| 5302 | for i in range(4): |
| 5303 | r, _ = l.accept() |
| 5304 | readers.append(r) |
| 5305 | dic[r] = [] |
| 5306 | l.close() |
| 5307 | |
| 5308 | while readers: |
| 5309 | for r in wait(readers): |
| 5310 | msg = r.recv(32) |
| 5311 | if not msg: |
| 5312 | readers.remove(r) |
| 5313 | r.close() |
| 5314 | else: |
| 5315 | dic[r].append(msg) |
| 5316 | |
| 5317 | expected = ''.join('%s\n' % i for i in range(10)).encode('ascii') |
| 5318 | for v in dic.values(): |
| 5319 | self.assertEqual(b''.join(v), expected) |
| 5320 | |
| 5321 | def test_wait_slow(self): |
| 5322 | self.test_wait(True) |
no test coverage detected