diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2016-10-01 01:17:33 (GMT) |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2016-10-01 01:17:33 (GMT) |
commit | 6c63f197dff23f56b15c61dea8bea30d83350c63 (patch) | |
tree | 597acf0663cc6392c17294e99c902c88e39cbea7 /Lib | |
parent | d8e9713cf1f475ccd5c870a9643d625645870a4c (diff) | |
parent | 34b9d14be642be80e9ac10c59004570a7efa5804 (diff) | |
download | cpython-6c63f197dff23f56b15c61dea8bea30d83350c63.zip cpython-6c63f197dff23f56b15c61dea8bea30d83350c63.tar.gz cpython-6c63f197dff23f56b15c61dea8bea30d83350c63.tar.bz2 |
Issue #28283: Merge from 3.5
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_asyncio/test_selector_events.py | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/Lib/test/test_asyncio/test_selector_events.py b/Lib/test/test_asyncio/test_selector_events.py index 0c26a87..8b621bf 100644 --- a/Lib/test/test_asyncio/test_selector_events.py +++ b/Lib/test/test_asyncio/test_selector_events.py @@ -2,8 +2,6 @@ import errno import socket -import threading -import time import unittest from unittest import mock try: @@ -1786,89 +1784,5 @@ class SelectorDatagramTransportTests(test_utils.TestCase): 'Fatal error on transport\nprotocol:.*\ntransport:.*'), exc_info=(ConnectionRefusedError, MOCK_ANY, MOCK_ANY)) - -class SelectorLoopFunctionalTests(unittest.TestCase): - - def setUp(self): - self.loop = asyncio.new_event_loop() - asyncio.set_event_loop(None) - - def tearDown(self): - self.loop.close() - - @asyncio.coroutine - def recv_all(self, sock, nbytes): - buf = b'' - while len(buf) < nbytes: - buf += yield from self.loop.sock_recv(sock, nbytes - len(buf)) - return buf - - def test_sock_connect_sock_write_race(self): - TIMEOUT = 3.0 - PAYLOAD = b'DATA' * 1024 * 1024 - - class Server(threading.Thread): - def __init__(self, *args, srv_sock, **kwargs): - super().__init__(*args, **kwargs) - self.srv_sock = srv_sock - - def run(self): - with self.srv_sock: - srv_sock.listen(100) - - sock, addr = self.srv_sock.accept() - sock.settimeout(TIMEOUT) - - with sock: - sock.sendall(b'helo') - - buf = bytearray() - while len(buf) < len(PAYLOAD): - pack = sock.recv(1024 * 65) - if not pack: - break - buf.extend(pack) - - @asyncio.coroutine - def client(addr): - sock = socket.socket() - with sock: - sock.setblocking(False) - - started = time.monotonic() - while True: - if time.monotonic() - started > TIMEOUT: - self.fail('unable to connect to the socket') - return - try: - yield from self.loop.sock_connect(sock, addr) - except OSError: - yield from asyncio.sleep(0.05, loop=self.loop) - else: - break - - # Give 'Server' thread a chance to accept and send b'helo' - time.sleep(0.1) - - data = yield from self.recv_all(sock, 4) - self.assertEqual(data, b'helo') - yield from self.loop.sock_sendall(sock, PAYLOAD) - - srv_sock = socket.socket() - srv_sock.settimeout(TIMEOUT) - srv_sock.bind(('127.0.0.1', 0)) - srv_addr = srv_sock.getsockname() - - srv = Server(srv_sock=srv_sock, daemon=True) - srv.start() - - try: - self.loop.run_until_complete( - asyncio.wait_for(client(srv_addr), loop=self.loop, - timeout=TIMEOUT)) - finally: - srv.join() - - if __name__ == '__main__': unittest.main() |