• Home
  • Raw
  • Download

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
562 self.serv, self.cli = socket.socketpair()
584 """A base class for socket tests.
586 Subclasses must provide methods newSocket() to return a new socket
589 Creates a socket self.serv and sets self.serv_addr to its address.
597 """Bind server socket and set self.serv_addr to its address."""
607 """Mixin to listen on the server socket."""
616 """Mixin to add client socket and allow client/server tests.
618 Client socket is self.cli and its address is self.cli_addr. See
631 """Return a new socket for use as client."""
635 """Bind client socket and set self.cli_addr to its address."""
649 Server's socket representing connection to client is self.cli_conn
682 """Base class for Unix-domain socket tests."""
703 return socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
707 """Base class for IPv4 socket tests."""
722 return socket.socket(socket.AF_INET, socket.SOCK_STREAM)
728 return socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
734 return socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDPLITE)
740 return socket.socket(socket.AF_INET, socket.SOCK_STREAM,
741 socket.IPPROTO_SCTP)
745 """Base class for IPv6 socket tests."""
753 return socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
759 return socket.socket(socket.AF_INET6, socket.SOCK_DGRAM, socket.IPPROTO_UDPLITE)
798 """Skip decorated test if a socket cannot be created with given arguments.
801 attribute of the socket module, or skip the test if it doesn't
806 isinstance(obj, str) and not hasattr(socket, obj)]
810 callargs = [getattr(socket, obj) if isinstance(obj, str) else obj
813 s = socket.socket(*callargs)
821 "can't create socket({0}): {1}".format(
832 self.assertTrue(socket.SocketType is _socket.socket)
833 s = socket.socket()
834 self.assertIsInstance(s, socket.SocketType)
838 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
841 self.assertIn('family=%s' % socket.AF_INET, repr(s))
842 self.assertIn('type=%s' % socket.SOCK_STREAM, repr(s))
853 s = _socket.socket(_socket.AF_INET, _socket.SOCK_STREAM)
855 expected = ('<socket object, fd=%s, family=%s, type=%s, proto=%s>'
860 expected = ('<socket object, fd=-1, family=%s, type=%s, proto=%s>'
865 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
875 self.fail('Socket proxy still exists')
878 # Testing socket module exceptions
879 msg = "Error raising socket exception (%s)."
882 with self.assertRaises(OSError, msg=msg % 'socket.herror'):
883 raise socket.herror
884 with self.assertRaises(OSError, msg=msg % 'socket.gaierror'):
885 raise socket.gaierror
889 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
931 socket.AF_INET
932 if socket.has_ipv6:
933 socket.AF_INET6
934 socket.SOCK_STREAM
935 socket.SOCK_DGRAM
936 socket.SOCK_RAW
937 socket.SOCK_RDM
938 socket.SOCK_SEQPACKET
939 socket.SOL_SOCKET
940 socket.SO_REUSEADDR
943 socket.IPPROTO_TCP
944 socket.IPPROTO_UDP
945 if socket.has_ipv6:
946 socket.IPPROTO_IPV6
950 socket.IPPROTO_ICLFXBM
951 socket.IPPROTO_ST
952 socket.IPPROTO_CBT
953 socket.IPPROTO_IGP
954 socket.IPPROTO_RDP
955 socket.IPPROTO_PGM
956 socket.IPPROTO_L2TP
957 socket.IPPROTO_SCTP
961 # socket methods that depend on a configure HAVE_ check. They should
969 if not hasattr(socket.socket, name):
970 self.fail(f"socket method {name} is missing")
1000 hasattr(socket, opt), f"Missing RFC3542 socket option '{opt}'"
1005 hostname = socket.gethostname()
1007 ip = socket.gethostbyname(hostname)
1013 hname, aliases, ipaddrs = socket.gethostbyaddr(ip)
1018 fqhn = socket.getfqdn(ip)
1024 self.assertEqual(socket.gethostbyname(addr), addr)
1029 self.assertIn(host, socket.gethostbyaddr(host)[2])
1044 socket.gethostbyname(addr)
1046 socket.gethostbyaddr(addr)
1048 @unittest.skipUnless(hasattr(socket, 'sethostname'), "test needs socket.sethostname()")
1049 @unittest.skipUnless(hasattr(socket, 'gethostname'), "test needs socket.gethostname()")
1051 oldhn = socket.gethostname()
1053 socket.sethostname('new')
1061 self.assertEqual(socket.gethostname(), 'new')
1063 socket.sethostname(b'bar')
1064 self.assertEqual(socket.gethostname(), 'bar')
1066 socket.sethostname(oldhn)
1068 @unittest.skipUnless(hasattr(socket, 'if_nameindex'),
1069 'socket.if_nameindex() not available.')
1071 interfaces = socket.if_nameindex()
1077 _index = socket.if_nametoindex(name)
1080 _name = socket.if_indextoname(index)
1084 @unittest.skipUnless(hasattr(socket, 'if_indextoname'),
1085 'socket.if_indextoname() not available.')
1087 self.assertRaises(OSError, socket.if_indextoname, 0)
1088 self.assertRaises(TypeError, socket.if_indextoname, '_DEADBEEF')
1090 @unittest.skipUnless(hasattr(socket, 'if_nametoindex'),
1091 'socket.if_nametoindex() not available.')
1093 self.assertRaises(TypeError, socket.if_nametoindex, 0)
1094 self.assertRaises(OSError, socket.if_nametoindex, '_DEADBEEF')
1103 socket.getnameinfo(__name__,0)
1106 self.fail("socket.getnameinfo loses a reference")
1112 socket.getnameinfo(('x', 0, 0, 0), 0)
1119 sizes = {socket.htonl: 32, socket.ntohl: 32,
1120 socket.htons: 16, socket.ntohs: 16}
1142 socket.ntohs(k)
1143 socket.htons(k)
1145 socket.ntohl(k)
1146 socket.htonl(k)
1148 self.assertRaises(OverflowError, socket.ntohs, k)
1149 self.assertRaises(OverflowError, socket.htons, k)
1151 self.assertRaises(OverflowError, socket.ntohl, k)
1152 self.assertRaises(OverflowError, socket.htonl, k)
1168 port = socket.getservbyname(service, 'tcp')
1178 port2 = socket.getservbyname(service)
1182 udpport = socket.getservbyname(service, 'udp')
1190 eq(socket.getservbyport(port2), service)
1191 eq(socket.getservbyport(port, 'tcp'), service)
1193 eq(socket.getservbyport(udpport, 'udp'), service)
1195 self.assertRaises(OverflowError, socket.getservbyport, -1)
1196 self.assertRaises(OverflowError, socket.getservbyport, 65536)
1201 self.assertEqual(socket.getdefaulttimeout(), None)
1202 with socket.socket() as s:
1207 self.assertEqual(socket.getdefaulttimeout(), 10)
1208 with socket.socket() as sock:
1212 socket.setdefaulttimeout(None)
1213 self.assertEqual(socket.getdefaulttimeout(), None)
1214 with socket.socket() as sock:
1218 self.assertRaises(ValueError, socket.setdefaulttimeout, -1)
1221 self.assertRaises(TypeError, socket.setdefaulttimeout, "spam")
1223 @unittest.skipUnless(hasattr(socket, 'inet_aton'),
1224 'test needs socket.inet_aton()')
1228 self.assertEqual(b'\x00'*4, socket.inet_aton('0.0.0.0'))
1229 self.assertEqual(b'\xff'*4, socket.inet_aton('255.255.255.255'))
1231 @unittest.skipUnless(hasattr(socket, 'inet_pton'),
1232 'test needs socket.inet_pton()')
1234 from socket import inet_aton as f, inet_pton, AF_INET
1264 @unittest.skipUnless(hasattr(socket, 'inet_pton'),
1265 'test needs socket.inet_pton()')
1268 from socket import inet_pton, AF_INET6, has_ipv6
1272 self.skipTest('could not import needed symbols from socket')
1328 @unittest.skipUnless(hasattr(socket, 'inet_ntop'),
1329 'test needs socket.inet_ntop()')
1331 from socket import inet_ntoa as f, inet_ntop, AF_INET
1354 @unittest.skipUnless(hasattr(socket, 'inet_ntop'),
1355 'test needs socket.inet_ntop()')
1358 from socket import inet_ntop, AF_INET6, has_ipv6
1362 self.skipTest('could not import needed symbols from socket')
1392 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1412 my_ip_addr = socket.gethostbyname(socket.gethostname())
1421 # We know a socket should start without reuse==0
1422 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1424 reuse = sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR)
1429 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1431 sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
1432 reuse = sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR)
1437 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
1442 sock = socket.socket()
1443 sock.bind((socket._LOCALHOST, 0))
1444 socket.socket(fileno=sock.fileno()).close()
1456 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
1457 self.assertEqual(sock.family, socket.AF_INET)
1458 if hasattr(socket, 'SOCK_CLOEXEC'):
1460 (socket.SOCK_STREAM | socket.SOCK_CLOEXEC,
1461 socket.SOCK_STREAM))
1463 self.assertEqual(sock.type, socket.SOCK_STREAM)
1467 sock = socket.socket()
1488 self.assertTrue(hasattr(socket.socket, 'ioctl'))
1489 self.assertTrue(hasattr(socket, 'SIO_RCVALL'))
1490 self.assertTrue(hasattr(socket, 'RCVALL_ON'))
1491 self.assertTrue(hasattr(socket, 'RCVALL_OFF'))
1492 self.assertTrue(hasattr(socket, 'SIO_KEEPALIVE_VALS'))
1493 s = socket.socket()
1496 s.ioctl(socket.SIO_KEEPALIVE_VALS, (1, 100, 100))
1499 @unittest.skipUnless(hasattr(socket, 'SIO_LOOPBACK_FAST_PATH'),
1502 s = socket.socket()
1505 s.ioctl(socket.SIO_LOOPBACK_FAST_PATH, True)
1512 self.assertRaises(TypeError, s.ioctl, socket.SIO_LOOPBACK_FAST_PATH, None)
1516 socket.getaddrinfo('localhost', 80)
1517 except socket.gaierror as err:
1518 if err.errno == socket.EAI_SERVICE:
1523 for info in socket.getaddrinfo(HOST, None):
1527 socket.getaddrinfo('localhost', 80)
1528 socket.getaddrinfo('127.0.0.1', 80)
1529 socket.getaddrinfo(None, 80)
1531 socket.getaddrinfo('::1', 80)
1537 socket.getaddrinfo(HOST, "http")
1538 socket.getaddrinfo(HOST, 80)
1539 socket.getaddrinfo(HOST, None)
1541 infos = socket.getaddrinfo(HOST, 80, socket.AF_INET, socket.SOCK_STREAM)
1543 self.assertEqual(family, socket.AF_INET)
1546 self.assertEqual(type, socket.SOCK_STREAM)
1549 infos = socket.getaddrinfo(HOST, None, 0, socket.SOCK_STREAM)
1551 self.assertEqual(socktype, socket.SOCK_STREAM)
1553 socket.getaddrinfo(HOST, None, 0, 0, socket.SOL_TCP)
1554 socket.getaddrinfo(HOST, None, 0, 0, 0, socket.AI_PASSIVE)
1557 socket.getaddrinfo(None, 0, socket.AF_UNSPEC, socket.SOCK_STREAM, 0,
1558 socket.AI_PASSIVE)
1560 a = socket.getaddrinfo(HOST, None)
1561 b = socket.getaddrinfo(host=HOST, port=None)
1563 a = socket.getaddrinfo(HOST, None, socket.AF_INET)
1564 b = socket.getaddrinfo(HOST, None, family=socket.AF_INET)
1566 a = socket.getaddrinfo(HOST, None, 0, socket.SOCK_STREAM)
1567 b = socket.getaddrinfo(HOST, None, type=socket.SOCK_STREAM)
1569 a = socket.getaddrinfo(HOST, None, 0, 0, socket.SOL_TCP)
1570 b = socket.getaddrinfo(HOST, None, proto=socket.SOL_TCP)
1572 a = socket.getaddrinfo(HOST, None, 0, 0, 0, socket.AI_PASSIVE)
1573 b = socket.getaddrinfo(HOST, None, flags=socket.AI_PASSIVE)
1575 a = socket.getaddrinfo(None, 0, socket.AF_UNSPEC, socket.SOCK_STREAM, 0,
1576 socket.AI_PASSIVE)
1577 b = socket.getaddrinfo(host=None, port=0, family=socket.AF_UNSPEC,
1578 type=socket.SOCK_STREAM, proto=0,
1579 flags=socket.AI_PASSIVE)
1582 self.assertRaises(UnicodeEncodeError, socket.getaddrinfo, 'localhost', '\uD800')
1585 if hasattr(socket, 'AI_NUMERICSERV'):
1589 socket.getaddrinfo("localhost", None, 0, 0, 0,
1590 socket.AI_NUMERICSERV)
1591 except socket.gaierror:
1596 self.assertRaises(OSError, socket.getnameinfo, ('mail.python.org',0), 0)
1604 socket.gethostbyname('python.org')
1608 socket.gethostbyname(domain)
1609 socket.gethostbyname_ex(domain)
1610 socket.getaddrinfo(domain,0,socket.AF_UNSPEC,socket.SOCK_STREAM)
1613 # socket.gethostbyaddr('испытание.python.org')
1617 if not hasattr(signal, 'alarm') or not hasattr(socket, 'socketpair'):
1618 self.skipTest("signal.alarm and socket.socketpair required for this test")
1626 c, s = socket.socketpair()
1653 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1659 # An open socket file object gets dereferenced after the socket
1660 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1670 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
1676 with socket.socket() as sock:
1687 sock = socket.socket()
1690 socket.close(sock.fileno())
1698 socket.close(None)
1700 socket.close(-1)
1705 with socket.socket() as sock:
1713 with socket.socket() as sock:
1718 sock = socket.socket()
1723 family = pickle.loads(pickle.dumps(socket.AF_INET, protocol))
1724 self.assertEqual(family, socket.AF_INET)
1725 type = pickle.loads(pickle.dumps(socket.SOCK_STREAM, protocol))
1726 self.assertEqual(type, socket.SOCK_STREAM)
1730 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as srv:
1734 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as srv:
1742 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as srv:
1748 self.assertRaises(OverflowError, socket.getnameinfo,
1750 with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as s:
1755 ((*_, sockaddr),) = socket.getaddrinfo(
1757 1234, socket.AF_INET6,
1758 socket.SOCK_DGRAM,
1759 socket.IPPROTO_UDP
1764 self.assertEqual(socket.getfqdn(), socket.getfqdn("0.0.0.0"))
1765 self.assertEqual(socket.getfqdn(), socket.getfqdn("::"))
1770 @unittest.skipUnless(hasattr(socket, 'if_nameindex'), "test needs socket.if_nameindex()")
1773 (ifindex, test_interface) = socket.if_nameindex()[0]
1774 ((*_, sockaddr),) = socket.getaddrinfo(
1776 1234, socket.AF_INET6,
1777 socket.SOCK_DGRAM,
1778 socket.IPPROTO_UDP
1791 ((*_, sockaddr),) = socket.getaddrinfo(
1793 1234, socket.AF_INET6,
1794 socket.SOCK_DGRAM,
1795 socket.IPPROTO_UDP
1803 @unittest.skipUnless(hasattr(socket, 'if_nameindex'), "test needs socket.if_nameindex()")
1806 (ifindex, test_interface) = socket.if_nameindex()[0]
1808 nameinfo = socket.getnameinfo(sockaddr, socket.NI_NUMERICHOST | socket.NI_NUMERICSERV)
1819 nameinfo = socket.getnameinfo(sockaddr, socket.NI_NUMERICHOST | socket.NI_NUMERICSERV)
1825 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
1832 SOCK_NONBLOCK = getattr(socket, 'SOCK_NONBLOCK', 0)
1833 SOCK_CLOEXEC = getattr(socket, 'SOCK_CLOEXEC', 0)
1834 sock_type = socket.SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC
1836 with socket.socket(socket.AF_INET, sock_type) as s:
1837 self.assertEqual(s.type, socket.SOCK_STREAM)
1839 self.assertEqual(s.type, socket.SOCK_STREAM)
1841 self.assertEqual(s.type, socket.SOCK_STREAM)
1843 self.assertEqual(s.type, socket.SOCK_STREAM)
1845 self.assertEqual(s.type, socket.SOCK_STREAM)
1849 # AF_*/SOCK_* constants, socket.family just returns the number.
1851 # To do this we fool socket.socket into believing it already has an
1853 # type and populates the socket object.
1854 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1856 unknown_family = max(socket.AddressFamily.__members__.values()) + 1
1860 for name, kind in socket.SocketKind.__members__.items()
1864 with socket.socket(
1880 with socket.socket() as sock:
1883 with self.assertRaises(socket._GiveupOnSendfile):
1895 s2 = socket.socket(fileno=fd)
1904 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1907 self._test_socket_fileno(s, socket.AF_INET, socket.SOCK_STREAM)
1909 if hasattr(socket, "SOCK_DGRAM"):
1910 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
1913 self._test_socket_fileno(s, socket.AF_INET, socket.SOCK_DGRAM)
1916 s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
1919 self._test_socket_fileno(s, socket.AF_INET6, socket.SOCK_STREAM)
1921 if hasattr(socket, "AF_UNIX"):
1924 s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
1927 s.bind(os.path.join(tmpdir, 'socket'))
1931 self._test_socket_fileno(s, socket.AF_UNIX,
1932 socket.SOCK_STREAM)
1936 socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno=42.5)
1940 socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno="foo")
1944 socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno=-1)
1949 socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno=-42)
1954 socket.socket(fileno=os_helper.make_bad_fd())
1958 socket.socket(
1959 socket.AF_INET,
1960 socket.SOCK_STREAM,
1967 socket.socket(fileno=afile.fileno())
1970 socket.socket(
1971 socket.AF_INET,
1972 socket.SOCK_STREAM,
1979 enum.IntEnum, 'AddressFamily', 'socket',
1983 enum._test_simple_enum(CheckedAddressFamily, socket.AddressFamily)
1988 enum.IntEnum, 'SocketKind', 'socket',
1992 enum._test_simple_enum(CheckedSocketKind, socket.SocketKind)
1997 enum.IntFlag, 'MsgFlag', 'socket',
2001 enum._test_simple_enum(CheckedMsgFlag, socket.MsgFlag)
2006 enum.IntFlag, 'AddressInfo', 'socket',
2009 enum._test_simple_enum(CheckedAddressInfo, socket.AddressInfo)
2016 socket.AF_CAN
2017 socket.PF_CAN
2018 socket.CAN_RAW
2020 @unittest.skipUnless(hasattr(socket, "CAN_BCM"),
2021 'socket.CAN_BCM required for this test.')
2023 socket.CAN_BCM
2026 socket.CAN_BCM_TX_SETUP # create (cyclic) transmission task
2027 socket.CAN_BCM_TX_DELETE # remove (cyclic) transmission task
2028 socket.CAN_BCM_TX_READ # read properties of (cyclic) transmission task
2029 socket.CAN_BCM_TX_SEND # send one CAN frame
2030 socket.CAN_BCM_RX_SETUP # create RX content filter subscription
2031 socket.CAN_BCM_RX_DELETE # remove RX content filter subscription
2032 socket.CAN_BCM_RX_READ # read properties of RX content filter subscription
2033 socket.CAN_BCM_TX_STATUS # reply to TX_READ request
2034 socket.CAN_BCM_TX_EXPIRED # notification on performed transmissions (count=0)
2035 socket.CAN_BCM_RX_STATUS # reply to RX_READ request
2036 socket.CAN_BCM_RX_TIMEOUT # cyclic message is absent
2037 socket.CAN_BCM_RX_CHANGED # updated CAN frame (detected content change)
2040 socket.CAN_BCM_SETTIMER
2041 socket.CAN_BCM_STARTTIMER
2042 socket.CAN_BCM_TX_COUNTEVT
2043 socket.CAN_BCM_TX_ANNOUNCE
2044 socket.CAN_BCM_TX_CP_CAN_ID
2045 socket.CAN_BCM_RX_FILTER_ID
2046 socket.CAN_BCM_RX_CHECK_DLC
2047 socket.CAN_BCM_RX_NO_AUTOTIMER
2048 socket.CAN_BCM_RX_ANNOUNCE_RESUME
2049 socket.CAN_BCM_TX_RESET_MULTI_IDX
2050 socket.CAN_BCM_RX_RTR_FRAME
2053 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2056 @unittest.skipUnless(hasattr(socket, "CAN_BCM"),
2057 'socket.CAN_BCM required for this test.')
2059 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_BCM) as s:
2063 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2070 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2074 @unittest.skipUnless(hasattr(socket, "CAN_RAW_LOOPBACK"),
2075 'socket.CAN_RAW_LOOPBACK required for this test.')
2077 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2079 s.setsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_LOOPBACK,
2082 s.getsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_LOOPBACK))
2084 @unittest.skipUnless(hasattr(socket, "CAN_RAW_FILTER"),
2085 'socket.CAN_RAW_FILTER required for this test.')
2089 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2090 s.setsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_FILTER, can_filter)
2092 s.getsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_FILTER, 8))
2093 s.setsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_FILTER, bytearray(can_filter))
2146 @unittest.skipUnless(hasattr(socket, "CAN_BCM"),
2147 'socket.CAN_BCM required for this test.')
2155 @unittest.skipUnless(hasattr(socket, "CAN_BCM"),
2156 'socket.CAN_BCM required for this test.')
2158 bcm = socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_BCM)
2164 opcode = socket.CAN_BCM_TX_SEND
2195 socket.AF_CAN
2196 socket.PF_CAN
2197 socket.CAN_ISOTP
2198 socket.SOCK_DGRAM
2201 with socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) as s:
2204 @unittest.skipUnless(hasattr(socket, "CAN_ISOTP"),
2205 'socket.CAN_ISOTP required for this test.')
2207 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_ISOTP) as s:
2212 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_ISOTP) as s:
2218 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_ISOTP) as s:
2237 @unittest.skipUnless(hasattr(socket, "CAN_J1939"),
2238 'socket.CAN_J1939 required for this test.')
2240 socket.CAN_J1939
2242 socket.J1939_MAX_UNICAST_ADDR
2243 socket.J1939_IDLE_ADDR
2244 socket.J1939_NO_ADDR
2245 socket.J1939_NO_NAME
2246 socket.J1939_PGN_REQUEST
2247 socket.J1939_PGN_ADDRESS_CLAIMED
2248 socket.J1939_PGN_ADDRESS_COMMANDED
2249 socket.J1939_PGN_PDU1_MAX
2250 socket.J1939_PGN_MAX
2251 socket.J1939_NO_PGN
2253 # J1939 socket options
2254 socket.SO_J1939_FILTER
2255 socket.SO_J1939_PROMISC
2256 socket.SO_J1939_SEND_PRIO
2257 socket.SO_J1939_ERRQUEUE
2259 socket.SCM_J1939_DEST_ADDR
2260 socket.SCM_J1939_DEST_NAME
2261 socket.SCM_J1939_PRIO
2262 socket.SCM_J1939_ERRQUEUE
2264 socket.J1939_NLA_PAD
2265 socket.J1939_NLA_BYTES_ACKED
2267 socket.J1939_EE_INFO_NONE
2268 socket.J1939_EE_INFO_TX_ABORT
2270 socket.J1939_FILTER_MAX
2272 @unittest.skipUnless(hasattr(socket, "CAN_J1939"),
2273 'socket.CAN_J1939 required for this test.')
2275 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_J1939) as s:
2280 with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_J1939) as s:
2281 … addr = self.interface, socket.J1939_NO_NAME, socket.J1939_NO_PGN, socket.J1939_NO_ADDR
2296 socket.AF_RDS
2297 socket.PF_RDS
2300 with socket.socket(socket.PF_RDS, socket.SOCK_SEQPACKET, 0) as s:
2305 with socket.socket(socket.PF_RDS, socket.SOCK_SEQPACKET, 0) as s:
2306 s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, bufsize)
2307 s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, bufsize)
2330 data, addr = self.serv.recvfrom(self.bufsize, socket.MSG_PEEK)
2339 @requireAttrs(socket.socket, 'recvmsg')
2344 @requireAttrs(socket.socket, 'sendmsg')
2378 socket.AF_QIPCRTR
2381 with socket.socket(socket.AF_QIPCRTR, socket.SOCK_DGRAM) as s:
2385 with socket.socket(socket.AF_QIPCRTR, socket.SOCK_DGRAM) as s:
2389 with socket.socket(socket.AF_QIPCRTR, socket.SOCK_DGRAM) as s:
2394 with socket.socket(socket.AF_QIPCRTR, socket.SOCK_DGRAM) as s:
2398 with socket.socket(socket.AF_QIPCRTR, socket.SOCK_DGRAM) as s:
2408 socket.AF_VSOCK
2411 socket.SO_VM_SOCKETS_BUFFER_SIZE
2412 socket.SO_VM_SOCKETS_BUFFER_MIN_SIZE
2413 socket.SO_VM_SOCKETS_BUFFER_MAX_SIZE
2414 socket.VMADDR_CID_ANY
2415 socket.VMADDR_PORT_ANY
2416 socket.VMADDR_CID_HOST
2417 socket.VM_SOCKETS_INVALID_VERSION
2418 socket.IOCTL_VM_SOCKETS_GET_LOCAL_CID
2421 with socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM) as s:
2425 with socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM) as s:
2426 orig_max = s.getsockopt(socket.AF_VSOCK,
2427 socket.SO_VM_SOCKETS_BUFFER_MAX_SIZE)
2428 orig = s.getsockopt(socket.AF_VSOCK,
2429 socket.SO_VM_SOCKETS_BUFFER_SIZE)
2430 orig_min = s.getsockopt(socket.AF_VSOCK,
2431 socket.SO_VM_SOCKETS_BUFFER_MIN_SIZE)
2433 s.setsockopt(socket.AF_VSOCK,
2434 socket.SO_VM_SOCKETS_BUFFER_MAX_SIZE, orig_max * 2)
2435 s.setsockopt(socket.AF_VSOCK,
2436 socket.SO_VM_SOCKETS_BUFFER_SIZE, orig * 2)
2437 s.setsockopt(socket.AF_VSOCK,
2438 socket.SO_VM_SOCKETS_BUFFER_MIN_SIZE, orig_min * 2)
2441 s.getsockopt(socket.AF_VSOCK,
2442 socket.SO_VM_SOCKETS_BUFFER_MAX_SIZE))
2444 s.getsockopt(socket.AF_VSOCK,
2445 socket.SO_VM_SOCKETS_BUFFER_SIZE))
2447 s.getsockopt(socket.AF_VSOCK,
2448 socket.SO_VM_SOCKETS_BUFFER_MIN_SIZE))
2456 socket.BDADDR_ANY
2457 socket.BDADDR_LOCAL
2458 socket.AF_BLUETOOTH
2459 socket.BTPROTO_RFCOMM
2462 socket.BTPROTO_HCI
2463 socket.SOL_HCI
2464 socket.BTPROTO_L2CAP
2467 socket.BTPROTO_SCO
2470 with socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM) as s:
2475 with socket.socket(socket.AF_BLUETOOTH, socket.SOCK_SEQPACKET, socket.BTPROTO_L2CAP) as s:
2480 with socket.socket(socket.AF_BLUETOOTH, socket.SOCK_RAW, socket.BTPROTO_HCI) as s:
2486 with socket.socket(socket.AF_BLUETOOTH, socket.SOCK_SEQPACKET, socket.BTPROTO_SCO) as s:
2548 sock = socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)
2550 self.assertIsInstance(sock, socket.socket)
2602 # ...but we can create another socket using the (still open)
2604 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno=f)
2673 # same test code is used with different families and types of socket
2750 msg_flags_common_unset |= getattr(socket, name, 0)
2835 return super().msg_flags_non_eor_indicator | socket.MSG_TRUNC
2843 return super().msg_flags_eor_indicator | socket.MSG_EOR
2882 # Address is currently "unspecified" for a connected socket,
2888 # Base class to set a timeout on server's socket.
2896 # Tests for sendmsg() which can use any socket type and do not
2978 @requireAttrs(socket, "CMSG_SPACE")
2998 if not hasattr(socket, "CMSG_SPACE"):
3006 # Check that sendmsg() fails on a closed socket.
3015 # Tests for sendmsg() which require a stream socket and do not
3066 self.sendmsgToServer([b"a"*512], [], socket.MSG_DONTWAIT)
3077 # (e.g. datagram) socket, and do not involve recvmsg() or
3082 # given for unconnected socket.
3094 # recvmsg_into(), and can use any socket type.
3168 # Check that recvmsg[_into]() fails on a closed socket.
3187 @requireAttrs(socket, "MSG_PEEK")
3195 socket.MSG_PEEK)
3204 ignore=getattr(socket, "MSG_TRUNC", 0))
3209 socket.MSG_PEEK)
3226 @requireAttrs(socket.socket, "sendmsg")
3243 # Tests which require a stream socket and can use either recvmsg()
3247 # Receive end-of-stream indicator (b"", peer socket closed).
3278 # Tests for recvmsg() which can use any socket type.
3307 # Tests for recvmsg_into() which can use any socket type.
3399 @requireAttrs(socket, "CMSG_LEN")
3403 toobig = self.socklen_t_limit - socket.CMSG_LEN(0) + 1
3407 self.assertGreater(socket.CMSG_LEN(0), array.array("i").itemsize * 2)
3409 ret = socket.CMSG_LEN(n)
3411 self.assertEqual(ret - socket.CMSG_LEN(0), n)
3414 self.assertRaises(OverflowError, socket.CMSG_LEN, -1)
3417 self.assertRaises(OverflowError, socket.CMSG_LEN, toobig)
3418 self.assertRaises(OverflowError, socket.CMSG_LEN, sys.maxsize)
3420 @requireAttrs(socket, "CMSG_SPACE")
3424 toobig = self.socklen_t_limit - socket.CMSG_SPACE(1) + 1
3427 last = socket.CMSG_SPACE(0)
3431 ret = socket.CMSG_SPACE(n)
3433 self.assertGreaterEqual(ret, socket.CMSG_LEN(n))
3434 self.assertGreaterEqual(ret, n + socket.CMSG_LEN(0))
3438 self.assertRaises(OverflowError, socket.CMSG_SPACE, -1)
3441 self.assertRaises(OverflowError, socket.CMSG_SPACE, toobig)
3442 self.assertRaises(OverflowError, socket.CMSG_SPACE, sys.maxsize)
3479 if (cmsg_level == socket.SOL_SOCKET and
3480 cmsg_type == socket.SCM_RIGHTS):
3492 [(socket.SOL_SOCKET,
3493 socket.SCM_RIGHTS,
3506 self.checkFlags(flags, eor=True, checkunset=socket.MSG_CTRUNC,
3515 self.assertEqual(cmsg_level, socket.SOL_SOCKET)
3516 self.assertEqual(cmsg_type, socket.SCM_RIGHTS)
3533 [(socket.SOL_SOCKET,
3534 socket.SCM_RIGHTS,
3546 @requireAttrs(socket, "CMSG_SPACE")
3551 socket.CMSG_SPACE(4 * SIZEOF_INT)))
3561 socket.CMSG_LEN(4 * SIZEOF_INT)),
3565 ignoreflags=socket.MSG_CTRUNC)
3572 @requireAttrs(socket, "CMSG_SPACE")
3586 self.sendmsgToServer([MSG], [(socket.SOL_SOCKET,
3587 socket.SCM_RIGHTS,
3589 (socket.SOL_SOCKET,
3590 socket.SCM_RIGHTS,
3596 @requireAttrs(socket, "CMSG_SPACE")
3603 socket.CMSG_SPACE(SIZEOF_INT) +
3604 socket.CMSG_LEN(SIZEOF_INT * num_fds)),
3605 maxcmsgs=2, ignoreflags=socket.MSG_CTRUNC)
3613 self.sendmsgToServer([MSG], [(socket.SOL_SOCKET,
3614 socket.SCM_RIGHTS,
3616 (socket.SOL_SOCKET,
3617 socket.SCM_RIGHTS,
3638 ignoreflags=socket.MSG_CTRUNC)
3641 self.sendAncillaryIfPossible(MSG, [(socket.SOL_SOCKET,
3642 socket.SCM_RIGHTS,
3651 self.checkFlags(flags, eor=True, ignore=socket.MSG_CTRUNC)
3654 self.assertEqual(cmsg_level, socket.SOL_SOCKET)
3655 self.assertEqual(cmsg_type, socket.SCM_RIGHTS)
3661 [(socket.SOL_SOCKET,
3662 socket.SCM_RIGHTS,
3665 @requireAttrs(socket, "CMSG_SPACE")
3672 self.checkFlags(flags, eor=True, ignore=socket.MSG_CTRUNC)
3677 self.assertEqual(cmsg_level, socket.SOL_SOCKET)
3678 self.assertEqual(cmsg_type, socket.SCM_RIGHTS)
3689 [(socket.SOL_SOCKET,
3690 socket.SCM_RIGHTS,
3692 (socket.SOL_SOCKET,
3693 socket.SCM_RIGHTS,
3703 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC,
3713 ignoreflags=socket.MSG_CTRUNC)
3721 ignoreflags=socket.MSG_CTRUNC)
3747 socket.CMSG_LEN(0) - 1))
3764 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC)
3770 self.assertEqual(cmsg_level, socket.SOL_SOCKET)
3771 self.assertEqual(cmsg_type, socket.SCM_RIGHTS)
3780 self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(0), maxdata=0)
3786 self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(0) + 1, maxdata=1)
3792 self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(SIZEOF_INT),
3799 self.checkTruncatedArray(ancbuf=socket.CMSG_LEN(2 * SIZEOF_INT) - 1,
3838 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
3839 socket.IPV6_RECVHOPLIMIT, 1)
3846 self.checkFlags(flags, eor=True, checkunset=socket.MSG_CTRUNC,
3852 self.assertEqual(cmsg_level, socket.IPPROTO_IPV6)
3853 self.assertEqual(cmsg_type, socket.IPV6_HOPLIMIT)
3861 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
3874 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
3877 self.checkHopLimit(ancbufsize=socket.CMSG_SPACE(SIZEOF_INT))
3889 @requireAttrs(socket.socket, "sendmsg")
3890 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
3901 [(socket.IPPROTO_IPV6, socket.IPV6_HOPLIMIT,
3912 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
3913 socket.IPV6_RECVHOPLIMIT, 1)
3914 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
3915 socket.IPV6_RECVTCLASS, 1)
3922 self.checkFlags(flags, eor=True, checkunset=socket.MSG_CTRUNC,
3927 tcdata = ancmap[(socket.IPPROTO_IPV6, socket.IPV6_TCLASS)]
3934 hldata = ancmap[(socket.IPPROTO_IPV6, socket.IPV6_HOPLIMIT)]
3941 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
3952 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
3958 ancbufsize=socket.CMSG_SPACE(SIZEOF_INT) * 2)
3965 @requireAttrs(socket.socket, "sendmsg")
3966 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
3979 [(socket.IPPROTO_IPV6, socket.IPV6_TCLASS,
3981 (socket.IPPROTO_IPV6, socket.IPV6_HOPLIMIT,
3985 @requireAttrs(socket.socket, "sendmsg")
3986 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4001 [(socket.IPPROTO_IPV6, socket.IPV6_TCLASS,
4003 (socket.IPPROTO_IPV6, socket.IPV6_HOPLIMIT,
4009 [(socket.IPPROTO_IPV6, socket.IPV6_TCLASS,
4011 (socket.IPPROTO_IPV6, socket.IPV6_HOPLIMIT,
4024 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4025 socket.IPV6_RECVHOPLIMIT, 1)
4034 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC,
4037 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4046 ignoreflags=socket.MSG_CTRUNC)
4053 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4058 ignoreflags=socket.MSG_CTRUNC)
4068 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4077 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4086 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4088 self.checkHopLimitTruncatedHeader(ancbufsize=socket.CMSG_LEN(0) - 1)
4095 @requireAttrs(socket, "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT")
4100 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4101 socket.IPV6_RECVHOPLIMIT, 1)
4104 self.serv_sock, len(MSG), socket.CMSG_LEN(SIZEOF_INT) - 1)
4108 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC)
4113 self.assertEqual(cmsg_level, socket.IPPROTO_IPV6)
4114 self.assertEqual(cmsg_type, socket.IPV6_HOPLIMIT)
4129 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4130 socket.IPV6_RECVHOPLIMIT, 1)
4131 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4132 socket.IPV6_RECVTCLASS, 1)
4139 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC,
4144 self.assertEqual(cmsg_level, socket.IPPROTO_IPV6)
4145 self.assertIn(cmsg_type, {socket.IPV6_TCLASS, socket.IPV6_HOPLIMIT})
4154 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4157 self.checkTruncatedSecondHeader(socket.CMSG_SPACE(SIZEOF_INT),
4158 ignoreflags=socket.MSG_CTRUNC)
4165 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4168 self.checkTruncatedSecondHeader(socket.CMSG_SPACE(SIZEOF_INT) + 1)
4175 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4178 self.checkTruncatedSecondHeader(socket.CMSG_SPACE(SIZEOF_INT) +
4186 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4189 self.checkTruncatedSecondHeader(socket.CMSG_SPACE(SIZEOF_INT) +
4190 socket.CMSG_LEN(0) - 1)
4197 @requireAttrs(socket, "CMSG_SPACE", "IPV6_RECVHOPLIMIT", "IPV6_HOPLIMIT",
4202 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4203 socket.IPV6_RECVHOPLIMIT, 1)
4204 self.serv_sock.setsockopt(socket.IPPROTO_IPV6,
4205 socket.IPV6_RECVTCLASS, 1)
4209 socket.CMSG_SPACE(SIZEOF_INT) + socket.CMSG_LEN(SIZEOF_INT) - 1)
4213 self.checkFlags(flags, eor=True, checkset=socket.MSG_CTRUNC)
4215 cmsg_types = {socket.IPV6_TCLASS, socket.IPV6_HOPLIMIT}
4218 self.assertEqual(cmsg_level, socket.IPPROTO_IPV6)
4228 self.assertEqual(cmsg_level, socket.IPPROTO_IPV6)
4240 # Derive concrete test classes for different socket types.
4247 @requireAttrs(socket.socket, "sendmsg")
4251 @requireAttrs(socket.socket, "recvmsg")
4255 @requireAttrs(socket.socket, "recvmsg_into")
4269 @requireAttrs(socket.socket, "sendmsg")
4275 @requireAttrs(socket.socket, "recvmsg")
4281 @requireAttrs(socket.socket, "recvmsg_into")
4287 @requireAttrs(socket.socket, "recvmsg")
4289 @requireAttrs(socket, "IPPROTO_IPV6")
4295 @requireAttrs(socket.socket, "recvmsg_into")
4297 @requireAttrs(socket, "IPPROTO_IPV6")
4314 @requireAttrs(socket.socket, "sendmsg")
4320 @requireAttrs(socket.socket, "recvmsg")
4326 @requireAttrs(socket.socket, "recvmsg_into")
4342 @requireAttrs(socket.socket, "sendmsg")
4350 @requireAttrs(socket.socket, "recvmsg")
4358 @requireAttrs(socket.socket, "recvmsg_into")
4366 @requireAttrs(socket.socket, "recvmsg")
4370 @requireAttrs(socket, "IPPROTO_IPV6")
4376 @requireAttrs(socket.socket, "recvmsg_into")
4380 @requireAttrs(socket, "IPPROTO_IPV6")
4392 @requireAttrs(socket.socket, "sendmsg")
4396 @requireAttrs(socket.socket, "recvmsg")
4401 @requireAttrs(socket.socket, "recvmsg_into")
4412 @requireAttrs(socket.socket, "sendmsg")
4418 @requireAttrs(socket.socket, "recvmsg")
4432 @requireAttrs(socket.socket, "recvmsg_into")
4451 @requireAttrs(socket.socket, "sendmsg")
4452 @requireAttrs(socket, "AF_UNIX")
4456 @requireAttrs(socket.socket, "recvmsg")
4457 @requireAttrs(socket, "AF_UNIX")
4462 @requireAttrs(socket.socket, "recvmsg_into")
4463 @requireAttrs(socket, "AF_UNIX")
4468 @requireAttrs(socket.socket, "sendmsg", "recvmsg")
4469 @requireAttrs(socket, "AF_UNIX", "SOL_SOCKET", "SCM_RIGHTS")
4473 @requireAttrs(socket.socket, "sendmsg", "recvmsg_into")
4474 @requireAttrs(socket, "AF_UNIX", "SOL_SOCKET", "SCM_RIGHTS")
4496 # Timeout for socket operations
4550 @requireAttrs(socket.socket, "recvmsg")
4554 @requireAttrs(socket.socket, "recvmsg_into")
4608 # requires that the address is ignored since the socket is
4614 @requireAttrs(socket.socket, "sendmsg")
4645 self.assertIsInstance(sock, socket.socket)
4646 if hasattr(socket, 'AF_UNIX'):
4647 self.assertEqual(sock.family, socket.AF_UNIX)
4649 self.assertEqual(sock.family, socket.AF_INET)
4650 self.assertEqual(sock.type, socket.SOCK_STREAM)
4687 # When a Python socket has a non-zero timeout, it's switched
4689 # sock.recv(), and other socket operations use a select() call and
4690 # handle EWOULDBLOCK/EGAIN on all socket operations. That's how
4735 @unittest.skipUnless(hasattr(socket, 'SOCK_NONBLOCK'),
4736 'test needs socket.SOCK_NONBLOCK')
4739 # create a socket with SOCK_NONBLOCK
4741 self.serv = socket.socket(socket.AF_INET,
4742 socket.SOCK_STREAM | socket.SOCK_NONBLOCK)
4749 # bpo-7995: accept() on a listening socket with a timeout and the
4750 # default timeout is None, the resulting socket must be blocking.
4761 # bpo-7995: accept() on a listening socket with a timeout and the
4762 # default timeout is None, the resulting socket must inherit
4817 self.fail("Error during select call to non-blocking socket.")
4835 """Unit tests for the object returned by socket.makefile()
4952 # The file returned by makefile should keep the socket open.
5005 when reading multiple requests from the same socket."""
5023 # The file returned by makefile should keep the socket open...
5072 # Avoid closing the socket before the server test has finished,
5086 # Try to saturate the socket buffer pipe with repeated large writes.
5102 self.serv_skipped = "failed to saturate the socket buffer"
5116 """Tests for socket.makefile() in text mode (rather than binary)"""
5126 """Tests for socket.makefile() in text mode (rather than binary)"""
5136 """Tests for socket.makefile() in text mode (rather than binary)"""
5151 self.cli = socket.create_connection((HOST, self.port))
5160 class MockSocket(socket.socket):
5166 """Return a socket which times out on connect"""
5167 old_socket = socket.socket
5168 socket.socket = self.MockSocket
5172 socket.socket = old_socket
5176 cli = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
5187 socket.create_connection((HOST, port))
5192 # >>> socket.getaddrinfo('localhost', port, 0, SOCK_STREAM)
5209 socket.create_connection((HOST, port), all_errors=True)
5219 addresses = socket.getaddrinfo(
5220 'localhost', port, 0, socket.SOCK_STREAM)
5226 # as generic socket errors.
5229 socket.create_connection((HOST, 1234))
5259 self.cli = socket.create_connection((HOST, self.port),
5266 self.cli = socket.create_connection((HOST, self.port),
5276 # passing no explicit timeout uses socket's global default
5277 self.assertTrue(socket.getdefaulttimeout() is None)
5278 socket.setdefaulttimeout(42)
5280 self.cli = socket.create_connection((HOST, self.port))
5283 socket.setdefaulttimeout(None)
5289 self.assertTrue(socket.getdefaulttimeout() is None)
5290 socket.setdefaulttimeout(30)
5292 self.cli = socket.create_connection((HOST, self.port), timeout=None)
5295 socket.setdefaulttimeout(None)
5300 self.cli = socket.create_connection((HOST, self.port), timeout=30)
5305 self.cli = socket.create_connection((HOST, self.port), 30)
5332 self.cli = sock = socket.create_connection((HOST, self.port))
5337 self.cli = sock = socket.create_connection((HOST, self.port), timeout=1)
5450 self.assertTrue(issubclass(socket.herror, OSError))
5451 self.assertTrue(issubclass(socket.gaierror, OSError))
5452 self.assertTrue(issubclass(socket.timeout, OSError))
5453 self.assertIs(socket.error, OSError)
5454 self.assertIs(socket.timeout, TimeoutError)
5459 sock0 = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
5460 sock = socket.socket(
5461 socket.AF_INET, socket.SOCK_STREAM, 0, sock0.fileno())
5476 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s1:
5479 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s2:
5487 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s:
5493 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s:
5498 s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
5507 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s:
5515 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s1:
5518 # Each socket is bound to a different abstract address.
5519 with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s2:
5525 @unittest.skipUnless(hasattr(socket, 'AF_UNIX'), 'test needs socket.AF_UNIX')
5529 self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
5546 # Bind the socket
5602 Test the buffer versions of socket.recv() and socket.send().
5693 if not hasattr(socket, "AF_TIPC"):
5711 srv = socket.socket(socket.AF_TIPC, socket.SOCK_RDM)
5712 cli = socket.socket(socket.AF_TIPC, socket.SOCK_RDM)
5716 srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
5717 srvaddr = (socket.TIPC_ADDR_NAMESEQ, TIPC_STYPE,
5721 sendaddr = (socket.TIPC_ADDR_NAME, TIPC_STYPE,
5739 self.srv = socket.socket(socket.AF_TIPC, socket.SOCK_STREAM)
5741 self.srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
5742 srvaddr = (socket.TIPC_ADDR_NAMESEQ, TIPC_STYPE,
5755 self.cli = socket.socket(socket.AF_TIPC, socket.SOCK_STREAM)
5757 addr = (socket.TIPC_ADDR_NAME, TIPC_STYPE,
5776 with socket.socket() as sock:
5780 with socket.socket() as sock:
5784 with socket.socket() as sock:
5796 with socket.create_connection(address) as sock:
5810 with socket.create_connection(address) as sock:
5817 @unittest.skipUnless(hasattr(socket, "SOCK_CLOEXEC"),
5821 with socket.socket(socket.AF_INET,
5822 socket.SOCK_STREAM | socket.SOCK_CLOEXEC) as s:
5823 self.assertEqual(s.type, socket.SOCK_STREAM)
5827 sock = socket.socket()
5832 sock = socket.socket()
5840 sock = socket.socket()
5850 sock = socket.socket()
5864 sock = socket.socket()
5876 s1, s2 = socket.socketpair()
5883 @unittest.skipUnless(hasattr(socket, "SOCK_NONBLOCK"),
5888 self.assertEqual(s.type, socket.SOCK_STREAM)
5896 # If timeout > 0, the socket will be in a "blocking" mode
5897 # from the standpoint of the Python API. For Python socket
5905 self.assertEqual(s.type, socket.SOCK_STREAM)
5915 with socket.socket(socket.AF_INET,
5916 socket.SOCK_STREAM | socket.SOCK_NONBLOCK) as s:
5929 t = socket.getdefaulttimeout()
5930 socket.setdefaulttimeout(0.0)
5931 with socket.socket() as s:
5933 socket.setdefaulttimeout(None)
5934 with socket.socket() as s:
5936 socket.setdefaulttimeout(2.0)
5937 with socket.socket() as s:
5939 socket.setdefaulttimeout(None)
5940 with socket.socket() as s:
5942 socket.setdefaulttimeout(t)
5952 # Recreate socket from shared data
5956 s = socket.fromshare(sdata)
5965 # Transfer the listening server socket to another process
5973 # Get the shared socket data
5976 # Pass the shared socket to the other process
5986 s = socket.create_connection(addr)
6001 self.assertRaises(ValueError, socket.fromshare, data[:-1])
6002 self.assertRaises(ValueError, socket.fromshare, data+b"foo")
6005 # socket sharing is expected to work only for blocking socket
6014 # Python introspection on the socket however will still return
6015 # 0. For the shared socket, the python value is recreated
6022 s = socket.fromshare(data)
6029 families = [socket.AF_INET, socket.AF_INET6]
6030 types = [socket.SOCK_STREAM, socket.SOCK_DGRAM]
6034 source = socket.socket(f, t)
6039 shared = socket.fromshare(data)
6050 Test the send() implementation of socket.sendfile().
6107 with socket.create_connection(address) as sock, file as file:
6124 with socket.create_connection(address) as sock, file as file:
6128 self.assertRaises(socket._GiveupOnSendfile,
6145 with socket.create_connection(address) as sock, file as file:
6161 with socket.create_connection(address) as sock, file as file:
6178 sock = socket.create_connection(address,
6199 sock = socket.create_connection(address,
6220 with socket.create_connection(address, timeout=2) as sock, file as file:
6239 with socket.create_connection(address) as sock, file as file:
6255 sock = socket.create_connection(address,
6273 with socket.create_connection(address) as sock:
6291 with socket.socket(type=socket.SOCK_DGRAM) as s:
6296 with socket.socket() as s:
6301 with socket.socket() as s:
6317 Test the sendfile() implementation of socket.sendfile().
6327 sock = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
6351 op.send(b'a', socket.MSG_MORE)
6352 op.send(b'b', socket.MSG_MORE)
6353 op.send(b'c', socket.MSG_MORE)
6360 algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_KEY, b"Jefe")
6376 algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_KEY, key)
6379 op.sendmsg_afalg(op=socket.ALG_OP_ENCRYPT, iv=iv,
6380 flags=socket.MSG_MORE)
6387 op=socket.ALG_OP_DECRYPT, iv=iv)
6396 op=socket.ALG_OP_ENCRYPT, iv=iv)
6404 op=socket.ALG_OP_DECRYPT, iv=iv)
6422 algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_KEY, key)
6423 algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_AEAD_AUTHSIZE,
6429 op.sendmsg_afalg(op=socket.ALG_OP_ENCRYPT, iv=iv,
6430 assoclen=assoclen, flags=socket.MSG_MORE)
6431 op.sendall(assoc, socket.MSG_MORE)
6441 op.sendmsg_afalg([msg], op=socket.ALG_OP_ENCRYPT, iv=iv,
6454 ([socket.SOL_ALG, socket.ALG_SET_OP, pack_uint32(socket.ALG_OP_ENCRYPT)],
6455 [socket.SOL_ALG, socket.ALG_SET_IV, pack_uint32(len(iv)) + iv],
6456 [socket.SOL_ALG, socket.ALG_SET_AEAD_ASSOCLEN, pack_uint32(assoclen)],
6467 op.sendmsg_afalg([msg], op=socket.ALG_OP_DECRYPT, iv=iv,
6477 algo.setsockopt(socket.SOL_ALG, socket.ALG_SET_KEY, extra_seed)
6484 sock = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
6496 sock.sendmsg_afalg(op=socket.ALG_OP_ENCRYPT, assoclen=None)
6499 sock.sendmsg_afalg(op=socket.ALG_OP_ENCRYPT, assoclen=-1)
6503 sock = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
6522 self.assertTrue(socket.TCP_KEEPALIVE)
6541 provided = [s for s in dir(socket) if s.startswith('TCP')]
6552 with socket.create_server(("127.0.0.1", port)) as sock:
6556 with socket.create_server(("::1", port),
6557 family=socket.AF_INET6) as sock:
6562 with socket.create_server(("127.0.0.1", 0)) as sock:
6563 self.assertEqual(sock.family, socket.AF_INET)
6564 self.assertEqual(sock.type, socket.SOCK_STREAM)
6566 with socket.create_server(("::1", 0), family=socket.AF_INET6) as s:
6567 self.assertEqual(s.family, socket.AF_INET6)
6568 self.assertEqual(sock.type, socket.SOCK_STREAM)
6571 if not hasattr(socket, "SO_REUSEPORT"):
6573 socket.create_server(("localhost", 0), reuse_port=True)
6575 with socket.create_server(("localhost", 0)) as sock:
6576 opt = sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT)
6578 with socket.create_server(("localhost", 0), reuse_port=True) as sock:
6579 opt = sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT)
6587 with socket.create_server(("::1", 0), family=socket.AF_INET6) as sock:
6588 assert sock.getsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY)
6590 @unittest.skipIf(not socket.has_dualstack_ipv6(),
6594 with socket.create_server(("::1", 0), family=socket.AF_INET6,
6596 self.assertEqual(sock.family, socket.AF_INET6)
6621 with socket.socket(family=family) as sock:
6629 with socket.create_server(("", port)) as sock:
6631 self.echo_client(("127.0.0.1", port), socket.AF_INET)
6636 with socket.create_server(("", port),
6637 family=socket.AF_INET6) as sock:
6639 self.echo_client(("::1", port), socket.AF_INET6)
6643 @unittest.skipIf(not socket.has_dualstack_ipv6(),
6648 with socket.create_server(("", port), family=socket.AF_INET6,
6651 self.echo_client(("127.0.0.1", port), socket.AF_INET)
6653 @unittest.skipIf(not socket.has_dualstack_ipv6(),
6658 with socket.create_server(("", port), family=socket.AF_INET6,
6661 self.echo_client(("::1", port), socket.AF_INET6)
6663 @requireAttrs(socket, "send_fds")
6664 @requireAttrs(socket, "recv_fds")
6665 @requireAttrs(socket, "AF_UNIX")
6682 # use a UNIX socket pair to exchange file descriptors locally
6683 sock1, sock2 = socket.socketpair(socket.AF_UNIX, socket.SOCK_STREAM)
6685 socket.send_fds(sock1, [MSG], fds)
6687 msg, fds2, flags, addr = socket.recv_fds(sock2, len(MSG) * 2, len(fds) * 2)