Lines Matching full:socket
10 import socket
57 if not hasattr(socket, 'IOCTL_VM_SOCKETS_GET_LOCAL_CID'):
61 r = fcntl.ioctl(f, socket.IOCTL_VM_SOCKETS_GET_LOCAL_CID, " ")
70 s = socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW)
80 s = socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_ISOTP)
90 s = socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_J1939)
100 s = socket.socket(socket.PF_RDS, socket.SOCK_SEQPACKET, 0)
110 s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
120 s = socket.socket(socket.AF_QIPCRTR, socket.SOCK_DGRAM, 0)
138 s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)
148 old_timeout = socket.getdefaulttimeout()
150 socket.setdefaulttimeout(timeout)
153 socket.setdefaulttimeout(old_timeout)
170 HAVE_SOCKET_UDPLITE = hasattr(socket, "IPPROTO_UDPLITE")
180 self.serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
191 self.serv = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
201 self.serv = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDPLITE)
265 self.s = socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW)
282 self.serv = socket.socket(socket.PF_RDS, socket.SOCK_SEQPACKET, 0)
287 self.skipTest('unable to bind RDS socket')
408 self.cli = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
422 self.cli = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
438 self.cli = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDPLITE)
452 self.cli = socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW)
472 self.cli = socket.socket(socket.PF_RDS, socket.SOCK_SEQPACKET, 0)
499 self.serv = socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM)
501 self.serv.bind((socket.VMADDR_CID_ANY, VSOCKPORT))
509 self.cli = socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM)
523 """Socket tests for client-server connection.
525 self.cli_conn is a client socket connected to the server. The
565 return socket.socketpair()
592 """A base class for socket tests.
594 Subclasses must provide methods newSocket() to return a new socket
597 Creates a socket self.serv and sets self.serv_addr to its address.
605 """Bind server socket and set self.serv_addr to its address."""
615 """Mixin to listen on the server socket."""
624 """Mixin to add client socket and allow client/server tests.
626 Client socket is self.cli and its address is self.cli_addr. See
639 """Return a new socket for use as client."""
643 """Bind client socket and set self.cli_addr to its address."""
657 Server's socket representing connection to client is self.cli_conn
690 """Base class for Unix-domain socket tests."""
711 return socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
715 """Base class for IPv4 socket tests."""
730 return socket.socket(socket.AF_INET, socket.SOCK_STREAM)
736 return socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
742 return socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDPLITE)
748 return socket.socket(socket.AF_INET, socket.SOCK_STREAM,
749 socket.IPPROTO_SCTP)
753 """Base class for IPv6 socket tests."""
761 return socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
767 return socket.socket(socket.AF_INET6, socket.SOCK_DGRAM, socket.IPPROTO_UDPLITE)
806 """Skip decorated test if a socket cannot be created with given arguments.
809 attribute of the socket module, or skip the test if it doesn't
814 isinstance(obj, str) and not hasattr(socket, obj)]
818 callargs = [getattr(socket, obj) if isinstance(obj, str) else obj
821 s = socket.socket(*callargs)
829 "can't create socket({0}): {1}".format(
840 self.assertTrue(socket.SocketType is _socket.socket)
841 s = socket.socket()
842 self.assertIsInstance(s, socket.SocketType)
846 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
849 self.assertIn('family=%s' % socket.AF_INET, repr(s))
850 self.assertIn('type=%s' % socket.SOCK_STREAM, repr(s))
861 s = _socket.socket(_socket.AF_INET, _socket.SOCK_STREAM)
863 expected = ('<socket object, fd=%s, family=%s, type=%s, proto=%s>'
868 expected = ('<socket object, fd=-1, family=%s, type=%s, proto=%s>'
873 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
883 self.fail('Socket proxy still exists')
886 # Testing socket module exceptions
887 msg = "Error raising socket exception (%s)."
890 with self.assertRaises(OSError, msg=msg % 'socket.herror'):
891 raise socket.herror
892 with self.assertRaises(OSError, msg=msg % 'socket.gaierror'):
893 raise socket.gaierror
897 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
939 socket.AF_INET
940 if socket.has_ipv6:
941 socket.AF_INET6
942 socket.SOCK_STREAM
943 socket.SOCK_DGRAM
944 socket.SOCK_RAW
945 socket.SOCK_RDM
946 socket.SOCK_SEQPACKET
947 socket.SOL_SOCKET
948 socket.SO_REUSEADDR
951 socket.IPPROTO_TCP
952 socket.IPPROTO_UDP
953 if socket.has_ipv6:
954 socket.IPPROTO_IPV6
958 socket.IPPROTO_ICLFXBM
959 socket.IPPROTO_ST
960 socket.IPPROTO_CBT
961 socket.IPPROTO_IGP
962 socket.IPPROTO_RDP
963 socket.IPPROTO_PGM
964 socket.IPPROTO_L2TP
965 socket.IPPROTO_SCTP
969 # socket methods that depend on a configure HAVE_ check. They should
977 if not hasattr(socket.socket, name):
978 self.fail(f"socket method {name} is missing")
1008 hasattr(socket, opt), f"Missing RFC3542 socket option '{opt}'"
1013 hostname = socket.gethostname()
1015 ip = socket.gethostbyname(hostname)
1021 hname, aliases, ipaddrs = socket.gethostbyaddr(ip)
1026 fqhn = socket.getfqdn(ip)
1032 self.assertEqual(socket.gethostbyname(addr), addr)
1037 self.assertIn(host, socket.gethostbyaddr(host)[2])
1052 socket.gethostbyname(addr)
1054 socket.gethostbyaddr(addr)
1056 @unittest.skipUnless(hasattr(socket, 'sethostname'), "test needs socket.sethostname()")
1057 @unittest.skipUnless(hasattr(socket, 'gethostname'), "test needs socket.gethostname()")
1059 oldhn = socket.gethostname()
1061 socket.sethostname('new')
1069 self.assertEqual(socket.gethostname(), 'new')
1071 socket.sethostname(b'bar')
1072 self.assertEqual(socket.gethostname(), 'bar')
1074 socket.sethostname(oldhn)
1076 @unittest.skipUnless(hasattr(socket, 'if_nameindex'),
1077 'socket.if_nameindex() not available.')
1079 interfaces = socket.if_nameindex()
1085 _index = socket.if_nametoindex(name)
1088 _name = socket.if_indextoname(index)
1092 @unittest.skipUnless(hasattr(socket, 'if_indextoname'),
1093 'socket.if_indextoname() not available.')
1095 self.assertRaises(OSError, socket.if_indextoname, 0)
1096 self.assertRaises(TypeError, socket.if_indextoname, '_DEADBEEF')
1098 @unittest.skipUnless(hasattr(socket, 'if_nametoindex'),
1099 'socket.if_nametoindex() not available.')
1101 self.assertRaises(TypeError, socket.if_nametoindex, 0)
1102 self.assertRaises(OSError, socket.if_nametoindex, '_DEADBEEF')
1111 socket.getnameinfo(__name__,0)
1114 self.fail("socket.getnameinfo loses a reference")
1120 socket.getnameinfo(('x', 0, 0, 0), 0)
1127 sizes = {socket.htonl: 32, socket.ntohl: 32,
1128 socket.htons: 16, socket.ntohs: 16}
1150 socket.ntohs(k)
1151 socket.htons(k)
1153 socket.ntohl(k)
1154 socket.htonl(k)
1156 self.assertRaises(OverflowError, socket.ntohs, k)
1157 self.assertRaises(OverflowError, socket.htons, k)
1159 self.assertRaises(OverflowError, socket.ntohl, k)
1160 self.assertRaises(OverflowError, socket.htonl, k)
1176 port = socket.getservbyname(service, 'tcp')
1186 port2 = socket.getservbyname(service)
1190 udpport = socket.getservbyname(service, 'udp')
1198 eq(socket.getservbyport(port2), service)
1199 eq(socket.getservbyport(port, 'tcp'), service)
1201 eq(socket.getservbyport(udpport, 'udp'), service)
1203 self.assertRaises(OverflowError, socket.getservbyport, -1)
1204 self.assertRaises(OverflowError, socket.getservbyport, 65536)
1209 self.assertEqual(socket.getdefaulttimeout(), None)
1210 with socket.socket() as s:
1215 self.assertEqual(socket.getdefaulttimeout(), 10)
1216 with socket.socket() as sock:
1220 socket.setdefaulttimeout(None)
1221 self.assertEqual(socket.getdefaulttimeout(), None)
1222 with socket.socket() as sock:
1226 self.assertRaises(ValueError, socket.setdefaulttimeout, -1)
1229 self.assertRaises(TypeError, socket.setdefaulttimeout, "spam")
1231 @unittest.skipUnless(hasattr(socket, 'inet_aton'),
1232 'test needs socket.inet_aton()')
1236 self.assertEqual(b'\x00'*4, socket.inet_aton('0.0.0.0'))
1237 self.assertEqual(b'\xff'*4, socket.inet_aton('255.255.255.255'))
1239 @unittest.skipUnless(hasattr(socket, 'inet_pton'),
1240 'test needs socket.inet_pton()')
1242 from socket import inet_aton as f, inet_pton, AF_INET
1272 @unittest.skipUnless(hasattr(socket, 'inet_pton'),
1273 'test needs socket.inet_pton()')
1276 from socket import inet_pton, AF_INET6, has_ipv6
1280 self.skipTest('could not import needed symbols from socket')
1336 @unittest.skipUnless(hasattr(socket, 'inet_ntop'),
1337 'test needs socket.inet_ntop()')
1339 from socket import inet_ntoa as f, inet_ntop, AF_INET
1362 @unittest.skipUnless(hasattr(socket, 'inet_ntop'),
1363 'test needs socket.inet_ntop()')
1366 from socket import inet_ntop, AF_INET6, has_ipv6
1370 self.skipTest('could not import needed symbols from socket')
1400 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1420 my_ip_addr = socket.gethostbyname(socket.gethostname())
1429 # We know a socket should start without reuse==0
1430 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1432 reuse = sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR)
1437 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1439 sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
1440 reuse = sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR)
1445 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
1450 sock = socket.socket()
1451 sock.bind((socket._LOCALHOST, 0))
1452 socket.socket(fileno=sock.fileno()).close()
1464 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
1465 self.assertEqual(sock.family, socket.AF_INET)
1466 if hasattr(socket, 'SOCK_CLOEXEC'):
1468 (socket.SOCK_STREAM | socket.SOCK_CLOEXEC,
1469 socket.SOCK_STREAM))
1471 self.assertEqual(sock.type, socket.SOCK_STREAM)
1475 sock = socket.socket()
1496 self.assertTrue(hasattr(socket.socket, 'ioctl'))
1497 self.assertTrue(hasattr(socket, 'SIO_RCVALL'))
1498 self.assertTrue(hasattr(socket, 'RCVALL_ON'))
1499 self.assertTrue(hasattr(socket, 'RCVALL_OFF'))
1500 self.assertTrue(hasattr(socket, 'SIO_KEEPALIVE_VALS'))
1501 s = socket.socket()
1504 s.ioctl(socket.SIO_KEEPALIVE_VALS, (1, 100, 100))
1507 @unittest.skipUnless(hasattr(socket, 'SIO_LOOPBACK_FAST_PATH'),
1510 s = socket.socket()
1513 s.ioctl(socket.SIO_LOOPBACK_FAST_PATH, True)
1520 self.assertRaises(TypeError, s.ioctl, socket.SIO_LOOPBACK_FAST_PATH, None)
1524 socket.getaddrinfo('localhost', 80)
1525 except socket.gaierror as err:
1526 if err.errno == socket.EAI_SERVICE:
1531 for info in socket.getaddrinfo(HOST, None):
1535 socket.getaddrinfo('localhost', 80)
1536 socket.getaddrinfo('127.0.0.1', 80)
1537 socket.getaddrinfo(None, 80)
1539 socket.getaddrinfo('::1', 80)
1545 socket.getaddrinfo(HOST, "http")
1546 socket.getaddrinfo(HOST, 80)
1547 socket.getaddrinfo(HOST, None)
1549 infos = socket.getaddrinfo(HOST, 80, socket.AF_INET, socket.SOCK_STREAM)
1551 self.assertEqual(family, socket.AF_INET)
1554 self.assertEqual(type, socket.SOCK_STREAM)
1557 infos = socket.getaddrinfo(HOST, None, 0, socket.SOCK_STREAM)
1559 self.assertEqual(socktype, socket.SOCK_STREAM)
1561 socket.getaddrinfo(HOST, None, 0, 0, socket.SOL_TCP)
1562 socket.getaddrinfo(HOST, None, 0, 0, 0, socket.AI_PASSIVE)
1565 socket.getaddrinfo(None, 0, socket.AF_UNSPEC, socket.SOCK_STREAM, 0,
1566 socket.AI_PASSIVE)
1568 a = socket.getaddrinfo(HOST, None)
1569 b = socket.getaddrinfo(host=HOST, port=None)
1571 a = socket.getaddrinfo(HOST, None, socket.AF_INET)
1572 b = socket.getaddrinfo(HOST, None, family=socket.AF_INET)
1574 a = socket.getaddrinfo(HOST, None, 0, socket.SOCK_STREAM)
1575 b = socket.getaddrinfo(HOST, None, type=socket.SOCK_STREAM)
1577 a = socket.getaddrinfo(HOST, None, 0, 0, socket.SOL_TCP)
1578 b = socket.getaddrinfo(HOST, None, proto=socket.SOL_TCP)
1580 a = socket.getaddrinfo(HOST, None, 0, 0, 0, socket.AI_PASSIVE)
1581 b = socket.getaddrinfo(HOST, None, flags=socket.AI_PASSIVE)
1583 a = socket.getaddrinfo(None, 0, socket.AF_UNSPEC, socket.SOCK_STREAM, 0,
1584 socket.AI_PASSIVE)
1585 b = socket.getaddrinfo(host=None, port=0, family=socket.AF_UNSPEC,
1586 type=socket.SOCK_STREAM, proto=0,
1587 flags=socket.AI_PASSIVE)
1590 self.assertRaises(UnicodeEncodeError, socket.getaddrinfo, 'localhost', '\uD800')
1593 if hasattr(socket, 'AI_NUMERICSERV'):
1597 socket.getaddrinfo("localhost", None, 0, 0, 0,
1598 socket.AI_NUMERICSERV)
1599 except socket.gaierror:
1604 self.assertRaises(OSError, socket.getnameinfo, ('mail.python.org',0), 0)
1612 socket.gethostbyname('python.org')
1616 socket.gethostbyname(domain)
1617 socket.gethostbyname_ex(domain)
1618 socket.getaddrinfo(domain,0,socket.AF_UNSPEC,socket.SOCK_STREAM)
1621 # socket.gethostbyaddr('испытание.python.org')
1625 if not hasattr(signal, 'alarm') or not hasattr(socket, 'socketpair'):
1626 self.skipTest("signal.alarm and socket.socketpair required for this test")
1634 c, s = socket.socketpair()
1661 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1667 # An open socket file object gets dereferenced after the socket
1668 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1678 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
1684 with socket.socket() as sock:
1695 sock = socket.socket()
1698 socket.close(sock.fileno())
1706 socket.close(None)
1708 socket.close(-1)
1713 with socket.socket() as sock:
1721 with socket.socket() as sock:
1726 sock = socket.socket()
1731 family = pickle.loads(pickle.dumps(socket.AF_INET, protocol))
1732 self.assertEqual(family, socket.AF_INET)
1733 type = pickle.loads(pickle.dumps(socket.SOCK_STREAM, protocol))
1734 self.assertEqual(type, socket.SOCK_STREAM)
1738 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as srv:
1742 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as srv:
1750 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as srv:
1756 self.assertRaises(OverflowError, socket.getnameinfo,
1758 with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as s:
1763 ((*_, sockaddr),) = socket.getaddrinfo(
1765 1234, socket.AF_INET6,
1766 socket.SOCK_DGRAM,
1767 socket.IPPROTO_UDP
1772 self.assertEqual(socket.getfqdn(), socket.getfqdn("0.0.0.0"))
1773 self.assertEqual(socket.getfqdn(), socket.getfqdn("::"))
1778 @unittest.skipUnless(hasattr(socket, 'if_nameindex'), "test needs socket.if_nameindex()")
1781 (ifindex, test_interface) = socket.if_nameindex()[0]
1782 ((*_, sockaddr),) = socket.getaddrinfo(
1784 1234, socket.AF_INET6,
1785 socket.SOCK_DGRAM,
1786 socket.IPPROTO_UDP
1799 ((*_, sockaddr),) = socket.getaddrinfo(
1801 1234, socket.AF_INET6,
1802 socket.SOCK_DGRAM,
1803 socket.IPPROTO_UDP
1811 @unittest.skipUnless(hasattr(socket, 'if_nameindex'), "test needs socket.if_nameindex()")
1814 (ifindex, test_interface) = socket.if_nameindex()[0]
1816 nameinfo = socket.getnameinfo(sockaddr, socket.NI_NUMERICHOST | socket.NI_NUMERICSERV)
1827 nameinfo = socket.getnameinfo(sockaddr, socket.NI_NUMERICHOST | socket.NI_NUMERICSERV)
1833 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
1840 SOCK_NONBLOCK = getattr(socket, 'SOCK_NONBLOCK', 0)
1841 SOCK_CLOEXEC = getattr(socket, 'SOCK_CLOEXEC', 0)
1842 sock_type = socket.SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC
1844 with socket.socket(socket.AF_INET, sock_type) as s:
1845 self.assertEqual(s.type, socket.SOCK_STREAM)
1847 self.assertEqual(s.type, socket.SOCK_STREAM)
1849 self.assertEqual(s.type, socket.SOCK_STREAM)
1851 self.assertEqual(s.type, socket.SOCK_STREAM)
1853 self.assertEqual(s.type, socket.SOCK_STREAM)
1857 # AF_*/SOCK_* constants, socket.family just returns the number.
1859 # To do this we fool socket.socket into believing it already has an
1861 # type and populates the socket object.
1862 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1864 unknown_family = max(socket.AddressFamily.__members__.values()) + 1
1868 for name, kind in socket.SocketKind.__members__.items()
1872 with socket.socket(
1888 with socket.socket() as sock:
1891 with self.assertRaises(socket._GiveupOnSendfile):
1903 s2 = socket.socket(fileno=fd)
1912 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1915 self._test_socket_fileno(s, socket.AF_INET, socket.SOCK_STREAM)
1917 if hasattr(socket, "SOCK_DGRAM"):
1918 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
1921 self._test_socket_fileno(s, socket.AF_INET, socket.SOCK_DGRAM)
1924 s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
1927 self._test_socket_fileno(s, socket.AF_INET6, socket.SOCK_STREAM)
1929 if hasattr(socket, "AF_UNIX"):
1932 s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
1935 s.bind(os.path.join(tmpdir, 'socket'))
1939 self._test_socket_fileno(s, socket.AF_UNIX,
1940 socket.SOCK_STREAM)
1944 socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno=42.5)
1948 socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno="foo")
1952 socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno=-1)
1957 socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno=-42)
1962 socket.socket(fileno=os_helper.make_bad_fd())
1966 socket.socket(
1967 socket.AF_INET,
1968 socket.SOCK_STREAM,
1975 socket.socket(fileno=afile.fileno())
1978 socket.socket(
1979 socket.AF_INET,
1980 socket.SOCK_STREAM,
1987 enum.IntEnum, 'AddressFamily', 'socket',
1991 enum._test_simple_enum(CheckedAddressFamily, socket.AddressFamily)
1996 enum.IntEnum, 'SocketKind', 'socket',
2000 enum._test_simple_enum(CheckedSocketKind, socket.SocketKind)
2005 enum.IntFlag, 'MsgFlag', 'socket',
2009 enum._test_simple_enum(CheckedMsgFlag, socket.MsgFlag)
2014 enum.IntFlag, 'AddressInfo', 'socket',
2017 enum._test_simple_enum(CheckedAddressInfo, socket.AddressInfo)
2024 socket.AF_CAN
2025 socket.PF_CAN
2026 socket.CAN_RAW
2028 @unittest.skipUnless(hasattr(socket, "CAN_BCM"),
2029 'socket.CAN_BCM required for this test.')
2031 socket.CAN_BCM
2034 socket.CAN_BCM_TX_SETUP # create (cyclic) transmission task
2035 socket.CAN_BCM_TX_DELETE # remove (cyclic) transmission task
2036 socket.CAN_BCM_TX_READ # read properties of (cyclic) transmission task
2037 socket.CAN_BCM_TX_SEND # send one CAN frame
2038 socket.CAN_BCM_RX_SETUP # create RX content filter subscription
2039 socket.CAN_BCM_RX_DELETE # remove RX content filter subscription
2040 socket.CAN_BCM_RX_READ # read properties of RX content filter subscription
2041 socket.CAN_BCM_TX_STATUS # reply to TX_READ request
2042 socket.CAN_BCM_TX_EXPIRED # notification on performed transmissions (count=0)
2043 socket.CAN_BCM_RX_STATUS # reply to RX_READ request
2044 socket.CAN_BCM_RX_TIMEOUT # cyclic message is absent
2045 socket.CAN_BCM_RX_CHANGED # updated CAN frame (detected content change)
2048 socket.CAN_BCM_SETTIMER
2049 socket.CAN_BCM_STARTTIMER
2050 socket.CAN_BCM_TX_COUNTEVT
2051 socket.CAN_BCM_TX_ANNOUNCE
2052 socket.CAN_BCM_TX_CP_CAN_ID
2053 socket.CAN_BCM_RX_FILTER_ID
2054 socket.CAN_BCM_RX_CHECK_DLC
2055 socket.CAN_BCM_RX_NO_AUTOTIMER
2056 socket.CAN_BCM_RX_ANNOUNCE_RESUME
2057 socket.CAN_BCM_TX_RESET_MULTI_IDX
2058 socket.CAN_BCM_RX_RTR_FRAME
2061 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2064 @unittest.skipUnless(hasattr(socket, "CAN_BCM"),
2065 'socket.CAN_BCM required for this test.')
2067 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_BCM) as s:
2071 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2078 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2082 @unittest.skipUnless(hasattr(socket, "CAN_RAW_LOOPBACK"),
2083 'socket.CAN_RAW_LOOPBACK required for this test.')
2085 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2087 s.setsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_LOOPBACK,
2090 s.getsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_LOOPBACK))
2092 @unittest.skipUnless(hasattr(socket, "CAN_RAW_FILTER"),
2093 'socket.CAN_RAW_FILTER required for this test.')
2097 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2098 s.setsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_FILTER, can_filter)
2100 s.getsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_FILTER, 8))
2101 s.setsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_FILTER, bytearray(can_filter))
2154 @unittest.skipUnless(hasattr(socket, "CAN_BCM"),
2155 'socket.CAN_BCM required for this test.')
2163 @unittest.skipUnless(hasattr(socket, "CAN_BCM"),
2164 'socket.CAN_BCM required for this test.')
2166 bcm = socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_BCM)
2172 opcode = socket.CAN_BCM_TX_SEND
2203 socket.AF_CAN
2204 socket.PF_CAN
2205 socket.CAN_ISOTP
2206 socket.SOCK_DGRAM
2209 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2212 @unittest.skipUnless(hasattr(socket, "CAN_ISOTP"),
2213 'socket.CAN_ISOTP required for this test.')
2215 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_ISOTP) as s:
2220 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_ISOTP) as s:
2226 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_ISOTP) as s:
2245 @unittest.skipUnless(hasattr(socket, "CAN_J1939"),
2246 'socket.CAN_J1939 required for this test.')
2248 socket.CAN_J1939
2250 socket.J1939_MAX_UNICAST_ADDR
2251 socket.J1939_IDLE_ADDR
2252 socket.J1939_NO_ADDR
2253 socket.J1939_NO_NAME
2254 socket.J1939_PGN_REQUEST
2255 socket.J1939_PGN_ADDRESS_CLAIMED
2256 socket.J1939_PGN_ADDRESS_COMMANDED
2257 socket.J1939_PGN_PDU1_MAX
2258 socket.J1939_PGN_MAX
2259 socket.J1939_NO_PGN
2261 # J1939 socket options
2262 socket.SO_J1939_FILTER
2263 socket.SO_J1939_PROMISC
2264 socket.SO_J1939_SEND_PRIO
2265 socket.SO_J1939_ERRQUEUE
2267 socket.SCM_J1939_DEST_ADDR
2268 socket.SCM_J1939_DEST_NAME
2269 socket.SCM_J1939_PRIO
2270 socket.SCM_J1939_ERRQUEUE
2272 socket.J1939_NLA_PAD
2273 socket.J1939_NLA_BYTES_ACKED
2275 socket.J1939_EE_INFO_NONE
2276 socket.J1939_EE_INFO_TX_ABORT
2278 socket.J1939_FILTER_MAX
2280 @unittest.skipUnless(hasattr(socket, "CAN_J1939"),
2281 'socket.CAN_J1939 required for this test.')
2283 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_J1939) as s:
2288 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_J1939) as s:
2289 … addr = self.interface, socket.J1939_NO_NAME, socket.J1939_NO_PGN, socket.J1939_NO_ADDR
2304 socket.AF_RDS
2305 socket.PF_RDS
2308 with socket.socket(socket.PF_RDS, socket.SOCK_SEQPACKET, 0) as s:
2313 with socket.socket(socket.PF_RDS, socket.SOCK_SEQPACKET, 0) as s:
2314 s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, bufsize)
2315 s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, bufsize)
2338 data, addr = self.serv.recvfrom(self.bufsize, socket.MSG_PEEK)
2347 @requireAttrs(socket.socket, 'recvmsg')
2352 @requireAttrs(socket.socket, 'sendmsg')
2386 socket.AF_QIPCRTR
2389 with socket.socket(socket.AF_QIPCRTR, socket.SOCK_DGRAM) as s:
2393 with socket.socket(socket.AF_QIPCRTR, socket.SOCK_DGRAM) as s:
2397 with socket.socket(socket.AF_QIPCRTR, socket.SOCK_DGRAM) as s:
2402 with socket.socket(socket.AF_QIPCRTR, socket.SOCK_DGRAM) as s:
2406 with socket.socket(socket.AF_QIPCRTR, socket.SOCK_DGRAM) as s:
2416 socket.AF_VSOCK
2419 socket.SO_VM_SOCKETS_BUFFER_SIZE
2420 socket.SO_VM_SOCKETS_BUFFER_MIN_SIZE
2421 socket.SO_VM_SOCKETS_BUFFER_MAX_SIZE
2422 socket.VMADDR_CID_ANY
2423 socket.VMADDR_PORT_ANY
2424 socket.VMADDR_CID_HOST
2425 socket.VM_SOCKETS_INVALID_VERSION
2426 socket.IOCTL_VM_SOCKETS_GET_LOCAL_CID
2429 with socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM) as s:
2433 with socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM) as s:
2434 orig_max = s.getsockopt(socket.AF_VSOCK,
2435 socket.SO_VM_SOCKETS_BUFFER_MAX_SIZE)
2436 orig = s.getsockopt(socket.AF_VSOCK,
2437 socket.SO_VM_SOCKETS_BUFFER_SIZE)
2438 orig_min = s.getsockopt(socket.AF_VSOCK,
2439 socket.SO_VM_SOCKETS_BUFFER_MIN_SIZE)
2441 s.setsockopt(socket.AF_VSOCK,
2442 socket.SO_VM_SOCKETS_BUFFER_MAX_SIZE, orig_max * 2)
2443 s.setsockopt(socket.AF_VSOCK,
2444 socket.SO_VM_SOCKETS_BUFFER_SIZE, orig * 2)
2445 s.setsockopt(socket.AF_VSOCK,
2446 socket.SO_VM_SOCKETS_BUFFER_MIN_SIZE, orig_min * 2)
2449 s.getsockopt(socket.AF_VSOCK,
2450 socket.SO_VM_SOCKETS_BUFFER_MAX_SIZE))
2452 s.getsockopt(socket.AF_VSOCK,
2453 socket.SO_VM_SOCKETS_BUFFER_SIZE))
2455 s.getsockopt(socket.AF_VSOCK,
2456 socket.SO_VM_SOCKETS_BUFFER_MIN_SIZE))
2464 socket.BDADDR_ANY
2465 socket.BDADDR_LOCAL
2466 socket.AF_BLUETOOTH
2467 socket.BTPROTO_RFCOMM
2470 socket.BTPROTO_HCI
2471 socket.SOL_HCI
2472 socket.BTPROTO_L2CAP
2475 socket.BTPROTO_SCO
2478 with socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM) as s:
2483 with socket.socket(socket.AF_BLUETOOTH, socket.SOCK_SEQPACKET, socket.BTPROTO_L2CAP) as s:
2488 with socket.socket(socket.AF_BLUETOOTH, socket.SOCK_RAW, socket.BTPROTO_HCI) as s:
2494 with socket.socket(socket.AF_BLUETOOTH, socket.SOCK_SEQPACKET, socket.BTPROTO_SCO) as s:
2556 sock = socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)
2558 self.assertIsInstance(sock, socket.socket)
2610 # ...but we can create another socket using the (still open)
2612 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno=f)
2681 # same test code is used with different families and types of socket
2758 msg_flags_common_unset |= getattr(socket, name, 0)
2843 return super().msg_flags_non_eor_indicator | socket.MSG_TRUNC
2851 return super().msg_flags_eor_indicator | socket.MSG_EOR
2890 # Address is currently "unspecified" for a connected socket,
2896 # Base class to set a timeout on server's socket.
2904 # Tests for sendmsg() which can use any socket type and do not
2986 @requireAttrs(socket, "CMSG_SPACE")
3006 if not hasattr(socket, "CMSG_SPACE"):
3014 # Check that sendmsg() fails on a closed socket.
3023 # Tests for sendmsg() which require a stream socket and do not
3074 self.sendmsgToServer([b"a"*512], [], socket.MSG_DONTWAIT)
3085 # (e.g. datagram) socket, and do not involve recvmsg() or
3090 # given for unconnected socket.
3102 # recvmsg_into(), and can use any socket type.
3176 # Check that recvmsg[_into]() fails on a closed socket.
3195 @requireAttrs(socket, "MSG_PEEK")
3203 socket.MSG_PEEK)
3212 ignore=getattr(socket, "MSG_TRUNC", 0))
3217 socket.MSG_PEEK)
3234 @requireAttrs(socket.socket, "sendmsg")
3251 # Tests which require a stream socket and can use either recvmsg()
3255 # Receive end-of-stream indicator (b"", peer socket closed).
3286 # Tests for recvmsg() which can use any socket type.
3315 # Tests for recvmsg_into() which can use any socket type.
3407 @requireAttrs(socket, "CMSG_LEN")
3411 toobig = self.socklen_t_limit - socket.CMSG_LEN(0) + 1
3415 self.assertGreater(socket.CMSG_LEN(0), array.array("i").itemsize * 2)
3417 ret = socket.CMSG_LEN(n)
3419 self.assertEqual(ret - socket.CMSG_LEN(0), n)
3422 self.assertRaises(OverflowError, socket.CMSG_LEN, -1)
3425 self.assertRaises(OverflowError, socket.CMSG_LEN, toobig)
3426 self.assertRaises(OverflowError, socket.CMSG_LEN, sys.maxsize)
3428 @requireAttrs(socket, "CMSG_SPACE")
3432 toobig = self.socklen_t_limit - socket.CMSG_SPACE(1) + 1
3435 last = socket.CMSG_SPACE(0)
3439 ret = socket.CMSG_SPACE(n)
3441 self.assertGreaterEqual(ret, socket.CMSG_LEN(n))
3442 self.assertGreaterEqual(ret, n + socket.CMSG_LEN(0))
3446 self.assertRaises(OverflowError, socket.CMSG_SPACE, -1)
3449 self.assertRaises(OverflowError, socket.CMSG_SPACE, toobig)
3450 self.assertRaises(OverflowError, socket.CMSG_SPACE, sys.maxsize)
3487 if (cmsg_level == socket.SOL_SOCKET and
3488 cmsg_type == socket.SCM_RIGHTS):
3500 [(socket.SOL_SOCKET,
3501 socket.SCM_RIGHTS,
3514 self.checkFlags(flags, eor=True, checkunset=socket.MSG_CTRUNC,
3523 self.assertEqual(cmsg_level, socket.SOL_SOCKET)
3524 self.assertEqual(cmsg_type, socket.SCM_RIGHTS)
3541 [(socket.SOL_SOCKET,
3542 socket.SCM_RIGHTS,
3554 @requireAttrs(socket, "CMSG_SPACE")
3559 socket.CMSG_SPACE(4 * SIZEOF_INT)))
3569 socket.CMSG_LEN(4 * SIZEOF_INT)),
3573 ignoreflags=socket.MSG_CTRUNC)
3580 @requireAttrs(socket, "CMSG_SPACE")
3594 self.sendmsgToServer([MSG], [(socket.SOL_SOCKET,
3595 socket.SCM_RIGHTS,
3597 (socket.SOL_SOCKET,
3598 socket.SCM_RIGHTS,
3604 @requireAttrs(socket, "CMSG_SPACE")
3611 socket.CMSG_SPACE(SIZEOF_INT) +
3612 socket.CMSG_LEN(SIZEOF_INT * num_fds)),
3613 maxcmsgs=2, ignoreflags=socket.MSG_CTRUNC)
3621 self.sendmsgToServer([MSG], [(socket.SOL_SOCKET,
3622 socket.SCM_RIGHTS,
3624 (socket.SOL_SOCKET,
3625 socket.SCM_RIGHTS,
3646 ignoreflags=socket.MSG_CTRUNC)
3649 self.sendAncillaryIfPossible(MSG, [(socket.SOL_SOCKET,
3650 socket.SCM_RIGHTS,
3659 self.checkFlags(flags, eor=True, ignore=socket.MSG_CTRUNC)
3662 self.assertEqual(cmsg_level, socket.SOL_SOCKET)
3663 self.assertEqual(cmsg_type, socket.SCM_RIGHTS)
3669 [(socket.SOL_SOCKET,
3670 socket.SCM_RIGHTS,
3673 @requireAttrs(socket, "CMSG_SPACE")
3680 self.checkFlags(flags, eor=True, ignore=socket.MSG_CTRUNC)
3685 self.assertEqual(cmsg_level, socket.SOL_SOCKET)
3686 self.assertEqual(cmsg_type, socket.SCM_RIGHTS)
3697 [(socket.SOL_SOCKET,
3698 socket.SCM_RIGHTS,
3700 (socket.SOL_SOCKET,
3701 socket.SCM_RIGHTS,
3711 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC,
3721 ignoreflags=socket.MSG_CTRUNC)
3729 ignoreflags=socket.MSG_CTRUNC)
3755 socket.CMSG_LEN(0) - 1))
3772 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC)
3778 self.assertEqual(cmsg_level, socket.SOL_SOCKET)
3779 self.assertEqual(cmsg_type, socket.SCM_RIGHTS)
3788 self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(0), maxdata=0)
3794 self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(0) + 1, maxdata=1)
3800 self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(SIZEOF_INT),
3807 self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(2 * SIZEOF_INT) - 1,
3846 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
3847 socket.IPV6_RECVHOPLIMIT, 1)
3854 self.checkFlags(flags, eor=True, checkunset=socket.MSG_CTRUNC,
3860 self.assertEqual(cmsg_level, socket.IPPROTO_IPV6)
3861 self.assertEqual(cmsg_type, socket.IPV6_HOPLIMIT)
3869 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
3882 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
3885 self.checkHopLimit(ancbufsize=socket.CMSG_SPACE(SIZEOF_INT))
3897 @requireAttrs(socket.socket, "sendmsg")
3898 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
3909 [(socket.IPPROTO_IPV6, socket.IPV6_HOPLIMIT,
3920 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
3921 socket.IPV6_RECVHOPLIMIT, 1)
3922 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
3923 socket.IPV6_RECVTCLASS, 1)
3930 self.checkFlags(flags, eor=True, checkunset=socket.MSG_CTRUNC,
3935 tcdata = ancmap[(socket.IPPROTO_IPV6, socket.IPV6_TCLASS)]
3942 hldata = ancmap[(socket.IPPROTO_IPV6, socket.IPV6_HOPLIMIT)]
3949 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
3960 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
3966 ancbufsize=socket.CMSG_SPACE(SIZEOF_INT) * 2)
3973 @requireAttrs(socket.socket, "sendmsg")
3974 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
3987 [(socket.IPPROTO_IPV6, socket.IPV6_TCLASS,
3989 (socket.IPPROTO_IPV6, socket.IPV6_HOPLIMIT,
3993 @requireAttrs(socket.socket, "sendmsg")
3994 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4009 [(socket.IPPROTO_IPV6, socket.IPV6_TCLASS,
4011 (socket.IPPROTO_IPV6, socket.IPV6_HOPLIMIT,
4017 [(socket.IPPROTO_IPV6, socket.IPV6_TCLASS,
4019 (socket.IPPROTO_IPV6, socket.IPV6_HOPLIMIT,
4032 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4033 socket.IPV6_RECVHOPLIMIT, 1)
4042 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC,
4045 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4054 ignoreflags=socket.MSG_CTRUNC)
4061 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4066 ignoreflags=socket.MSG_CTRUNC)
4076 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4085 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4094 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4096 self.checkHopLimitTruncatedHeader(ancbufsize=socket.CMSG_LEN(0) - 1)
4103 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4108 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4109 socket.IPV6_RECVHOPLIMIT, 1)
4112 self.serv_sock, len(MSG), socket.CMSG_LEN(SIZEOF_INT) - 1)
4116 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC)
4121 self.assertEqual(cmsg_level, socket.IPPROTO_IPV6)
4122 self.assertEqual(cmsg_type, socket.IPV6_HOPLIMIT)
4137 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4138 socket.IPV6_RECVHOPLIMIT, 1)
4139 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4140 socket.IPV6_RECVTCLASS, 1)
4147 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC,
4152 self.assertEqual(cmsg_level, socket.IPPROTO_IPV6)
4153 self.assertIn(cmsg_type, {socket.IPV6_TCLASS, socket.IPV6_HOPLIMIT})
4162 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4165 self.checkTruncatedSecondHeader(socket.CMSG_SPACE(SIZEOF_INT),
4166 ignoreflags=socket.MSG_CTRUNC)
4173 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4176 self.checkTruncatedSecondHeader(socket.CMSG_SPACE(SIZEOF_INT) + 1)
4183 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4186 self.checkTruncatedSecondHeader(socket.CMSG_SPACE(SIZEOF_INT) +
4194 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4197 self.checkTruncatedSecondHeader(socket.CMSG_SPACE(SIZEOF_INT) +
4198 socket.CMSG_LEN(0) - 1)
4205 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4210 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4211 socket.IPV6_RECVHOPLIMIT, 1)
4212 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4213 socket.IPV6_RECVTCLASS, 1)
4217 socket.CMSG_SPACE(SIZEOF_INT) + socket.CMSG_LEN(SIZEOF_INT) - 1)
4221 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC)
4223 cmsg_types = {socket.IPV6_TCLASS, socket.IPV6_HOPLIMIT}
4226 self.assertEqual(cmsg_level, socket.IPPROTO_IPV6)
4236 self.assertEqual(cmsg_level, socket.IPPROTO_IPV6)
4248 # Derive concrete test classes for different socket types.
4255 @requireAttrs(socket.socket, "sendmsg")
4259 @requireAttrs(socket.socket, "recvmsg")
4263 @requireAttrs(socket.socket, "recvmsg_into")
4277 @requireAttrs(socket.socket, "sendmsg")
4283 @requireAttrs(socket.socket, "recvmsg")
4289 @requireAttrs(socket.socket, "recvmsg_into")
4295 @requireAttrs(socket.socket, "recvmsg")
4297 @requireAttrs(socket, "IPPROTO_IPV6")
4303 @requireAttrs(socket.socket, "recvmsg_into")
4305 @requireAttrs(socket, "IPPROTO_IPV6")
4322 @requireAttrs(socket.socket, "sendmsg")
4328 @requireAttrs(socket.socket, "recvmsg")
4334 @requireAttrs(socket.socket, "recvmsg_into")
4350 @requireAttrs(socket.socket, "sendmsg")
4358 @requireAttrs(socket.socket, "recvmsg")
4366 @requireAttrs(socket.socket, "recvmsg_into")
4374 @requireAttrs(socket.socket, "recvmsg")
4378 @requireAttrs(socket, "IPPROTO_IPV6")
4384 @requireAttrs(socket.socket, "recvmsg_into")
4388 @requireAttrs(socket, "IPPROTO_IPV6")
4400 @requireAttrs(socket.socket, "sendmsg")
4404 @requireAttrs(socket.socket, "recvmsg")
4409 @requireAttrs(socket.socket, "recvmsg_into")
4420 @requireAttrs(socket.socket, "sendmsg")
4426 @requireAttrs(socket.socket, "recvmsg")
4440 @requireAttrs(socket.socket, "recvmsg_into")
4459 @requireAttrs(socket.socket, "sendmsg")
4460 @requireAttrs(socket, "AF_UNIX")
4464 @requireAttrs(socket.socket, "recvmsg")
4465 @requireAttrs(socket, "AF_UNIX")
4470 @requireAttrs(socket.socket, "recvmsg_into")
4471 @requireAttrs(socket, "AF_UNIX")
4476 @requireAttrs(socket.socket, "sendmsg", "recvmsg")
4477 @requireAttrs(socket, "AF_UNIX", "SOL_SOCKET", "SCM_RIGHTS")
4481 @requireAttrs(socket.socket, "sendmsg", "recvmsg_into")
4482 @requireAttrs(socket, "AF_UNIX", "SOL_SOCKET", "SCM_RIGHTS")
4504 # Timeout for socket operations
4558 @requireAttrs(socket.socket, "recvmsg")
4562 @requireAttrs(socket.socket, "recvmsg_into")
4616 # requires that the address is ignored since the socket is
4622 @requireAttrs(socket.socket, "sendmsg")
4653 self.assertIsInstance(sock, socket.socket)
4654 if hasattr(socket, 'AF_UNIX'):
4655 self.assertEqual(sock.family, socket.AF_UNIX)
4657 self.assertEqual(sock.family, socket.AF_INET)
4658 self.assertEqual(sock.type, socket.SOCK_STREAM)
4691 return socket.socketpair(socket.AF_INET6)
4693 return socket.socketpair(socket.AF_INET)
4698 self._orig_sp = socket.socketpair
4700 # emulation via an AF_INET socket in Lib/socket.py.
4701 socket.socketpair = socket._fallback_socketpair
4712 # Restore the default socket.socketpair definition.
4713 socket.socketpair = self._orig_sp
4726 cli, srv = socket.socketpair(socket.AF_INET)
4736 cli, srv = socket.socketpair(socket.AF_INET6)
4742 orig_getsockname = socket.socket.getsockname
4747 # Connect to the listening socket ahead of the
4748 # client socket.
4750 inject_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
4760 socket.socket.getsockname = inject_getsocketname
4762 sock1, sock2 = socket.socketpair()
4764 socket.socket.getsockname = orig_getsockname
4792 # When a Python socket has a non-zero timeout, it's switched
4794 # sock.recv(), and other socket operations use a select() call and
4795 # handle EWOULDBLOCK/EGAIN on all socket operations. That's how
4840 @unittest.skipUnless(hasattr(socket, 'SOCK_NONBLOCK'),
4841 'test needs socket.SOCK_NONBLOCK')
4844 # create a socket with SOCK_NONBLOCK
4846 self.serv = socket.socket(socket.AF_INET,
4847 socket.SOCK_STREAM | socket.SOCK_NONBLOCK)
4854 # bpo-7995: accept() on a listening socket with a timeout and the
4855 # default timeout is None, the resulting socket must be blocking.
4866 # bpo-7995: accept() on a listening socket with a timeout and the
4867 # default timeout is None, the resulting socket must inherit
4922 self.fail("Error during select call to non-blocking socket.")
4940 """Unit tests for the object returned by socket.makefile()
5057 # The file returned by makefile should keep the socket open.
5110 when reading multiple requests from the same socket."""
5128 # The file returned by makefile should keep the socket open...
5177 # Avoid closing the socket before the server test has finished,
5191 # Try to saturate the socket buffer pipe with repeated large writes.
5207 self.serv_skipped = "failed to saturate the socket buffer"
5221 """Tests for socket.makefile() in text mode (rather than binary)"""
5231 """Tests for socket.makefile() in text mode (rather than binary)"""
5241 """Tests for socket.makefile() in text mode (rather than binary)"""
5256 self.cli = socket.create_connection((HOST, self.port))
5265 class MockSocket(socket.socket):
5271 """Return a socket which times out on connect"""
5272 old_socket = socket.socket
5273 socket.socket = self.MockSocket
5277 socket.socket = old_socket
5281 cli = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
5292 socket.create_connection((HOST, port))
5297 # >>> socket.getaddrinfo('localhost', port, 0, SOCK_STREAM)
5314 socket.create_connection((HOST, port), all_errors=True)
5324 addresses = socket.getaddrinfo(
5325 'localhost', port, 0, socket.SOCK_STREAM)
5331 # as generic socket errors.
5334 socket.create_connection((HOST, 1234))
5364 self.cli = socket.create_connection((HOST, self.port),
5371 self.cli = socket.create_connection((HOST, self.port),
5381 # passing no explicit timeout uses socket's global default
5382 self.assertTrue(socket.getdefaulttimeout() is None)
5383 socket.setdefaulttimeout(42)
5385 self.cli = socket.create_connection((HOST, self.port))
5388 socket.setdefaulttimeout(None)
5394 self.assertTrue(socket.getdefaulttimeout() is None)
5395 socket.setdefaulttimeout(30)
5397 self.cli = socket.create_connection((HOST, self.port), timeout=None)
5400 socket.setdefaulttimeout(None)
5405 self.cli = socket.create_connection((HOST, self.port), timeout=30)
5410 self.cli = socket.create_connection((HOST, self.port), 30)
5437 self.cli = sock = socket.create_connection((HOST, self.port))
5442 self.cli = sock = socket.create_connection((HOST, self.port), timeout=1)
5555 self.assertTrue(issubclass(socket.herror, OSError))
5556 self.assertTrue(issubclass(socket.gaierror, OSError))
5557 self.assertTrue(issubclass(socket.timeout, OSError))
5558 self.assertIs(socket.error, OSError)
5559 self.assertIs(socket.timeout, TimeoutError)
5564 sock0 = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
5565 sock = socket.socket(
5566 socket.AF_INET, socket.SOCK_STREAM, 0, sock0.fileno())
5581 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s1:
5584 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s2:
5592 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s:
5598 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s:
5603 s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
5612 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s:
5620 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s1:
5623 # Each socket is bound to a different abstract address.
5624 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s2:
5630 @unittest.skipUnless(hasattr(socket, 'AF_UNIX'), 'test needs socket.AF_UNIX')
5634 self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
5651 # Bind the socket
5707 Test the buffer versions of socket.recv() and socket.send().
5798 if not hasattr(socket, "AF_TIPC"):
5816 srv = socket.socket(socket.AF_TIPC, socket.SOCK_RDM)
5817 cli = socket.socket(socket.AF_TIPC, socket.SOCK_RDM)
5821 srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
5822 srvaddr = (socket.TIPC_ADDR_NAMESEQ, TIPC_STYPE,
5826 sendaddr = (socket.TIPC_ADDR_NAME, TIPC_STYPE,
5844 self.srv = socket.socket(socket.AF_TIPC, socket.SOCK_STREAM)
5846 self.srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
5847 srvaddr = (socket.TIPC_ADDR_NAMESEQ, TIPC_STYPE,
5860 self.cli = socket.socket(socket.AF_TIPC, socket.SOCK_STREAM)
5862 addr = (socket.TIPC_ADDR_NAME, TIPC_STYPE,
5881 with socket.socket() as sock:
5885 with socket.socket() as sock:
5889 with socket.socket() as sock:
5901 with socket.create_connection(address) as sock:
5915 with socket.create_connection(address) as sock:
5922 @unittest.skipUnless(hasattr(socket, "SOCK_CLOEXEC"),
5926 with socket.socket(socket.AF_INET,
5927 socket.SOCK_STREAM | socket.SOCK_CLOEXEC) as s:
5928 self.assertEqual(s.type, socket.SOCK_STREAM)
5932 sock = socket.socket()
5937 sock = socket.socket()
5945 sock = socket.socket()
5955 sock = socket.socket()
5969 sock = socket.socket()
5981 s1, s2 = socket.socketpair()
5988 @unittest.skipUnless(hasattr(socket, "SOCK_NONBLOCK"),
5993 self.assertEqual(s.type, socket.SOCK_STREAM)
6001 # If timeout > 0, the socket will be in a "blocking" mode
6002 # from the standpoint of the Python API. For Python socket
6010 self.assertEqual(s.type, socket.SOCK_STREAM)
6020 with socket.socket(socket.AF_INET,
6021 socket.SOCK_STREAM | socket.SOCK_NONBLOCK) as s:
6034 t = socket.getdefaulttimeout()
6035 socket.setdefaulttimeout(0.0)
6036 with socket.socket() as s:
6038 socket.setdefaulttimeout(None)
6039 with socket.socket() as s:
6041 socket.setdefaulttimeout(2.0)
6042 with socket.socket() as s:
6044 socket.setdefaulttimeout(None)
6045 with socket.socket() as s:
6047 socket.setdefaulttimeout(t)
6057 # Recreate socket from shared data
6061 s = socket.fromshare(sdata)
6070 # Transfer the listening server socket to another process
6078 # Get the shared socket data
6081 # Pass the shared socket to the other process
6091 s = socket.create_connection(addr)
6106 self.assertRaises(ValueError, socket.fromshare, data[:-1])
6107 self.assertRaises(ValueError, socket.fromshare, data+b"foo")
6110 # socket sharing is expected to work only for blocking socket
6119 # Python introspection on the socket however will still return
6120 # 0. For the shared socket, the python value is recreated
6127 s = socket.fromshare(data)
6134 families = [socket.AF_INET, socket.AF_INET6]
6135 types = [socket.SOCK_STREAM, socket.SOCK_DGRAM]
6139 source = socket.socket(f, t)
6144 shared = socket.fromshare(data)
6155 Test the send() implementation of socket.sendfile().
6212 with socket.create_connection(address) as sock, file as file:
6229 with socket.create_connection(address) as sock, file as file:
6233 self.assertRaises(socket._GiveupOnSendfile,
6250 with socket.create_connection(address) as sock, file as file:
6266 with socket.create_connection(address) as sock, file as file:
6283 sock = socket.create_connection(address,
6304 sock = socket.create_connection(address,
6325 with socket.create_connection(address, timeout=2) as sock, file as file:
6344 with socket.create_connection(address) as sock, file as file:
6360 sock = socket.create_connection(address,
6378 with socket.create_connection(address) as sock:
6396 with socket.socket(type=socket.SOCK_DGRAM) as s:
6401 with socket.socket() as s:
6406 with socket.socket() as s:
6422 Test the sendfile() implementation of socket.sendfile().
6432 sock = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
6456 op.send(b'a', socket.MSG_MORE)
6457 op.send(b'b', socket.MSG_MORE)
6458 op.send(b'c', socket.MSG_MORE)
6465 algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_KEY, b"Jefe")
6481 algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_KEY, key)
6484 op.sendmsg_afalg(op=socket.ALG_OP_ENCRYPT, iv=iv,
6485 flags=socket.MSG_MORE)
6492 op=socket.ALG_OP_DECRYPT, iv=iv)
6501 op=socket.ALG_OP_ENCRYPT, iv=iv)
6509 op=socket.ALG_OP_DECRYPT, iv=iv)
6527 algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_KEY, key)
6528 algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_AEAD_AUTHSIZE,
6534 op.sendmsg_afalg(op=socket.ALG_OP_ENCRYPT, iv=iv,
6535 assoclen=assoclen, flags=socket.MSG_MORE)
6536 op.sendall(assoc, socket.MSG_MORE)
6546 op.sendmsg_afalg([msg], op=socket.ALG_OP_ENCRYPT, iv=iv,
6559 ([socket.SOL_ALG, socket.ALG_SET_OP, pack_uint32(socket.ALG_OP_ENCRYPT)],
6560 [socket.SOL_ALG, socket.ALG_SET_IV, pack_uint32(len(iv)) + iv],
6561 [socket.SOL_ALG, socket.ALG_SET_AEAD_ASSOCLEN, pack_uint32(assoclen)],
6572 op.sendmsg_afalg([msg], op=socket.ALG_OP_DECRYPT, iv=iv,
6582 algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_KEY, extra_seed)
6589 sock = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
6601 sock.sendmsg_afalg(op=socket.ALG_OP_ENCRYPT, assoclen=None)
6604 sock.sendmsg_afalg(op=socket.ALG_OP_ENCRYPT, assoclen=-1)
6608 sock = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
6627 self.assertTrue(socket.TCP_KEEPALIVE)
6646 provided = [s for s in dir(socket) if s.startswith('TCP')]
6657 with socket.create_server(("127.0.0.1", port)) as sock:
6661 with socket.create_server(("::1", port),
6662 family=socket.AF_INET6) as sock:
6667 with socket.create_server(("127.0.0.1", 0)) as sock:
6668 self.assertEqual(sock.family, socket.AF_INET)
6669 self.assertEqual(sock.type, socket.SOCK_STREAM)
6671 with socket.create_server(("::1", 0), family=socket.AF_INET6) as s:
6672 self.assertEqual(s.family, socket.AF_INET6)
6673 self.assertEqual(sock.type, socket.SOCK_STREAM)
6676 if not hasattr(socket, "SO_REUSEPORT"):
6678 socket.create_server(("localhost", 0), reuse_port=True)
6680 with socket.create_server(("localhost", 0)) as sock:
6681 opt = sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT)
6683 with socket.create_server(("localhost", 0), reuse_port=True) as sock:
6684 opt = sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT)
6692 with socket.create_server(("::1", 0), family=socket.AF_INET6) as sock:
6693 assert sock.getsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY)
6695 @unittest.skipIf(not socket.has_dualstack_ipv6(),
6699 with socket.create_server(("::1", 0), family=socket.AF_INET6,
6701 self.assertEqual(sock.family, socket.AF_INET6)
6726 with socket.socket(family=family) as sock:
6734 with socket.create_server(("", port)) as sock:
6736 self.echo_client(("127.0.0.1", port), socket.AF_INET)
6741 with socket.create_server(("", port),
6742 family=socket.AF_INET6) as sock:
6744 self.echo_client(("::1", port), socket.AF_INET6)
6748 @unittest.skipIf(not socket.has_dualstack_ipv6(),
6753 with socket.create_server(("", port), family=socket.AF_INET6,
6756 self.echo_client(("127.0.0.1", port), socket.AF_INET)
6758 @unittest.skipIf(not socket.has_dualstack_ipv6(),
6763 with socket.create_server(("", port), family=socket.AF_INET6,
6766 self.echo_client(("::1", port), socket.AF_INET6)
6768 @requireAttrs(socket, "send_fds")
6769 @requireAttrs(socket, "recv_fds")
6770 @requireAttrs(socket, "AF_UNIX")
6787 # use a UNIX socket pair to exchange file descriptors locally
6788 sock1, sock2 = socket.socketpair(socket.AF_UNIX, socket.SOCK_STREAM)
6790 socket.send_fds(sock1, [MSG], fds)
6792 msg, fds2, flags, addr = socket.recv_fds(sock2, len(MSG) * 2, len(fds) * 2)