mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-27456: Ensure TCP_NODELAY is set on linux (#4231)
This commit is contained in:
parent
4ac5150e06
commit
e796b2fe26
6 changed files with 53 additions and 31 deletions
|
@ -107,13 +107,6 @@ class BaseEventTests(test_utils.TestCase):
|
|||
self.assertIsNone(
|
||||
base_events._ipaddr_info('::3%lo0', 1, INET6, STREAM, TCP))
|
||||
|
||||
if hasattr(socket, 'SOCK_NONBLOCK'):
|
||||
self.assertEqual(
|
||||
None,
|
||||
base_events._ipaddr_info(
|
||||
'1.2.3.4', 1, INET, STREAM | socket.SOCK_NONBLOCK, TCP))
|
||||
|
||||
|
||||
def test_port_parameter_types(self):
|
||||
# Test obscure kinds of arguments for "port".
|
||||
INET = socket.AF_INET
|
||||
|
|
|
@ -15,6 +15,7 @@ from asyncio.selector_events import BaseSelectorEventLoop
|
|||
from asyncio.selector_events import _SelectorTransport
|
||||
from asyncio.selector_events import _SelectorSocketTransport
|
||||
from asyncio.selector_events import _SelectorDatagramTransport
|
||||
from asyncio.selector_events import _set_nodelay
|
||||
from test.test_asyncio import utils as test_utils
|
||||
|
||||
|
||||
|
@ -1493,5 +1494,31 @@ class SelectorDatagramTransportTests(test_utils.TestCase):
|
|||
'Fatal error on transport\nprotocol:.*\ntransport:.*'),
|
||||
exc_info=(ConnectionRefusedError, MOCK_ANY, MOCK_ANY))
|
||||
|
||||
|
||||
class TestSelectorUtils(test_utils.TestCase):
|
||||
def check_set_nodelay(self, sock):
|
||||
opt = sock.getsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY)
|
||||
self.assertFalse(opt)
|
||||
|
||||
_set_nodelay(sock)
|
||||
|
||||
opt = sock.getsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY)
|
||||
self.assertTrue(opt)
|
||||
|
||||
@unittest.skipUnless(hasattr(socket, 'TCP_NODELAY'),
|
||||
'need socket.TCP_NODELAY')
|
||||
def test_set_nodelay(self):
|
||||
sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM,
|
||||
proto=socket.IPPROTO_TCP)
|
||||
with sock:
|
||||
self.check_set_nodelay(sock)
|
||||
|
||||
sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM,
|
||||
proto=socket.IPPROTO_TCP)
|
||||
with sock:
|
||||
sock.setblocking(False)
|
||||
self.check_set_nodelay(sock)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue