403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Python315/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Python315/Lib/test/__pycache__/test_socket.cpython-315.pyc
R
>lqj��c�0(�]PHs]QHGs]QHGs]QHGsGsGsGsG	s	G
s
]QH,Gs]PH4s]PH<s]PH@s]PHDs]PHHs]PHLs]PHPs]PHTs]PHXs]PH\s]PH`s]PHds]PHhs]PHls]PHps]PHts]PHxs]PH|s]PH�s ]PH�s!]PH�s"]PH�s#]PH�s$]PH�s%]PH�s&]PH�s']PH�s(]QH�G*s*]PH�s+]PH�s-]PH�s.\O^P	Q5\	O`s0QOcQ2s2Q	s3\Oh2Q
6Hs5\#O4OmQ2s7\#O4OmCQk2s8\#O4OmCQl2s9Q\Ot27s;]PH�s<Q
s=Qs>Qs?Qs@QsAQsBQsCQsDQsEQsFQsGQsHQsI\O�Q2sK\O�Q2sL\?2sM\@2sN\A2sO\B2sP\C2sQ\D2sR\E2sS\I2sT\F2sU\G2sV\H2sW\OQ2O�sYQQ\O�2s[QQ \O�2s\Q!Q"\O�2s]Q#Q$\]2s^Q%Q&\O�2s_Q'Q(\O�2s`Q)Q*2saQ+Q,\\\a2sbQ-Q.\]\a2sc\O�\TQ/2Q0Q1\^\a22seQ2Q3\_\a2sfQ4Q5\`\a2sg\O�\-PIQ62\O�\;Q72\O�\SQ82\O�\>2\i\ Q9]26HQ:2Q;Q<\O�\a22222sjQ=Q>\b2skQ?Q@\O�\a2slQAQB\O�2smQCQD\m2snQEQF\m\a2soQGQH\n\o2spQIQJ\m2sqQKQL\q2srQMQN\m2ssQOQP\s2stQQQR\s2suQSQT\s2svQUQV\s2swQWQX\s2sxQYQZ\x2syQ[Q\\x2szQ]s{Q^s|Q_s}Q`Qa\O�2s~\O�\MQb2QcQd\O�22s\O�\MQb2QeQf\f22s�\O�\NQg2QhQi\O�22s�\O�\OQj2QkQl\O�22s�\O�\PQm2QnQo\O�22s�\O�\PQm2QpQq\g22s�\O�\RQr2QsQt\O�22s�\O�\-PIQ62\O�\SQ82QuQv\O�222s�\O�\�\ Qw2Qx2QyQz\O�22s�\O�\UQx2Q{Q|\O�22s�\O�\WQ}2Q~Q\O�22s�Q�Q�\k2s�Q�Q�\c2s�\O�\TQ/2Q�Q�\e22s�Q�Q�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�\�2s�Q�Q�\O�2s�Q�Q�\�2s�Q�Q�\�2s�Q�Q�\�\�\o\u2s�\|\ O@Q�2Q�Q�\�\�22s�\|\ O@Q�2Q�Q�\�\�22s�\|\ O@Q�2Q�Q�\�\�22s�Q�Q�\�\�\o\y2s�\|\ O@Q�2\O�\	COHQ�2\}Q�Q�2Q�Q�\�\�2222s�\|\ O@Q�2\O�\	COHQ�2\}Q�Q�2Q�Q�\�\�2222s�\|\ O@Q�2\O�\	COHQ�2\}Q�Q�2Q�Q�\�\�2222s�\|\ O@Q�2\O�\	COHQ�2\|\ Q�2\}Q�Q�2Q�Q�\�\�22222s�\|\ O@Q�2\O�\	COHQ�2\|\ Q�2\}Q�Q�2Q�Q�\�\�\�22222s�\O�\TQ/2Q�Q�\�\�\o\v22s�\O�\TQ/2\|\ O@Q�2Q�Q�\�\�222s�\O�\TQ/2\|\ O@Q�2Q�Q�\�\�222s�\O�\TQ/2\|\ O@Q�2Q�Q�\�\�222s�\O�\TQ/2Q�Q�\�\�\o\z22s�\|\ O@Q�2\O�\	COHQ�2\O�\TQ/2\}Q�Q�2Q�Q�\�\�22222s�\|\ O@Q�2\O�\	COHQ�2\O�\TQ/2\}Q�Q�2Q�Q�\�\�22222s�\|\ O@Q�2\O�\	COHQ�2\O�\TQ/2\}Q�Q�2Q�Q�\�\�22222s�\|\ O@Q�2\O�\	COHQ�2\O�\TQ/2\|\ Q�2\}Q�Q�2Q�Q�\�\�222222s�\|\ O@Q�2\O�\	COHQ�2\O�\TQ/2\|\ Q�2\}Q�Q�2Q�Q�\�\�\�222222s�Q�Q�\�\p\t2s�\|\ O@Q�2Q�Q�\�\�22s�\|\ O@Q�2Q�Q�\�\�\�22s�\|\ O@Q�2Q�Q�\�\�\�22s�Q�Q�\�\�\p\w2s�\|\ O@Q�2\O�\5Q�2\}Q�Q�Q�2Q�Q�\�\�2222s�\|\ O@Q�2\O�\5Q�2\}Q�Q�Q�2Q�Q�\�\�\�2222s�\|\ O@Q�2\O�\5Q�2\}Q�Q�Q�2Q�Q�\�\�\�2222s�Q�Q�\�\p\r2s�\|\ O@Q�2\|\ Q�2Q�Q�\�\�222s�\|\ O@Q�2\|\ Q�2Q�Q�\�\�\�222s�\|\ O@Q�2\|\ Q�2Q�Q�\�\�\�222s�\|\ O@Q�Q�2\|\ Q�Q�Q�2Q�Q�\�\�222s�\|\ O@Q�Q�2\|\ Q�Q�Q�2Q�Q�\�\�\�222s�Q�Q�2s�\|\Q�2\O�\�\Q�29%f
\�\Q�2Q�2CQCQ\�\u222s�\|\Q�2\O�\�\Q�29%f
\�\Q�2Q�2CQCQ\�\n\t222s�CQCQ\b2s�CQCQ\l2s�CQCQ	\l2s�CQ
CQ\b2s�CQCQ
\k2s�CQCQ\�2s�CQCQ\�2s�CQCQ\�2s�CQCQ\�2s�CQCQ\�2s�CQCQ\�2s�CQCQ\�2s�CQCQ\�\�2s�CQCQ\O�2s�CQ CQ!\\\a2s�CQ"CQ#\\\a2s�CQ$CQ%\\2s�CQ&CQ'\]2s�\O�\TQ/2CQ(CQ)\^22s�CQ*CQ+\O�2s�\O�\#O4CQm7CQ,2CQ-CQ.\O�22s�\O�\�\ Q�2CQ/2CQ0CQ1\O�22s�CQ2CQ3\k2s�CQ4s�]�s�]�s�CQ5s�\O�\�2CQ62CQ7CQ8\O�22s�\O�\�2CQ62CQ9CQ:\O�\a22s�CQ;CQ<\b2s�CQ=CQ>\O�2s�\O�\�\ CQ?2CQ@2CQACQB\O�22s�\O�\CO�CQC6HCQD2\O�\+CQE2CQFCQG\\222s�CQHCQI\b2s�\O�\�\CQJ2CQK2CQLCQM\�22s�\O�\QCQN2CQOCQP\O�22s�\O�\#O4CQQ6HCQR2CQSCQT\O�22s�\O�\�\ CQU2CQV2CQWCQX\O�22s�\O�\#O4OmCQY2CQZ2CQ[CQ\\O�22s�CQ]CQ^\O�2s�CQ_CQ`\O�2s�\|\ CQa2\|\ CQb2\|\ Q�2CQcCQd\O�2222s�CQeCQf\O�2s�CQgCQh\O�2s�CQis�\�CQj6Xc\CO�2P!P!\,cP
s+CKEh9h\,cPs-CKPh9h\,cPs.CK[h9h\,cPs<CK�h9h(n�)�mock)�support)�cpython_only�is_apple�	os_helper�refleak_helper�
socket_helper�threading_helper��ensure_lazy_imports)�proxy)�moduleuMichael Gilfix was hereሴ
�utf-8���AIX�sunoszmicrosoft-standard-WSLc�0`�U%fQoU!U1QkoU!)c��QUmU!)c��U!�N���fs&�%C:\Python315\\Lib\test\test_socket.py�<lambda>�;skipForRefleakHuntinIf.<locals>.decorator.<locals>.<lambda>Ks��a�)�client_skiprs&r�	decorator�)skipForRefleakHuntinIf.<locals>.decoratorJs��'�A�M��Hrc�^:`�[OR2UU1Qk2oQoV!mU!)c�:�[O2%c[OQR02gRU-U@!)z'ignore while hunting for refleaks, see )r�hunting_for_refleaks�unittest�SkipTest)�args�kwdsr�issuerefs*,��r�wrapper�:skipForRefleakHuntinIf.<locals>.decorator.<locals>.wrapperPs=���!�6�6�8�8�"�+�+�.U�V^�U_�,`�a�a��$�'�$�'�'rc�H`�[OR2U1Qk2oU!)c�R:�[O2%cP!RU-U@!r)rr")r%r&rs*,�rr(�OskipForRefleakHuntinIf.<locals>.decorator.<locals>.client_skip.<locals>.wrapperXs%���%�:�:�<�<���d�+�d�+�+r)�
contextlib�wraps)rr(sf rr�>skipForRefleakHuntinIf.<locals>.decorator.<locals>.client_skipWs'����!�!�!�$�,�%�,��r)r-r.r)rr(rr'sf  �rrrOs2���
�
�
�a�
 �
(�!�
(�
�#.���Nrr)�	conditionr'rs&f r�skipForRefleakHuntinIfr1Hs ����	�2��)	�(�rc�V�[eP![[Q2%fP![QQ29^tt^2o[OU[O
Q2oPPP2[OQW2]*!)%fhK.9h[cP!h9h)N�IOCTL_VM_SOCKETS_GET_LOCAL_CIDz
/dev/vsock�rbz    �I)	�fcntl�hasattr�socket�open�ioctlr3�struct�unpack�OSError)r�rs  r�get_cidr?es~���}���6�;�<�<��(�
�,��
%�
%�����A�v�D�D�f�M�A�&�
�}�}�S�!�$�Q�'�'�&�
%������s4�B�'B� B�B	�B	�B�	B(�#B(�'B(c���[O[O[O[O2oUO	2P	![
[1cP
!h9h)z5Check whether CAN sockets are supported on this host.)r8�PF_CAN�SOCK_RAW�CAN_RAW�close�AttributeErrorr=��ss r�_have_socket_canrHrsL����M�M�&�-�-����&�.�.�I��	
���	���	
�G�$������AA�A,�'A,�+A,c���[O[O[O[O2oUO	2P	![
[1cP
!h9h)z;Check whether CAN ISOTP sockets are supported on this host.)r8rA�
SOCK_DGRAM�	CAN_ISOTPrDrEr=rFs r�_have_socket_can_isotprM|�P����M�M�&�-�-��):�):�F�<L�<L�M��	
���	���	
�G�$����rIc���[O[O[O[O2oUO	2P	![
[1cP
!h9h)z;Check whether CAN J1939 sockets are supported on this host.)r8rArK�	CAN_J1939rDrEr=rFs r�_have_socket_can_j1939rQ�rNrIc���[O[O[O]2oUO2P	![[
1cP
!h9h)z5Check whether RDS sockets are supported on this host.)r8�PF_RDS�SOCK_SEQPACKETrDrEr=rFs r�_have_socket_rdsrU��J����M�M�&�-�-��)>�)>��B��	
���	���	
�G�$������4A	�	A�A�Ac���[O[O[O]2oUO2P	![[
1cP
!h9h)z8Check whether AF_ALG sockets are supported on this host.)r8�AF_ALGrTrDrEr=rFs r�_have_socket_algrZ�rVrWc���[O[O[O]2oUO2P	![[
1cP
!h9h)z<Check whether AF_QIPCRTR sockets are supported on this host.)r8�
AF_QIPCRTRrKrDrEr=rFs r�_have_socket_qipcrtrr]�sL����M�M�&�+�+�V�->�->��B��	
���	���	
�G�$����rWc� �[2oUPI!)z:Check whether AF_VSOCK sockets are supported on this host.)r?)�cids r�_have_socket_vsockr`�s��
�)�C��t�O�rc���[O[O[O[O2oUO	2P	![
[1cP
!h9h)z>Check whether AF_BLUETOOTH sockets are supported on this host.)r8�AF_BLUETOOTH�SOCK_STREAM�BTPROTO_RFCOMMrDrEr=rFs r�_have_socket_bluetoothre�sT���
�M�M�&�-�-�v�/A�/A�6�CX�CX�Y��	
���	���	
�G�$����rIc���[O[O[O[O2oUO	2P	![
[1cP
!h9h)z?Check whether BTPROTO_L2CAP sockets are supported on this host.)r8rbrT�
BTPROTO_L2CAPrDrEr=rFs r�_have_socket_bluetooth_l2caprh�sR����M�M�&�-�-�v�/D�/D�f�FZ�FZ�[��	
���	���	
�G�$����rIc���[O[O[O[O2oUO	2P	![
[1cP
!h9h)z;Check whether AF_HYPERV sockets are supported on this host.)r8�	AF_HYPERVrc�HV_PROTOCOL_RAWrDrEr=rFs r�_have_socket_hypervrl�sR����M�M�&�*�*�F�,>�,>��@V�@V�W��	
���	���	
�G�$����rIc���[[Q2%fP
![O%c'[O
2O]6cP
![O[O[O[O2oUO2P	![c,oSO[O6XcPo=P
!gPo=hh9h)�IPPROTO_UDPLITE)r7r8r�
is_android�platform�android_ver�	api_level�AF_INETrKrnr=�errno�EPROTONOSUPPORTrD)�sock�excs  r�_have_udp_literx�s����6�,�-�-������h�2�2�4�>�>��C����}�}�V�^�^�V�->�->��@V�@V�W��	�J�J�L������9�9��-�-�-��
��	�s%�AB+�+	C!�5C!�6C�C�C!c#�� �[O2o[OU2Pw�[OU2P![OS2h9h3hr)r8�getdefaulttimeout�setdefaulttimeout)�timeout�old_timeouts& r�socket_setdefaulttimeoutr~�sE����*�*�,�K�.�� � ��)�
�� � ��-��� � ��-�s�A(�A
�A(�
A%�%A(c#� �[OQ7cPw�	P![O29^tt^2[OQQ[
Q5Pw�PPP2P!)%fhP!9h3h)�win32�alwaysz9received malformed or improperly-truncated ancillary data)�action�message�category>r��darwin)�sysrp�warnings�catch_warnings�filterwarnings�RuntimeWarningrrr� downgrade_malformed_data_warningr��sU����|�|�.�.�
��	�	 �	 �	"�	"�	����O�#�	
�
	�
#�	"�	"�	"�s'�A>�$A>�#A*� 
A>�*A;	�3A;	�5	A>�ic�2`�\sQsQsn\Q2sQsUsP!)�TestLazyImport�c�$�[QQQ.2P!)r8�array�	selectorsr
��selfs&r�test_lazy_import�TestLazyImport.test_lazy_import s���H�w��&<�=rr)�__name__�
__module__�__qualname__�__firstlineno__rr��__static_attributes__�__classdictcell__��
__classdict__s@rr�r�s�����>��>rr�c�.`�\sQsQsnQsQsQsUsP!)�
SocketTCPTest�%c��[O[O[O2Um[O
UO2UmUOO2P!r)r8rsrc�servr�	bind_port�port�listenr�s&r�setUp�SocketTCPTest.setUp'sD���M�M�&�.�.�&�2D�2D�E��	�!�+�+�D�I�I�6��	��	�	���rc�J�UOO2PUmP!r�r�rDr�s&r�tearDown�SocketTCPTest.tearDown,����	�	������	r�r�r��r�r�r�r�r�r�r�r�r�s@rr�r�%s�����
�rr�c�.`�\sQsQsnQsQsQsUsP!)�
SocketUDPTest�0c���[O[O[O2Um[O
UO2UmP!r)r8rsrKr�rr�r�r�s&rr��SocketUDPTest.setUp2s4���M�M�&�.�.�&�2C�2C�D��	�!�+�+�D�I�I�6��	rc�J�UOO2PUmP!rr�r�s&rr��SocketUDPTest.tearDown6r�rr�r�r�s@rr�r�0s����7��rr�c�(`�\sQsQsnQsQsUsP!)�SocketUDPLITETest�:c���[O[O[O[O2Um[
OUO2UmP!r)r8rsrKrnr�rr�r�r�s&rr��SocketUDPLITETest.setUp<s<���M�M�&�.�.�&�2C�2C�V�E[�E[�\��	�!�+�+�D�I�I�6��	rr�)r�r�r�r�r�r�r�r�s@rr�r�:s����7�7rr�c�`�\sQsQsnQsQs]�sQs\O\2s
Qs\Q\O\2]***
sQsQs
UsP!)	�
SocketCANTest�Az�To be able to run this test, a `vcan0` CAN interface can be created with
the following commands:
# modprobe vcan
# ip link add dev vcan0 type vcan
# ip link set up vcan0
�vcan0z=IB3x8sz@3I4l2I�xc��[O[O[O[O2UmUOUOO2UOOUO12P![c'SOQSO*2P!h9h)�%network interface `%s` does not exist)r8rArBrCrG�
addCleanuprD�bind�	interfacer=�skipTestr�s&rr��SocketCANTest.setUpjs|�����v�}�}�f�o�o�v�~�~�N�����������%�	+��F�F�K�K����)�*���	+��M�M�A��>�>�*�
+�	+�s�/&B�	C�!#C�CrF)r�r�r�r��__doc__r��bufsize�
can_frame_fmtr;�calcsize�can_frame_size�bcm_cmd_msg_fmtr�r�r�r�s@rr�r�Asc������I��G���M��_�_�]�3�N��  �O��s�f�o�o�o�>��B�C�C�O�+�+rr�c�0`�\sQsQsnQsQsQsQsUsP!)�
SocketRDSTest�tzTTo be able to run this test, the `rds` kernel module must be loaded:
# modprobe rds
� c�V�[O[O[O]2UmUO	UOO
2[OUO2UmP![cSOQ2P!h9h)rzunable to bind RDS socket)r8rSrTr�r�rDrr�r�r=r�r�s&rr��SocketRDSTest.setUp{sk���M�M�&�-�-��1F�1F��J��	�����	�	���(�	7�%�/�/��	�	�:�D�I���	7��M�M�5�6�	7�s�!%B�	B(�B(�'B(r�)	r�r�r�r�r�r�r�r�r�r�s@rr�r�ts������G�7�7rr�c�J`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sUsP!)
�ThreadableTest�a1Threadable Test class

The ThreadableTest class makes it easy to create a threaded
client/server pair from an existing unit test. To create a
new threaded class from an existing unit test, use multiple
inheritance:

    class NewClass (OldClass, ThreadableTest):
        pass

This class defines two new fixture functions with obvious
purposes for overriding:

    clientSetUp ()
    clientTearDown ()

Any new test functions within the class must then define
tests in pairs, where the test name is preceded with a
'_' to indicate the client portion of the test. Ex:

    def testFoo(self):
        # Server portion

    def _testFoo(self):
        # Client portion

Any exceptions raised by the clients during their tests
are caught and transferred to the main thread to alert
the testing framework.

Note, the server setup function cannot call any blocking
functions that rely on the client thread during setup,
unless serverExplicitReady() is called just before
the blocking call (such as in setting up a client/server
connection and performing the accept() in setUp().
c�L�UOUmUOUmP!r)r��_ThreadableTest__setUp�_setUpr�s&r�__init__�ThreadableTest.__init__�s���z�z����[�[��
rc�<�UOO2P!)z�This method allows the server to explicitly indicate that
it wants the client thread to proceed. This is useful if the
server is about to execute a blocking routine that is
dependent upon the client thread during its setup routine.)�server_ready�setr�s&r�serverExplicitReady�"ThreadableTest.serverExplicitReady�s��
	
�����rc�Z`�RO[O22[O2Rm[O2Rm[O2Rm[O]2RmP
Rm
U1QkoROU2RO2oUOQ2oV#]*Po[RQU*2o[O RO"U12RmRO'2RO
O)2ROO+2ROROO*2P!P	Rm
g9hRO
O)2h9h)�c�~:�ROO2%cROO2gP!r)�queue�qsize�getr�s�r�raise_queued_exception�5ThreadableTest._setUp.<locals>.raise_queued_exception�s,����z�z���!�!��j�j�n�n�&�&�"r�.�_)�enterContextr	�wait_threads_exit�	threading�Eventr��client_ready�doner��Queue�server_crashedr��id�rfind�getattr�thread�start_new_thread�	clientRun�
client_threadr�r��wait)r�r��
methodnamer��test_methodsf    rr��ThreadableTest._setUp�s9������*�<�<�>�?�%�O�O�-���%�O�O�-����O�O�%��	��[�[��^��
�#���	'�	
���.�/��W�W�Y�
����S�!���!���%�
��d�C�*�$4�5��#�4�4��N�N�[�N�,���	$��L�L�N�

���!�!�#������ �����	�	���'��
	�"&�D�������!�!�#�s�F�
F�F�F*c���UOO2UO2UOO2UO%cUO
2P![UQ2%f[Q2gU2UO
2P![cQoSOOS2SO
2Po=SOO2P!Po=hh9hSOO2h9h[c&oSOOS2Po=K�Po=hh9hSO
2h9h)N�__call__z%test_func must be a callable function)r�r��clientSetUp�
BaseExceptionr��put�clientTearDownr�r�r�r7�	TypeError)r��	test_func�es&& rr��ThreadableTest.clientRun�s������� �	$�����
���!�!�#��������!���y�*�-�-��C�D�D�	"��K�
���!��!�	��J�J�N�N�1�����!�����!�!�#��	��

���!�!�#���	��J�J�N�N�1����	��
���!�s_�B#�
D �#	C>�-C>�.+C9�D�9C>�>D�D� 	E�*E�+E�E�E�E�E%c��[Q2g)z clientSetUp must be implemented.)�NotImplementedErrorr�s&rr�ThreadableTest.clientSetUp�s��!�"D�E�Erc�f�UOO2[O2P!r)r�r�r��exitr�s&rr�ThreadableTest.clientTearDown�s���	�	�
�
�����
r)�__setUpr�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�rrr�r�r�s@rr�r��s0����#�J!�
 �(�@"�,F��rr�c�8`�\sQsQsnQQksQsQsQsUsP!)�ThreadedTCPSocketTest��c�^�[OVQ5[OU2P!�)�
methodName�r�r�r��r�rs&&rr��ThreadedTCPSocketTest.__init__��!�����t��;�����%rc�x�[O[O[O2UmP!r)r8rsrc�clir�s&rr�!ThreadedTCPSocketTest.clientSetUp�s���=�=�����1C�1C�D��rc�t�UOO2PUm[OU2P!r�rrDr�rr�s&rr�$ThreadedTCPSocketTest.clientTearDown��%������������%�%�d�+r�r��runTest�	r�r�r�r�r�rrr�r�r�s@rrr�s����&�E�,�,rrc�8`�\sQsQsnQQksQsQsQsUsP!)�ThreadedUDPSocketTest�c�^�[OVQ5[OU2P!r)r�r�r�rs&&rr��ThreadedUDPSocketTest.__init__rrc�x�[O[O[O2UmP!r)r8rsrKrr�s&rr�!ThreadedUDPSocketTest.clientSetUps���=�=�����1B�1B�C��rc�t�UOO2PUm[OU2P!rrr�s&rr�$ThreadedUDPSocketTest.clientTearDown
rrr r!r#r�s@rr%r%s����&�D�,�,rr%z'UDPLITE sockets required for this test.c�8`�\sQsQsnQQksQsQsQsUsP!)�ThreadedUDPLITESocketTest�c�^�[OVQ5[OU2P!r)r�r�r�rs&&rr��"ThreadedUDPLITESocketTest.__init__s!���"�"�4�"�?�����%rc��[O[O[O[O2UmP!r)r8rsrKrnrr�s&rr�%ThreadedUDPLITESocketTest.clientSetUps&���=�=�����1B�1B�F�DZ�DZ�[��rc�t�UOO2PUm[OU2P!rrr�s&rr�(ThreadedUDPLITESocketTest.clientTearDownrrr r!r#r�s@rr.r.s����&�\�,�,rr.c�8`�\sQsQsnQQksQsQsQsUsP!)�ThreadedCANSocketTest�c�^�[OVQ5[OU2P!r)r�r�r�rs&&rr��ThreadedCANSocketTest.__init__!rrc��[O[O[O[O2UmUOOUO12P![cP!h9hr)r8rArBrCrr�r�r=r�s&rr�!ThreadedCANSocketTest.clientSetUp%sR���=�=����������P���	��H�H�M�M�4�>�>�+�,���	�
�	�s�
&A2�2	B�<B�Bc�t�UOO2PUm[OU2P!rrr�s&rr�$ThreadedCANSocketTest.clientTearDown.rrr r!r#r�s@rr7r7s����&��,�,rr7c�8`�\sQsQsnQQksQsQsQsUsP!)�ThreadedRDSSocketTest�3c�^�[OVQ5[OU2P!r)r�r�r�rs&&rr��ThreadedRDSSocketTest.__init__5rrc� �[O[O[O]2UmUOO	[
]12UOO
2UmP![cP!h9h�r)	r8rSrTrr��HOST�getsockname�cli_addrr=r�s&rr�!ThreadedRDSSocketTest.clientSetUp9sa���=�=�����0E�0E�q�I���	��H�H�M�M�4��)�$� �H�H�0�0�2�D�M���	�
�	�s�AA>�>	B
�B
�B
c�t�UOO2PUm[OU2P!rrr�s&rr�$ThreadedRDSSocketTest.clientTearDownDrr�rrHr!r#r�s@rr@r@3s����&�	�,�,rr@�
need fcntlz$VSOCK does not work on Microsoft WSLz%VSOCK sockets required for this test.�VMADDR_CID_HOSTz-This test can only be run on a virtual guest.c�D`�\sQsQsnQQksQsQsQsQsQs	Us
P!)	�ThreadedVSOCKSocketStreamTest�Ic�r�[OOVQ5[OU2P!r�r#�TestCaser�r�rs&&rr��&ThreadedVSOCKSocketStreamTest.__init__Qs'�����"�"�4�"�?�����%rc�\�[O[O[O2UmUO	UOO
2[
2oU[O[O17c[OoUOOU[12UOO!2UO#2UOO%[&O(2UOO+2vUmUmUO	UO,O
2P![c@oSO[O6XcSOQS802Po=K�gPo=hh9h)zbind() failed with )r8�AF_VSOCKrcr�r�rDr?rN�VMADDR_CID_ANY�VMADDR_CID_LOCALr��	VSOCKPORTr=rt�
EADDRNOTAVAILr�r�r��
settimeoutr�LOOPBACK_TIMEOUT�accept�conn�connaddr)r�r_rws&  rr��#ThreadedVSOCKSocketStreamTest.setUpUs���M�M�&�/�/�6�3E�3E�F��	�����	�	���(��i���6�)�)�6�+@�+@�A�A��)�)�C�	��I�I�N�N�C��+�,�	
�	�	����� � �"��	�	���W�5�5�6�#'�9�9�#3�#3�#5� ��	�4�=�����	�	���(���	��y�y�E�/�/�/��
�
� 3�C�7�;�<�<���		�s*�!E!�!	F+�+F+�,F&�F&�%F&�&F+c��[OQ2[O[O[O2UmUO
UO
O2[2oU[O[O17c[OoUO
OU[12P!�皙�����?)�time�sleepr8rWrcrr�rDr?rNrXrY�connectrZ)r�r_s& rr�)ThreadedVSOCKSocketStreamTest.clientSetUphs���
�
�3���=�=����&�2D�2D�E�����������'��i���6�)�)�6�+@�+@�A�A��)�)�C������#�y�)�*rc���UOOQ2oUOW[2P![c%oSO[	S22Po=KBPo=hh9h��)r_�recv�PermissionErrorr��repr�assertEqual�MSG)r��msgrws&  r�
testStream�(ThreadedVSOCKSocketStreamTest.testStreamrsP��	%��)�)�.�.��&�C�	
����c�"���	%��M�M�$�s�)�$�$��	%�s�6�	A%�A%�A � A%c�z�UOO[2UOO2P!r�r�sendrprDr�s&r�_testStream�)ThreadedVSOCKSocketStreamTest._testStreamy� �����
�
�c�������r)rr_r`r�r!�r�r�r�r�r�r�rrrrwr�r�r�s@rrPrPIs#����&�)�&+�#��rrPc�H`�\sQsQsnQsQ	QksQsQsQsQs	Qs
UsP!)
�SocketConnectedTest�}z�Socket tests for client-server connection.

self.cli_conn is a client socket connected to the server.  The
setUp() method guarantees that it is connected to the server.
c�4�[OVQ5P!r)rr�rs&&rr��SocketConnectedTest.__init__�����&�&�t�&�Crc��[OU2UO2UOO	2vqVmP!r)rr�r�r�r^�cli_conn�r�r_�addrs&  rr��SocketConnectedTest.setUp�s7���#�#�D�)�	
� � �"��Y�Y�%�%�'�
���
rc�t�UOO2PUm[OU2P!r)r�rDrr�r�s&rr��SocketConnectedTest.tearDown�s'���
�
������
��&�&�t�,rc��[OU2UOO[UO
12UOUmP!r)rrrrgrFr��	serv_connr�s&rr�SocketConnectedTest.clientSetUp�s6���)�)�$�/������$��	�	�*�+�����rc�t�UOO2PUm[OU2P!r)r�rDrrr�s&rr�"SocketConnectedTest.clientTearDown�s'������������,�,�T�2r�r�r�r!)r�r�r�r�r�r�r�r�rrr�r�r�s@rr|r|}s)�����D��-�
"�
3�3rr|c�J`�\sQsQsnQ	QksQsQsQsQsQs	Qs
UsP!)
�SocketPairTest�c��[OOVQ5[OU2PUmPUmP!r)r#rTr�r�rr�rs&&rr��SocketPairTest.__init__�s5�����"�"�4�"�?�����%������	rc�.�[O2!r)r8�
socketpairr�s&rr��SocketPairTest.socketpair�s��� � �"�"rc�B�UO2vUmUmP!r)r�r�rr�s&rr��SocketPairTest.setUp�s��"�o�o�/���	�4�8rc�n�UO%cUOO2PUmP!rr�r�s&rr��SocketPairTest.tearDown�s ���9�9�9��I�I�O�O����	rc��P!rrr�s&rr�SocketPairTest.clientSetUp����rc��UO%cUOO2PUm[OU2P!rrr�s&rr�SocketPairTest.clientTearDown�s.���8�8�8��H�H�N�N������%�%�d�+r)rr�r!)r�r�r�r�r�r�r�r�rrr�r�r�s@rr�r��s(�����#�0��

�,�,rr�c�8`�\sQsQsnQsQsQsQsQsUs	P!)�SocketTestBase��z�A base class for socket tests.

Subclasses must provide methods newSocket() to return a new socket
and bindSock(sock) to bind it to an unused address.

Creates a socket self.serv and sets self.serv_addr to its address.
c��UO2UmUOUO2UO	2P!r)�	newSocketr�r��close_server�
bindServerr�s&rr��SocketTestBase.setUp�s,���N�N�$��	�����)�)�*����rc�J�UOO2PUmP!rr�r�s&rr��SocketTestBase.close_server�r�rc�|�UOUO2UOO2UmP!)z9Bind server socket and set self.serv_addr to its address.)�bindSockr�rG�	serv_addrr�s&rr��SocketTestBase.bindServer�s&���
�
�d�i�i� ����.�.�0��r)r�r�)
r�r�r�r�r�r�r�r�r�r�r�s@rr�r��s������
�1�1rr�c�8``�\sQsQsnQsU1QksQsUsU9s!)�SocketListeningTestMixin��z%Mixin to listen on the server socket.c�Z:�[RU_2UOO2P!r)�superr�r�r��r��	__class__s&�rr��SocketListeningTestMixin.setUp�s���
��
���	�	���rr)	r�r�r�r�r�r�r�r��
__classcell__�r�r�s@@rr�r��s����/��rr�c�P``�\sQsQsnQsU1QksQsQsQsQs	Qs
UsU9s!)	�ThreadedSocketTestMixin��z�Mixin to add client socket and allow client/server tests.

Client socket is self.cli and its address is self.cli_addr.  See
ThreadableTest for usage information.
c�V:�[RU_U-U@[OU2P!r)r�r�r��r�r%�kwargsr�s&*,�rr�� ThreadedSocketTestMixin.__init__�s#���
���$�)�&�)�����%rc�R�UO2UmUO2P!r)�newClientSocketr�
bindClientr�s&rr�#ThreadedSocketTestMixin.clientSetUp�s���'�'�)������rc�$�UO2!)z&Return a new socket for use as client.)r�r�s&rr��'ThreadedSocketTestMixin.newClientSocket�s���~�~��rc�|�UOUO2UOO2UmP!)z8Bind client socket and set self.cli_addr to its address.)r�rrGrHr�s&rr��"ThreadedSocketTestMixin.bindClient�s&���
�
�d�h�h�����,�,�.��
rc�t�UOO2PUm[OU2P!rrr�s&rr�&ThreadedSocketTestMixin.clientTearDown�rrrL)
r�r�r�r�r�r�rr�r�rr�r�r�r�s@@rr�r��s(�����&�� �/�
,�,rr�c�\``�\sQsQsnQsU1QksU1QksU1QksU1QksQs	Us
U9s!)�ConnectedStreamTestMixin�z�Mixin to allow client/server stream tests with connected client.

Server's socket representing connection to client is self.cli_conn
and client's connection to server is self.serv_conn.  (Based on
SocketConnectedTest.)
c�:�[RU_2UO2UOO	2vqVmP!r)r�r�r�r�r^r�)r�r_r�r�s&  �rr��ConnectedStreamTestMixin.setUp	s3���
��
��	
� � �"��Y�Y�%�%�'�
���
rc�h:�UOO2PUm[RU_
2P!r)r�rDr�r�r�s&�rr��!ConnectedStreamTestMixin.tearDowns%����
�
������
�
���rc�:�[RU_2UOOUO2UOUmP!r)r�rrrgr�r�r�s&�rr�$ConnectedStreamTestMixin.clientSetUps/���
������������(�����rc�:�UOO2PUm[RU_2P![cKh9hr)r�rDrEr�rr�s&�rr�'ConnectedStreamTestMixin.clientTearDowns@���	��N�N� � �"�!�D�N�	��� ���	��	�s�!5�	A�A�Ar�)r�r�r�r�r�r�r�rrr�r�r�r�s@@rr�r�s#�������
"�
!�!rr�c�,`�\sQsQsnQsQsQsUsP!)�UnixSocketTestBase�$z(Base class for Unix-domain socket tests.c��[O2oUO[OU2[O
V2P!r)r�create_unix_domain_namer�r�unlink�bind_unix_socket)r�rv�paths&& rr��UnixSocketTestBase.bindSock,s2���4�4�6�����	�(�(�$�/��&�&�t�2rr)r�r�r�r�r�r�r�r�r�s@rr�r�$s����2�3�3rr�c�,`�\sQsQsnQsQsQsUsP!)�UnixStreamBase�1z-Base class for Unix-domain SOCK_STREAM tests.c�j�[O[O[O2!r)r8�AF_UNIXrcr�s&rr��UnixStreamBase.newSocket4����}�}�V�^�^�V�-?�-?�@�@rr�r�r�r�r�r�r�r�r�r�s@rr�r�1s����7�A�Arr�c�B``�\sQsQsnQs\sU1QksQsQs	Us
U9s!)�InetTestBase�8z!Base class for IPv4 socket tests.c�V:�[RU_2UO]*UmP!�r�)r�r�r�r�r�s&�rr��InetTestBase.setUp=s���
��
���N�N�1�%��	rc�J�[OVOQ5P!)��host)rr�r��r�rvs&&rr��InetTestBase.bindSockAs������9�9�5r)r�)r�r�r�r�r�rFr�r�r�r�r�r�r�s@@rr�r�8s����+��D�&�6�6rr�c�,`�\sQsQsnQsQsQsUsP!)�TCPTestBase�Dz#Base class for TCP-over-IPv4 tests.c�j�[O[O[O2!r)r8rsrcr�s&rr��TCPTestBase.newSocketGr�rrr�r�s@rr�r�D�����-�A�Arr�c�,`�\sQsQsnQsQsQsUsP!)�UDPTestBase�Jz#Base class for UDP-over-IPv4 tests.c�j�[O[O[O2!r)r8rsrKr�s&rr��UDPTestBase.newSocketMs���}�}�V�^�^�V�->�->�?�?rrr�r�s@rr�r�Js����-�@�@rr�c�,`�\sQsQsnQsQsQsUsP!)�UDPLITETestBase�Pz'Base class for UDPLITE-over-IPv4 tests.c��[O[O[O[O2!r)r8rsrKrnr�s&rr��UDPLITETestBase.newSocketSs%���}�}�V�^�^�V�->�->��@V�@V�W�Wrrr�r�s@rr�r�Ps����1�X�Xrr�c�,`�\sQsQsnQsQsQsUsP!)�SCTPStreamBase�Vz;Base class for SCTP tests in one-to-one (SOCK_STREAM) mode.c��[O[O[O[O2!r)r8rsrc�IPPROTO_SCTPr�s&rr��SCTPStreamBase.newSocketYs*���}�}�V�^�^�V�-?�-?�#�0�0�2�	2rrr�r�s@rrrVs����E�2�2rrc�4�\sQsQsQs\OsQsP!)�
Inet6TestBase�^z!Base class for IPv6 socket tests.r)	r�r�r�r�r�r�HOSTv6r�r�rrrrr^s��+����Drrc�,`�\sQsQsnQsQsQsUsP!)�UDP6TestBase�cz#Base class for UDP-over-IPv6 tests.c�j�[O[O[O2!r)r8�AF_INET6rKr�s&rr��UDP6TestBase.newSocketfs���}�}�V�_�_�f�.?�.?�@�@rrr�r�s@rr
r
cr�rr
c�,`�\sQsQsnQsQsQsUsP!)�UDPLITE6TestBase�iz'Base class for UDPLITE-over-IPv6 tests.c��[O[O[O[O2!r)r8r
rKrnr�s&rr��UDPLITE6TestBase.newSocketls%���}�}�V�_�_�f�.?�.?��AW�AW�X�Xrrr�r�s@rrris����1�Y�Yrrc�:``�QnUU1QkoQoU%cU!S!)agSkip decorated test if condition is true, add client_skip decorator.

If the decorated object is not a class, sets its attribute
"client_skip" to a decorator which will return an empty function
if the test is to be skipped, or the original function if it is
not.  This can be used to avoid running the client part of a
skipped test when using ThreadableTest.
c��P!rr)r%r�s*,r�client_pass�%skipWithClientIf.<locals>.client_pass{r�rc�:�[OR2U2o[U[2%fU1QkUmU!)c�
:�R!rr)rrs&�rr�3skipWithClientIf.<locals>.skipdec.<locals>.<lambda>�s���;r)r#�skip�
isinstance�typer)�obj�retvalr�reasons& ��r�skipdec�!skipWithClientIf.<locals>.skipdec}s0������v�&�s�+���#�t�$�$�!6�F���
rc�h�[U[2%f[UQ2%f	QUmU!)rc��U!rrrs&rr�5skipWithClientIf.<locals>.noskipdec.<locals>.<lambda>�s��r)rrr7r)rs&r�	noskipdec�#skipWithClientIf.<locals>.noskipdec�s'���3��%�%���m�)D�)D�)�C�O��
rr)r0r r!r&rs&f  @r�skipWithClientIfr(rs!���
��
� �7�.�Y�.rc��STt,tFDo[V2%cJUMJ	oo[UQQOQU22*2!ttoh)z{Skip decorated test if obj is missing any of the given attributes.

Sets client_skip attribute as skipWithClientIf() does.
�don't have �, c3�0�SF �Dpw�	J		P!3hrr��.0�names& r�	<genexpr>�requireAttrs.<locals>.<genexpr>�s��G���G�D�4�G���)r7r(�join)r�
attributesr/�missings&*  r�requireAttrsr6�sO��
!+�E�
��'�#�2D�t�t�
�G�E�������*D�G�*D�!D�D�F�F��Fs
�A�Ac	�V�PoSTt,tFD5o[U[2%fJ[[U2%cJ3UMJ7	ooU%c QQO	QU22*oL^STt,tFD+o[U[2%c[[U2LSMJ-	oo[OUoUO
2[UPIQOQO	QU22U22!ttohttoh[co[S2oPo=KXPo=hh9h)a	Skip decorated test if a socket cannot be created with given arguments.

When an argument is given as a string, will use the value of that
attribute of the socket module, or skip the test if it doesn't
exist.  Sets client_skip attribute as skipWithClientIf() does.
r*r+c3�0�SF �Dpw�	J		P!3hrrr-s& rr0� requireSocket.<locals>.<genexpr>�s���������r2zcan't create socket({0}): {1}c3�D�SF �Do[U2w�	J	P!3hr)�str�r.�os& rr0r9�s��d���d��c�!�f�f�d�s� )
rr;r7r8r3r�rDr=r(�format)r%�errrr5�callargsrGrs*      r�
requireSocketrA�s���C�"�B�d�s��#�s�#��,3�F�C�,@��s�d�G�B���d�i�i�'A��'A�A�A�� $�%�#��-7�s�C�,@�,@�G�F�C�(�c�I�#�	�%�	��
�
�x�(�A�

�G�G�I���4��'�.�.��I�I�+�d�+�+�S�	2�3�3��B��
%���	��a�&�C��	�s9�C>�C>�C>�0D�
D�&D�	D(�D(�D#�#D(c�*
`�\sQsQsn\O
\PIQ2Q2sQsQs	\O
\PIQ2Q2s
QsQsQ	s
Q
sQs\O
\O"Q6HQ
2Q2s\O&\O*Q2Q2s\O
\O0Q6HQ2\O
\O4Q2Q22sQsQsQs\O
\\ Q2Q2\O
\\ Q2Q2Q22s!\O
\\ Q2Q2\ODQ2Q22s#\O
\\ Q 2Q!2\ODQ 2Q"22s$\O
\\ Q#2Q$2\ODQ#2Q%22s%\O
\\Q&2Q'2Q(2s&Q)s'Q*s(Q+s)Q,s*Q-s+\O
\\ Q.2Q/2Q02s,\O
\\ Q12Q22Q32s-\O
\\ Q12Q22Q42s.\O
\\ Q52Q62Q72s/\O
\\ Q52Q62Q82s0Q9s1Q:s2Q;s3Q<s4Q=s5Q>s6Q?s7Q@s8\O
\O"Q6HQ
2QA2s9\O
\O"Q6HQ
2\O
\\ QB2QC2QD22s:QEs;\O
\\ QF2QG2\OxQH2\OzQIQJQKQLQMQNQOQPQQQRQSP2QT222s>\O&\?PIQU2QV2s@QWsA\O
\O�QX2QY2QZ2sCQ[sDQ\sEQ]sFQ^sGQ_sHQ`sIQasJQbsKQcsLQdsMQesN\O�\O&\?PIQU2Qf22sP\O
\O4Qg2Qh2sQ\O
\O4Qg2Qi2sRQjsS\O
\O4Qg2\O&\O0Qk6HQl2\O&\TQm2\O
\\ Q2Qn2\ODQ2Qo22222sU\O
\O4Qg2\O
\O0Qk6HQp2Qq22sV\O
\O4Qg2\O&\O0Qk6HQl2\O&\TQm2\O
\\ Q2Qn2\ODQ2Qr22222sW\O
\O4Qg2\O
\O0Qk6HQp2Qs22sXQtsYQusZQvs[\O
\\Qw2Qx2Qy2s\Qzs]Q{s^Q|s_Q}s`Q~sa\O&\O"Q6HQ2Q�2sbQ�scQ�sdQ�seQ�sfQ�sgQ�sh\O
\\ O@Q�2Q�2Q�2siQ�sjUskP!)��GeneralModuleTests�zneed _socket modulec��UO[O[O22UO[Q29^tt^2][OmPPP2P!)%fhP!9h)�	immutable)�
assertTrue�gc�
is_tracked�_socketr8�assertRaisesRegexr�foor�s&r�test_socket_type�#GeneralModuleTests.test_socket_type�sI������
�
�g�n�n�5�6�
�
#�
#�I�{�
;�
;�!"�G�N�N��<�
;�
;�
;�s�A3�3B	�<B	c���]PHoUO[OUOI2[O2oUO	U[O2UO2P!rE)rJrGr8�
SocketType�assertIsInstancerD)r�rJrGs&  r�test_SocketType_is_socketobject�2GeneralModuleTests.test_SocketType_is_socketobject�sJ�������)�)�W�^�^�;�<��M�M�O�����a��!2�!2�3�	���	rc�n�[O[O[O2oU9^tt^2UOQUO	2*[U22UOQ[O*[U22UOQ[O*[U22UOQ[U22UO
Q[U22UOQ2UOQ[U22UO[UO22[U22PPP2UOQ[U22UO
Q[U22P!)%fhKH9h)zfd=%iz	family=%sztype=%szproto=0�raddr�laddrz[closed]��	127.0.0.1r)
r8rsrc�assertIn�filenorn�assertNotInr�r;rG�r�rGs& r�	test_repr�GeneralModuleTests.test_repr�s
���M�M�&�.�.�&�*<�*<�=��
�Q��M�M�'�A�H�H�J�.��Q��8��M�M�+����6��Q��@��M�M�)�f�&8�&8�8�$�q�'�B��M�M�)�T�!�W�-����W�d�1�g�.�
�F�F�#�$��M�M�'�4��7�+��M�M�#�a�m�m�o�.��Q��8��	
�
�
�j�$�q�'�*�����$�q�'�*��Q�s�D%F$�$F4	�-F4	c	��[O[O[O2oQUO	28QUO
8QUO8QUO8Q0	oUO[U2U2UO2QUO
8QUO8QUO8Q0oUO[U2U2P!SO2h9h)z<socket object, fd=z	, family=z, type=z, proto=�>z<socket object, fd=-1, family=)rJr8rsrcrZ�familyr�protorornrD)r�rG�expecteds&  r�test_csocket_repr�$GeneralModuleTests.test_csocket_repr�s����N�N�7�?�?�G�,?�,?�@��	��8�8�:�q�x�x�������B�H����T�!�W�h�/�
�G�G�I��x�x�������2������a��(�+��
�G�G�I�s�AC)�)C;c��[O[O[O29^tt^2o[U2oUO	UO2UO22PPP2Po[O2WO2UOQ2P!)%fhKK9h[cP!h9h)NzSocket proxy still exists)
r8rsrcrrorZr�
gc_collect�fail�ReferenceError)r�rG�ps&  r�test_weakref�GeneralModuleTests.test_weakref�s���
�]�]�6�>�>�6�+=�+=�
>�
>�!��a��A����Q�X�X�Z�����4�?�
������	3�
�H�H�J�
�I�I�1�2�?�
>���	��	�s)�:B:�C
�:C
	�C
	�
	C�C�Cc��QoUO[UQ*Q59^tt^2[g)%fhL9hSO[SQ*Q59^tt^2[Og)%fhL9hSO[SQ*Q59^tt^2[Og)%fhP!9h)z$Error raising socket exception (%s).r=�rqz
socket.herrorzsocket.gaierror)�assertRaisesr=r8�herror�gaierror�r�rqs& r�testSocketError�"GeneralModuleTests.testSocketError�s���4��
�
�
�w�C�)�O�
�
<�
<��M�=�
<��
�
�
�w�C�/�,A�
�
B�
B��-�-��C�
B��
�
�
�w�C�2C�,C�
�
D�
D��/�/�!�E�
D�
D�s2�1�A	�A	�*A;�;B	�B	�4C�C	�C	c�0	�[O[O[O2oUOUO2UOQ
2UO
2oUO[29^tt^2oUOQU2PPP2UO[WO2Q2UO[29^tt^2oUOQU2PPP2UO[UO2Q2UO[29^tt^2oUOQP2PPP2UOQ[UO22UO[29^tt^2oUOQ]U2PPP2UO[UO2Q2UO[29^tt^2oUOQ]U2PPP2UO[UO2Q2UO[29^tt^2oUOQ]P2PPP2UOQ[UO22UO[29^tt^2oUOQQU2PPP2UO[29^tt^2oUOQPP2PPP2UO[29^tt^2oUOQ2PPP2UOQ[UO22UO[29^tt^2oUOQ]U]2PPP2UOQ	[UO22P!)%fhCK99h)%fhCK�9h)%fhCK�9h)%fhCK]9h)%fhCK9h)%fhCK�9h)%fhCK9h)%fhCKZ9h)%fhCK79h)%fhK�9h)�u☠z*a bytes-like object is required, not 'str'y@z.a bytes-like object is required, not 'complex'�fooznot NoneType�barz	(1 given)z	(4 given))rvr)r8rsrKr�rDr�rGror�sendtoror;�	exceptionrY)r�rG�sockname�cms&   r�testSendtoErrors�#GeneralModuleTests.testSendtoErrors�s���M�M�&�.�.�&�*;�*;�<�������� �	���w���=�=�?��
�
�
�y�
)�
)�R�
�H�H�X�x�(�*�����R�\�\�*�E�	G�
�
�
�y�
)�
)�R�
�H�H�R��"�*�����R�\�\�*�I�	K�
�
�
�y�
)�
)�R�
�H�H�V�T�"�*��
�
�n�S����%6�7�
�
�
�y�
)�
)�R�
�H�H�X�q�(�+�*�����R�\�\�*�E�	G�
�
�
�y�
)�
)�R�
�H�H�R��H�%�*�����R�\�\�*�I�	K�
�
�
�y�
)�
)�R�
�H�H�V�Q��%�*��
�
�n�c�"�,�,�&7�8�
�
�
�y�
)�
)�R�
�H�H�V�U�H�-�*�
�
�
�y�
)�
)�R�
�H�H�V�T�4�(�*��
�
�y�
)�
)�R�
�H�H�V��*��
�
�k�3�r�|�|�#4�5�
�
�
�y�
)�
)�R�
�H�H�V�Q��!�,�*��
�
�k�3�r�|�|�#4�5�C*�
)�
)��*�
)�
)��*�
)�
)��*�
)�
)��*�
)�
)��*�
)�
)��*�
)�
)��
)�
)�
)��*�
)�
)��*�
)�s��O�+O%�O9�%P
�P!�!P5�?Q	�8Q�1Q1�
R�O"	�O"	�%O6	�.O6	�9P
	�P
	�
P	�P	�!P2	�*P2	�5Q	�>Q	�	Q	�Q	�Q.	�&Q.	�1R	�:R	�R	�R	c�T�[O[O%c[O[O[O
[O[O[O[O[OP!r)r8rs�has_ipv6r
rcrKrB�SOCK_RDMrT�
SOL_SOCKET�SO_REUSEADDRr�s&r�testCrucialConstants�'GeneralModuleTests.testCrucialConstantssT������?�?�?��O�O���������������������rc��[O[O[O%c[OP!P!r)r8�IPPROTO_TCP�IPPROTO_UDPr��IPPROTO_IPV6r�s&r�testCrucialIpProtoConstants�.GeneralModuleTests.testCrucialIpProtoConstants*s+���������?�?�?����r�nt�Windows specificc��[O[O[O[O[O
[O[O[OP!r)	r8�IPPROTO_ICLFXBM�
IPPROTO_ST�IPPROTO_CBT�IPPROTO_IGP�IPPROTO_RDP�IPPROTO_PGM�IPPROTO_L2TPrr�s&r�testWindowsSpecificConstants�/GeneralModuleTests.testWindowsSpecificConstants0sJ�������������������������rzWASI is missing these methodsc��,QNoSFD:o[[OU2%cJ%UOQUQ02J<	P!)�_acceptzsocket method z is missing)r�r�rg�
connect_ex�getpeernamerGr��recvfrom�
recvfrom_intory�
setsockopt�shutdown)r7r8rh)r��namesr/s&  r�test_socket_methods�&GeneralModuleTests.test_socket_methods;s;��
��
�D��6�=�=�$�/�/��	�	�N�4�&��<�=�rr��macOS specific test�IPv6 required for this testc�P�.QloSFDoUO[U2J	P!)�
IPV6_CHECKSUM>�
IPV6_RTHDR�IPV6_TCLASS�IPV6_DSTOPTS�IPV6_HOPOPTS�IPV6_NEXTHOP�IPV6_PATHMTU�IPV6_PKTINFOr��
IPV6_DONTFRAG�
IPV6_HOPLIMIT�IPV6_RECVRTHDR�IPV6_RECVTCLASS�IPV6_RECVDSTOPTS�IPV6_RECVHOPOPTS�IPV6_RECVPATHMTU�IPV6_RECVPKTINFO�IPV6_USE_MIN_MTU�IPV6_RECVHOPLIMIT�IPV6_RTHDRDSTOPTS�IPV6_RTHDR_TYPE_0)�
assertHasAttrr8)r��opts�opts&  r�test3542SocketOptions�(GeneralModuleTests.test3542SocketOptionsHs%��
��,�C����v�s�+�rc��[O2o[OU2oUOWO
Q2]6�Q2[OU2vq4oUW,W*o[OU2oVv7f&UOQU8Q[U28Q02P!P![cSO	Q2K�h9h[cSO	Q2K�h9h)�name lookup failurer�zError resolving host to ip.z1Error testing host resolution mechanisms. (fqdn: z, all: �))r8�gethostname�
gethostbynamer=r�rG�find�
gethostbyaddr�getfqdnrhrn)r��hostname�ip�hname�aliases�ipaddrs�all_host_names�fqhns&       r�testHostnameRes�"GeneralModuleTests.testHostnameReses����%�%�'��	1��%�%�h�/�B�	
���������)�+H�I�	1�&,�&:�&:�2�&>�#�E�G�#�E�*�W�4���~�~�b�!���%��I�I�Y]�_c�dr�_s�t�u�&���	1��M�M�/�0�	1���	1��M�M�/�0�	1�s/�B:�C�:	C�C�C�	C;�&C;�:C;c��[OQQ1FD)oUO[OU2U2J+	[O1FD0oUOU[OU2]*2J2	P!)z10.0.0.1�255.255.255.255)r�HOSTv4ror8r�rYr�)r�r�r�s&  r�test_host_resolution�'GeneralModuleTests.test_host_resolutionxsi��"�)�)�:�7H�I�D����V�1�1�$�7��>�J�
#�)�)�*�D��M�M�$�� 4� 4�T� :�1� =�>�+rc	�f�QoQFDoUO[UQ59^tt^2[OU2PPP2UO[UQ59^tt^2[OU2PPP2J�	P!)%fhKT9h)%fhJ�9h)z[resolving an invalid IP address did not raise OSError; can be caused by a broken DNS serverrn)z0.1.1.~1z1+.1.1.1z::1qz::1::2z1:1:1:1:1:1:1:1:1)ror=r8r�r�)r��explanationr�s&  r� test_host_resolution_bad_address�3GeneralModuleTests.test_host_resolution_bad_address�s~��
3�	�*�D��"�"�7��"�5�5��$�$�T�*�6��"�"�7��"�<�<��$�$�T�*�=�<�	*�5�5��<�<�<�s#�B	�'B	�B
�B
�B0
�(B0
�sethostnameztest needs socket.sethostname()r�ztest needs socket.gethostname()c��[O2o[OQ2UO[O2Q2[OQ2UO[O2Q2[OU2P![c<oSO[O
6XcSO
Q2Po=K�gPo=hh9h[OS2h9h)�newztest should be run as rootsbarrx)r8r�r�r=rt�EPERMr�ro)r��oldhnrs&  r�test_sethostname�#GeneralModuleTests.test_sethostname�s����"�"�$��	����u�%�	&����V�/�/�1�5�9����v�&����V�/�/�1�5�9����u�%���	��w�w�%�+�+�%��
�
�:�;�;���		��
���u�%�s5�B'�A C0�'	C-�1C-�2C(�C(�'C(�(C-�0D�if_nameindexz$socket.if_nameindex() not available.c��[O2oSFD�vq#UOU[2UOU[2UOU]2[OU2oUOU[2UOV$2[OU2oUOU[2UOV52J�	P!rE)	r8r�rQ�intr;�
assertGreater�if_nametoindexro�if_indextoname)r��
interfaces�indexr/�_index�_names&     r�testInterfaceNameIndex�)GeneralModuleTests.testInterfaceNameIndex�s����(�(�*�
�%�K�E��!�!�%��-��!�!�$��,����u�a�(��*�*�4�0�F��!�!�&�#�.����U�+��)�)�%�0�E��!�!�%��-����T�)�&rr�z&socket.if_indextoname() not available.c	��UO[29^tt^2o[O]2PPP2UO	WO
O2UO[[OP2UO[[O]Q*2UO[[OQ2[[Q2%c�[[O22oSFDVoUQ*oVB7fJUO[[129^tt^2[OU2PPP2JX	QFDMoV27fJUO[[129^tt^2[OU2PPP2JO	P!P!)%fhCK�9h)%fhJ�9h)%fhJ�9h)r���	_DEADBEEFr��)���l����)
ror=r8r��assertIsNotNonerzrt�
ValueError�
OverflowErrorrr7�dictr�)r�r|�indicesr��index2s&    r�testInvalidInterfaceIndexToName�2GeneralModuleTests.testInvalidInterfaceIndexToName�s^���
�
�w�
'�
'�2��!�!�!�$�(����R�\�\�/�/�0����*�f�&;�&;�R�@����-��)>�)>��4��H����)�V�%:�%:�K�H��6�>�*�*��6�.�.�0�1�G� �������(��*�*�M�7�+C�D�D��-�-�f�5�E�D�!�
*���'��*�*�M�7�+C�D�D��-�-�e�4�E�D�*�+�(�
'�
'��E�D�D��E�D�D�s5�G�G	�G*	�G	�G	�G'
�G'
�*G;
�3G;
r�z&socket.if_nametoindex() not available.c�:�UO[29^tt^2o[OQ2PPP2UO	WO
O2UO[[O]2P!)%fhK\9h)r�)ror=r8r�r�rzrtr�r�r|s& r�testInvalidInterfaceNameToIndex�2GeneralModuleTests.testInvalidInterfaceNameToIndex�sc���
�
�w�
'�
'�2��!�!�+�.�(����R�\�\�/�/�0����)�V�%:�%:�A�>�	(�
'�s�B
�
B	�B	�getrefcount�test needs sys.getrefcount()c��[O[2o[O[]2P![
c8[O[2W6wcSO
Q2P!P!h9h)rz$socket.getnameinfo loses a reference)r�r�r�r8�getnameinforrh)r��origs& r�testRefCountGetNameInfo�*GeneralModuleTests.testRefCountGetNameInfo�sZ��	B��?�?�8�,�D����x��*���	B����x�(�D�0��	�	�@�A�1�	B�s�5:�	A<�A<�$A<�;A<c�\�[OQ]2P![cP!h9h)r�)r�rrr)r8rr=r�s&r�testInterpreterCrash�'GeneralModuleTests.testInterpreterCrash�s)��	����~�q�1���	��	�s��	+�+�+c
���[O] [O] [O][O]-oUO2FD�vq#]U*]*
oQFD4oUO
VT*UUVT*22U*2J6	UU2oUO
Vd*U2UO[UQ2J�	P!)� )rr��i���igE#i2Tvl)	r8�htonl�ntohl�htons�ntohs�itemsroror�)r��sizes�func�size�maskr��swappeds&      r�testNtoH�GeneralModuleTests.testNtoH�s������r�6�<�<�����r�6�<�<��5���+�+�-�J�D��t�G�q�=�D�G��� � ���4��Q�V��+=��+D�E�H��4�j�G����W�^�T�2����m�T�5�9�(rc���,QNoUQ,*oPQQQQPQ*,oQ]Q*,oU,Q	N*oSFD/o[OU2[OU2J1	SFD/o[OU2[OU2J1	SFD�oUO[[OU2UO[[OU2UO[[OU2UO[[OU2J�	SFDMoUO[[OU2UO[[OU2JO	SFDMoUO[[OU2UO[[OU2JO	P!)
rr�r�)rr�r
r	���i���l����l����r�)����)r8rr
rrror�r�)r��
s_good_values�
l_good_values�
neg_values�l_bad_values�s_bad_values�ks&      r�testNtoHErrors�!GeneralModuleTests.testNtoHErrors�sX��)�
�%���4�
��"�j�*�j�"�d�(�K�
��q�$�w�'��#�&A�A���A��L�L��O��L�L��O���A��L�L��O��L�L��O���A����j�&�,�,��:����j�&�,�,��:����j�&�,�,��:����j�&�,�,��:�	�
�A����m�V�\�\�1�=����m�V�\�\�1�=���A����m�V�\�\�1�=����m�V�\�\�1�=�rc���UOo[OOQ2%f
[%cQoLQoSFDo[
OUQ2oL	[g[O%c%[O2O]6f[
OU2oUVE2[
OUQ2oUVd2[O%c%[O2O]6fU[
OW2U2U[
OUQ2U2UdU[
OUQ2U2UO[[
OP2UO[[
OQ2P![cCJ�h9h[cPoCKh9h)�linux�tcp�udpr)r%�android�freebsd�	dragonfly�netbsd�gnukfreebsd)�daytime�qotd�domain)�echor-r/)ror�rp�
startswithrr8�
getservbynamer=rrorqrr�
getservbyportror�)r��eq�services�servicer��port2�udpports&      r�
testGetServBy� GeneralModuleTests.testGetServBys���
�
�
��

�L�L�#�#� �
!�
!��x�5�H�4�H��G�
��+�+�G�U�;��� ��M��"�"�"�x�';�';�'=�'G�'G�"�'L��(�(��1�E��t�O�	��*�*�7�E�:�G�
�w���"�"�"�x�';�';�'=�'G�'G�"�'L��v�#�#�E�*�G�4�
�6����e�,�g�6����v�#�#�G�U�3�W�=����-��)=�)=�r�B����-��)=�)=�u�E��5�
��
���	��G�	�s0�G�G�	G�G�G�	G,�%G,�+G,c	���UO[O2P2[O29^tt^2oUOUO2P2PPP2[	Q29^tt^2UO[O2Q2[O29^tt^2oUOUO2Q2PPP2[O
[OQ22UO[O2Q2[O29^tt^2oUOUO2Q2PPP2[O
[O]a]22UO[O2Q2[O29^tt^2oUOUO2Q2PPP2[O
P2UO[O2P2[O29^tt^2oUOUO2P2PPP2PPP2UO[[O
P2UO[[O
Q2P!)%fhCK�9h)%fhCK%9h)%fhCK�9h)%fhCK"9h)%fhK�9h)%fhK�9h)Ng@$@z11.125g@&@g@(@�spam)
ror8rz�
gettimeoutr~r{�decimal�Decimal�	fractions�Fractionror�r)r�rGrvs&  r�testDefaultTimeout�%GeneralModuleTests.testDefaultTimeoutBs��	
����1�1�3�T�:�
�]�]�_�_�����Q�\�\�^�T�2��&�f�
-�
-����V�5�5�7��@������D�� � ����!2�F�;�!�
�$�$�W�_�_�X�%>�?����V�5�5�7��@������D�� � ����!2�F�;�!�
�$�$�Y�%7�%7��A�%>�?����V�5�5�7��@������D�� � ����!2�F�;�!�
�$�$�T�*����V�5�5�7��>������D�� � ����!2�D�9�!�%.�,	
���*�f�&>�&>��C�	
���)�V�%=�%=�v�F�;�_�_��!����
!����
!����!���%.�
-�s��!K,�AM�!L	�$A4M�!L	�9A5M�.!L(	�A M�/!L<	�M�,K=	�5K=	�L
�	L
�	M�L%
�L%
�	M�(L9
�1L9
�3	M�<M
�M
�M�M	�M	�	inet_atonztest needs socket.inet_aton()c��UOQ[OQ22UOQ[OQ22P!)��0.0.0.0r�������)ror8rDr�s&r�testIPv4_inet_aton_fourbytes�/GeneralModuleTests.testIPv4_inet_aton_fourbyteses;��
	
����F�$4�$4�Y�$?�@�����F�$4�$4�5F�$G�Hr�	inet_ptonztest needs socket.inet_pton()c�```�]QHGoGnGnUU1QkoU1QkoRO	QUQ22RO	QUQ22RO	QUQ	22RO	Q
UQ22RO	QUQ
22[
%f
UUQ2UUQ2UUQ2UUQ2UUQ2RO	QUQ22RO	QUQ22RO	QUQ	22RO	QUQ
22UUQ2UUQ2UUQ2UUQ2UUQ2P!)r)rDrLrsc�:�RRU2!rr)�arsrLs&��rr�5GeneralModuleTests.testIPv4toString.<locals>.<lambda>q����i���+rc�>:�RO[[1V2!r�ror=r��rrOr�s&&�rrrPs����t�'8�'8�
�j�!�4�(
rrHrGs��z255.0.255.0s����z170.170.170.170��1.2.3.4rIr�z0.0.0.z	300.0.0.0za.0.0.0z	1.2.3.4.5�::1)r8rDrLrsror)r�r�g�
assertInvalidrsrLsf   @@r�testIPv4toString�#GeneralModuleTests.testIPv4toStringmsI���	>�=�+��
�
�	
���,�a�	�l�;����,�a�
�.>�?����,�a�0A�.B�C����,�a�	�l�;����,�a�0A�.B�C��s��!�X�&��a��%��a��#��a��%��a������,�a�	�l�;����,�a�
�.>�?����,�a�0A�.B�C����,�a�0A�.B�C��a��"��a��%��a��#��a��%��a��rc�````�]QHGnGnGoU%fRO	Q2[OQ6XcRRQ2UU1QknUU1Q	koROQ#RQ22ROQ#RQ
22ROQ$RQ22ROQRQ
22ROQ%RQ22ROQ&RQ22UQ2UQ2UQ2UQ2UQ2UQ2UQ2UQ2[%f	UQ2ROQ'RQ22ROQ(RQ22ROQRQ22UQ2UQ2UQ2UQ 2UQ!2UQ"2P![
cRO	Q2CK�h9h[c)oSOQ6XcRO	Q2gPo=hh9h))r)rLr
r��IPv6 not available�+could not import needed symbols from socketr��::�&'�IPv6 might not be supportedc�:�RRU2!rr)rOr
rLs&��rr�5GeneralModuleTests.testIPv6toString.<locals>.<lambda>�����i��!�,rc�@:�RO[[1RU2!rrS�rOrr�s&��rrrd�����$�"3�"3�
�j�!�1�a�#
rz0::0z1::sE�v�V���$��z$45ef:76cb:1a:56ef:afeb:bac:1924:aeaezad42:abc::127:0:254:2z12:a::z0x20::z:::z::0::z1::abc::z1::abc::defz1:2:3:4:5:6z1:2:3:4:5:6:z1:2:3:4:5:6:7:8:0z1:2:3:4:5:6:7:8:z::254.42.23.64z42::a29b:254.42.23.64sB�������*@z"42:a8b9:0:2:ffff:a29b:254.42.23.64z255.254.253.252z1::260.2.3.0z1::0.be.e.0z1:2:3:4:5:6:7:1.2.3.4z::1.2.3.4:0z0.100.200.0:3:4:5:6:7:8�ss�B
�'Ts
s�*@sB���*@)r8rLr
r�r��ImportErrorr�rpr=�winerrorror)r�r�rrZr
rrLsf   @@@r�testIPv6toString�#GeneralModuleTests.testIPv6toString�s����	I�<�<���
�
�2�3��<�<�7�"�
��(�D�)�
-��
�
�	
����q��w�/�����q��y�1����3�Q�u�X�>����O�
�4�5�	
�	
���S�
�%�&�	
�	
���;�Q�x�[�I��h���e���g���j�!��m�$��m�$��n�%��)�*��s��,�-����;�
���	
�	
���C�
�%�&�	
�	
���O�
�2�3�	
�	�'�(��n�%��m�$��-�.��m�$��/�0��q�	I��M�M�G�H�	I���
��:�:��&��M�M�"?�@���
�s@�F5�F5�	G�5	G�?G�G�	H�"H�#H�4H�H�	inet_ntopztest needs socket.inet_ntop()c�|```�]QHGoGnGnUU1QkoU1QkoRO	QUQ22RO	QUQ22RO	QUQ	22RO	Q
UQ22UUQ2UUQ
2UUQ2RO	QU[Q222RO	QUQ22RO	QUQ22RO	QUQ	22UUQ2UUQ
2UUQ2RO	QU[Q222P!)r)�	inet_ntoarnrsc�:�RRU2!rr)rOrsrns&��rr�5GeneralModuleTests.testStringToIPv4.<locals>.<lambda>�rQrc�>:�RO[[1V2!rrSrTs&&�rrrr�rUrz1.0.1.0sz
170.85.170.85s�U�Ur�rIrWrVssri)r8rprnrsro�	bytearray)r�rrYrZrsrnsf   @@r�testStringToIPv4�#GeneralModuleTests.testStringToIPv4�s'���	>�=�+��
�
�	
����A�&9�$:�;�����!�,?�*@�A����*�A�.A�,B�C�����A�&9�$:�;��a��%��a��%��a��&�����!�I�6I�,J�*K�L�����A�&9�$:�;�����!�,?�*@�A����*�A�.A�,B�C��a��%��a��%��a��&�����!�I�6I�,J�*K�Lrc�d````�]QHGnGnGoU%fRO	Q2[OQ6XcRRQ
2UU1QknUU1QkoROQ	RQ
22ROQ
RQ22ROQRQ22ROQ
R[Q222UQ2UQ2UQ2P![
cRO	Q2K�h9h[c)oSOQ6XcRO	Q2gPo=hh9h)r)rnr
r�r^r_r�rarbc�:�RRU2!rr)rOr
rns&��rr�5GeneralModuleTests.testStringToIPv6.<locals>.<lambda>�rerc�@:�RO[[1RU2!rrSrgs&��rrry�rhrr`rXz!aef:b01:506:1001:ffff:9997:55:170s
�����Uprissss)r8rnr
r�r�rjr�rpr=rkrort)r�r�rrZr
rrnsf   @@@r�testStringToIPv6�#GeneralModuleTests.testStringToIPv6�s���	I�<�<���
�
�2�3��<�<�7�"�
��(�L�1�
-��
�
�	
����q���/������"8� 9�:����/�
�Q�R�	
�	
�����)�,B�"C� D�E��l�#��l�#��k�"��5�	I��M�M�G�H�	I���
��:�:��&��M�M�"?�@���
�s@�C�C�	C<�	C9�$C9�8C9�<	D/�D/�D*�D*�*D/c���[O[O[O2oUOUO2[
O2FD-o[O2oUOQU12L	UO2o[O[O22oUO#U]*QW1QU]**2UO%U]*W2P![c3oSO[O6wfS]6XcgPo=J�Po=hh9h[cSO!Q2K�h9h)rGr�z
%s invalid)r8rsrcr�rD�	itertools�countr�find_unused_portr�r=rt�
EADDRINUSErGr�r�r�rYro)r�rvr�r�rr/�
my_ip_addrs&      r�testSockName�GeneralModuleTests.testSockNames���}�}�V�^�^�V�-?�-?�@������
�
�#����"�A� �1�1�3�D�
��	�	�9�d�+�,�
�#����!��	1��-�-�f�.@�.@�.B�C�J�	
�
�
�d�1�g�	�:�6��t�A�w�8N�O�����a��$�'��!�
��7�7�e�.�.�.�!�q�&��39��
���	1��M�M�/�0�	1�sB�?D�()E�	E� E�!E�E�E�E�	E5� E5�4E5c�*�[O[O[O2oUOUO2UO[O[O2oUOU]6gQ2P!)rzinitial mode is reuse)	r8rsrcr�rD�
getsockoptr�r��assertFalse�r�rv�reuses&  r�testGetSockOpt�!GeneralModuleTests.testGetSockOpt+s_���}�}�V�^�^�V�-?�-?�@������
�
�#����� 1� 1�6�3F�3F�G������!��%<�=rc��[O[O[O2oUOUO2UO[O[O]2UO[O[O2oUOU]6HQ2P!)r�zfailed to set reuse mode)
r8rsrcr�rDr�r�r�r�r�r�s&  r�testSetSockOpt�!GeneralModuleTests.testSetSockOpt3sy���}�}�V�^�^�V�-?�-?�@������
�
�#�����)�)�6�+>�+>��B����� 1� 1�6�3F�3F�G������!��%?�@rc	��[O[O[O2oUOUO2UO[O[O]2UO[29^tt^2UO[O[O]]d*2PPP2UO[29^tt^2UO[O[O]]d*'2PPP2UO[29^tt^2UO[O]]d*]2PPP2UO[29^tt^2UO]]d*[O]2PPP2UO[Q29^tt^2UO[O[O[22PPP2UO[Q29^tt^2UO[O[OP2PPP2UO[Q29^tt^2UO[O[O]]2PPP2UO[Q29^tt^2UO[O[O2PPP2UO[Q29^tt^2UO[O[O]]]2PPP2P!)%fhCK�9h)%fhCK{9h)%fhCKA9h)%fhCK9h)%fhCK�9h)%fhCK{9h)%fhCK89h)%fhK�9h)%fhP!9h)r�z6socket option should be int, bytes-like object or Nonez4requires 4 arguments when the third argument is Nonez6only takes 4 arguments when the third argument is Noneztakes at least 3 argumentsztakes at most 4 arguments)
r8rsrcr�rDr�r�r�ror�rKrr�r�s& r�test_setsockopt_errors�)GeneralModuleTests.test_setsockopt_errors;s����}�}�V�^�^�V�-?�-?�@������
�
�#�����)�)�6�+>�+>��B�
�
�
�}�
-�
-��O�O�F�-�-�v�/B�/B�A��H�M�.��
�
�}�
-�
-��O�O�F�-�-�v�/B�/B�a�3�h�J�O�.��
�
�}�
-�
-��O�O�F�-�-�q�C�x��;�.��
�
�}�
-�
-��O�O�A��H�f�&9�&9�1�=�.��
#�
#�I�/g�
h�
h��O�O�F�-�-�v�/B�/B�D�F�K�i��
#�
#�I�/e�
f�
f��O�O�F�-�-�v�/B�/B�D�I�g��
#�
#�I�/g�
h�
h��O�O�F�-�-�v�/B�/B�A�q�I�i��
#�
#�I�/K�
L�
L��O�O�F�-�-�v�/B�/B�C�M��
#�
#�I�/J�
K�
K��O�O�F�-�-�v�/B�/B�A�q�!�L�L�
K�1.�
-�
-��.�
-�
-��.�
-�
-��.�
-�
-��i�
h�
h��g�
f�
f��i�
h�
h��M�
L��L�
K�
K�s��7N�88N"�)N6�#)O
�28O�0O2�&1P�=/P�2P-�N	�N	�"N3	�+N3	�6O	�?O	�
O	�O	�O/	�'O/	�2P	�;P	�P	�P	�P*	�#P*	�-P>	�6P>	c��[O[O[O29^tt^2oUO]2PPP2UO	[
WOQ2P!)%fhK39h)r��spam)r8rsrcr\ror=rvr�s& r�testSendAfterClose�%GeneralModuleTests.testSendAfterClose]sO��
�]�]�6�>�>�6�+=�+=�
>�
>�$��O�O�A��?����'�4�9�9�g�6�?�
>�s�A:�:B
	�B
	c���[O2oUO[O]12[OUO2Q5O	2UO	2UOQ2P![cFoSOSO[O[O12Po=P!Po=hh9h)r�rZz#close() should raise EBADF/ENOTSOCK)r8r��
_LOCALHOSTrZrDrhr=rYrt�EBADF�ENOTSOCK)r�rvr?s&  r�testCloseException�%GeneralModuleTests.testCloseExceptioncs����}�}����	�	�6�$�$�a�(�)��
�
�T�[�[�]�+�1�1�3�	=��J�J�L�

�I�I�;�<��	�	D��M�M�#�)�)�e�k�k�5�>�>�%B�C�C��	D�s�,B�	C�C�:C�Cc�d�[O[O[O29^tt^2oUOUO[O2[[Q2%cQUO
UO[O[O*[O12L*UOUO[O2UOUO]2PPP2P!)%fhP!9h)�SOCK_CLOEXEC)
r8rsrcrorar7rYrr�rbr�s& r�testNewAttributes�$GeneralModuleTests.testNewAttributesos����]�]�6�>�>�6�+=�+=�
>�
>�$����T�[�[�&�.�.�9��v�~�.�.��
�
�d�i�i�%�1�1�F�4G�4G�G�%�1�1�3�4�� � ����F�,>�,>�?����T�Z�Z��+�?�
>�
>�
>�s�AD�>BD�D/	�'D/	c�j�[O2oUOUO2[O2oUQ*oUQ*
oUO[UO[U12UO[UO[U12[O2FD2o[O2oUO[U12P!	P![c3oSO[O6wfS]6XcgPo=JpPo=hh9h)r)r8r�rDrr�ror�r�rFr~rr=rtr�)r�rvr��big_port�neg_portr�rs&      r�test_getsockaddrarg�&GeneralModuleTests.test_getsockaddrarg|s����}�}�������
�
�#��-�-�/���%�<���%�<�����-����T�8�4D�E����-����T�8�4D�E����"�A� �1�1�3�D�
��	�	�4��,�'�
�#���
��7�7�e�.�.�.�!�q�&��39��
�s*�C5�5	D2�?D2�D-�D-�&D-�-D2c���UO[OQ2UO[Q2UO[Q2UO[Q2UO[Q2[O2oUOUO2UO	[
UOPP2UO
[OQ2P!)r:�
SIO_RCVALL�	RCVALL_ON�
RCVALL_OFF�SIO_KEEPALIVE_VALS)r��dr�)r�r8r�rDror�r:r�r\s& r�test_sock_ioctl�"GeneralModuleTests.test_sock_ioctl�s������6�=�=�'�2����6�<�0����6�;�/����6�<�0����6�#7�8��M�M�O�������� ����*�a�g�g�r�4�8�	����)�)�=�9r�SIO_LOOPBACK_FAST_PATHz1Loopback fast path support required for this testc�z�[O2oUOUO2UO[OP	2UO[UO[OP2P![
c+oQoSOS6XcSOQ2gPo=hh9h)Ti='zQSIO_LOOPBACK_FAST_PATH is defined but doesn't implemented in this Windows version)
r8r�rDr:r�r=rkr�ror)r�rGrw�
WSAEOPNOTSUPPs&   r�test_sio_loopback_fast_path�.GeneralModuleTests.test_sio_loopback_fast_path�s���
�M�M�O�������� �	�
�G�G�F�1�1�4�8�	
���)�Q�W�W�f�.K�.K�T�R��
�	�!�M��|�|�}�,��
�
�L�M���	�s#� B�	B:�B:�B5�#B5�5B:c	�>�[OQ]P2[O[P2FDoUO[U2]2J 	[OQ]P2[OQ]P2[OP]P2[O%c[OQ]P2[O%c%[O2O]6f[O[Q2[O[]P2[O[P2[O[]P[O [O"2oSFD�vqEoUOU[O 2UO[%U2QUO&*2UO[)U2[)UO&22UOU[O"2UO[%U2QUO&*2UO[)U2[)UO&22J�	[O[P][O"2oSFD(vqgoUOU[O"2J*	[O[P]][O*2[O[P]]][O,2[OP][O.[O"][O,2[O[P2o[O[PQ5o	UOV�2[O[P[O 2o[O[P[O Q5o	UOV�2[O[P][O"2o[O[P[O"Q	5o	UOV�2[O[P]][O*2o[O[P[O*Q
5o	UOV�2[O[P]]][O,2o[O[P[O,Q5o	UOV�2[OP][O.[O"][O,2o[OP][O.[O"][O,Q5o	UOV�2UO1[2[OQQ
2[5[Q2%cmUO1[O[OQQ[O6Q5[OQP]]][O62P!P![Oc7oSO[O6XcSOQ2gPo=hh9h[OcP!h9h)�	localhostzbuggy libc versionrXrX�http�<AddressFamily.AF_INET: %r>�<SocketKind.SOCK_STREAM: %r>)r�r��ra�r)rb��flags)r�r�rarrbr�u��AI_NUMERICSERV)r8�getaddrinforqrt�EAI_SERVICEr�rFro�lenr�IPV6_ENABLEDrrorprqrrrsrcrn�valuer;�SOL_TCP�
AI_PASSIVE�	AF_UNSPECro�UnicodeEncodeErrorr7r�)
r�r?�info�infosrarr��socktyperO�bs
&         r�testGetaddrinfo�"GeneralModuleTests.testGetaddrinfo�s���	����{�B�/��&�&�t�T�2�D����S��Y��*�3�	���;��+����;��+����4��$��%�%�%����u�b�)��"�"�"�x�';�';�'=�'G�'G�"�'L����t�V�,����4��$����4��&��"�"�4��V�^�^�V�=O�=O�P��%*�!�F�!�Q�����V�V�^�^�4����T�&�\�+H�6�<�<�+W�X����S��[�#�f�l�l�*;�<����T�6�#5�#5�6����T�$�Z�)G�$�*�*�)T�U����S��Y��D�J�J��8�
&+��"�"�4��q�&�2D�2D�E��$)� �A��A�q����X�v�'9�'9�:�%*�	���4��q�!�V�^�^�<����4��q�!�Q��0A�0A�B�	���4��F�$4�$4�f�6H�6H�!�!�,�,�	.�
���t�T�*�����D�t�4����������t�T�6�>�>�:�����t�T�&�.�.�A����������t�T�1�f�.@�.@�A�����t�T��0B�0B�C����������t�T�1�a����@�����t�T����@����������t�T�1�a��F�4E�4E�F�����t�T��1B�1B�C����������t�Q��(8�(8�&�:L�:L�a�%�0�0�
2�����D�q��9I�9I�$*�$6�$6�a�%+�%6�%6�
8��	
��������,�f�.@�.@�+�x�X��6�+�,�,����f�o�o�v�/A�/A�;�PV�$*�$9�$9�
�
;�
��"�"�;��a��A�#)�#8�#8�:�-��E���	��y�y�F�.�.�.��
�
�2�3���		��X�?�?�
��
�s;�Z5�)\�5\�	\�
[;�)[;�;\�\�\�\r�zneeds socket.AI_NUMERICSERVzsetlocale is not thread-safe�LC_ALLzuk_UA.KOI8-U�uk_UAzja_JP.eucJPz
ja_JP.SJIS�ja_JPzko_KR.eucKRz
zh_CN.GB18030zel_GR.ISO8859-7zde_DE.ISO8859-1zja_JP.UTF-8c��UO[O29^tt^2o[OQQ[OQ5PPP2[WO2P!)%fhK'9h)r�r�r�)ror8rqr�r�r;rzr�s& r� test_getaddrinfo_localized_error�3GeneralModuleTests.test_getaddrinfo_localized_error�sR���
�
�v���
/�
/�2����{�F�%+�%:�%:�
<�0�	�B�L�L��0�
/�s�(A0�0B	�9B	�requires _testcapic��]QHGoGoGo[O
PU]*[OQ5[O
PU]*[OQ5[O
PUQ*
]*[OQ5[O
PU]*
[OQ5[O
P][OQ5[O
PQ[OQ5P![cSOQ2CK[OcCKh9h[cSOQ2CK[OcCK%h9h[cSOQ2CK[OcCK)h9h[cSOQ2CK[OcCK4h9h)r)�	ULONG_MAX�LONG_MAX�LONG_MINr�z,Either no error or socket.gaierror expected.r	)
�	_testcapir�r�r�r8r�rcr�rhrq)r�r�r�r�s&   r�"test_getaddrinfo_int_port_overflow�5GeneralModuleTests.test_getaddrinfo_int_port_overflows}��	<�;�	����t�Y��]��9K�9K�L�	����t�X��\��8J�8J�K�	����t�X��%6��%:��AS�AS�T�	����t�X��\��8J�8J�K�	���4���);�);�<����4��f�.@�.@�A��=�	F�
�I�I�D�E����	��	��
�	F��I�I�D�E����	��	��
�	F��I�I�D�E����	��	��
�	F��I�I�D�E����	��	�s��.D�.E�+5F�!.G
�	E�)E�>E�E�E�	F�#F�8F�F�F�	G
�G
�2G
�G
�	G
�
	H�H�,H�?H�Hc�T�UO[[OQ]2P!)�mail.python.org)r�r)ror=r8rr�s&r�test_getnameinfo�#GeneralModuleTests.test_getnameinfo@s�����'�6�#5�#5�7L�a�Pr�networkznetwork is not enabledc�n�[OQ29^tt^2[OQ2PPP2Qo[OU2[OU2[O
U][O[O2P!)%fhKu9h)z
python.orgu!испытание.pythontest.net)r�transient_internetr8r��gethostbyname_exr�r�rc)r�r/s& r�	test_idna�GeneralModuleTests.test_idnaDst��
�
-�
-�l�
;�
;�� � ��.�<�5�����V�$�����'����6�!�F�$4�$4�V�5G�5G�H�<�
;�s�B$�$B4	�-B4	c�`�[[Q2%c[[Q2%fROQ2U1QkoU1Qko[O2vqE[O[O
U2oU%cUO
Q2RO[29^tt^2[O]2UOQ[O*2PPP2U%cr[O[O
U2[O]2RO[UOQ[O*2[O]2[O[O
U2UO2UO2P!)%fhK�9h[O]2[O[O
S2SO2SO2h9h)�alarmr�z9signal.alarm and socket.socketpair required for this testc�T:�RO[[O]2P!rE�ror��math�acosh�r%r�s*�r�
ok_handler�@GeneralModuleTests.check_sendall_interrupted.<locals>.ok_handler[s������j�$�*�*�a�8rc�f:�RO[[O]2]]*P!rEr�r�s*�r�raising_handler�EGeneralModuleTests.check_sendall_interrupted.<locals>.raising_handler]s"������j�$�*�*�a�8�
��F�Frg�?�x)r7�signalr8r�r��SIGALRMr\ro�ZeroDivisionErrorr��sendallr�
SOCK_MAX_SIZE�TimeoutErrorrD)r��with_timeoutr�r��crG�	old_alarmsf&     r�check_sendall_interrupted�,GeneralModuleTests.check_sendall_interruptedUsY����v�w�'�'�w�v�|�/L�/L��M�M�U�V�	9�	�� � �"����M�M�&�.�.�/�B�	�	�����S�!��"�"�#4�5�5����Q���	�	�$��!6�!6�6�7�6���
�
�f�n�n�j�9����Q���!�!�,��	�	�"&��)>�)>�">�@�
�L�L��O��M�M�&�.�.�)�4�
�G�G�I�
�G�G�I�6�5��
�L�L��O��M�M�&�.�.�)�4�
�G�G�I�
�G�G�I�s8�	G-�.G-�?=G�<G-�A1G-�G*	�#G*	�%G-�-AI
c�*�UOP
2P!�F�r�r�s&r�test_sendall_interrupted�+GeneralModuleTests.test_sendall_interruptedts���&�&�u�-rc�*�UOP	2P!�Tr�r�s&r�%test_sendall_interrupted_with_timeout�8GeneralModuleTests.test_sendall_interrupted_with_timeoutws���&�&�t�,rc��[O[O[O2o[U2oUO	[
29^tt^2oPo[O2PPP2UOU[WOO]*22[O[O[O2oUOQ2o[U2oPo[O2UO	[
29^tt^2Po[O2PPP2P!)%fhK�9h)%fhP!9h)Nr4)
r8rsrcrn�assertWarns�ResourceWarningrrgrYr;�warningr%�makefile)r�rvr>r|rs&    r�test_dealloc_warn�$GeneralModuleTests.test_dealloc_warnzs����}�}�V�^�^�V�-?�-?�@����J��
�
�
�o�
.�
.�"��D���� �/�	
�
�
�a��R�Z�Z�_�_�Q�/�0�1��}�}�V�^�^�V�-?�-?�@���M�M�$�����J��������
�
�
�o�
.�
.��A���� �/�
.�/�
.��/�
.�
.�s$�E�6E+�E(	�!E(	�+E<	�4E<	c�0�[O[O[O29^tt^2oUOQ2oUO	2UO[
U2Q2PPP2P!)%fhP!9h)r4z<_io.BufferedReader name=-1>)r8rsrcr	rDrorn�r�rv�fps&  r�test_name_closed_socketio�,GeneralModuleTests.test_name_closed_socketio�sZ��
�]�]�6�>�>�6�+=�+=�
>�
>�$����t�$�B��H�H�J����T�"�X�'E�F�?�
>�
>�
>�s�=B�B	�
B	c�<�[O29^tt^2oUOQ]Q5oUOUO22UO	UO22UO	UO
22UO2UO[UO2UO[UO
2UO[UO2PPP2P!)%fhP!9h)r4)�	buffering)
r8r	rG�readabler��writable�seekablerDror�r
s&  r�test_unusable_closed_socketio�0GeneralModuleTests.test_unusable_closed_socketio�s���
�]�]�_�_�����t�q��1�B��O�O�B�K�K�M�*����R�[�[�]�+����R�[�[�]�+��H�H�J����j�"�+�+�6����j�"�+�+�6����j�"�+�+�6��_�_�_�s�C!D
�
D	�D	c	��[O2oUO[]12[OUO	22UO[29^tt^2UO]2PPP2UO[29^tt^2UO2PPP2UO[29^tt^2[OP2PPP2UO[29^tt^2[OP2PPP2P!)%fhK�9h)%fhK�9hSO[29^tt^2SO2PPP2h)%fhh9h9h)%fhK�9h)%fhP!9hrE)	r8r�rFrDrZror=r�rr�s& r�test_socket_close�$GeneralModuleTests.test_socket_close�s���}�}���	��I�I�t�Q�i� ��L�L�����'��"�"�7�+�+����A��,��"�"�7�+�+��
�
��,��
�
�y�
)�
)��L�L���*�
�
�
�w�
'�
'��L�L���(�
'�,�+��,�+���"�"�7�+�+��
�
��,�+�+�+��*�
)��
'�
'�
'�s~�AE �0D:�E �'E
�F.�G�:E
	�E
	�E �
E	�E	� F+�>F	�	F+�F(
�!F(
�#F+�.F>	�7F>	�G	�
G	c
��QFD�oUOUQ59^tt^2[O29^tt^2oQU7cPLQoUOVQ59^tt^2oUOUOU2PPP2PPP2PPP2J�	P!)%fhK&9h)%fhK19h)%fhJ�9h)r>��moder�r��encoding)r>r4�rw�w�wb)�subTestr8r	ror)r�rrvrrs&    r�test_makefile_mode�%GeneralModuleTests.test_makefile_mode�s���.�D����4��(�(��]�]�_�_��'*�d�{�t��H����t��?�?�2��(�(����$�7�@�%�)�(�/�@�?��%�_��)�(�(�sS�C	�B4
�B4
�&B!�B4
�C	�!B1�*B1�,B4
�4C�=C�?C	�C
�C
c
��QFD�oUOUQ59^tt^2[O29^tt^2oUO[Q29^tt^2UO	U2PPP2PPP2PPP2J�	P!)%fhK&9h)%fhK19h)%fhJ�9h)�rtrzinvalid mode)r'r��+rO)r#r8rKr�r	)r�rrvs&  r�test_makefile_invalid_mode�-GeneralModuleTests.test_makefile_invalid_mode�sz��'�D����4��(�(��]�]�_�_���/�/�
�N�K�K��
�
�d�+�L�%�)�(�(�L�K��%�_��)�(�(�sM�B5	�B"
�B�1B"
�9B5	�B�B�B"
�"B2�+B2�-B5	�5C
�>C
c
���[O2oS9^tt^2[[O]*2FD(oUO	[
[OV2J*	PPP2[[O]*2FD�o[O[O[OU22oUOU[O2[O[O[OU22oUOU[O2J�	P!)%fhK�9hr�)r8�range�pickle�HIGHEST_PROTOCOLror�dumps�loadsrsrorc)r�rv�protocolrars&    r�test_pickle�GeneralModuleTests.test_pickle�s����}�}���
�T�!�&�"9�"9�A�"=�>���!�!�)�V�\�\�4�J�?���f�5�5��9�:�H��\�\�&�,�,�v�~�~�x�"H�I�F����V�V�^�^�4��<�<����V�-?�-?�� J�K�D����T�6�#5�#5�6�	;��T�s�AE�E#	�E#	c	��QFDoo[O[O[O29^tt^2oUO[]12UOU2PPP2Jq	[O[O[O29^tt^2oUO[]12UO2PPP2P!)%fhJ�9h)%fhP!9h)r)r���)r8rsrcr�rFr�)r��backlog�srvs&  r�test_listen_backlog�&GeneralModuleTests.test_listen_backlog�s����G����v�~�~�v�/A�/A�B�B�c����$���#��
�
�7�#�C�B��
�]�]�6�>�>�6�+=�+=�
>�
>�#��H�H�d�A�Y���J�J�L�?�
>�	C�B�B��?�
>�
>�s$�)C%	�3(C9�%C6
�.C6
�9D
	�D
	c�R�]PHo[O[O[O29^tt^2oUO	[
]12UO
[UOUO]*2PPP2P!)%fhP!9hrE)
r�r8rsrcr�rFror�r��INT_MAX)r�r�r7s&  r�test_listen_backlog_overflow�/GeneralModuleTests.test_listen_backlog_overflow�sd��	�
�]�]�6�>�>�6�+=�+=�
>�
>�#��H�H�d�A�Y�����m�S�Z�Z��9J�9J�Q�9N�O�?�
>�
>�
>�s�A
B�B&	�B&	�IPv6 required for this test.c	��UO[[O[O
]Q1]2[O[O[O29^tt^2oUO[UO[O
]Q12PPP2P!)%fhP!9h)rr�i����)	ror�r8rrrr
rcr�r\s& r�
test_flowinfo� GeneralModuleTests.test_flowinfo�s}�����-��);�);�(�/�/��J�?��	D�
�]�]�6�?�?�F�,>�,>�
?�
?�1����m�Q�V�V�m�6J�6J�A�s�5S�T�@�
?�
?�
?�s�43B1�1C	�:C	c��[OQQ[O[O[O2vCuqUOUQ2P!)�ff02::1de:c0:face:8Dr)�ff02::1de:c0:face:8drrr)r8r�r
rKr�ro)r�r��sockaddrs&  r�test_getaddrinfo_ipv6_basic�.GeneralModuleTests.test_getaddrinfo_ipv6_basic�sH��"�.�.�"��&�/�/�������	
���1�	
����#G�Hrc���UO[O2[OQ22UO[O2[OQ22P!)rGr`)ror8r�r�s&r�test_getfqdn_filter_localhost�0GeneralModuleTests.test_getfqdn_filter_localhost�sB��������)�6�>�>�)�+D�E�������)�6�>�>�$�+?�@rr�zdoes not work on WindowszSymbolic scope id does not workz test needs socket.if_nameindex()c��[O2]*vq[OQU*Q[O[O[O
2vCuq4UO
UQQ]U12P!)r�ff02::1de:c0:face:8D%rrD)r8r�r�r
rKr�ro)r��ifindex�test_interfacer�rEs&    r�&test_getaddrinfo_ipv6_scopeid_symbolic�9GeneralModuleTests.test_getaddrinfo_ipv6_scopeid_symbolic�sn��%+�$7�$7�$9�!�$<�!��"�.�.�#�n�4��&�/�/�������	
���1�	
����$:�D�!�W�#M�Nrz.Numeric scope id does not work or undocumentedc���]*o[OQ[U2*Q[O[O[O
2vCuq#UO
UQQ]U12P!)�*rLrrD)r8r�r;r
rKr�ro)r�rMr�rEs&   r�%test_getaddrinfo_ipv6_scopeid_numeric�8GeneralModuleTests.test_getaddrinfo_ipv6_scopeid_numeric�sa����"�.�.�#�c�'�l�2��&�/�/�������	
���1�	
����$:�D�!�W�#M�Nrc��[O2]*vqQQ]U1o[OU[O[O*2oUOUQU*Q12P!)rrCr�ff02::1de:c0:face:8d%�1234)r8r�r�NI_NUMERICHOST�NI_NUMERICSERVro)r�rMrNrE�nameinfos&    r�&test_getnameinfo_ipv6_scopeid_symbolic�9GeneralModuleTests.test_getnameinfo_ipv6_scopeid_symbolicsf��%+�$7�$7�$9�!�$<�!��*�D�!�W�=���%�%�h��0E�0E��H]�H]�0]�^������$;�n�$L�f�#U�Vrc���]*oQQ]U1o[OU[O[O*2oUO	UQ[U2*Q12P!)rRrCrrVrW)r8rrXrYror;)r�rMrErZs&   r�%test_getnameinfo_ipv6_scopeid_numeric�8GeneralModuleTests.test_getnameinfo_ipv6_scopeid_numericsY����*�D�!�W�=���%�%�h��0E�0E��H]�H]�0]�^������$;�c�'�l�$J�F�#S�Trc��[O[O[O29^tt^2oUO[	UO
2QUO
O*2UO[	UO2QUOO*2UO[UO
2[UO
O22UO[UO2[UOO22PPP2P!)%fhP!9h)r�r�)	r8rsrcrornrar�rr;r\s& r�test_str_for_enums�%GeneralModuleTests.test_str_for_enums's����]�]�6�>�>�6�+=�+=�
>�
>�!����T�!�(�(�^�-J�Q�X�X�^�^�-[�\����T�!�&�&�\�+I�A�F�F�L�L�+X�Y����S����]�C������,?�@����S����[�#�a�f�f�l�l�*;�<�	?�
>�
>�
>�s�DE�E	�E	c�H�[[Q]2o[[Q]2o[OU*U*o[O[OU29^tt^2oUO	UO
[O2UO
]2UO	UO
[O2UO
]2UO	UO
[O2UOP	2UO	UO
[O2UOP
2UO	UO
[O2PPP2P!)%fhP!9h)�
SOCK_NONBLOCKr�)r�r8rcrsrorr\�setblocking)r�rdr��	sock_typerGs&    r� test_socket_consistent_sock_type�3GeneralModuleTests.test_socket_consistent_sock_type0s	������;�
��v�~�q�9���&�&��6��E�	�
�]�]�6�>�>�9�
5�
5�����Q�V�V�V�%7�%7�8�
�L�L��O����Q�V�V�V�%7�%7�8�
�L�L��O����Q�V�V�V�%7�%7�8�
�M�M�$�����Q�V�V�V�%7�%7�8�
�M�M�%� ����Q�V�V�V�%7�%7�8�6�
5�
5�
5�s�/DF�F!	�F!	c��[O[O[O2oUO2o[	[O
OO22]*o[	Q[OOO222]*o[OV4]UQ59^tt^2oUOUOU2UOUOU2UOUO]].2PPP2P!)%fhP!9h)r�c3�H�SF �DvqUQ7fJUw�	J	P!3h)rd>r�rdr)r.r/�kinds&  rr0�EGeneralModuleTests.test_unknown_socket_family_repr.<locals>.<genexpr>Ks#��C���C�
���<�<�
�D�C�s�"�")rarrbrZ)r8rsrc�detach�max�
AddressFamily�__members__�values�
SocketKindrrorarrYrb)r�rv�fd�unknown_family�unknown_typerGs&     r�test_unknown_socket_family_repr�2GeneralModuleTests.test_unknown_socket_family_repr@s����}�}�V�^�^�V�-?�-?�@��
�[�[�]���V�1�1�=�=�D�D�F�G�!�K���
�$�/�/�;�;�A�A�C�
�
�
�	���]�]�%���������Q�X�X�~�6����Q�V�V�\�2��M�M�!�'�'�A�r�7�+�
����s�AD=�=E	�E	�sendfileztest needs os.sendfile()c
�$�QQ2o[O29^tt^2o[O[O[O2o[O
U2UO
[O29^tt^2UOUU22PPP2UO
[29^tt^2UOU]Q*22PPP2UO
[29^tt^2UOUP22PPP2PPP2P!)%fhK�9h)%fhKj9h)%fhK@9h)%fhP!9h)c�.`�\sQsQsnQsQsQsUsP!)�<GeneralModuleTests.test__sendfile_use_sendfile.<locals>.Filei[c��VmP!r�rs)r�rss&&rr��EGeneralModuleTests.test__sendfile_use_sendfile.<locals>.File.__init__\s���rc��UO!rr}r�s&rrZ�CGeneralModuleTests.test__sendfile_use_sendfile.<locals>.File.fileno_s���w�w�rr})r�r�r�r�r�rZr�r�r�s@r�Filer{[s����
�
�
rr�r�)r8�osr9�curdir�O_RDONLYrDro�_GiveupOnSendfile�_sendfile_use_sendfiler�r)r�r�rvrss&   r�test__sendfile_use_sendfile�.GeneralModuleTests.test__sendfile_use_sendfileYs���	�	��]�]�_�_��������B�K�K�0�B��H�H�R�L��"�"�6�#;�#;�<�<��+�+�D��H�5�=��"�"�=�1�1��+�+�D��D��M�:�2��"�"�9�-�-��+�+�D��J�7�.��_�=�<��1�1��-�-���_�_�sl�A1E>�E	�2%E>�E	�6%E>�E+	�3E>�E
�E
�E>�E(
�!E(
�#E>�+E;
�4E;
�6E>�>F	�F	c���UOUOU2UOUOU2UO2o[OUQ5oUOUO2UO2UOUOU2UOUOU2UOUO2U2P!�r�)rorarrZr8r�rDrm)r�rGra�stypers�s2s&&&&  r�_test_socket_fileno�&GeneralModuleTests._test_socket_filenoks���������6�*��������'�
�X�X�Z��
�]�]�"�
%��������!�	���
�������F�+�������%�(��������b�)rc�
�[O[O[O2oUOUO2UO[O]12UOU[O[O2[[Q2%c�[O[O[O2oUOUO2UO[O]12UOU[O[O2[O%c�[O[O[O2oUOUO2UO[O]]]12UOU[O[O2[[Q2%c�[O2oUO[O U2[O[O"[O2oS9^tt^2UOU2UOU[O"[O2PPP2P!P![$cKh9h)%fhP!9h)rrKr�)r8rsrcr�rDr�rrFr�r7rKr�r
rr�rr�r�rm)r�rG�	unix_names&  r�test_socket_fileno�%GeneralModuleTests.test_socket_filenoxs����M�M�&�.�.�&�*<�*<�=�������� �	���
�"�"�A�&�'�� � ��F�N�N�F�4F�4F�G��6�<�(�(��
�
�f�n�n�f�.?�.?�@�A��O�O�A�G�G�$�
�F�F�M�&�&��*�+��$�$�Q�����8I�8I�J��%�%�%��
�
�f�o�o�v�/A�/A�B�A��O�O�A�G�G�$�
�F�F�M�(�(�!�Q��2�3��$�$�Q�����9K�9K�L��6�9�%�%�%�=�=�?�I��O�O�I�,�,�i�8��
�
�f�n�n�f�.@�.@�A�A���A��F�F�9�%��,�,�Q����-3�-?�-?�A�
��&��'��������s<�K1�K �%/K1� 	K.�*K.�+K1�-K.�.K1�1L	�:L	c���UO[29^tt^2[O[O[OQQ5PPP2P!)%fhP!9h)g@E@r��rorr8rsrcr�s&r� test_socket_fileno_rejects_float�3GeneralModuleTests.test_socket_fileno_rejects_float�s<��
�
�
�y�
)�
)��M�M�&�.�.�&�*<�*<�T�J�*�
)�
)�
)���6A�A0	�(A0	c���UO[29^tt^2[O[O[OQQ5PPP2P!)%fhP!9h)rLr�r�r�s&r�&test_socket_fileno_rejects_other_types�9GeneralModuleTests.test_socket_fileno_rejects_other_types�s<��
�
�
�y�
)�
)��M�M�&�.�.�&�*<�*<�U�K�*�
)�
)�
)�r�c���UO[Q29^tt^2[O[O[OPQ5PPP2P!)%fhP!9h)�negative file descriptorr��rKr�r8rsrcr�s&r�)test_socket_fileno_rejects_invalid_socket�<GeneralModuleTests.test_socket_fileno_rejects_invalid_socket�s@��
�
#�
#�J�0J�
K�
K��M�M�&�.�.�&�*<�*<�R�H�L�
K�
K�
K���6A � A1	�)A1	zWindows disallows -1 onlyc���UO[Q29^tt^2[O[O[OQQ5PPP2P!)%fhP!9h)r�r�i���r�r�s&r�#test_socket_fileno_rejects_negative�6GeneralModuleTests.test_socket_fileno_rejects_negative�s@��
�
#�
#�J�0J�
K�
K��M�M�&�.�.�&�*<�*<�S�I�L�
K�
K�
K�r�c��QoUO[29^tt^2o[O[O2Q5PPP2UOWOO[OU12UO[29^tt^2o[O[O[O[O2Q5PPP2UOUOO[OU12P!)%fhK�9h)%fhK[9h)i6'r�)ror=r8r�make_bad_fdrYrzrtr�rsrc)r��WSAENOTSOCKr|s&  r�$test_socket_fileno_requires_valid_fd�7GeneralModuleTests.test_socket_fileno_requires_valid_fd�s�����
�
�
�w�
'�
'�2��M�M��!6�!6�!8�9�(��
�
�b�l�l�(�(�5�;�;��*D�E�
�
�
�w�
'�
'�2��M�M�����"�"� �,�,�.�
0�(�
	
�
�
�b�l�l�(�(�5�;�;��*D�E�(�
'��(�
'�s$�+D0�'A	E�0E	�9E	�E	�E	c
��[O29^tt^2oUO[29^tt^2[OUO2Q5PPP2UO[29^tt^2o[O[O[OUO2Q5PPP2UOWOO[O2PPP2P!)%fhK�9h)%fhKa9h)%fhP!9hr�)�tempfile�NamedTemporaryFileror=r8rZrsrcrorzrtr�)r��afiler|s&  r�%test_socket_fileno_requires_socket_fd�8GeneralModuleTests.test_socket_fileno_requires_socket_fd�s���
�
(�
(�
*�
*�e��"�"�7�+�+��
�
�U�\�\�^�4�,��"�"�7�+�+�r��
�
��N�N��&�&� �<�<�>�+�,�

���R�\�\�/�/����@�+�
*�+�+��,�+��	+�
*�
*�sM�D8�&D	�#%D8�AD%	�<D8�D"
�D"
�D8�%D5
�.D5
�0D8�8E		�E		c��]PHo]PHoUOUOQQQUQ5oUO	U[
O2P!)rror8c�V�UO29%cUOQ2!)�AF_��isupperr1��Cs&rr�<GeneralModuleTests.test_addressfamily_enum.<locals>.<lambda>����!�)�)�+�=�=�!�,�,�u�*=�=r��source)rJ�enum�
_old_convert_�IntEnum�_test_simple_enumr8ro)r�rJr��CheckedAddressFamilys&   r�test_addressfamily_enum�*GeneralModuleTests.test_addressfamily_enum�sE���#�1�1����o�x�=�� 2� ��
	
���3�V�5I�5I�Jrc��]PHo]PHoUOUOQQQUQ5oUO	U[
O2P!)rrrr8c�V�UO29%cUOQ2!)�SOCK_r�r�s&rr�9GeneralModuleTests.test_socketkind_enum.<locals>.<lambda>�s��!�)�)�+�?�?�!�,�,�w�*?�?rr�)rJr�r�r�r�r8rr)r�rJr��CheckedSocketKinds&   r�test_socketkind_enum�'GeneralModuleTests.test_socketkind_enum�sE��� �.�.����l�H�?��/���
	
���0�&�2C�2C�Drc��]PHo]PHoUOUOQQQUQ5oUO	U[
O2P!)r�MsgFlagr8c�V�UO29%cUOQ2!)�MSG_r�r�s&rr�6GeneralModuleTests.test_msgflag_enum.<locals>.<lambda>�s��!�)�)�+�>�>�!�,�,�v�*>�>rr�)rJr�r��IntFlagr�r8r�)r�rJr��CheckedMsgFlags&   r�test_msgflag_enum�$GeneralModuleTests.test_msgflag_enum�sA����+�+����i��>��,���
	
���~�v�~�~�>rc��]PHo]PHoUOUOQQQUQ5oUO	U[
O2P!)r�AddressInfor8c�V�UO29%cUOQ2!)�AI_r�r�s&rr�:GeneralModuleTests.test_addressinfo_enum.<locals>.<lambda>�r�rr�)rJr�r�r�r�r8r�)r�rJr��CheckedAddressInfos&   r�test_addressinfo_enum�(GeneralModuleTests.test_addressinfo_enum�sE���!�/�/����m�X�=��0� ��	
���1�6�3E�3E�Fr�sendmsg�sendmsg not supportedc�v`�U1QkQ2o[OU2Q1[O[OQ1,n[O2vq#UO	UO
2UO	UO
2UO
[UOQ,R2P!)c�0:`�\sQsQsnU1QksQsUsP!)�IGeneralModuleTests.test_sendmsg_reentrant_ancillary_mutation.<locals>.Muti�c�F:�RO2[O!r)�clearr8�
SCM_RIGHTS)r��seqs&�r�	__index__�SGeneralModuleTests.test_sendmsg_reentrant_ancillary_mutation.<locals>.Mut.__index__�s����	�	���(�(�(rr)r�r�r�r�r�r�r��r�r�s@�r�Mutr��s����
)�
)rr�sxxxxr�)	r8r�r�r�r�rDror=r�)r�r��left�rightr�s&   @r�)test_sendmsg_reentrant_ancillary_mutation�<GeneralModuleTests.test_sendmsg_reentrant_ancillary_mutation�s����	)�	)��
�
���w�/�
�
�
�� 1� 1�7�;�
��
�'�'�)�������
�
�#�������$����'�4�<�<�$���=rr)lr�r�r�r�r#�
skipUnlessrJrMrRr]rdrkrsr}r�r�r�r/r��skipIfr�is_wasir�r�rprr�r�r�r�r�r7r8r��skip_android_selinuxr�r�r�rrrr"r9rBrJr[rlrur{r�r�r�r�r�r�r�r�r�r�r��
thread_unsafe�run_with_localesr�r�r�r��is_resource_enabledr�r�r�rr
rrrr$r)r2r8rr<r@rFrIrrOrSr[r^rargrvr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�s@rrCrC�s����
�����,�.C�D�#�E�#�
�+������,�.C�D�
,�E�
,�3�"�(6�T� �������D��*<�=��>���_�_�W�_�_�&E�F�
>�G�
>��������1�3H�I�
����3�3�5R�S�,�T�J�,�6v�&?�+�"������7�9Z�[�
������7�9Z�[�&�\�\�&�$������8�?�A��!�!�.�1�*�2�A�*������)9�:�A�C��!�!�"2�3�5�4�C�5�(�����)9�:�A�C��!�!�"2�3�?�4�C�?������m�4�7�9�B�9�B��:�>�0.F�`!G�F������5�8�:�I�:�I�������5�8�:� �:� �>������5�8�:�=1�:�=1�~������5�8�:�M�:�M�0������5�8�:�#�:�#�F(�:>�A� M�D7�
=�,��(������D��*<�=�	:�>�	:�������D��*<�=�
�����)A�B�L�N�S�N�>�S�P�d�����)9�:�6�8����9�:����h�����g���(9��=�
�	�
��;�8���_�_�Y�$�&�(<�=�.B�>�.B�`Q�����4�4�Y�?�1�3�
I�3�
I��>.�-�!�"G�	7�� 8�,�	7��
���
�_�_�Y�$�&�(<�=�P�>��P�����3�3�5S�T�U�U�U�����3�3�5S�T�I�U�I�A�����3�3�5S�T�
�_�_�S�\�\�W�,�.H�I�
�_�_�S�;�<�
������8�:\�]��!�!�.�1�
O�2�^�=�J�U�

O�����3�3�5S�T�
��������8�:�O�:�U�O�����3�3�5S�T�
�_�_�S�\�\�W�,�.H�I�
�_�_�S�;�<�
������8�:\�]��!�!�.�1�W�2�^�=�J�U�
W�����3�3�5S�T�
���#�,�,�'�1�8�:�U�:�U�U�=�9� ,�2�����Z�0�2L�M�8�N�8�"*�A�@K�L�I��_�_�R�W�W��_�&A�B�J�C�J�F�
A�K�E�?�G��������	�:�;R�S�>�T�>rrCz!SocketCan required for this test.c�:`�\sQsQsnQs\O\\Q2Q2Q2s	Qs
\O\\Q2Q2Q2sQsQ	s
\O\\Q
2Q2Q2s\O\\Q
2Q2Q2sQsUsP!)�BasicCANTesti�c�h�[O[O[OP!r)r8�AF_CANrArCr�s&rr��!BasicCANTest.testCrucialConstants�s���
�
��
�
���r�CAN_BCM�&socket.CAN_BCM required for this test.c��[O[O[O[O[O
[O[O[O[O[O[O[O[O[O[O[O [O"[O$[O&[O([O*[O,[O.[O0P!r)r8r��CAN_BCM_TX_SETUP�CAN_BCM_TX_DELETE�CAN_BCM_TX_READ�CAN_BCM_TX_SEND�CAN_BCM_RX_SETUP�CAN_BCM_RX_DELETE�CAN_BCM_RX_READ�CAN_BCM_TX_STATUS�CAN_BCM_TX_EXPIRED�CAN_BCM_RX_STATUS�CAN_BCM_RX_TIMEOUT�CAN_BCM_RX_CHANGED�CAN_BCM_SETTIMER�CAN_BCM_STARTTIMER�CAN_BCM_TX_COUNTEVT�CAN_BCM_TX_ANNOUNCE�CAN_BCM_TX_CP_CAN_ID�CAN_BCM_RX_FILTER_ID�CAN_BCM_RX_CHECK_DLC�CAN_BCM_RX_NO_AUTOTIMER�CAN_BCM_RX_ANNOUNCE_RESUME�CAN_BCM_TX_RESET_MULTI_IDX�CAN_BCM_RX_RTR_FRAMEr�s&r�testBCMConstants�BasicCANTest.testBCMConstants	s���	���	���� � ����������� � ����� � ��!�!�� � ��!�!��!�!�	����!�!��"�"��"�"��#�#��#�#��#�#��&�&��)�)��)�)��#�#rc���[O[O[O[O29^tt^2oPPP2P!)%fhP!9hr�r8rArBrCr\s& r�testCreateSocket�BasicCANTest.testCreateSocket 	�6��
�]�]�6�=�=�&�/�/�6�>�>�
J�
J�a��K�
J�
J�
J���A�A)	�!A)	c���[O[O[O[O29^tt^2oPPP2P!)%fhP!9hr)r8rArKr�r\s& r�testCreateBCMSocket� BasicCANTest.testCreateBCMSocket$	s;���]�]�6�=�=�&�*;�*;�V�^�^�
L�
L�PQ��M�
L�
L�
L�rc�<�[O[O[O[O29^tt^2oQoUO	U2UOUO
2U2PPP2P!)%fhP!9h)rv�rv)r8rArBrCr�rorG)r�rG�addresss&  r�testBindAny�BasicCANTest.testBindAny*	sY��
�]�]�6�=�=�&�/�/�6�>�>�
J�
J�a��G�
�F�F�7�O����Q�]�]�_�g�6�K�
J�
J�
J�s�4B
�
B	�B	c��[O[O[O[O29^tt^2oUO	[
QUOQ2PPP2P!)%fhP!9h)�interface name too long)�xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r8rArBrCrKr=r�r\s& r�testTooLongInterfaceName�%BasicCANTest.testTooLongInterfaceName0	sO��
�]�]�6�=�=�&�/�/�6�>�>�
J�
J�a��"�"�7�,E�#$�6�6�=�
:�K�
J�
J�
J�s�#A9�9B
	�B
	�CAN_RAW_LOOPBACKz/socket.CAN_RAW_LOOPBACK required for this test.c���[O[O[O[O29^tt^2oQFDpoUO	[O
[OU2UOUUO[O
[O22Jr	PPP2P!)%fhP!9h)r)rr�)	r8rArBrCr��SOL_CAN_RAWr%ror�)r�rG�loopbacks&  r�testLoopback�BasicCANTest.testLoopback6	s����]�]�6�=�=�&�/�/�6�>�>�
J�
J�a�"�����V�/�/��1H�1H�%�'�� � ���L�L��!3�!3�V�5L�5L�M�O�#�K�
J�
J�
J�s�A8C�C	�C	�CAN_RAW_FILTERz-socket.CAN_RAW_FILTER required for this test.c
�V�QQq![OQV2o[O[O[O[O
29^tt^2oUO
[O[OU2UOUUO[O[O]22UO
[O[O[U22PPP2P!)%fhP!9h)�iz=II)r;�packr8rArBrCr�r'r+ror�rt)r��can_id�can_mask�
can_filterrGs&    r�
testFilter�BasicCANTest.testFilter@	s���!�%���[�[���9�
�
�]�]�6�=�=�&�/�/�6�>�>�
J�
J�a�
�L�L��+�+�V�-B�-B�J�O����Z��L�L��!3�!3�V�5J�5J�A�N�
P�
�L�L��+�+�V�-B�-B�I�j�DY�Z�	K�
J�
J�
J�s�&B'D�D(	� D(	r)r�r�r�r�r�r#r�r7r8rrrrr#r)r2r�r�r�s@rr�r��s������
������3�A�C�$�C�$�<�������3�A�C��C��7�:������);�<�J�L�O�L�O������)9�:�H�J�[�J�[rr�c��`�\sQsQsnQQks\Q2s\Q2sQsQs	Qs
QsQ	sQ
s
\O\\Q2Q2Q
2s\O\\Q2Q2Q2sQsUsP!)�CANTestiL	c�4�[OVQ5P!r)r7r�rs&&rr��CANTest.__init__O	r�rc��[U2oUO]Q2o[OUOVU2!)zBuild a CAN frame.rF)r��ljustr;r.r�)�clsr/�data�can_dlcs&&& r�build_can_frame�CANTest.build_can_frameR	s6���d�)���z�z�!�W�%���{�{�3�,�,�f�t�D�Drc�Z�[OUOU2vq#oV#UPU1!)zDissect a CAN frame.)r;r<r�)r:�framer/r<r;s&&   r�dissect_can_frame�CANTest.dissect_can_frameY	s0��!'�
�
�c�.?�.?�� G������h�w��0�0rc���UOOUO2vqUOUOU2UOU]*UO
2P!rE)rGr�r�ro�cfr��r�rDr�s&  r�
testSendFrame�CANTest.testSendFrame_	sF���6�6�?�?�4�<�<�0���������"�%�����a��$�.�.�1rc��UO]Q2UmUOOUO2P!)rs�r=rDrrvr�s&r�_testSendFrame�CANTest._testSendFramed	s+���&�&�t�-D�E������
�
�d�g�g�rc��UOOUO2vqUOUOU2P!r)rGr�r�rorDrEs&  r�testSendMaxFrame�CANTest.testSendMaxFrameh	s.���6�6�?�?�4�<�<�0���������"�%rc��UO]Q2UmUOOUO2P!)rsrIr�s&r�_testSendMaxFrame�CANTest._testSendMaxFramel	s*���&�&�t�[�9������
�
�d�g�g�rc��UOOUO2vqUOUOU2UOOUO2vqUOUO
U2P!r)rGr�r�ro�cf1�cf2rEs&  r�testSendMultiFrames�CANTest.testSendMultiFramesp	sZ���6�6�?�?�4�<�<�0���������2�&��6�6�?�?�4�<�<�0���������2�&rc��UO]Q2UmUOOUO2UO]Q2UmUOOUO2P!)�sD3"s�"3)r=rSrrvrTr�s&r�_testSendMultiFrames�CANTest._testSendMultiFramesw	sS���'�'��.A�B������
�
�d�h�h���'�'��o�>������
�
�d�h�h�rr�r�c�&�UOOUO2vqUOUOU2UOU2vq4oUOUOU2UOUOU2P!r)rr�r�rorDrAr/r;)r�rDr�r/r<r;s&     r�_testBCM�CANTest._testBCM~	so���8�8�$�$�T�\�\�2���������"�%� $� 6� 6�r� :����������f�-�������D�)rc���[O[O[O[O2oUO	UO
2UO
UO12QUm[,QN2Um
UOUOUO2Um[Oo]o]o]9o9o9qxQo	]o
[UO2]6XfPg[O UO"UUUUUUUU	U
2
oV�O*oUO%U2o
UO'U
[U22P!)�#�")����)r8rArKr�r�rDrgr�r/�bytesr;r=rDr�r�r;r.r�rvro)r��bcm�opcoder�r�
ival1_seconds�
ival1_usec�
ival2_seconds�
ival2_usec�
bcm_can_id�nframes�header�header_plus_frame�
bytes_sents&             r�testBCM�CANTest.testBCM�	s#���m�m�F�M�M�6�+<�+<�f�n�n�M������	�	�"����T�^�^�%�&�����,�-��	��&�&�t�{�{�D�I�I�>����'�'������BC�C�
�C�
�C�]��
����4�7�7�|�r�!�!�!����T�1�1����!��!����
��#�W�W�,���X�X�/�0�
�����S�):�%;�<r)r/rDrSrTr;r!)r�r�r�r�r��classmethodr=rArFrJrMrPrUrYr#r�r7r8r\rpr�r�r�s@rr5r5L	s�����D��E��E��1��1�
2�
�&��'� �������3�A�C�*�C�*�������3�A�C�=�C�=rr5z!CAN ISOTP required for this test.c��``�\sQsQsnU1QksQs\O\\	Q2Q2Q2s
Qs\O\\	Q2Q	2Q
2sQs
QsQ
sUsU9s!)�	ISOTPTesti�	c�::�[RU_U-U@QUmP!�r��r�r�r�r�s&*,�rr��ISOTPTest.__init__�	����
���$�)�&�)� ��rc��[O[O[O[OP!r)r8r�rArLrKr�s&rr��ISOTPTest.testCrucialConstants�	s"���
�
��
�
������r�
SOL_CAN_ISOTPzmissing <linux/can/isotp.h>c��[O[O[O[O[O
[O[O[O[O[O[O[O[O[O[O[O [O"[O$[O&[O([O*[O,[O&[O.[O0[O2[O4[O6P!r)r8r|�CAN_ISOTP_OPTS�CAN_ISOTP_RECV_FC�CAN_ISOTP_TX_STMIN�CAN_ISOTP_RX_STMIN�CAN_ISOTP_LL_OPTS�CAN_ISOTP_LISTEN_MODE�CAN_ISOTP_EXTEND_ADDR�CAN_ISOTP_TX_PADDING�CAN_ISOTP_RX_PADDING�CAN_ISOTP_CHK_PAD_LEN�CAN_ISOTP_CHK_PAD_DATA�CAN_ISOTP_HALF_DUPLEX�CAN_ISOTP_FORCE_TXSTMIN�CAN_ISOTP_FORCE_RXSTMIN�CAN_ISOTP_RX_EXT_ADDR�CAN_ISOTP_WAIT_TX_DONE�CAN_ISOTP_DEFAULT_FLAGS�CAN_ISOTP_DEFAULT_EXT_ADDRESS�CAN_ISOTP_DEFAULT_PAD_CONTENT�CAN_ISOTP_DEFAULT_FRAME_TXTIME�CAN_ISOTP_DEFAULT_RECV_BS�CAN_ISOTP_DEFAULT_RECV_STMIN�CAN_ISOTP_DEFAULT_RECV_WFTMAX�CAN_ISOTP_DEFAULT_LL_MTU�CAN_ISOTP_DEFAULT_LL_TX_DL�CAN_ISOTP_DEFAULT_LL_TX_FLAGSr�s&r�	testISOTP�ISOTPTest.testISOTP�	s��	������� � ��!�!��!�!�� � ��$�$��$�$��#�#��#�#��$�$��%�%��$�$��&�&��&�&��$�$��%�%�	�&�&��,�,��,�,��-�-��(�(��,�,��+�+��,�,��'�'��)�)��,�,rc���[O[O[O[O29^tt^2oPPP2P!)%fhP!9hrrr\s& rr�ISOTPTest.testCreateSocket�	rrrLz(socket.CAN_ISOTP required for this test.c���[O[O[O[O29^tt^2oPPP2P!)%fhP!9hr)r8rArKrLr\s& r�testCreateISOTPSocket�ISOTPTest.testCreateISOTPSocket�	�=���]�]�6�=�=�&�*;�*;�V�=M�=M�
N�
N�RS��O�
N�
N�
N�rc	�l�[O[O[O[O29^tt^2oUO	[
Q29^tt^2UO
Q2PPP2PPP2P!)%fhK9h)%fhP!9h)r!)r"r�r
)r8rArKrLrKr=r�r\s& rr#�"ISOTPTest.testTooLongInterfaceName�	sl��
�]�]�6�=�=�&�*;�*;�V�=M�=M�
N�
N�RS��'�'��1J�K�K����)�*�L�O�
N�K�K��O�
N�
N�s0�B"�+B	�=B"�B
�B
�B"�"B3	�+B3	c��[O[O[O[O29^tt^2oUOQQ1oUOU2UO
UO2U2PPP2P!)%fhP!9h[cNoSO[O6Xc)SOQSO*2Po=P!gPo=hh9h)r_iVr�)r8rArKrLr�r�rorGr=rt�ENODEVr��r�rGr�rs&   r�testBind�ISOTPTest.testBind�	s���
	����v�}�}�f�.?�.?��AQ�AQ�R�R�VW��~�~�u�e�3�����t��� � �����$�7�S�R�R�R���	��w�w�%�,�,�&��
�
�E��>�>�*�+�+���	�sO�A
B,�
AB�B,�B)	�!B)	�#B,�)B,�,	D�6D�7C?�"C?�>C?�?D�r�)r�r�r�r�r�r�r#r�r7r8r�rr�r#r�r�r�r�r�s@@rrtrt�	s|����!��������9�6�8�#-�8�#-�J�������5�C�E��E��+��rrtz!CAN J1939 required for this test.c�``�\sQsQsnU1Qks\O\\Q2Q2Q2s	\O\\Q2Q2Q2s
QsQsUs
U9s!)	�	J1939Testi�	c�::�[RU_U-U@QUmP!rvrwr�s&*,�rr��J1939Test.__init__�	ryrrPz(socket.CAN_J1939 required for this test.c��[O[O[O[O[O
[O[O[O[O[O[O[O[O[O[O[O [O"[O$[O&[O([O*[O,[O.[O0P!r)r8rP�J1939_MAX_UNICAST_ADDR�J1939_IDLE_ADDR�
J1939_NO_ADDR�
J1939_NO_NAME�J1939_PGN_REQUEST�J1939_PGN_ADDRESS_CLAIMED�J1939_PGN_ADDRESS_COMMANDED�J1939_PGN_PDU1_MAX�
J1939_PGN_MAX�J1939_NO_PGN�SO_J1939_FILTER�SO_J1939_PROMISC�SO_J1939_SEND_PRIO�SO_J1939_ERRQUEUE�SCM_J1939_DEST_ADDR�SCM_J1939_DEST_NAME�SCM_J1939_PRIO�SCM_J1939_ERRQUEUE�
J1939_NLA_PAD�J1939_NLA_BYTES_ACKED�J1939_EE_INFO_NONE�J1939_EE_INFO_TX_ABORT�J1939_FILTER_MAXr�s&r�testJ1939Constants�J1939Test.testJ1939Constants
s���	����%�%����������� � ��(�(��*�*��!�!�������	�������!�!�� � ��"�"��"�"�����!�!�����$�$��!�!��%�%���rc���[O[O[O[O29^tt^2oPPP2P!)%fhP!9hr)r8rArKrPr\s& r�testCreateJ1939Socket�J1939Test.testCreateJ1939Socket#
r�rc�d�[O[O[O[O29^tt^2oUO[O
[O[O1oUOU2UOUO2U2PPP2P!)%fhP!9h[cNoSO[O6Xc)SOQSO*2Po=P!gPo=hh9h)Nr�)r8rArKrPr�r�r�r�r�rorGr=rtr�r�r�s&   rr��J1939Test.testBind)
s���
	����v�}�}�f�.?�.?��AQ�AQ�R�R�VW��~�~�v�';�';�V�=P�=P�RX�Rf�Rf�f�����t��� � �����$�7�S�R�R�R���	��w�w�%�,�,�&��
�
�E��>�>�*�+�+���	�sO�A
C�
A,C�9C�C	�C	�C�C�	D/�!D/�"D*�"D*�)D*�*D/r�)r�r�r�r�r�r#r�r7r8r�r�r�r�r�r�r�s@@rr�r��	so����!�������5�C�E� �E� �B������5�C�E��E���rr�z#RDS sockets required for this test.c�4`�\sQsQsnQsQsQsQsUsP!)�BasicRDSTesti7
c�H�[O[OP!r)r8�AF_RDSrSr�s&rr��!BasicRDSTest.testCrucialConstants:
s���
�
��
�
rc��[O[O[O]29^tt^2oPPP2P!)%fhP!9hrE)r8rSrTr\s& rr�BasicRDSTest.testCreateSocket>
s4��
�]�]�6�=�=�&�*?�*?��
C�
C�q��D�
C�
C�
C�s�A
�
A	�A	c�z�Qo[O[O[O]29^tt^2oUO[O[O
U2UO[O[OU2PPP2P!)%fhP!9h)i@)r8rSrTr�r��	SO_RCVBUF�	SO_SNDBUF)r�r�rGs&  r�testSocketBufferSize�!BasicRDSTest.testSocketBufferSizeB
sn����
�]�]�6�=�=�&�*?�*?��
C�
C�q�
�L�L��*�*�F�,<�,<�g�F�
�L�L��*�*�F�,<�,<�g�F�D�
C�
C�
C�s�AB)�)B:	�2B:	r)	r�r�r�r�r�rr�r�r�r�s@rr�r�7
s������G�Grr�c��``�\sQsQsnQQksU1QksQsQsQsQs	\
\OQ2Q	2s\
\OQ
2Q2s
QsQ
sQsQsQsUsU9s!)�RDSTestiI
c�4�[OVQ5P!r)r@r�rs&&rr��RDSTest.__init__L
r�rc�Z:�[RU_2[O2UmP!r)r�r�r�r��evtr�s&�rr��
RDSTest.setUpO
s���
��
���?�?�$��rc���UOOUO2vqUOUOU2UOUO
U2P!r)r�r�r�ror;rH�r�r;r�s&  r�testSendAndRecv�RDSTest.testSendAndRecvS
sD���Y�Y�'�'����5�
��������D�)��������-rc��QUmUOOUO][UO12P!�r��r;rryrFr�r�s&r�_testSendAndRecv�RDSTest._testSendAndRecvX
�*����	�������	�	�1�t�T�Y�Y�&7�8rc�2�UOOUO[O2vqUOUOU2UOOUO2vqUOUOU2P!r)r�r�r�r8�MSG_PEEKror;r�s&  r�testPeek�RDSTest.testPeek\
sd���Y�Y�'�'����f�o�o�F�
��������D�)��Y�Y�'�'����5�
��������D�)rc��QUmUOOUO][UO12P!r�r�r�s&r�	_testPeek�RDSTest._testPeekb
r�r�recvmsgc��UOOUO2vqq4UOUOU2P!r)r�r�r�ror;)r�r;�ancdata�	msg_flagsr�s&    r�testSendAndRecvMsg�RDSTest.testSendAndRecvMsgf
s3��)-���):�):�4�<�<�)H�&��y�������D�)rr�c��QUmUOOUO,Q][UO12P!)shello s<hello hello hello hello hello hello hello hello hello hello r)r;rr�rFr�r�s&r�_testSendAndRecvMsg�RDSTest._testSendAndRecvMsgk
s0��"��	������$�)�)��b�!�d�D�I�I�->�?rc��UOOUO2vqUOUOU2UOOUO2vqUOUO
U2P!r)r�r�r�ro�data1�data2r�s&  r�testSendAndRecvMulti�RDSTest.testSendAndRecvMultip
s^���Y�Y�'�'����5�
��������T�*��Y�Y�'�'����5�
��������T�*rc��QUmUOOUO][UO12QUmUOOUO
][UO12P!)sbaconsegg)r�rryrFr�r�r�s&r�_testSendAndRecvMulti�RDSTest._testSendAndRecvMultiw
sR����
�������
�
�A��d�i�i�'8�9���
�������
�
�A��d�i�i�'8�9rc��[OUO,,,Q2vqoUOUOU2UOOUO2vqEUOUOU2P!)g@)�selectr�rYr�r�ror;)r�r>r!r�r;r�s&     r�
testSelect�RDSTest.testSelect~
s`���-�-�����R��S�9���a��
�
�d�i�i��#��Y�Y�'�'����5�
��������D�)rc��QUmUOOUO][UO12P!)sselectr�r�s&r�_testSelect�RDSTest._testSelect�
s*����	�������	�	�1�t�T�Y�Y�&7�8r)r;r�r�r�r!)r�r�r�r�r�r�r�r�r�r�r6r8r�r�r�r�rrr�r�r�r�s@@rr�r�I
s}����D�%�.�
9�*�9��&�-�-��+�*�,�*��&�-�-��+�@�,�@�+�:�*�9�9rr�z'QIPCRTR sockets required for this test.c�F`�\sQsQsnQsQsQsQsQsQs	Qs
UsP!)	�BasicQIPCRTRTesti�
c�(�[OP!r)r8r\r�s&rr��%BasicQIPCRTRTest.testCrucialConstants�
s����rc��[O[O[O29^tt^2oPPP2P!)%fhP!9hr)r8r\rKr\s& rr�!BasicQIPCRTRTest.testCreateSocket�
s4��
�]�]�6�,�,�f�.?�.?�
@�
@�A��A�
@�
@�
@���A	�	A	�A	c��[O[O[O29^tt^2oUOUO	2]*]2PPP2P!)%fhP!9hr�)r8r\rKrorGr\s& r�testUnbound�BasicQIPCRTRTest.testUnbound�
sL��
�]�]�6�,�,�f�.?�.?�
@�
@�A����Q�]�]�_�Q�/��3�A�
@�
@�
@���(A/�/B	�8B	c�^�[O[O[O29^tt^2o[OVO2]*Q5UO
UO2]*]2PPP2P!)%fhP!9h)rr�)r8r\rKrr�rG�assertNotEqualr\s& r�testBindSock�BasicQIPCRTRTest.testBindSock�
se��
�]�]�6�,�,�f�.?�.?�
@�
@�A��#�#�A�M�M�O�A�,>�?�����
�
��� 2�A�6�A�
@�
@�
@�s�AB�B,	�$B,	c	��[O[O[O29^tt^2oUO[[
OUQQ5PPP2P!)%fhP!9h)r
r�r)r8r\rKror=rr�r\s& r�testInvalidBindSock�$BasicQIPCRTRTest.testInvalidBindSock�
sN��
�]�]�6�,�,�f�.?�.?�
@�
@�A����g�}�'>�'>����K�A�
@�
@�
@�rc�(�[O[O[O29^tt^2oUOQ2UO	UO2]*]2PPP2P!)%fhP!9h)�{)rr)r8r\rKrgrrGr\s& r�testAutoBindSock�!BasicQIPCRTRTest.testAutoBindSock�
sX��
�]�]�6�,�,�f�.?�.?�
@�
@�A�
�I�I�j�!�����
�
��� 2�A�6�A�
@�
@�
@�s�9B�B	�	B	r)r�r�r�r�r�rrrrrr�r�r�s@rrr�
s)������4�7�
L�7�7rrc�:`�\sQsQsnQsQsQsQsQsUs	P!)�BasicVSOCKTesti�
c�(�[OP!r)r8rWr�s&rr��#BasicVSOCKTest.testCrucialConstants�
s	����rc�(�[O[O[O[O[O
[O[O[O[OP!r)
r8�SO_VM_SOCKETS_BUFFER_SIZE�SO_VM_SOCKETS_BUFFER_MIN_SIZE�SO_VM_SOCKETS_BUFFER_MAX_SIZErX�VMADDR_PORT_ANYrYrN�VM_SOCKETS_INVALID_VERSIONr3r�s&r�testVSOCKConstants�!BasicVSOCKTest.testVSOCKConstants�
sS���(�(��,�,��,�,��������������)�)��-�-rc��[O[O[O29^tt^2oPPP2P!)%fhP!9hr)r8rWrcr\s& rr�BasicVSOCKTest.testCreateSocket�
s2��
�]�]�6�?�?�F�,>�,>�
?�
?�1��@�
?�
?�
?�r
c	��[O[O[O29^tt^2oUO[O[O2oUO[O[O
2oUO[O[O2oUO[O[OU]*2UO[O[O
U]*2UO[O[OU]*2UOU]*UO[O[O22UOU]*UO[O[O
22UOU]*UO[O[O22PPP2P!)%fhP!9h�r
)	r8rWrcr�r$r"r#r�ro)r�rG�orig_maxr�orig_mins&    rr��#BasicVSOCKTest.testSocketBufferSize�
s���
�]�]�6�?�?�F�,>�,>�
?�
?�1��|�|�F�O�O�$*�$H�$H�J�H��<�<���� &� @� @�B�D��|�|�F�O�O�$*�$H�$H�J�H�
�L�L�����=�=�x�!�|�
M�
�L�L�����9�9�4�!�8�
E�
�L�L�����=�=�x�!�|�
M�
���X��\��\�\�&�/�/�#�A�A�C�
D�
���T�A�X��\�\�&�/�/�#�=�=�?�
@�
���X��\��\�\�&�/�/�#�A�A�C�
D�+@�
?�
?�
?�s�G<I�I	�I	r)
r�r�r�r�r�r'rr�r�r�r�s@rrr�
s ����
�	.��D�Drrrbz)Bluetooth sockets required for this test.c�(`�\sQsQsnQsQsUsP!)�BasicBluetoothTesti�
c���[O[O[O[O[O
[OQ6XcA[O[O[O[O[OQ6wcq[O[O[O[O[O [O"[O$[OQ6XCc�[O&[O([O*[O,[O.[O0[O2[O4[O6[O8[O:[O<[O>[O@[C[Q2%c[OD[C[Q2%c[OF[C[Q2%c![OH[OJ[OL[ON[OP[OQ7cA[OR[OT[OV[OX[OO[Q2%cQ[O\[O^[O`[Ob[Od[OQ6Xc[Of[OO[Q2%c�[Oh[Oj[Ol[On[OP[Op[Or[OtP!P!)	r�r%�BT_PHY�BT_MODE�BT_VOICEr))r%r))r)r+r*)r+r*);r8�
BDADDR_ANY�BDADDR_LOCALrbrd�
SOL_RFCOMMr�rp�SO_BTH_ENCRYPT�
SO_BTH_MTU�SO_BTH_MTU_MAX�SO_BTH_MTU_MIN�BTPROTO_HCI�SOL_HCIrg�	SOL_L2CAP�BTPROTO_SCO�SOL_SCO�HCI_DATA_DIR�
SOL_BLUETOOTH�HCI_DEV_NONE�HCI_CHANNEL_RAW�HCI_CHANNEL_USER�HCI_CHANNEL_MONITOR�HCI_CHANNEL_CONTROL�HCI_CHANNEL_LOGGING�HCI_TIME_STAMP�BT_SECURITY�BT_SECURITY_SDP�BT_FLUSHABLE�BT_POWER�BT_CHANNEL_POLICY�BT_CHANNEL_POLICY_BREDR_ONLYr7�BT_PHY_BR_1M_1SLOT�
BT_MODE_BASIC�BT_VOICE_TRANSPARENT�BT_VOICE_CVSD_16BIT�L2CAP_LM�L2CAP_LM_MASTER�
L2CAP_LM_AUTH�BDADDR_BREDR�BDADDR_LE_PUBLIC�BDADDR_LE_RANDOM�
HCI_FILTERr1�
SO_L2CAP_IMTU�SO_L2CAP_FLUSH�
SO_RFCOMM_MTU�SO_RFCOMM_FC_INFO�
SO_SCO_MTU�SO_SCO_CONNINFO�SO_HCI_EVT_FILTER�SO_HCI_PKT_FILTER�
SO_L2CAP_IQOS�SO_L2CAP_LM�SO_RFCOMM_LM�RFCOMM_LM_AUTH�
SO_SCO_HANDLEr�s&r�testBluetoothConstants�)BasicBluetoothTest.testBluetoothConstants�
s~������������������<�<�7�"��!�!�����!�!��!�!��<�<�7�"�����N�N�� � ��������N�N�����<�<�7�"�� � �����"�"��#�#��&�&��&�&��&�&��!�!�����"�"�����O�O��$�$��/�/��v�x�(�(��)�)��v�y�)�)��$�$��v�z�*�*��+�+��*�*��O�O��"�"�� � ��<�<�/�/�����#�#��#�#�����<�<�"�"�#E�F�F�� � ��!�!�� � ��$�$�����<�<�9�$��"�"��<�<�"�"�#:�;�;��$�$��$�$�� � ����� � �����!�!�� � �<rr)r�r�r�r�rir�r�r�s@rr1r1�
s����H!�H!rr1c��`�\sQsQsnQs\O\OQ6HQ2Q2s	\O\OQ6HQ2Q2s
\O\OQ6HQ2Q	2s\O\
Q
2Q2s\O\
Q
2Q2s\O\
Q
2Q
2s\O\
Q
2Q2sQsQs\O\\Q2Q2Q2s\O\\Q2Q2Q2s\O\\Q2Q2Q2s\O\\Q2Q2Q2sQsUsP!)�
BluetoothTesti%c���[O[O[O[O29^tt^2oPPP2P!)%fhP!9hr)r8rbrcrdr\s& r�testCreateRfcommSocket�$BluetoothTest.testCreateRfcommSocket)s=��
�]�]�6�.�.��0B�0B�F�DY�DY�
Z�
Z�^_��[�
Z�
Z�
Z�rr�z&windows does not support L2CAP socketsc���[O[O[O[O29^tt^2oPPP2P!)%fhP!9hr)r8rbrTrgr\s& r�testCreateL2capSocket�#BluetoothTest.testCreateL2capSocket-s=��
�]�]�6�.�.��0E�0E�v�G[�G[�
\�
\�`a��]�
\�
\�
\�rz$windows does not support HCI socketsc���[O[O[O[O29^tt^2oPPP2P!)%fhP!9hr)r8rbrBr=r\s& r�testCreateHciSocket�!BluetoothTest.testCreateHciSocket2s;��
�]�]�6�.�.�����AS�AS�
T�
T�XY��U�
T�
T�
T�rz$windows does not support SCO socketsc���[O[O[O[O29^tt^2oPPP2P!)%fhP!9hr)r8rbrTr@r\s& r�testCreateScoSocket�!BluetoothTest.testCreateScoSocket7s=��
�]�]�6�.�.��0E�0E�v�GY�GY�
Z�
Z�^_��[�
Z�
Z�
Z�rz.Bluetooth L2CAP sockets required for this testc	��[O[Q2o[O[O[O[O
29^tt^2o]oUO
[O]V112UO2oUOU[O]V112PPP2P!)%fhP!9h)rY�
r�
get_attributer8rbrTrgr�r6rGro)r�rYr�CID_ATTr�s&    r�testBindLeAttL2capSocket�&BluetoothTest.testBindLeAttL2capSocket<s���"�0�0��9K�L��
�]�]�6�.�.��0E�0E�v�G[�G[�
\�
\�`a��G�
�F�F�F�%�%�q�'�D�E��=�=�?�D����T�F�$5�$5�q�'�#T�U�]�
\�
\�
\�s�'AC	�	C	�C	c	��[O[Q2o[O[O[O[O
29^tt^2o]�oUO
[OU]U12UO2oUOU[OU]U12PPP2P!)%fhP!9h)rZrz)r�rZr�psmr�s&    r�testBindLePsmL2capSocket�&BluetoothTest.testBindLePsmL2capSocketFs���"�0�0��9K�L��
�]�]�6�.�.��0E�0E�v�G[�G[�
\�
\�`a��C�
�F�F�F�%�%�s�A�/?�@�A��=�=�?�D����T�F�$5�$5�s�A�?O�#P�Q�]�
\�
\�
\�s�'AC�C	�C	c��[O[O[O[O29^tt^2oQoUO	[O
U12UO
2oUOU[O
U12PPP2P!)%fhP!9h)�)r8rbrTrgr�r6rGro)r�rr�r�s&   r�testBindBrEdrL2capSocket�&BluetoothTest.testBindBrEdrL2capSocketPs|��
�]�]�6�.�.��0E�0E�v�G[�G[�
\�
\�`a��C�
�F�F�F�%�%�s�+�,��=�=�?�D����T�F�$5�$5�s�#;�<�]�
\�
\�
\�s�AB,�,B=	�5B=	c�X�[O[O[O[O29^tt^2oUO	[
29^tt^2UO
[O]]]]12PPP2UO	[
29^tt^2UO
[O12PPP2UO	[
29^tt^2UO
[O2PPP2UO	[
29^tt^2UO
[OO2Q12PPP2UO	[
29^tt^2UO
Q2PPP2PPP2P!)%fhCK29h)%fhK�9h)%fhK�9h)%fhK�9h)%fhKg9h)%fhP!9h)rr�)��r�)	r8rbrTrgror=r�r6�encode)r�rs& r�testBadL2capAddr�BluetoothTest.testBadL2capAddrYsE��
�]�]�6�.�.��0E�0E�v�G[�G[�
\�
\�`a��"�"�7�+�+�����)�)�1�a��A�6�7�,��"�"�7�+�+�����)�)�+�,�,��"�"�7�+�+����v�(�(�)�,��"�"�7�+�+�����)�)�0�0�2�F�;�<�,��"�"�7�+�+����)�*�,�]�
\�+�+�+��+�+��+�+��+�+��+�+��]�
\�
\�s��H�*%F8	�%H�4!G	�%H�: G	�%H�?0G2	�/%H�H	�&H�8G	
�G	
�	H�G
�G
�H�G/
�(G/
�*H�2H
�;H
�=H�H
�H
�H�H)	�!H)	c��[O[O[O[O29^tt^2o]oUO	[O
U12UO2oUOU[OU12UO!U]*Q2[OQ6wc#UOU[O
U12PPP2[O[O[O[O29^tt^2oUO	W2UO2oUOVT2PPP2P![cGo[OQ6Xc,SOQ6XcSO[S22gPo=hh9h)%fhK�9h)%fhP!9h)rr�iB'z"(?i)[0-9a-f]{2}(?::[0-9a-f]{2}){4})r8rbrcrdr�r6r=r�rprkr�r;rGror�ANY�assertRegex)r�rG�channelr?r��addr2s&     r�testBindRfcommSocket�"BluetoothTest.testBindRfcommSocketgs]��
�]�]�6�.�.��0B�0B�F�DY�DY�
Z�
Z�^_��G�
�����)�)�7�3�4�
�=�=�?�D����T�D�H�H�g�#6�7����T�!�W�&K�L��|�|�w�&�� � ���(9�(9�7�'C�D�[��]�]�6�.�.��0B�0B�F�DY�DY�
Z�
Z�^_�
�F�F�4�L��M�M�O�E����U�)�[�
Z���
��<�<�7�*�s�|�|�u�/D��M�M�#�c�(�+���
��	[�
Z��[�
Z�
Z�sa�G�!F�1AG�"G�3G)�	G�G�
G�"G�3G�G�G�G&	�G&	�)G:	�2G:	c	��[O[O[O[O29^tt^2o]oUO	[
29^tt^2UO
[OO2U12PPP2UO	[
29^tt^2UO
[O12PPP2UO	[
29^tt^2UO
[OU]12PPP2UO	[
29^tt^2UO
[OQ*U12PPP2UO	[
29^tt^2UO
Q2PPP2UO	[
29^tt^2UO
QU12PPP2PPP2P!)%fhCKg9h)%fhCK59h)%fhCK9h)%fhK�9h)%fhK�9h)%fhK|9h)%fhP!9h)r�r��invalid)	r8rbrcrdror=r�r6r�)r�rGr�s&  r�testBadRfcommAddr�BluetoothTest.testBadRfcommAddrzs���
�]�]�6�.�.��0B�0B�F�DY�DY�
Z�
Z�^_��G��"�"�7�+�+�����)�)�0�0�2�G�<�=�,��"�"�7�+�+�����)�)�+�,�,��"�"�7�+�+�����)�)�7�A�6�7�,��"�"�7�+�+�����)�)�D�0�'�:�;�,��"�"�7�+�+����x� �,��"�"�7�+�+����	�7�+�,�,�[�
Z�+�+�+��+�+�+��+�+�+��+�+��+�+��+�+��[�
Z�
Z�s�� I/�,0G:	�%I/�!H	�"%I/�#H"	�*%I/�)H6	�8%I/�I		�/%I/�I	�(I/�:H
�H
�	I/�H
�H
�	I/�"H3
�+H3
�-	I/�6I
�?I
�I/�	I
�I
�I/�I,
�%I,
�'I/�/J	�8J	r=z,Bluetooth HCI sockets required for this testc
�	�[OOQ2%c�[O[O[O
[O29^tt^2oUO[O2UO2oUOU[O2PPP2P!]o[O[O[O
[O29^tt^2oUOU12UO2oUOV#2PPP2UO#Q29^tt^2[O[O[O
[O29^tt^2oUOU2UO2oUOV#2PPP2PPP2UO#Q29^tt^2[O[O[O
[O29^tt^2o[O$oUOV512UO2oUOV#2PPP2PPP2UO#Q29^tt^2[O[O[O
[O29^tt^2o[O&oUOV512UO2oUOV#U12PPP2PPP2P!)%fhP!9h[cPoSO[O[O17cSO[!S22gPo=hh9h)%fhCK�9h)%fhCK9h)%fhCK9h)%fhCK�9h)%fhCK�9h[c_oSO[O([O*[O,17cSO[!S22gPo=hh9h)%fhCK\9h)%fhP!9h)r+�integerzchannel=HCI_CHANNEL_RAWzchannel=HCI_CHANNEL_USER�r+r*r))r�rpr1r8rbrBr=r�r6rGror=rt�EINVALr�r�r;r#rErFr��EBUSY�ERFKILL)r�rGr��devr?r�s&     r�testBindHciSocket�BluetoothTest.testBindHciSocket�s���<�<�"�"�#E�F�F����v�2�2�F�O�O�V�EW�EW�X�X�\]����v�(�(�)��}�}���� � ��v�'8�'8�9�Y�X�
�C����v�2�2�F�O�O�V�EW�EW�X�X�\]���F�F�C�6�N�
�}�}���� � ��+�Y��,�,�y�)�)��-�-�� 3� 3�V�_�_�f�FX�FX�Y�Y�]^����s���}�}���� � ��+�Z�*��,�,�8�9�9��-�-�� 3� 3�V�_�_�f�FX�FX�Y�Y�]^� �0�0������~�&��}�}���� � ��+�	Z�:��,�,�9�:�:��-�-�� 3� 3�V�_�_�f�FX�FX�Y�Y�]^� �1�1����F�F�C�>�*��}�}���� � ��W�~�6�Z�;�:�;Y�X�X�����y�y�U�\�\�5�<�<�$@�@��
�
�c�#�h�/�����Y�X�X��Z�Y�Y��*�)�)��Z�Y�Y��:�9�9�����y�y�U�[�[�%�+�+�u�}�}�$M�M��
�
�c�#�h�/���	��	Z�Y�Y��;�:�:�s�1AM0�O!�N�+!O!�-AP	�83O5	�+P	�AP1�AP	�#P1�AS�R1	�)Q�;#R1	�S�0N	�9N	�	O�O�.O�>O�O�O!�!O2	�*O2	�5P
�>P
�	P	�	P	�P	�P.
�&P.
�(	P1�1Q	�:Q	�	R.�R.�=R)�R)�)R.�.R1	�1S
�:S
�<	S�S	�S	c
���[O[O[O[O29^tt^2o[O
O
Q2%Cc�UO[29^tt^2UO[OO22PPP2UO[29^tt^2UO[O12PPP2UO[29^tt^2UO[OQ*2PPP2UO[[129^tt^2UO[OQ*2PPP2UO[29^tt^2UOQ2PPP2UO[29^tt^2UOQ2PPP2UO[29^tt^2UOQ2PPP2CL]oUO[29^tt^2UOQ2PPP2UO[29^tt^2UOU[O]]12PPP2UO[29^tt^2UO[O2PPP2UO[29^tt^2UO[OO22PPP2PPP2P!)%fhCK�9h)%fhCK�9h)%fhCKV9h)%fhCK9h)%fhCK�9h)%fhCK�9h)%fhK�9h)%fhCK�9h)%fhCKR9h)%fhCK!9h)%fhK�9h)%fhP!9h)r+r�r�r��invalidr�zd                                                                                                    r)r8rbrBr=r�rpr1ror=r�r6r�r�rE)r�rGr�s&  r�testBadHciAddr�BluetoothTest.testBadHciAddr�s���
�]�]�6�.�.�����AS�AS�
T�
T�XY��|�|�&�&�'I�J�J��&�&�w�/�/��F�F�6�,�,�3�3�5�6�0��&�&�w�/�/��F�F�F�-�-�/�0�0��&�&�w�/�/��F�F�6�,�,�t�3�4�0��&�&�
�G�'<�=�=��F�F�6�,�,�w�6�7�>��&�&�w�/�/��F�F�8�$�0��&�&�w�/�/��F�F�9�%�0��&�&�w�/�/��F�F�:�&�0�/����&�&�w�/�/��F�F�2�J�0��&�&�w�/�/��F�F�C��!7�!7��A�>�?�0��&�&�w�/�/��F�F�6�,�,�-�0��&�&�w�/�/��F�F�6�,�,�3�3�5�6�0�1U�
T�/�/�/��/�/�/��/�/�/��=�=�=��/�/�/��/�/�/��/�/��0�/�/��/�/�/��/�/�/��/�/��1U�
T�
T�sb�&Q�3Q�.M5	�>%Q�#!N		�%Q�)'N	�+Q�;'N1	�"%Q�O	�%Q�>O	�%Q�5O-	�)Q�0P	�%Q�'$P	�%Q�0 P(	�%Q�5.P<	�#Q�5N
�>N
�	Q�	N
�N
�	Q�N.
�&N.
�(	Q�1O
�:O
�<	Q�O
�O
�	Q�O*
�"O*
�$	Q�-O=
�6O=
�8Q�P
�	P
�	Q�P%
�P%
�	Q�(P9
�1P9
�3	Q�<Q
�Q
�Q�Q 	�Q 	r@z,Bluetooth SCO sockets required for this testc��[O[O[O[O29^tt^2oUO	[O
2UO
2oUOU[O
2PPP2[O[O[O[O29^tt^2oUO	[O
O22UO
2oUOU[O
2PPP2P!)%fhK�9h)%fhP!9hr)	r8rbrTr@r�r6rGror�)r�rGr�s&  r�testBindScoSocket�BluetoothTest.testBindScoSocket�s���
�]�]�6�.�.��0E�0E�v�GY�GY�
Z�
Z�^_�
�F�F�6�$�$�%��=�=�?�D����T�6�#4�#4�5�[�
�]�]�6�.�.��0E�0E�v�GY�GY�
Z�
Z�^_�
�F�F�6�$�$�+�+�-�.��=�=�?�D����T�6�#4�#4�5�[�
Z�[�
Z��
[�
Z�
Z�s&�AE�.AE)�E&	�E&	�)E:	�2E:	c	��[O[O[O[O29^tt^2oUO	[
29^tt^2UO
[O12PPP2UO	[
29^tt^2UO
[OO212PPP2UO	[29^tt^2UO
[OQ*2PPP2UO	[29^tt^2UO
[OO2Q*2PPP2UO	[29^tt^2UO
Q2PPP2UO	[
29^tt^2UO
Q2PPP2UO	[
29^tt^2UO
Q2PPP2PPP2P!)%fhCK�9h)%fhCKz9h)%fhCKB9h)%fhK�9h)%fhK�9h)%fhK�9h)%fhK�9h)%fhP!9h)Nr�rFr�r�r�)r8rbrTr@ror=r�r6r�r�r�r\s& r�testBadScoAddr�BluetoothTest.testBadScoAddr�s���
�]�]�6�.�.��0E�0E�v�GY�GY�
Z�
Z�^_��"�"�7�+�+�����)�)�+�,�,��"�"�7�+�+�����)�)�0�0�2�4�5�,��"�"�:�.�.����v�(�(�4�/�0�/��"�"�:�.�.����v�(�(�/�/�1�E�9�:�/��"�"�#5�6�6����x� �7��"�"�7�+�+����y�!�,��"�"�7�+�+����z�"�,�[�
Z�+�+�+��+�+�+��.�.�.��.�.��6�6��+�+��+�+��[�
Z�
Z�s��K�*!H<	�%K�0/I	�%K�'I$	�+%K�5I8	�%K�*J	�<%K�!J	�3%K�J1	�*K�<I

�I

�	K�I!
�I!
�	K�$I5
�-I5
�/	K�8J
�J
�K�J
�J
�K�J.
�'J.
�)K�1K
�:K
�<K�K	�
K	r)r�r�r�r�rnr#r�r�rprqrtrwr��HAVE_SOCKET_BLUETOOTH_L2CAPr}r�r�r�r�r�r7r8r�r�r�r�r�r�r�s@rrlrl%s�������_�_�S�\�\�W�,�.V�W��X���_�_�S�\�\�W�,�.T�U��V���_�_�S�\�\�W�,�.T�U��V�����4�6f�g�V�h�V����4�6f�g�R�h�R����4�6f�g�=�h�=����4�6f�g�+�h�+�*�&-� ������7�9g�h�*7�i�*7�X������7�9g�h�7�i�7�8������7�9g�h�	6�i�	6�������7�9g�h�#�i�#rrlz'Hyper-V sockets required for this test.c�L`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sUsP!)
�BasicHyperVTesti�c�H�[O[O[O[O[O
[O[O[O[O[OP!r)r8�HVSOCKET_CONNECT_TIMEOUT�HVSOCKET_CONNECT_TIMEOUT_MAX�HVSOCKET_CONNECTED_SUSPEND�HVSOCKET_ADDRESS_FLAG_PASSTHRU�HV_GUID_ZERO�HV_GUID_WILDCARD�HV_GUID_BROADCAST�HV_GUID_CHILDREN�HV_GUID_LOOPBACK�HV_GUID_PARENTr�s&r�testHyperVConstants�#BasicHyperVTest.testHyperVConstants�s\���'�'��+�+��)�)��-�-�������� � ���������rc���QoUO[U29^tt^2[O[O[O2PPP2P!)%fhP!9h)z\[WinError 10041\])rKr=r8rjrc)r�rcs& r�-testCreateHyperVSocketWithUnknownProtoFailure�=BasicHyperVTest.testCreateHyperVSocketWithUnknownProtoFailuresC��(��
�
#�
#�G�X�
6�
6��M�M�&�*�*�F�,>�,>�?�7�
6�
6�
6�s�4A � A1	�)A1	c	��Qo[O[O[O[O29^tt^2oUO	[
[OU229^tt^2UO[O2PPP2PPP2P!)%fhK9h)%fhP!9h)z3connect(): AF_HYPERV address must be tuple, not str�
r8rjrcrkrKr�re�escapergr��r�rcrGs&  r�)testCreateHyperVSocketAddrNotTupleFailure�9BasicHyperVTest.testCreateHyperVSocketAddrNotTupleFailures���H��
�]�]�6�+�+�V�-?�-?��AW�AW�
X�
X�\]��'�'�	�2�9�9�X�3F�G�G��	�	�&�-�-�.�H�Y�
X�G�G��Y�
X�
X�s0�3C� B3	�!C�3C
�<C
�>C�C	�C	c	��Qo[O[O[O[O29^tt^2oUO	[
[OU229^tt^2UO[O12PPP2PPP2P!)%fhK9h)%fhP!9h)�9AF_HYPERV address must be a str tuple (vm_id, service_id)r�r�s&  r�0testCreateHyperVSocketAddrNotTupleOf2StrsFailure�@BasicHyperVTest.testCreateHyperVSocketAddrNotTupleOf2StrsFailures���N��
�]�]�6�+�+�V�-?�-?��AW�AW�
X�
X�\]��'�'�	�2�9�9�X�3F�G�G��	�	�6�.�.�0�1�H�Y�
X�G�G��Y�
X�
X�s0�3C�!B4	�"C�4C
�=C
�?C�C	�C	c	��Qo[O[O[O[O29^tt^2oUO	[
[OU229^tt^2UOQ2PPP2PPP2P!)%fhK9h)%fhP!9h)r�)r�r
)	r8rjrcrkrKrr�r�rgr�s&  r�/testCreateHyperVSocketAddrNotTupleOfStrsFailure�?BasicHyperVTest.testCreateHyperVSocketAddrNotTupleOfStrsFailuresz��N��
�]�]�6�+�+�V�-?�-?��AW�AW�
X�
X�\]��'�'�	�2�9�9�X�3F�G�G��	�	�&�!�H�Y�
X�G�G��Y�
X�
X�s0�3B8�B%	�B8�%B5
�.B5
�0B8�8C		�C		c	��Qo[O[O[O[O29^tt^2oUO	[
[OU229^tt^2UOQ[O12PPP2PPP2P!)%fhK9h)%fhP!9h)z=connect(): AF_HYPERV address vm_id is not a valid UUID string�00�
r8rjrcrkrKr�r�r�rgr�r�s&  r�1testCreateHyperVSocketAddrVmIdNotValidUUIDFailure�ABasicHyperVTest.testCreateHyperVSocketAddrVmIdNotValidUUIDFailures���R��
�]�]�6�+�+�V�-?�-?��AW�AW�
X�
X�\]��'�'�
�B�I�I�h�4G�H�H��	�	�4��!4�!4�5�6�I�Y�
X�H�H��Y�
X�
X��0�3C�"B5	�#C�5C
�>C
�C�C	�C	c	��Qo[O[O[O[O29^tt^2oUO	[
[OU229^tt^2UO[OQ12PPP2PPP2P!)%fhK9h)%fhP!9h)zBconnect(): AF_HYPERV address service_id is not a valid UUID stringr�r�r�s&  r�6testCreateHyperVSocketAddrServiceIdNotValidUUIDFailure�FBasicHyperVTest.testCreateHyperVSocketAddrServiceIdNotValidUUIDFailure s���W��
�]�]�6�+�+�V�-?�-?��AW�AW�
X�
X�\]��'�'�
�B�I�I�h�4G�H�H��	�	�6�.�.��5�6�I�Y�
X�H�H��Y�
X�
X�r�r)
r�r�r�r�r�r�r�r�r�r�r�r�r�r�s@rr�r��s.����
�@�
/�2�"�7�7�7rr�c�F`�\sQsQsnQQksQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sQsQsQsQsQsQs\O.\O2\PIQ2Q22s\O.\O2\PIQ2Q22sQsQsQsUs P!)�BasicTCPTesti'c�4�[OVQ5P!r�r|r�rs&&rr��BasicTCPTest.__init__)����$�$�T�$�Arc�j�UOOQ2oUOU[2P!rj)r�rlrorprrs& r�testRecv�BasicTCPTest.testRecv,s&���m�m� � ��&������c�"rc�F�UOO[2P!r�r�rvrpr�s&r�	_testRecv�BasicTCPTest._testRecv1��������C� rc���UOO[[2]*
2oUOOQ2oV*oUO	U[2P!��rk)r�rlr�rpro)r��seg1�seg2rqs&   r�testOverFlowRecv�BasicTCPTest.testOverFlowRecv4sI���}�}�!�!�#�c�(�Q�,�/���}�}�!�!�$�'���k������c�"rc�F�UOO[2P!rr�r�s&r�_testOverFlowRecv�BasicTCPTest._testOverFlowRecv;r�rc�n�UOOQ2vqUOU[2P!rj)r�r�rorp�r�rqr�s&  r�testRecvFrom�BasicTCPTest.testRecvFrom>s(���M�M�*�*�4�0�	������c�"rc�F�UOO[2P!rr�r�s&r�
_testRecvFrom�BasicTCPTest._testRecvFromCr�rc���UOO[[2]*
2vqUOOQ2vq2V*oUO	U[2P!r�)r�r�r�rpro)r�r�r�r�rqs&    r�testOverFlowRecvFrom�!BasicTCPTest.testOverFlowRecvFromFsM���]�]�+�+�C��H�Q�J�7�
���]�]�+�+�D�1�
���k������c�"rc�F�UOO[2P!rr�r�s&r�_testOverFlowRecvFrom�"BasicTCPTest._testOverFlowRecvFromMr�rc��QoUOOQ2oU%fL
V*
oJ/UOUQ2P!)rrk�ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)r�rlro)r�rq�reads&  r�testSendAll�BasicTCPTest.testSendAllPs;������=�=�%�%�d�+�D����K�C�����k�*rc�B�QoUOOU2P!)�fr�)r�r�)r��	big_chunks& r�_testSendAll�BasicTCPTest._testSendAllZs���	������y�)rc�h�UOO2o[OU[O[O
2oUO
UO2UOU[O2UOQ2oUOU[2P!rj)r�rZr8�fromfdrsrcr�rDrQrlrorp)r�rsrvrqs&   r�
testFromFd�BasicTCPTest.testFromFd^sq��
�]�]�
!�
!�
#���}�}�R�����1C�1C�D������
�
�#����d�F�M�M�2��i�i��o������c�"rc�F�UOO[2P!rr�r�s&r�_testFromFd�BasicTCPTest._testFromFdgr�rc��UOO2oUOUO2UO	Q2oUOU[2P!rj)r��dupr�rDrlrorp)r�rvrqs&  r�testDup�BasicTCPTest.testDupjsA���}�}� � �"������
�
�#��i�i��o������c�"rc�F�UOO[2P!rr�r�s&r�_testDup�BasicTCPTest._testDupqr�rc��UOOQ2oUOU[2UOO2P!rj)r�rlrorpr�r�rrs& r�check_shutdown�BasicTCPTest.check_shutdownts6���m�m� � ��&������c�"�	
�	�	���rc�(�UO2P!r�rr�s&r�testShutdown�BasicTCPTest.testShutdown}s�����rc�|�UOO[2UOO]2P!r,)r�rvrpr�r�s&r�
_testShutdown�BasicTCPTest._testShutdown�s&�������C� �������"rr�c�(�UO2P!rrr�s&r�testShutdown_overflow�"BasicTCPTest.testShutdown_overflow�s��	
���rc��]PHoUOO[2UO	[
UOOUO]*2UO	[
UOO]UO]**2UOO
]2P!rE)	r�r�rvrpror�r�r;�UINT_MAX�r�r�s& r�_testShutdown_overflow�#BasicTCPTest._testShutdown_overflow�s���	������C� ����-����)@�)@�#�+�+�a�/�	1����-����)@�)@��y�1�1�A�5�6�	8�������"rc�T�UOO2oUOO2oUOV!2UO	UOO
2UO
[UOOQ2UOO2[O[O[OUQ5oUOUO2UOQ2oUOU[2P!)rkr�)r�rZrmrorG�_closedror=rlrDr8rsrcr�rp)r�rZrrvrqs&    r�
testDetach�BasicTCPTest.testDetach�s������%�%�'���M�M� � �"������#�����
�
�-�-�.����'�4�=�=�#5�#5�t�<��
�
�����}�}�V�^�^�V�-?�-?��J������
�
�#��i�i��o������c�"rc�F�UOO[2P!rr�r�s&r�_testDetach�BasicTCPTest._testDetach�r�rrr!)!r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr	r
rrrrrrr#r�r�rr"r&r)r�r�r�s@rr�r�'s�����B�#�
!�#�!�#�
!�#�!�+�*�#�!�#�!���#�
���
�_�_�Y�$�&�(<�=��>���
���
�_�_�Y�$�&�(<�=�#�>��#�#� !�!rr�c�P`�\sQsQsnQ
QksQsQsQsQsQs	Qs
Q	sUsP!)�BasicUDPTesti�c�4�[OVQ5P!r)r%r�rs&&rr��BasicUDPTest.__init__�r�rc��UOO[[22oUO	U[2P!r�r�rlr�rprorrs& r�testSendtoAndRecv�BasicUDPTest.testSendtoAndRecv��(���i�i�n�n�S��X�&������c�"rc�j�UOO[][UO12P!rE�rryrprFr�r�s&r�_testSendtoAndRecv�BasicUDPTest._testSendtoAndRecv����������Q��t�y�y� 1�2rc��UOO[[22vqUO	U[2P!r�r�r�r�rpror�s&  rr��BasicUDPTest.testRecvFrom��,���I�I�&�&�s�3�x�0�	������c�"rc�j�UOO[][UO12P!rEr5r�s&rr��BasicUDPTest._testRecvFrom�r8rc�^�UO[UOOP2P!r��ror�r�r�r�s&r�testRecvFromNegative�!BasicUDPTest.testRecvFromNegative�������*�d�i�i�&8�&8�"�=rc�j�UOO[][UO12P!rEr5r�s&r�_testRecvFromNegative�"BasicUDPTest._testRecvFromNegative�r8rrr!�
r�r�r�r�r�r1r6r�r�rArEr�r�r�s@rr,r,�s.����D�#�
3�#�
3�>�3�3rr,c�P`�\sQsQsnQ
QksQsQsQsQsQs	Qs
Q	sUsP!)�BasicUDPLITETesti�c�4�[OVQ5P!r)r.r�rs&&rr��BasicUDPLITETest.__init__�s��!�*�*�4�*�Grc��UOO[[22oUO	U[2P!rr0rrs& rr1�"BasicUDPLITETest.testSendtoAndRecv�r3rc�j�UOO[][UO12P!rEr5r�s&rr6�#BasicUDPLITETest._testSendtoAndRecv�r8rc��UOO[[22vqUO	U[2P!rr:r�s&  rr��BasicUDPLITETest.testRecvFrom�r<rc�j�UOO[][UO12P!rEr5r�s&rr��BasicUDPLITETest._testRecvFrom�r8rc�^�UO[UOOP2P!r�r@r�s&rrA�%BasicUDPLITETest.testRecvFromNegative�rCrc�j�UOO[][UO12P!rEr5r�s&rrE�&BasicUDPLITETest._testRecvFromNegative�r8rrr!rGr�s@rrIrI�s.����H�#�
3�#�
3�>�3�3rrIc�``�\sQsQsn\O
sU1QksQsQ
s	Qs
QsQsQs
]sQFDs\\\\]2*sJ	]s]s]sQQksQ	sUsU9s!)
�SendrecvmsgBasei�c�Z:�[O2Um[RU_2P!r)r�r��
misc_eventr�r�r�s&�rr��SendrecvmsgBase.setUp
s���#�/�/�+���
��
�rc�:�UOOU2!r)�cli_sockrvrrs&&r�sendToServer�SendrecvmsgBase.sendToServer

s���}�}�!�!�#�&�&rc�r�UOOVO[U2P*!r)r^r��sendmsg_to_server_defaultsr��r�r%s&*r�sendmsgToServer�SendrecvmsgBase.sendmsgToServer
s4��
�}�}�$�$��4�4�S��Y�Z�@�@�C�	Crc�T�UOU,UN3oUOU2U!r)r��registerRecvmsgResult)r�rvr�r%�results&&&* r�	doRecvmsg�SendrecvmsgBase.doRecvmsg
s*�����g�-��-���"�"�6�*��
rc��P!rr�r�rhs&&rrg�%SendrecvmsgBase.registerRecvmsgResult$
s��	
rc�*�UOV2P!r�ro�r��addr1r�s&&&r�checkRecvmsgAddress�#SendrecvmsgBase.checkRecvmsgAddress*
s��	
����&rc���UOoUOoU%c&V`O*oVpO*oL(Ud%V`O*oVpO*oVd&*oVs&*oV6*oVG*oV4*U&*oU%c[	QOU22gV4*U&*o	UO
V*V9*2P!)Nz6contradictory set, unset requirements for flags {0:#x})�msg_flags_common_set�msg_flags_common_unset�msg_flags_eor_indicator�msg_flags_non_eor_indicator�	Exceptionr>ro)
r�r��eor�checkset�
checkunset�ignore�
defaultset�defaultunset�inbothrs
&&&&&&    r�
checkFlags�SendrecvmsgBase.checkFlags?
s���8�.�.�
��2�2����6�6�6�J��<�<�<�L�
�_��:�:�:�J��8�8�8�L�	�k�!�
��	�!��	����"�
��&�&��0����%�%+�V�F�^�5�
5��%�&��0�������x��7r)r[r)�
MSG_CTRUNC�MSG_OOB)Nrrr)r�r�r�r�rr]�fail_timeoutr�r_rbrdrirgrrrvr/r�r8rurwrxr�r�r�r�r�s@@rrYrY�s�����
�+�+�L��'�"$��C��
�'���)���'�&�$��":�:��*��� ��#$��48�48rrYc�(`�\sQsQsnQsQsUsP!)�RecvmsgIntoMixiniv
c��[U2oUOU,,UN3oUOU2UOU]*]2UO	U]*U2[UPU]*21UQ**!)r:r�NN)rt�recvmsg_intorg�assertGreaterEqual�assertLessEqualrd)r�rvr�r%�bufrhs&&&*  rri�RecvmsgIntoMixin.doRecvmsgy
sz���� ���"�"�C�5�0�4�0���"�"�6�*�����q�	�1�-����V�A�Y��0��c�*�6�!�9�o�&�(�6�"�:�5�5rr)r�r�r�r�rir�r�r�s@rr�r�v
s����6�6rr�c�>``�\sQsQsn\U1Qk2sQsUsU9s!)�SendrecvmsgDgramFlagsBasei�
c�D:�[RU_[O*!r)r�rxr8�	MSG_TRUNCr�s&�rrx�5SendrecvmsgDgramFlagsBase.msg_flags_non_eor_indicator�
s����w�2�V�5E�5E�E�Err)	r�r�r�r��propertyrxr�r�r�r�s@@rr�r��
s!�����F��F�Frr�c�>``�\sQsQsn\U1Qk2sQsUsU9s!)�SendrecvmsgSCTPFlagsBasei�
c�D:�[RU_[O*!r)r�rwr8�MSG_EORr�s&�rrw�0SendrecvmsgSCTPFlagsBase.msg_flags_eor_indicator�
s����w�.����?�?rr)	r�r�r�r�r�rwr�r�r�r�s@@rr�r��
s!�����@��@�@rr�c�X`�\sQsQsn\Q2s\Q2s\Q2sQsQs	Us
P!)�SendrecvmsgConnectionlessBasei�
c��UO!r)r�r�s&r�	serv_sock�'SendrecvmsgConnectionlessBase.serv_sock�
s���y�y�rc��UO!rr r�s&rr^�&SendrecvmsgConnectionlessBase.cli_sock�
s���x�x�rc�$�,,]UO1!rE)r�r�s&rrb�8SendrecvmsgConnectionlessBase.sendmsg_to_server_defaults�
s���B��4�>�>�*�*rc�N�UOOVO2!r)r^ryr�rrs&&rr_�*SendrecvmsgConnectionlessBase.sendToServer�
s���}�}�#�#�C���8�8rr)r�r�r�r�r�r�r^rbr_r�r�r�s@rr�r��
sK����
���������+��+�9�9rr�c�H`�\sQsQsn\Q2s\Q2sQsQsUs	P!)�SendrecvmsgConnectedBasei�
c��UO!r)r�r�s&rr��"SendrecvmsgConnectedBase.serv_sock�
s���}�}�rc��UO!r)r�r�s&rr^�!SendrecvmsgConnectedBase.cli_sock�
s���~�~�rc��P!rrrps&&&rrr�,SendrecvmsgConnectedBase.checkRecvmsgAddress�
���	
rr)
r�r�r�r�r�r�r^rrr�r�r�s@rr�r��
s7������������
�
rr�c�4``�\sQsQsnU1QksQsUsU9s!)�SendrecvmsgServerTimeoutBasei�
c�p:�[RU_2UOOUO2P!r)r�r�r�r\r�r�s&�rr��"SendrecvmsgServerTimeoutBase.setUp�
s$���
��
�����!�!�$�"3�"3�4rr)r�r�r�r�r�r�r�r�r�s@@rr�r��
s����5�5rr�c��`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sQsQs\\Q2Q2s\O*Q2sQsQsQsQsQsUsP!)�SendmsgTestsi�
c��UOUOO[[22[2P!r�ror�rlr�rpr�s&r�testSendmsg�SendmsgTests.testSendmsg�
�%��������,�,�S��X�6��<rc�n�UOUO[,2[[22P!r�rordrpr�r�s&r�_testSendmsg�SendmsgTests._testSendmsg�
s#������-�-�s�e�4�c�#�h�?rc��UOUOO[[22[2P!rr�r�s&r�testSendmsgDataGenerator�%SendmsgTests.testSendmsgDataGenerator�
r�rc�z�UOUOQ[,22[[22P!)c3�0�SF �Dpw�	J		P!3hrrr<s& rr0�9SendmsgTests._testSendmsgDataGenerator.<locals>.<genexpr>�
s��%���%�Q�q�%�r2r�r�s&r�_testSendmsgDataGenerator�&SendmsgTests._testSendmsgDataGenerator�
s,������-�-�.@�3�%�.@�A��S��	#rc��UOUOO[[22[2P!rr�r�s&r�testSendmsgAncillaryGenerator�*SendmsgTests.testSendmsgAncillaryGenerator�
r�rc�|�UOUO[,Q,22[[22P!)c3�0�SF �Dpw�	J		P!3hrrr<s& rr0�>SendmsgTests._testSendmsgAncillaryGenerator.<locals>.<genexpr>�
s������A�a��r2r�r�s&r�_testSendmsgAncillaryGenerator�+SendmsgTests._testSendmsgAncillaryGenerator�
s,������-�-�s�e�_��_�E��S��	#rc��UOUOO[[22[2P!rr�r�s&r�testSendmsgArray�SendmsgTests.testSendmsgArray�
r�rc��UOUO[OQ[2,2[	[22P!��B)rordr�rpr�r�s&r�_testSendmsgArray�SendmsgTests._testSendmsgArray�
s2������-�-�u�{�{�3��/D�.E�F��S��	#rc��UOUOO[[22[2P!rr�r�s&r�testSendmsgGather�SendmsgTests.testSendmsgGather�
r�rc��UOUO[Q*[Q*,2[[22P!�:Nr�N:r�NNr�r�s&r�_testSendmsgGather�SendmsgTests._testSendmsgGather�
s.������-�-�s�2�w��B��.@�A�3�s�8�Lrc�^�UOUOOQ2Q2P!�r��done�ror�rlr�s&r�testSendmsgBadArgs�SendmsgTests.testSendmsgBadArgs�
�!��������,�,�T�2�G�<rc	���UO[UOO2UO[UOQ2UO[UO[22UO[UO[2,2UO[UO[[2,2UO[UO[,[22UO[UO[,,[22UO[UO[,,][22UOQ2P!)snot in an iterabler�)rorr^r�rd�objectrpr_r�s&r�_testSendmsgBadArgs� SendmsgTests._testSendmsgBadArgs�
s�����)�T�]�]�%:�%:�;����)�T�%9�%9�/�	1����)�T�%9�%9� �(�	$����)�T�%9�%9�!�8�*�	&����)�T�%9�%9����/�	+����)�T�%9�%9��%���	+����)�T�%9�%9��%��V�X�	/����)�T�%9�%9��%��Q���	2����'�"rc�^�UOUOOQ2Q2P!r�r�r�s&r�testSendmsgBadCmsg�SendmsgTests.testSendmsgBadCmsgr�rc	�\�UO[UO[,[	2,2UO[UO[,[	2]Q1,2UO[UO[,][	2Q1,2UO[UO[,]][	21,2UO[UO[,Q,2UO[UO[,Q,2UOQ2P!)r�datar�)rr)rrr�rR�rorrdrpr�r_r�s&r�_testSendmsgBadCmsg� SendmsgTests._testSendmsgBadCmsgs������)�T�%9�%9��%�&�(��	-����)�T�%9�%9��%�6�8�Q��"8�!9�	;����)�T�%9�%9��%�1�f�h��"8�!9�	;����)�T�%9�%9��%�1�a���"2�!3�	5����)�T�%9�%9��%�&��	+����)�T�%9�%9��%�"5�!6�	8����'�"r�
CMSG_SPACEc�^�UOUOOQ2Q2P!r�r�r�s&r�testSendmsgBadMultiCmsg�$SendmsgTests.testSendmsgBadMultiCmsgs#��	
������,�,�T�2�G�<rc���UO[UO[,,QN2UO[UO[,Q[	2,2UOQ2P!)rr��rrrr�r�s&r�_testSendmsgBadMultiCmsg�%SendmsgTests._testSendmsgBadMultiCmsgsU�����)�T�%9�%9��%��	.����)�T�%9�%9��%�+�v�x�!8�	:����'�"rc�^�UOUOOQ2Q2P!r�r�r�s&r�testSendmsgExcessCmsgReject�(SendmsgTests.testSendmsgExcessCmsgReject$s#��	
������,�,�T�2�G�<rc�D�[[Q2%feUO[29^tt^2oUO	[
,QQ,2PPP2UO
WOO2UOQ2P!)%fhKH9h)r�r�r�)
r7r8ror=rdrp�assertIsNonerzrtr_r�s& r�_testSendmsgExcessCmsgReject�)SendmsgTests._testSendmsgExcessCmsgReject)sm���v�|�,�,��"�"�7�+�+�r��$�$�c�U�[�+�,F�G�,����b�l�l�0�0�1����'�"�,�+�s�B�B	�B	c��P!rrr�s&r�testSendmsgAfterClose�"SendmsgTests.testSendmsgAfterClose1s��rc��UOO2UO[UO[
,2P!r)r^rDror=rdrpr�s&r�_testSendmsgAfterClose�#SendmsgTests._testSendmsgAfterClose5s,���
�
�������'�4�#7�#7�#��?rr)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r6r8r�rr�r�r�r�rr�r�r�s@rr�r��
s�����=�@�=�#�=�#�=�#�=�M�=�#�$=�
#��&�,�'�=�(�=�
�(�(�#�)�#�=�
#�
�@�@rr�c�`�\sQsQsnQsQsQsQs\\	OQ
7Q2Q2s\OQ2s
Q	sUsP!)�SendmsgStreamTestsi:c��UOUOO[[22[2P!rr�r�s&r�testSendmsgExplicitNoneAddr�.SendmsgStreamTests.testSendmsgExplicitNoneAddr>r�rc�t�UOUO[,,]P2[[22P!rEr�r�s&r�_testSendmsgExplicitNoneAddr�/SendmsgStreamTests._testSendmsgExplicitNoneAddrBs)������-�-�s�e�R��D�A�3�s�8�Lrc���UOUOOQ2Q2UOUOOUOQ52P!�r-�r|�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa�ror�rlrGr[r�r�r�s&r�testSendmsgTimeout�%SendmsgStreamTests.testSendmsgTimeoutEsE��������,�,�S�1�8�<�������,�,�T�5F�5F�,�G�Hrc�f�UOOQ2UOQ,2J[cL7[
c+oSO[O6wcgPo=LPo=hh9hSOO2P!SOO2h9h)���Q��?r)
r^r\rdrhr�r=rt�ENOMEMr[r��r�rws& r�_testSendmsgTimeout�&SendmsgStreamTests._testSendmsgTimeoutJs���	"��M�M�$�$�T�*�
5���(�(�(��4���
���
��9�9����,��-��
��
�O�O���!��D�O�O���!�sH�B�4�	A5�A5�B�A5�
A5�A0�*A0�+B�0A5�5B�B0z<MSG_DONTWAIT not known to work on this platform when sendingc���UOUOOQ2Q2UOUOOUOQ52P!rrr�s&r�testSendmsgDontWait�&SendmsgStreamTests.testSendmsgDontWaitasG��
	
������,�,�S�1�8�<�������,�,�T�5F�5F�,�G�Hrc���UO[29^tt^2oUOQ,,[O2J%)%fhL9hSOWOO[O[O[O12SOO2P!SOO2h9h)Tr)
ror=rdr8�MSG_DONTWAITrYrzrt�EAGAIN�EWOULDBLOCKrr[r�r�s& r�_testSendmsgDontWait�'SendmsgStreamTests._testSendmsgDontWaitis���		"��"�"�7�+�+�r���(�(�(��R��9L�9L�M�,�+��

�M�M�"�,�,�,�,� �<�<��):�):�E�L�L�I�
K�
�O�O���!��D�O�O���!�s#�C�&A�A	�A	�AC�C$r>r%r()r�r�r�r�rr	rrr(r�rprrrr�r�r�s@rrr:sa����=�M�I�
"�.�c�l�l�*>�>� �!�I�!�I�
�$�$�
"�%�
"rrc�.`�\sQsQsnQsQsQsUsP!)�SendmsgConnectionlessTestsiwc��P!rrr�s&r�testSendmsgNoDestAddr�0SendmsgConnectionlessTests.testSendmsgNoDestAddr|r�rc���UO[UOO[,2UO[UOO[,,]P2P!rE)ror=r^r�rpr�s&r�_testSendmsgNoDestAddr�1SendmsgConnectionlessTests._testSendmsgNoDestAddr�sJ�����'�4�=�=�#8�#8��%�	!����'�4�=�=�#8�#8��%��Q��	.rr)r�r�r�r�r$r'r�r�r�s@rr"r"ws����

�
.�.rr"c�`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sQsQsQsQs\\Q2Q2s\O.Q2s\\O*Q2Q2s\O.Q2sQsUsP!)�RecvmsgGenericTestsi�c��UOUO[[22vqq4UO	U[2UOV@O2UO	U,2UOUP	Q5P!�T�rz�rir�r�rprorrrHr��r�rqr�r�r�s&    r�testRecvmsg�RecvmsgGenericTests.testRecvmsg�sa��$(�N�N�4�>�>�3�s�8�$L�!��e�����c�"�� � ��}�}�5�����"�%�����4��(rc�2�UO[2P!r�r_rpr�s&r�_testRecvmsg� RecvmsgGenericTests._testRecvmsg�������#�rc��UOUO[[2]]2vqq4UO	U[2UOV@O2UO	U,2UOUP	Q5P!)rr-r.r/s&    r�testRecvmsgExplicitDefaults�/RecvmsgGenericTests.testRecvmsgExplicitDefaults�si��$(�N�N�4�>�>�36�s�8�Q��%C�!��e�����c�"�� � ��}�}�5�����"�%�����4��(rc�2�UO[2P!rr3r�s&r�_testRecvmsgExplicitDefaults�0RecvmsgGenericTests._testRecvmsgExplicitDefaults�r6rc��UOUO[[2]**2vqq4UO	U[2UOV@O2UO	U,2UOUP	Q5P!)rRr-r.r/s&    r�testRecvmsgShorter�&RecvmsgGenericTests.testRecvmsgShorter�si��$(�N�N�4�>�>�36�s�8�b�=�%B�!��e�����c�"�� � ��}�}�5�����"�%�����4��(rc�2�UO[2P!rr3r�s&r�_testRecvmsgShorter�'RecvmsgGenericTests._testRecvmsgShorter�r6rc� �UOUO[[2]*
2vqq4UO	U[PQ2UOV@O2UO	U,2UOUP
Q5P!)r�r-���r.r/s&    r�testRecvmsgTrunc�$RecvmsgGenericTests.testRecvmsgTrunc�so��$(�N�N�4�>�>�36�s�8�a�<�%A�!��e�����c�#�2�h�'�� � ��}�}�5�����"�%�����5��)rc�2�UO[2P!rr3r�s&r�_testRecvmsgTrunc�%RecvmsgGenericTests._testRecvmsgTrunc�r6rc��UOUO[[2]2vqq4UO	U[2UOV@O2UO	U,2UOUP	Q5P!�r�r-r.r/s&    r�testRecvmsgShortAncillaryBuf�0RecvmsgGenericTests.testRecvmsgShortAncillaryBuf�sg��$(�N�N�4�>�>�36�s�8�Q�%@�!��e�����c�"�� � ��}�}�5�����"�%�����4��(rc�2�UO[2P!rr3r�s&r�_testRecvmsgShortAncillaryBuf�1RecvmsgGenericTests._testRecvmsgShortAncillaryBuf�r6rc��UOUO[[2Q2vqq4UO	U[2UOV@O2UO	U,2UOUP	Q5P!)�(r-r.r/s&    r�testRecvmsgLongAncillaryBuf�/RecvmsgGenericTests.testRecvmsgLongAncillaryBuf�sg��$(�N�N�4�>�>�36�s�8�U�%D�!��e�����c�"�� � ��}�}�5�����"�%�����4��(rc�2�UO[2P!rr3r�s&r�_testRecvmsgLongAncillaryBuf�0RecvmsgGenericTests._testRecvmsgLongAncillaryBuf�r6rc��UOO2UO[UOUOQ2P!rj)r�rDror=rir�s&r�testRecvmsgAfterClose�)RecvmsgGenericTests.testRecvmsgAfterClose�s.�����������'�4�>�>�4�>�>�4�Hrc��P!rrr�s&r�_testRecvmsgAfterClose�*RecvmsgGenericTests._testRecvmsgAfterClose�r�rc�$�UOOQ2UO[UOUO[[22UOO2P!SOO2h9h)r)	r�r\ror�rir�rpr[r�r�s&r�testRecvmsgTimeout�&RecvmsgGenericTests.testRecvmsgTimeout�s`��	"��N�N�%�%�d�+����l�"�n�n�d�n�n�c�#�h�
H�
�O�O���!��D�O�O���!�s�AA3�3Bc�r�UOUOOUOQ52P!�r
)rGr[r�r�r�s&r�_testRecvmsgTimeout�'RecvmsgGenericTests._testRecvmsgTimeout�s&��������,�,�T�5F�5F�,�G�Hrr�c	��UOUO[[2]*
][O
2vqq4UO
U[PQ2UOV@O2UO
U,2UOUP
[[Q]2Q5UOUO[[2][O
2vqq4UO
U[2UOV@O2UO
U,2UOUP	Q5UOUO[[22vqq4UO
U[2UOV@O2UO
U,2UOUP	Q5P!)r�r��rzr}r-rD)rir�r�rpr8r�rorrrHr�r�r/s&    r�testRecvmsgPeek�#RecvmsgGenericTests.testRecvmsgPeek�sa��%)�N�N�4�>�>�36�s�8�a�<��39�?�?�%D�!��e�	
����c�#�2�h�'�� � ��}�}�5�����"�%�
	
����5�&�v�{�A�>�	�	@�%)�N�N�4�>�>�36�s�8�Q�39�?�?�%D�!��e�	
����c�"�� � ��}�}�5�����"�%�����4��(�%)�N�N�4�>�>�3�s�8�$L�!��e�����c�"�� � ��}�}�5�����"�%�����4��(rc�2�UO[2P!rr3r�s&r�_testRecvmsgPeek�$RecvmsgGenericTests._testRecvmsgPeek
s�����#�rr�c�V�UOOUO2UOUO[	[
22vqq4UO
U[
2UOV@O2UO
U,2UOUP	Q5P!r,)
r�r\r�rir�rprorrrHr�r/s&    r�testRecvmsgFromSendmsg�*RecvmsgGenericTests.testRecvmsgFromSendmsgs{��	
���!�!�$�"3�"3�4�$(�N�N�4�>�>�3�s�8�$L�!��e�����c�"�� � ��}�}�5�����"�%�����4��(rc��UOUO[Q*[Q*,2[[22P!r�r�r�s&r�_testRecvmsgFromSendmsg�+RecvmsgGenericTests._testRecvmsgFromSendmsgs.������-�-�s�2�w��B��.@�A�3�s�8�Lrr)r�r�r�r�r0r4r8r;r>rArErHrLrOrSrVrYr\r_rcr6r8rgrrjrmrpr�r�r�s@rr*r*�s�����)��)��)��*��)��)��I�

�"�I��&�*�%� )�&� )�D� � ��!���&�-�-��+�)�,�)��'�'�M�(�Mrr*c�:`�\sQsQsnQsQsQsQsQsUs	P!)�RecvmsgGenericStreamTestsic���UOUOQ2vqq4UOUQ2UOV@O2UOU,2UOUPQ5P!)rkrr-)rir�rorrrHr�r/s&    r�testRecvmsgEOF�(RecvmsgGenericStreamTests.testRecvmsgEOF"s]��$(�N�N�4�>�>�4�$H�!��e�����c�"�� � ��}�}�5�����"�%�����4��(rc�<�UOO2P!r)r^rDr�s&r�_testRecvmsgEOF�)RecvmsgGenericStreamTests._testRecvmsgEOF*s���
�
���rc���UOUO[[2]*
2vqq4UO	V@O
2UO
U,2UOUP
Q5UOUOQ2vqRq4UO	V@O
2UO
U,2UOUP	Q5V*oUO
U[2P!)r�r-rk)rir�r�rprrrHror�)r�r�r�r�r�r�rqs&      r�testRecvmsgOverflow�-RecvmsgGenericStreamTests.testRecvmsgOverflow-s���%)�^�^�D�N�N�47��H�q�L�&B�"��u�� � ��}�}�5�����"�%�����5��)�%)�^�^�D�N�N�D�%I�"��u�� � ��}�}�5�����"�%�����4��(��k������c�"rc�2�UO[2P!rr3r�s&r�_testRecvmsgOverflow�.RecvmsgGenericStreamTests._testRecvmsgOverflow=r6rr)
r�r�r�r�rurxr{r~r�r�r�s@rrsrss����)��#� �rrsc�.`�\sQsQsnQsQsQsUsP!)�RecvmsgTestsiAc��UO[UOO2UO[UOOP]]2UO[UOO[[2P]2UO[UOO[]
2,]]2UO[UOO[2]]2UO[UOO[[2[2]2UO[UOO[[2][22UOO[[2]]2vqq4UOU[2UOV@O2UOU,2UOUP	Q5P!rK)
rorr�r�r�r�rprtr�rorrrHr�r/s&    r�testRecvmsgBadArgs�RecvmsgTests.testRecvmsgBadArgsDsk�����)�T�^�^�%;�%;�<����*�d�n�n�&<�&<��a��	$����*�d�n�n�&<�&<��c�(�B��	+����)�T�^�^�%;�%;�$�R�=�/�1�a�	1����)�T�^�^�%;�%;� �(�A�q�	*����)�T�^�^�%;�%;��c�(�F�H�a�	1����)�T�^�^�%;�%;��c�(�A�v�x�	1�%)�N�N�$:�$:�3�s�8�Q��$J�!��e�����c�"�� � ��}�}�5�����"�%�����4��(rc�2�UO[2P!rr3r�s&r�_testRecvmsgBadArgs� RecvmsgTests._testRecvmsgBadArgsZr6rr)r�r�r�r�r�r�r�r�r�s@rr�r�As����)�,�rr�c�R`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sUs
P!)�RecvmsgIntoTestsi^c��[[[22oUO[UO
O2UO[UO
O[[2]]2UO[UO
OU]]2UO[UO
O[2,]]2UO[UO
OQ,]]2UO[UO
OU[2,]]2UO[UO
OU,P]2UO[UO
OU,[2]2UO[UO
OU,][22UO
O
U,]]2vq#qEUOU[[22UOU[[22UOVPO2UOU,2UOUP	Q5P!)rsI'm not writabler-)
rtr�rprorr�r�r�r�rorrrHr��r�r��nbytesr�r�r�s&     r�testRecvmsgIntoBadArgs�'RecvmsgIntoTests.testRecvmsgIntoBadArgsas�����C��!�����)�T�^�^�%@�%@�A����)�T�^�^�%@�%@��c�(�A�q�	*����)�T�^�^�%@�%@��q�!�	%����)�T�^�^�%@�%@�!�8�*�a��	,����)�T�^�^�%@�%@�.�/��A�	7����)�T�^�^�%@�%@����/�1�a�	1����*�d�n�n�&A�&A��%��Q�	(����)�T�^�^�%@�%@��%���1�	.����)�T�^�^�%@�%@��%��F�H�	.�(,�~�~�'B�'B�C�5�!�Q�'O�$��������S��*�����i��n�-�� � ��}�}�5�����"�%�����4��(rc�2�UO[2P!rr3r�s&r�_testRecvmsgIntoBadArgs�(RecvmsgIntoTests._testRecvmsgIntoBadArgs}r6rc�~�[[[22oUOO	QU,22vq#qEUOU[[22UOU[[22UO
VPO2UOU,2UOUP	Q5P!)c3�0�SF �Dpw�	J		P!3hrrr<s& rr0�<RecvmsgIntoTests.testRecvmsgIntoGenerator.<locals>.<genexpr>�s������1�Q��r2r-)	rtr�rpr�r�rorrrHr�r�s&     r�testRecvmsgIntoGenerator�)RecvmsgIntoTests.testRecvmsgIntoGenerator�s�����C��!��'+�~�~�'B�'B�����( �$��������S��*�����i��n�-�� � ��}�}�5�����"�%�����4��(rc�2�UO[2P!rr3r�s&r�_testRecvmsgIntoGenerator�*RecvmsgIntoTests._testRecvmsgIntoGenerator�r6rc��[OQ],[[2*2oUOO	U,2vq#qEUOU[[22UOUO
2[2UOVPO2UOU,2UOUP	Q5P!)r�r-)
r�r�rpr�r�ro�tobytesrrrHr�r�s&     r�testRecvmsgIntoArray�%RecvmsgIntoTests.testRecvmsgIntoArray�s����k�k�#��s�S��X�~�.��'+�~�~�'B�'B�C�5�'I�$��������S��*���������,�� � ��}�}�5�����"�%�����4��(rc�2�UO[2P!rr3r�s&r�_testRecvmsgIntoArray�&RecvmsgIntoTests._testRecvmsgIntoArray�r6rc��[Q2o[Q2o[Q2oUOOU[U2Q*U,2vqEqgUO	U[Q22UO	U[Q22UO	U[Q22UO	U[Q22UO
VpO2UO	U,2UOUP	Q5P!)	s----s
0123456789s--------------:r
�	N�Mary had a little lambsMarys
01 had a 9slittle lamb---r-)	rtr�r��
memoryviewror�rrrHr�)r��b1�b2�b3r�r�r�r�s&       r�testRecvmsgIntoScatter�'RecvmsgIntoTests.testRecvmsgIntoScatter�s���
�w�
��
�}�
%��
�(�
)��'+�~�~�'B�'B�
��B���$�b�)�(+�$��������%>�!?�@�����Y�w�/�0�����Y�}�5�6�����Y�'8�9�:�� � ��}�}�5�����"�%�����4��(rc�*�UOQ2P!)r�)r_r�s&r�_testRecvmsgIntoScatter�(RecvmsgIntoTests._testRecvmsgIntoScatter�s�����3�4rr)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�s@rr�r�^s2����)�8�	)��)��
)�5�5rr�c�`�\sQsQsn]PHs\Q\O2s\	\
Q2Q2s\	\
Q2Q2sQs
UsP!\cQsK/h9h)�CmsgMacroTestsi�r�CMSG_LENc�.�UO[O]2*
]*o[[	Q22[[	UQ*
U22*oUO[O]2[OQ2O]*2SFDao[OU2oUOU[O]2*
U2UOV@O2Jc	UO[[OP2UO[[OU2UO[[O[O2P!)r�r�)�socklen_t_limitr8r��listr,r�r��itemsizeror�ror�r��maxsize)r��toobigrq�n�rets&    r�testCMSG_LEN�CmsgMacroTests.testCMSG_LEN�s���%�%�����(:�:�Q�>���e�C�j�!�D��v��|�V�)D�$E�E��	
���6�?�?�1�-�u�{�{�3�/?�/H�/H�1�/L�M��A��/�/�!�$�C����S�6�?�?�1�#5�5�q�9�� � ��&:�&:�;�	�	
���-����"�=�	
���-����&�A����-����#�+�+�Frr�c	��UO[O]2*
]*o[%c$[O
2Q6Xc
U]*o[
[Q22[
[UQ*
U22*o[O]2oUOU[OQ2O]*2SFD�o[OU2oUOVS2UOU[OU22UOVT[O]2*2UOVPO2SoJ�	UO[[OP2UO[[OU2UO[[O[ O"2P!)r��sparcr�r�)r�r8r��SOLARISrp�	processorr�r,r�r�r�r�r�r�ror�r�r�)r�r�rq�lastr�r�s&     r�testCMSG_SPACE�CmsgMacroTests.testCMSG_SPACE�sa���%�%��(9�(9�!�(<�<�q�@���7�x�)�)�+�w�6�
�a�K�F��e�C�j�!�D��v��|�V�)D�$E�E��� � ��#�����4����S�!1�!:�!:�Q�!>�?��A��#�#�A�&�C��#�#�C�.��#�#�C�����);�<��#�#�C�V�_�_�Q�-?�)?�@�� � ��&:�&:�;��D�
�	
���-��):�):�B�?�	
���-��):�):�F�C����-��):�):�C�K�K�Hrr)r�r�r�r�r��minr;r�rjr6r8r�r�r�r�r�s@rr�r��so����=���j�)�*;�*;�<���&�*�%�G�&�G�(�&�,�'�I�(�I��7�%�$��%�s�A�A�
A�Ar�c�	`�\sQsQsnQ8sQsQsQsQsQs	Q9Qks
QsQ	sQ
s
Qs\\Q2Q
2s\O$Q2sQsQs\O.\Q2\O.\Q2\O.\Q2\O.\Q2\\Q2Q22222s\O$\O.\Q2\O.\Q2\O.\Q2\O.\Q2Q22222s\O.\Q2\O.\Q2\O.\Q2\O.\Q2\\Q2Q22222s\O$\O.\Q2\O.\Q2\O.\Q2\O.\Q2Q22222sQs \O.\Q2Q2s!Qs"Qs#Qs$\\Q2Q2s%\%O$Q2s&Q:Q ks'\(\)OTQ!6HQ"2Q#2s+\+O$Q$2s,\(\)OTQ!6HQ"2Q%2s-\-O$Q&2s.\(\)OTQ!6HQ"2\O.\/Q'2Q(22s0\0O$Q)2s1\(\)OTQ!6HQ"2\O.\/Q'2Q*22s2\2O$Q+2s3\(\)OTQ!6HQ"2\O.\/Q'2Q,22s4\4O$Q-2s5Q:Q.ks6\(\)OTQ!6HQ"2\O.\/Q'2Q/22s7\7O$Q02s8\(\)OTQ!6HQ"2\O.\/Q'2Q122s9\9O$Q22s:\(\)OTQ!6HQ"2\O.\/Q'2Q322s;\;O$Q42s<\(\)OTQ!6HQ"2\O.\/Q'2Q522s=\=O$Q62s>Q7s?Us@P!);�
SCMRightsTesti�c�^�,o[U2FD�o[O2vqEUO[O
U2UO[OU2[OU[U2O22UOU2J�	U!r)r,r��mkstempr�r�r�rD�writer;r��append)r�r��fdsr�rsr�s&&    r�newFDs�SCMRightsTest.newFDs�su�����q��A��'�'�)�H�B��O�O�B�I�I�t�,��O�O�B�H�H�b�)��H�H�R��Q�����)��J�J�r�N���
rc��[U2FDivq#[OU][O2UO	[O
UQ2[
U2O22Jk	P!)rrk)�	enumerater��lseek�SEEK_SETror�r;r�)r�r�r�rss&&  r�checkFDs�SCMRightsTest.checkFDssM���s�^�E�A��H�H�R��B�K�K�(����R�W�W�R��.��A��
�
��@�$rc�@�UOUOU2P!r)r��closeRecvmsgFDsrls&&rrg�#SCMRightsTest.registerRecvmsgResults������,�,�f�5rc
�t�U]*FD�vq#oU[O6XfJU[O6XfJ4[OQ2oUO	UP[U2[U2UO**
2SFDo[OU2J	J�	P!)r�r�)	r8r�r�r��	frombytesr�r�r�rD)r��recvmsg_result�
cmsg_level�	cmsg_type�	cmsg_datar�rss&&     rr��SCMRightsTest.closeRecvmsgFDss���1?�q�0A�0A�,�J�9��f�/�/�/���!2�!2�2��k�k�#�&���
�
�i�)I��I��#�i�.�3�<�<�*G�H�J�K��B��H�H�R�L��
1Brc
��UOUO[,[O[O
[OQUOU221,2[[22P!�r�)	rordrpr8r�r�r�r�r�)r�r�s&&r�createAndSendFDs�SCMRightsTest.createAndSendFDssb��	
���� � �#��#)�#4�#4�#)�#4�#4�#(�;�;�s�D�K�K��N�#C�#E�"F�
G�
��H�	rc��UvqVqxUOU[2UOV�O2UO	UP	[
OUQ5UOU[2UO[U2U2[OQ2o	SFD�o
UOU
[2U
vq�o
UOU[
O2UOU[
O2UOU
[2UO[U
2[ *]2U	O#U
2J�	UO[U	2U2UO%U	2P!)T�rzr|r}r�)rorprrrHr�r8r�rQr�r�r�r��tupler�r�rd�
SIZEOF_INTr�r�)r��numfdsrh�maxcmsgs�ignoreflagsrqr�r�r�r��itemr�r�r�s&&&&&         r�checkRecvmsgFDs�SCMRightsTest.checkRecvmsgFDs!s+��%+�!��e�����c�"�� � ��}�}�5�����4�F�4E�4E�*�	�	,�	
���g�t�,����S��\�8�4��k�k�#����D��!�!�$��.�/3�,�J�9����Z��):�):�;����Y��(9�(9�:��!�!�)�U�3����S��^�j�8�!�<��M�M�)�$��	
����S��6�*��
�
�c�rc	�|�UO]UOUO[[2Q22P!)r�rR�r�rir�r�rpr�s&r�testFDPassSimple�SCMRightsTest.testFDPassSimple<�.�����Q����t�~�~�/2�3�x��!@�	Arc
��UOUO[,[O[O
[OQUO]22O21,2[[22P!r�)
rordrpr8r�r�r�r�r�r�r�s&r�_testFDPassSimple�SCMRightsTest._testFDPassSimpleAsh������ � ����#�#��#�#��+�+�c�4�;�;�q�>�2�:�:�<�>�?�
@�

��H�
	rc	�|�UO]UOUO[[2Q22P!)�rRr�r�s&r�testMultipleFDPass� SCMRightsTest.testMultipleFDPassJr�rc�*�UO]2P!�r��r�r�s&r�_testMultipleFDPass�!SCMRightsTest._testMultipleFDPassO������a� rr�c��UO]UOUO[[2[
O][*222P!r�)r�rir�r�rpr8r�r�r�s&r�testFDPassCMSG_SPACE�"SCMRightsTest.testFDPassCMSG_SPACERs@��	
���
�t�~�~�d�n�n�c�#�h�$�/�/��J��?�A�	Brc�*�UO]2P!r�r�r�s&r�_testFDPassCMSG_SPACE�#SCMRightsTest._testFDPassCMSG_SPACEY������a� rc���UO]UOUO[[2[
O][*22[
OQ5P!)r��r�)	r�rir�r�rpr8r�r�r�r�s&r�testFDPassCMSG_LEN� SCMRightsTest.testFDPassCMSG_LEN]sK�����Q�!�^�^�D�N�N�C��H�,2�O�O�A�
�N�,K�M�
*0�):�):�
	�	<rc�*�UO]2P!r�r�r�s&r�_testFDPassCMSG_LEN�!SCMRightsTest._testFDPassCMSG_LENgr�rzskipping, see issue #12958zskipping, see gh-91214zskipping, see issue #22397zskipping, see gh-125860c	��UO]UOUO[[2Q2]Q5P!)r
rR)r�r�r�s&r�testFDPassSeparate� SCMRightsTest.testFDPassSeparatejs4��	
���Q�!�^�^�D�N�N�C��H�e�L�&'�	�	)rc�n�UO]2vqUOUO[,[O
[O[OQU,21[O
[O[OQU,21,2[[22P!�r
r��	r�rordrpr8r�r�r�r��r��fd0�fd1s&  r�_testFDPassSeparate�!SCMRightsTest._testFDPassSeparatev����;�;�q�>������� � �#��&�*;�*;�*0�*;�*;�*/�+�+�c�C�5�*A�*C�+1�*;�*;�*0�*;�*;�*/�+�+�c�C�5�*A�*C�)D�
E�
��H�	rc��]oUOUUOUO[[2[
O[2[
O[U*2*2][
OQ5P!)r
)r�r�)
r�rir�r�rpr8r�r�r�r�)r��num_fdss& r�testFDPassSeparateMinSpace�(SCMRightsTest.testFDPassSeparateMinSpace�sj�������W�!�^�^�D�N�N�C��H�,2�,=�,=�j�,I�,2�O�O�J��<P�,Q�-R�S�'(�V�5F�5F�		�	Hrc�n�UO]2vqUOUO[,[O
[O[OQU,21[O
[O[OQU,21,2[[22P!r	r	r	s&  r�_testFDPassSeparateMinSpace�)SCMRightsTest._testFDPassSeparateMinSpace�r	rc��UOU,U2oUOU[
U22P![c=oSOSO[2SOS,2oPo=K_Po=hh9hr)rdr=rQrtr�ror�)r�rqr�r�rs&&&  r�sendAncillaryIfPossible�%SCMRightsTest.sendAncillaryIfPossible�si��	1��)�)�3�%��9�F�
	
�����S��*��	�	1��!�!�!�'�'�3�/��)�)�3�%�0�F��	1�s�3�	A:�A:�2A5�5A:c	��UO]UOUO[[2Q2[
OQ5P!)rrRr	)r�rir�r�rpr8r�r�s&r�testFDPassEmpty�SCMRightsTest.testFDPassEmpty�s=��	
���Q����t�~�~�/2�3�x��!@�)/�):�):�	�	<rc�t�UO[[O[OQ1,2P!�r)r	rpr8r�r�r�s&r�_testFDPassEmpty�SCMRightsTest._testFDPassEmpty�s0���$�$�S�F�,=�,=�,2�,=�,=�,/�,1�+2�	3rc��UOUO[[2Q2vqq4UO	U[2UOV@O2UOUP	[OQ5UO[U2]2SFDevqVoUO	U[O2UO	U[O2UO[U2[2Jg	P!)rRrf)rir�r�rprorrrHr�r8r�r�r�r��
assertLessr��r�rqr�r�r�r�r�r�s&       r�testFDPassPartialInt�"SCMRightsTest.testFDPassPartialInt�s���$(�N�N�4�>�>�36�s�8�U�%D�!��e�����c�"�� � ��}�}�5�����4��0A�0A��B����S��\�1�-�07�,�J�9����Z��):�):�;����Y��(9�(9�:��O�O�C�	�N�J�7�18rc	���UO[[O[O[
O
QUO,2O2PP1,2P!r�)r	rpr8r�r�r��badfdr�r�s&r�_testFDPassPartialInt�#SCMRightsTest._testFDPassPartialInt�sS���$�$���������k�k�#��
�
�|�,�4�4�6�s��;�=�
>�	?rc
���UOUO[[2Q2vqq4UO	U[2UOV@O2UOUP	[OQ5UO[U2]2[OQ2oSFD�vqgoUO	U[O2UO	U[O2UOUP[U2[U2UO**
2J�	UO[U2]2UO!U2P!)rRrfr�)rir�r�rprorrrHr�r8r�r�r�r�r�r�r�r�)	r�rqr�r�r�r�r�r�r�s	&        r�testFDPassPartialIntInMiddle�*SCMRightsTest.testFDPassPartialIntInMiddle�s��%)�N�N�4�>�>�36�s�8�U�%D�!��e�����c�"�� � ��}�}�5�����4��0A�0A��B����S��\�1�-��k�k�#���07�,�J�9����Z��):�):�;����Y��(9�(9�:��M�M�)�%E��	�N�c�)�n�s�|�|�&C�D�F�
G�18�
	
���S��X�q�)��
�
�c�rc
�h�UO]2vqUO[[O[O
[OQVO,2O2PP1[O[O
[OQU,21,2P!r	)	r�r	rpr8r�r�r�r-	r�r	s&  r�_testFDPassPartialIntInMiddle�+SCMRightsTest._testFDPassPartialIntInMiddle�s����;�;�q�>����$�$���������k�k�#��Z�Z�0�1�9�9�;�C�R�@�B��������k�k�#��u�%�'�
(�	)rc���Uvq4qVUOU[2UOV`O2UOU,2UO	UP	[
OUQ5P!)T�rzr{r})rorprrrHr�r8r�)r�rhr�rqr�r�r�s&&&    r�checkTruncatedHeader�"SCMRightsTest.checkTruncatedHeader�s`��%+�!��e�����c�"�� � ��}�}�5�����"�%�����4�&�2C�2C�*�	�	,rr�z#80931c��UOUOUO[[22[
OQ5P!�r	�r8	rir�r�rpr8r�r�s&r�testCmsgTruncNoBufSize�$SCMRightsTest.testCmsgTruncNoBufSize�s8��	
�!�!�$�.�.�����S��"J�/5�.?�.?�		"�	Arc�*�UO]2P!r�r�r�s&r�_testCmsgTruncNoBufSize�%SCMRightsTest._testCmsgTruncNoBufSizer	rc��UOUOUO[[2]2[
OQ5P!)rr	r<	r�s&r�testCmsgTrunc0�SCMRightsTest.testCmsgTrunc0s8��	
�!�!�$�.�.�����S��1�"M�.4�.?�.?�	"�	Arc�*�UO]2P!r�r�r�s&r�_testCmsgTrunc0�SCMRightsTest._testCmsgTrunc0r	r�skipping, see gh-154240c�z�UOUOUO[[2]22P!r�)r8	rir�r�rpr�s&r�testCmsgTrunc1�SCMRightsTest.testCmsgTrunc1s'��	
�!�!�$�.�.�����S��1�"M�Nrc�*�UO]2P!r�r�r�s&r�_testCmsgTrunc1�SCMRightsTest._testCmsgTrunc1r	rc��UOUOUO[[2[
]*22P!r,)r8	rir�r�rpr�r�s&r�testCmsgTrunc2Int�SCMRightsTest.testCmsgTrunc2Ints2��	
�!�!�$�.�.�����S��1;�a��#A�	Brc�*�UO]2P!r�r�r�s&r�_testCmsgTrunc2Int� SCMRightsTest._testCmsgTrunc2Int'r	rc	��UOUOUO[[2[
O]2]*
22P!rE)r8	rir�r�rpr8r�r�s&r�testCmsgTruncLen0Minus1�%SCMRightsTest.testCmsgTruncLen0Minus1+s<��	
�!�!�$�.�.�����S��17����1C�a�1G�#I�	Jrc�*�UO]2P!r�r�r�s&r�_testCmsgTruncLen0Minus1�&SCMRightsTest._testCmsgTruncLen0Minus11r	rc��[29^tt^2UOUO[[2U2vqEqgPPP2UOW[2UO
WUO2UOWP	[OQ5U]6Xc
W,6XcP!UO[W2]2U]*vq�o
UOU[O2UOU	[O2UO[U
2U2UO[U
2U2[OQ2oUO!U
P[U
2[U
2UO"**
2UO%U2P!)%fhCKy9h)N�rzr{r�)r�rir�r�rprorrrHr�r8r�r�r�r�r�r�r�r�r�)r��ancbuf�maxdata�mindatarqr�r�r�r�r�r�r�s&&&&        r�checkTruncatedArray�!SCMRightsTest.checkTruncatedArray8sS��
.�
/�
/�(,���t�~�~�7:�3�x��)I�%�C�%�0�	
����c�"�� � ��t�}�}�5�����4�&�2C�2C��D��a�<�G�r�M������W��q�)�+2�1�:�(�
�y�����V�%6�%6�7�����F�$5�$5�6�����I���8����S��^�W�5��k�k�#����
�
�i�!A��I��#�i�.�3�<�<�"?�@�B�	C��
�
�c��%0�
/�
/�s�.F2�2G	�;G	c�V�UO[O]2]Q5P!�r�r]	r^	�r`	r8r�r�s&r�testCmsgTruncLen0�SCMRightsTest.testCmsgTruncLen0Qs ��	
� � �����(:�A� �Frc�*�UO]2P!r�r�r�s&r�_testCmsgTruncLen0� SCMRightsTest._testCmsgTruncLen0Vr	rc�d�UO[O]2]*]Q5P!rc	re	r�s&r�testCmsgTruncLen0Plus1�$SCMRightsTest.testCmsgTruncLen0Plus1Zs%��	
� � �����(:�Q�(>�� �Jrc�*�UO]2P!r,r�r�s&r�_testCmsgTruncLen0Plus1�%SCMRightsTest._testCmsgTruncLen0Plus1_r	rc�f�UO[O[2[Q5P!)rd	�r`	r8r�r�r�s&r�testCmsgTruncLen1�SCMRightsTest.testCmsgTruncLen1cs%��	
� � ����
�(C�)3�	!�	5rc�*�UO]2P!r,r�r�s&r�_testCmsgTruncLen1� SCMRightsTest._testCmsgTruncLen1ir	rc��UO[O][*2]*
][*]*
Q5P!)r
rd	rr	r�s&r�testCmsgTruncLen2Minus1�%SCMRightsTest.testCmsgTruncLen2Minus1ns7��	
� � �����J��(G�!�(K�*+�j�.�A�)=�	!�	?rc�*�UO]2P!r,r�r�s&r�_testCmsgTruncLen2Minus1�&SCMRightsTest._testCmsgTruncLen2Minus1tr	rri����)r�rrE)Ar�r�r�r�r-	r�r�rgr�r�r�r�r�r�r�r6r8r�rr	r	r	r#r�rr�r�BSD_COMBINES_SCM_RIGHTSr	r	r	r	r	r!	r%	r*	r.	r1	r4	r8	r1r�rpr=	r@	rC	rF	�CMSG_TRUNC_RAISES_EMSGSIZErJ	rM	rP	rS	rV	rY	r`	rf	ri	rl	ro	rs	rv	ry	r|	r�r�r�s@rr�r��s�����
�E�
�A�6�
!���6A�
�A�
!��&�,�'�B�(�B��%�%�!�&�!�<�!��_�_�X�;�<�
�_�_�W�6�7�
�_�_�S�6�7�
�_�_�,�.G�H��&�,�'�)�(�I�8�8�=�
)��#�#�
�_�_�X�;�<�
�_�_�W�6�7�
�_�_�S�6�7�
�_�_�,�.G�H�	�I�8�8�=�$�
	��_�_�X�;�<�
�_�_�W�6�7�
�_�_�S�6�7�
�_�_�,�.G�H��&�,�'�H�(�I�8�8�=�
H� �+�+�
�_�_�X�;�<�
�_�_�W�6�7�
�_�_�S�6�7�
�_�_�,�.G�H�	�I�8�8�=�,�
	�	+��_�_�X�;�<�<�=�<�3�
8�?��&�,�'��(��$"�-�-�	)�.�	)�,��C�L�L�H�4�h�?�A�@�A��'�'�!�(�!��C�L�L�H�4�h�?�A�@�A�
���!� �!��C�L�L�H�4�h�?�
�_�_�/�1J�K�O�L�@�O����!� �!��C�L�L�H�4�h�?�
�_�_�/�1J�K�B�L�@�B��"�"�!�#�!��C�L�L�H�4�h�?�
�_�_�/�1J�K�J�L�@�J��(�(�!�)�!��2�C�L�L�H�4�h�?�
�_�_�/�1J�K�G�L�@�G��"�"�!�#�!��C�L�L�H�4�h�?�
�_�_�/�1J�K�K�L�@�K��'�'�!�(�!��C�L�L�H�4�h�?�
�_�_�/�1J�K�5�L�@�5��"�"�!�#�!��C�L�L�H�4�h�?�
�_�_�/�1J�K�?�L�@�?��(�(�!�)�!rr�c	�:`�\sQsQsn]sPsQsQ3Qks\\	QQ2Q2s
\
OQ2s\\	QQQ2Q	2s
\
OQ
2s\\	OQ2\\	QQ2Q22s\OQ
2sQ3Qks\\	QQQQ2Q2s\OQ2s\\	QQQQQ2Q2s\OQ2s\\	OQ2\\	QQQQQ2Q22s\OQ2s\\	OQ2\\	QQQQQ2Q22s\OQ2sQ4Qks\\	QQ2Q2s\OQ2s\\	QQ2Q2s\OQ2s\\	QQ2\O@\!Q2Q22s"\"OQ 2s#\\	QQ2\O@\!Q2Q!22s$\$OQ"2s%\\	QQ2\O@\!Q2Q#22s&\&OQ$2s'\\	QQ2\O@\!Q2Q%22s(\(OQ&2s)Q4Q'ks*\\	QQQQQ2Q(2s+\+OQ)2s,\\	QQQQQ2\O@\!Q2Q*22s-\-OQ+2s.\\	QQQQQ2\O@\!Q2Q,22s/\/OQ-2s0\\	QQQQQ2\O@\!Q2Q.22s1\1OQ/2s2\\	QQQQQ2\O@\!Q2Q022s3\3OQ12s4Q2s5Us6P!)5�RFC3542AncillaryTestiyc�V�-oSFDvq4oUOV41U2VRV41$J 	U!r)r[)r�r��dr�r�r�s&&    r�ancillaryMapping�%RFC3542AncillaryTest.ancillaryMapping�s=��
��07�,�J�9����j�4�a�8�)2�z�%�&�18��rc���UOO[O[O]2UO
O
2UOUO[[2U2vqEqgUOU[2UOVpO2UOUP	[OUQ5UO[U2]2UOU]*[ 2U]*vq�o
UOU[O2UOU	[O"2UOU
[$2UO[U
2[&2[(O(Q2oUO+U
2UO-U]*]2UO/U]*U2P!�r�r�r�)r�r�r8r�r�r[r�rir�rprorrrHr�r�rQr�r�rdr�r�r�r�r�)r��
ancbufsize�maxhopr�rqr�r�r�r�r�r�rOs&&&&        r�
checkHopLimit�"RFC3542AncillaryTest.checkHopLimit�sj��
	
���!�!�&�"5�"5�"(�":�":�A�	?�������$(�N�N�4�>�>�36�s�8�Z�%I�!��e�	
����c�"�� � ��}�}�5�����4�F�4E�4E�*�	�	,�	
����W��q�)����g�a�j�%�0�+2�1�:�(�
�y�����V�%8�%8�9�����F�$8�$8�9����i��/�����Y���4��K�K����	���I������!��a�(����Q�q�T�6�*rr�r�c�,�UOQQ5P!�rR�r�	)r�	r�s&r�testRecvHopLimit�%RFC3542AncillaryTest.testRecvHopLimit�s��	
���e��,rc��UOUOOUOQ52UO	[
2P!rb�rGr[r�r�r_rpr�s&r�_testRecvHopLimit�&RFC3542AncillaryTest._testRecvHopLimit�s6��
	
������,�,�T�5F�5F�,�G�H����#�rr�c�\�UO[O[2Q5P!)r�	)r�	r8r�r�r�s&r�testRecvHopLimitCMSG_SPACE�/RFC3542AncillaryTest.testRecvHopLimitCMSG_SPACE�s ��	
���f�&7�&7�
�&C��Drc��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�_testRecvHopLimitCMSG_SPACE�0RFC3542AncillaryTest._testRecvHopLimitCMSG_SPACE��4��������,�,�T�5F�5F�,�G�H����#�rr�c�B�UOQUOQ5P!�rR)r�	r�	)r�	�	hop_limitr�s&r�testSetHopLimit�$RFC3542AncillaryTest.testSetHopLimit�s��
	
���e�D�N�N��Crc�Z�UOUOOUOQ52UO	UO[,[O[O[OQUO,21,2[[22P!�r
r�)
rGr[r�r�rordrpr8r�r�r�r�	r�r�s&r�_testSetHopLimit�%RFC3542AncillaryTest._testSetHopLimit�s���������,�,�T�5F�5F�,�G�H����� � �#��#)�#6�#6��8L�8L�#(�;�;�s�T�^�^�4D�#E�#G�"H�
I�
��H�		rc��UOO[O[O]2UOO[O[O
]2UOO2UOUO[[2U2vqEqgUOU[2UOVpO2UOUP	[OUQ5UO[U2]2UO!U2oU[O[O"1*o	UO[U	2[$2[&O&Q2o
U
O)U	2UO+U
]*]2UO-U
]*]�2U[O[O.1*oUO[U2[$2[&O&Q2o
U
O)U2UO+U
]*]2UO-U
]*U2P!r�	)r�r�r8r�r�r�r[r�rir�rprorrrHr�r�r�	r�r�r�r�r�r�r�)r�r�	r�	r�rqr�r�r��ancmap�tcdatarO�hldatas&&&&        r�checkTrafficClassAndHopLimit�1RFC3542AncillaryTest.checkTrafficClassAndHopLimit�s���	
���!�!�&�"5�"5�"(�":�":�A�	?����!�!�&�"5�"5�"(�"8�"8�!�	=�������$(�N�N�4�>�>�36�s�8�Z�%I�!��e�	
����c�"�� � ��}�}�5�����4�F�4E�4E�*�	�	,�����W��q�)��&�&�w�/����,�,�f�.@�.@�A�B������V��j�1��K�K����	���F������!��a�(����Q�q�T�3�'���,�,�f�.B�.B�C�D������V��j�1��K�K����	���F������!��a�(����Q�q�T�6�*rr�r�c�,�UOQQ5P!r�	)r�	r�s&r�testRecvTrafficClassAndHopLimit�4RFC3542AncillaryTest.testRecvTrafficClassAndHopLimits��	
�)�)�U�)�;rc��UOUOOUOQ52UO	[
2P!rbr�	r�s&r� _testRecvTrafficClassAndHopLimit�5RFC3542AncillaryTest._testRecvTrafficClassAndHopLimitr�	rc�j�UO[O[2]*Q5P!�r
r�	)r�	r8r�r�r�s&r�)testRecvTrafficClassAndHopLimitCMSG_SPACE�>RFC3542AncillaryTest.testRecvTrafficClassAndHopLimitCMSG_SPACEs*��
	
�)�)��(�(��4�q�8�	*�	:rc��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�*_testRecvTrafficClassAndHopLimitCMSG_SPACE�?RFC3542AncillaryTest._testRecvTrafficClassAndHopLimitCMSG_SPACEr�	rc�B�UOQUOQ5P!r�	�r�	r�	r�s&r�testSetTrafficClassAndHopLimit�3RFC3542AncillaryTest.testSetTrafficClassAndHopLimits!��	
�)�)�U�15���	*�	Arc���UOUOOUOQ52UO	UO[,[O[O[OQUO,21[O[O[OQUO,21,2[[22P!r�	)rGr[r�r�rordrpr8r�r�r��
traffic_classr�r�	r�r�s&r�_testSetTrafficClassAndHopLimit�4RFC3542AncillaryTest._testSetTrafficClassAndHopLimit!s���������,�,�T�5F�5F�,�G�H����� � �#��#)�#6�#6��8J�8J�#(�;�;�s�T�5G�5G�4H�#I�#K�#)�#6�#6��8L�8L�#(�;�;�s�T�^�^�4D�#E�#G�"H�
I�

��H�
	rc�B�UOQUOQ5P!r�	r�	r�s&r�testOddCmsgSize�$RFC3542AncillaryTest.testOddCmsgSize,s!��	
�)�)�U�15���	*�	Arc��UOUOOUOQ52UO	[
,[O[O[OQUO,2O2Q*1[O[O[OQUO,21,2oP![c�oSOSO ["2SO	[
,[O[O[OQSO,21[O[O[OQSO,21,2oSO%S['[
22Po=P!Po=hh9h)r
r�rF)rGr[r�r�rdrpr8r�r�r�r�	r�r�r�	r=rQrtr�ror�)r�r�rs&  r�_testOddCmsgSize�%RFC3542AncillaryTest._testOddCmsgSize6s]��������,�,�T�5F�5F�,�G�H�	/��)�)����%�%�v�'9�'9��+�+�c�D�$6�$6�#7�8�@�@�B�W�L�N��%�%�v�';�';��+�+�c�D�N�N�#3�4�6�7�8�F���	/��!�!�!�'�'�3�/��)�)����%�%�v�'9�'9��+�+�c�D�$6�$6�#7�8�:��%�%�v�';�';��+�+�c�D�N�N�#3�4�6�7�8�F�
���V�S��X�.�.��	/�s�B,C&�&	G�0G�1CG
�
Gc���UOO[O[O]2UO
O
2UeQLU1oUOUO[[2,UN3vqEqgUOU[2UOVpO2UOU,2UOUP	[OUQ5P!)r�r7	r)r�r�r8r�r�r[r�rir�rprorrrHr�r�)r�r�	r�r%rqr�r�r�s&&&     r�checkHopLimitTruncatedHeader�1RFC3542AncillaryTest.checkHopLimitTruncatedHeaderLs���	
���!�!�&�"5�"5�"(�":�":�A�	?��������'�r�j�]��$(�N�N�4�>�>�36�s�8�%D�>B�%D�!��e�	
����c�"�� � ��}�}�5�����"�%�����4�&�2C�2C�*�	�	,rc�J�UOP[OQ5P!)N�r�	r��r�	r8r�r�s&rr=	�+RFC3542AncillaryTest.testCmsgTruncNoBufSize`s%��	
�)�)�T�
7=�6G�6G�	*�	Irc��UOUOOUOQ52UO	[
2P!rbr�	r�s&rr@	�,RFC3542AncillaryTest._testCmsgTruncNoBufSizekr�	rc�J�UO][OQ5P!)rr�	r�	r�s&r�testSingleCmsgTrunc0�)RFC3542AncillaryTest.testSingleCmsgTrunc0ps#��	
�)�)�Q�6<�6G�6G�	*�	Irc��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�_testSingleCmsgTrunc0�*RFC3542AncillaryTest._testSingleCmsgTrunc0wr�	rrH	c�,�UO]Q5P!)r�r�	)r�	r�s&r�testSingleCmsgTrunc1�)RFC3542AncillaryTest.testSingleCmsgTrunc1s��	
�)�)�Q�)�7rc��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�_testSingleCmsgTrunc1�*RFC3542AncillaryTest._testSingleCmsgTrunc1�r�	rc�B�UO][*Q5P!r�	)r�	r�r�s&r�testSingleCmsgTrunc2Int�,RFC3542AncillaryTest.testSingleCmsgTrunc2Int�s��	
�)�)�Q��^�)�Drc��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�_testSingleCmsgTrunc2Int�-RFC3542AncillaryTest._testSingleCmsgTrunc2Int�r�	rc�b�UO[O]2]*
Q5P!)rr�	)r�	r8r�r�s&r�testSingleCmsgTruncLen0Minus1�2RFC3542AncillaryTest.testSingleCmsgTruncLen0Minus1�s#��	
�)�)�V�_�_�Q�5G�!�5K�)�Lrc��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�_testSingleCmsgTruncLen0Minus1�3RFC3542AncillaryTest._testSingleCmsgTruncLen0Minus1�r�	rc	�j�UOO[O[O]2UO
O
2[29^tt^2UOUO[[2[O[2]*
2vqq4PPP2UOW[2UOWUO2UO!WP	[O"Q5UO%[W2]2U%cnU]*vqVoUOU[O2UOU[O&2UO)[U2[2P!P!)%fhK�9h)r�r\	)r�r�r8r�r�r[r�r�rir�rpr�r�rorrrHr�r�r�r�r(	r)	s&       r�testSingleCmsgTruncInData�.RFC3542AncillaryTest.testSingleCmsgTruncInData�s'��	
���!�!�&�"5�"5�"(�":�":�A�	?�������
-�
/�
/�(,�������C��&�/�/�*�*E��*I�)K�%�C�%�0�	
����c�"�� � ��t�}�}�5�����4�&�2C�2C��D����S��\�1�-��/6�q�z�,�J�9����Z��)<�)<�=����Y��(<�(<�=��O�O�C�	�N�J�7�	�0�
/�s�'A
F"�"F2	�+F2	c��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�_testSingleCmsgTruncInData�/RFC3542AncillaryTest._testSingleCmsgTruncInData�r�	rc��UOO[O[O]2UOO[O[O
]2UOO2UOUO[[2U2vq4qVUOU[2UOV`O2UOUP	[OUQ5UO[U2]2U]*vqxo	UOU[O2UO!U[O"[O$.2UO[U	2[&2[(O(Q2o
U
O+U	2UO-U
]*]2UO/U
]*]�2P!)r�r7	r�)r�r�r8r�r�r�r[r�rir�rprorrrHr�r�rYr�r�r�r�r�r�r�)r�r�	r�rqr�r�r�r�r�r�rOs&&&        r�checkTruncatedSecondHeader�/RFC3542AncillaryTest.checkTruncatedSecondHeader�st��	
���!�!�&�"5�"5�"(�":�":�A�	?����!�!�&�"5�"5�"(�"8�"8�!�	=�������$(�N�N�4�>�>�36�s�8�Z�%I�!��e�	
����c�"�� � ��}�}�5�����4�&�2C�2C�*�	�	,�	
����W��q�)�+2�1�:�(�
�y�����V�%8�%8�9��
�
�i�&�"4�"4�f�6J�6J�!K�L�����Y���4��K�K����	���I������!��a�(����Q�q�T�3�'rc�z�UO[O[2[OQ5P!r;	)r�	r8r�r�r�r�s&r�testSecondCmsgTrunc0�)RFC3542AncillaryTest.testSecondCmsgTrunc0�s.��	
�'�'��(9�(9�*�(E�4:�4E�4E�	(�	Grc��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�_testSecondCmsgTrunc0�*RFC3542AncillaryTest._testSecondCmsgTrunc0�r�	rc�h�UO[O[2]*2P!r��r�	r8r�r�r�s&r�testSecondCmsgTrunc1�)RFC3542AncillaryTest.testSecondCmsgTrunc1�s"��	
�'�'��(9�(9�*�(E��(I�Jrc��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�_testSecondCmsgTrunc1�*RFC3542AncillaryTest._testSecondCmsgTrunc1�r�	rc�~�UO[O[2][**2P!r,r�	r�s&r�testSecondCmsgTrunc2Int�,RFC3542AncillaryTest.testSecondCmsgTrunc2Int�s+��	
�'�'��(9�(9�*�(E�()�J��)7�	8rc��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�_testSecondCmsgTrunc2Int�-RFC3542AncillaryTest._testSecondCmsgTrunc2Int�r�	rc��UO[O[2[O]2*]*
2P!rE)r�	r8r�r�r�r�s&r�testSecondCmsgTruncLen0Minus1�2RFC3542AncillaryTest.testSecondCmsgTruncLen0Minus1�s9��	
�'�'��(9�(9�*�(E�(.����(:�);�=>�)?�	@rc��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�_testSecondCmsgTruncLen0Minus1�3RFC3542AncillaryTest._testSecondCmsgTruncLen0Minus1r�	rc
��UOO[O[O]2UOO[O[O
]2UOO2[29^tt^2UOUO[[2[O[2[O[2*]*
2vqq4PPP2UOW[2UO!WUO"2UO%WP	[O&Q5[O([O*.oWO-]2vqgoUOU[O2UO/U2UO[U2[2[0O0Q2o	U	O3U2UO5U	]*]2UO7U	]*]�2U%ceUO-]2vqgoUOU[O2UO/U2UO9[U2[2UOU,2P!)%fhCK�9h)r�r\	r�)r�r�r8r�r�r�r[r�r�rir�rpr�r�r�rorrrHr�r�r�r��pop�remover�r�r�r�r(	)
r�rqr�r�r��
cmsg_typesr�r�r�rOs
&         r�testSecondCmsgTruncInData�.RFC3542AncillaryTest.testSecondCmsgTruncInDatas���	
���!�!�&�"5�"5�"(�":�":�A�	?����!�!�&�"5�"5�"(�"8�"8�!�	=�������
-�
/�
/�(,�������C���!�!�*�-����
�0K�K�a�O�)Q�%�C�%�0�
	
����c�"�� � ��t�}�}�5�����4�&�2C�2C��D��(�(�&�*>�*>�?�
�+2�;�;�q�>�(�
�y�����V�%8�%8�9����)�$�����Y���4��K�K����	���I������!��a�(����Q�q�T�3�'��/6�{�{�1�~�,�J�9����Z��)<�)<�=����i�(��O�O�C�	�N�J�7�����"�%�50�
/�
/�s� A,K�K	�K	c��UOUOOUOQ52UO	[
2P!rbr�	r�s&r�_testSecondCmsgTruncInData�/RFC3542AncillaryTest._testSecondCmsgTruncInData/r�	rr)rbrrE)7r�r�r�r�r�	r�	r�	r�	r6r8r�	rr�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r=	r@	r�	r�	r#r�r	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r
r
r
r
r
r�r�r�s@rr�	r�	ysx�����I��M��+�8�&�-��?�-�@�-��!�!��"���&�,�(;�_�M�E�N�E� �+�+��,���&�-�-��+��&�-��?�D�@�,�D�
� � ��!��"+�H�&�-��#�]�4�<�4�<�%�0�0��1���&�,�(;�_�#�]�4�:�4�:�/�:�:��;���&�-�-��+��&�,�(;�_�#�]�4�A�4�,�A�$�/�/��0���&�-�-��+��&�,�(;�_�#�]�4�A�4�,�A�� � �/�!�/�*,�(�&�-��?�I�@�I��'�'��(���&�-��?�I�@�I��%�%��&���&�-��?�
�_�_�/�1J�K�8�L�@�8��%�%��&���&�-��?�
�_�_�/�1J�K�E�L�@�E��(�(��)���&�-��?�
�_�_�/�1J�K�M�L�@�M�#�.�.��/���&�-��?�
�_�_�/�1J�K�8�L�@�8�,�*�*��+��(�@�&�,�(;�_�#�]�4�G�4�G��%�%��&���&�,�(;�_�#�]�4�
�_�_�/�1J�K�K�L�4�K��%�%��&���&�,�(;�_�#�]�4�
�_�_�/�1J�K�8�L�4�8��(�(��)���&�,�(;�_�#�]�4�
�_�_�/�1J�K�@�L�4�@�#�.�.��/���&�,�(;�_�#�]�4�
�_�_�/�1J�K�"&�L�4�"&�H�*�*��+�rr�	c��\sQsQsQsP!)�SendrecvmsgUDPTestBasei7r�r�r�r�r�r�rrrr
r
7���	rr
r�c��\sQsQsQsP!)�SendmsgUDPTesti<rr
rrrr
r
<���rr
r�c��\sQsQsQsP!)�RecvmsgUDPTesti@rr
rrrr
r
@r
rr
r�c��\sQsQsQsP!)�RecvmsgIntoUDPTestiDrr
rrrr
r
Dr
rr
c�(`�\sQsQsnQsQsUsP!)�SendrecvmsgUDP6TestBaseiIc�8�UOUPPUPP2P!rrorps&&&rrr�+SendrecvmsgUDP6TestBase.checkRecvmsgAddressM� ��	
����s���U�3�B�Z�0rr�r�r�r�r�rrr�r�r�s@rr
r
Is����1�1rr
r>r
rKc��\sQsQsQsP!)�SendmsgUDP6TestiRrr
rrrr$
r$
R���	rr$
c��\sQsQsQsP!)�RecvmsgUDP6TestiXrr
rrrr'
r'
Xr%
rr'
c��\sQsQsQsP!)�RecvmsgIntoUDP6Testi^rr
rrrr)
r)
^r%
rr)
r�c��\sQsQsQsP!)�RecvmsgRFC3542AncillaryUDP6Testidrr
rrrr+
r+
d���	rr+
c��\sQsQsQsP!)�#RecvmsgIntoRFC3542AncillaryUDP6Testilrr
rrrr.
r.
ls��	rr.
c��\sQsQsQsP!)�SendrecvmsgUDPLITETestBaseivrr
rrrr0
r0
vs��
	rr0
c��\sQsQsQsP!)�SendmsgUDPLITETesti}rr
rrrr2
r2
}r%
rr2
c��\sQsQsQsP!)�RecvmsgUDPLITETesti�rr
rrrr4
r4
�r%
rr4
c��\sQsQsQsP!)�RecvmsgIntoUDPLITETesti�rr
rrrr6
r6
�r%
rr6
c�(`�\sQsQsnQsQsUsP!)�SendrecvmsgUDPLITE6TestBasei�c�8�UOUPPUPP2P!rrorps&&&rrr�/SendrecvmsgUDPLITE6TestBase.checkRecvmsgAddress�r!
rrr"
r�s@rr8
r8
�s����1�1rr8
c��\sQsQsQsP!)�SendmsgUDPLITE6Testi�rr
rrrr<
r<
�r,
rr<
c��\sQsQsQsP!)�RecvmsgUDPLITE6Testi�rr
rrrr>
r>
�r,
rr>
c��\sQsQsQsP!)�RecvmsgIntoUDPLITE6Testi�rr
rrrr@
r@
�r,
rr@
c��\sQsQsQsP!)�#RecvmsgRFC3542AncillaryUDPLITE6Testi�rr
rrrrB
rB
�s��	rrB
c��\sQsQsQsP!)�'RecvmsgIntoRFC3542AncillaryUDPLITE6Testi�rr
rrrrD
rD
�s��	rrD
c��\sQsQsQsP!)�SendrecvmsgTCPTestBasei�rr
rrrrF
rF
�r
rrF
c��\sQsQsQsP!)�SendmsgTCPTesti�rr
rrrrH
rH
�r
rrH
c��\sQsQsQsP!)�RecvmsgTCPTesti�rr
rrrrJ
rJ
�r
rrJ
c��\sQsQsQsP!)�RecvmsgIntoTCPTesti�rr
rrrrL
rL
�r
rrL
c��\sQsQsQsP!)�SendrecvmsgSCTPStreamTestBasei�rr
rrrrN
rN
�r
rrN
z6IPPROTO_SCTP: [Errno 62] Protocol not supported on AIXrsrcrc��\sQsQsQsP!)�SendmsgSCTPStreamTesti�rr
rrrrP
rP
�r%
rrP
c�4``�\sQsQsnU1QksQsUsU9s!)�RecvmsgSCTPStreamTesti�c��:�[[U_2P![c=oSO[O
6wcgSO
Q2Po=P!Po=hh9h�z4sporadic ENOTCONN (kernel issue?) - see issue #13876)r�rR
rur=rt�ENOTCONNr��r�rr�s& �rru�$RecvmsgSCTPStreamTest.testRecvmsgEOF�sL���	R��'��=�?���	R��w�w�%�.�.�(���M�M�P�Q�Q��	R����	A�A�A�A�Ar�r�r�r�r�rur�r�r�r�s@@rrR
rR
������R�RrrR
c�4``�\sQsQsnU1QksQsUsU9s!)�RecvmsgIntoSCTPStreamTesti�c��:�[[U_2P![c=oSO[O
6wcgSO
Q2Po=P!Po=hh9hrT
)r�r\
rur=rtrU
r�rV
s& �rru�(RecvmsgIntoSCTPStreamTest.testRecvmsgEOF�sL���	R��+�T�A�C���	R��w�w�%�.�.�(���M�M�P�Q�Q��	R�rX
rrY
r�s@@rr\
r\
�rZ
rr\
c��\sQsQsQsP!)�SendrecvmsgUnixStreamTestBaseirr
rrrr`
r`
r
rr`
r�c��\sQsQsQsP!)�SendmsgUnixStreamTestirr
rrrrb
rb
r
rrb
c��\sQsQsQsP!)�RecvmsgUnixStreamTesti
rr
rrrrd
rd

r%
rrd
c��\sQsQsQsP!)�RecvmsgIntoUnixStreamTestirr
rrrrf
rf
r%
rrf
r�r�c��\sQsQsQsP!)�RecvmsgSCMRightsStreamTestirr
rrrrh
rh
r
rrh
c��\sQsQsQsP!)�RecvmsgIntoSCMRightsStreamTestirr
rrrrj
rj
r%
rrj
c�``�\sQsQsnU1Qks\Os\\	Q2%cQs
QsQsUs
U9s!]s
QsQsUs
U9s!)�InterruptedTimeoutBasei*c��:�[RU_2[O[OQ2oUO	[O[OU2P!)c��]]*!r�r)�signumr@s&&rr�.InterruptedTimeoutBase.setUp.<locals>.<lambda>2s���A�r)r�r�r�r�r�)r��orig_alrm_handlerr�s& �rr��InterruptedTimeoutBase.setUp/s>���
��
��"�M�M�&�.�.�*E�G������
�
�v�~�~�7H�Ir�	setitimerg�������?c�R�[O[OU2P!r)r�rs
�ITIMER_REAL�r��secondss&&r�setAlarm�InterruptedTimeoutBase.setAlarm>s�����V�/�/��9rc�4�[OU2P!r)r�r�rv
s&&rrx
ry
Ds���L�L��!rr)r�r�r�r�r�rr]r|r7r��
alarm_timerx
r�r�r�r�s@@rrl
rl
*sG����
J��&�&�G�
�v�{�#�#��
�	:�	:��
�	"�	"rrl
�siginterruptr�rs
z+Don't have signal.alarm or signal.setitimerc�``�\sQsQsnU1QksQsQsQsQsQs	\
\OQ2Q	2s\
\OQ
2Q2s
QsUsU9s!)
�InterruptedRecvTimeoutTestiJc�p:�[RU_2UOOUO2P!r)r�r�r�r\r|r�s&�rr�� InterruptedRecvTimeoutTest.setUpQs"���
��
���	�	���T�\�\�*rc��UOUO2UO[29^tt^2oUU-U@PPP2UO]2P!)%fhK#9hSO]2h9hr)rx
r{
ror��r�rr%r�r|s&&*, r�checkInterruptedRecv�/InterruptedRecvTimeoutTest.checkInterruptedRecvUsc��	��M�M�$�/�/�*��"�"�#4�5�5���d�%�f�%�6�
�M�M�!��6�5��
�M�M�!��s(�8A3�
A �A3� A0	�)A0	�+A3�3Bc�T�UOUOOQ2P!rj)r�
r�rlr�s&r�testInterruptedRecvTimeout�5InterruptedRecvTimeoutTest.testInterruptedRecvTimeout_s���!�!�$�)�)�.�.�$�7rc�f�UOUOO[Q22P!rj)r�
r��	recv_intortr�s&r�testInterruptedRecvIntoTimeout�9InterruptedRecvTimeoutTest.testInterruptedRecvIntoTimeoutbs ���!�!�$�)�)�"5�"5�y���Grc�T�UOUOOQ2P!rj)r�
r�r�r�s&r�testInterruptedRecvfromTimeout�9InterruptedRecvTimeoutTest.testInterruptedRecvfromTimeoutes���!�!�$�)�)�"4�"4�d�;rc�f�UOUOO[Q22P!rj)r�
r�r�rtr�s&r�"testInterruptedRecvfromIntoTimeout�=InterruptedRecvTimeoutTest.testInterruptedRecvfromIntoTimeouths ���!�!�$�)�)�"9�"9�9�T�?�Krr�c�T�UOUOOQ2P!rj)r�
r�r�r�s&r�testInterruptedRecvmsgTimeout�8InterruptedRecvTimeoutTest.testInterruptedRecvmsgTimeoutks���!�!�$�)�)�"3�"3�T�:rr�c�h�UOUOO[Q2,2P!rj)r�
r�r�rtr�s&r�!testInterruptedRecvmsgIntoTimeout�<InterruptedRecvTimeoutTest.testInterruptedRecvmsgIntoTimeoutos#���!�!�$�)�)�"8�"8�9�T�?�:K�Lrr)r�r�r�r�r�r�
r�
r�
r�
r�
r6r8r�
r�
r�r�r�r�s@@rr~
r~
Jsk����+��8�H�<�L��&�-�-��+�;�,�;��&�-�-��0�M�1�M�Mrr~
c�``�\sQsQsnU1QksQsQs\O]
]2Q2s	\O]
]2Q2s
\O]
]2\\OQ2Q22s
Q	sUsU9s!)
�InterruptedSendTimeoutTestivc��:�[RU_2UO2UmUO	UOO
2[OUOQ5oUO2UOO2vUmoUO	UOO
2UO2UOOUO2P!)��target)r�r�r�r�r�rDr��Thread�	doConnect�startr�r^r�r3r\r|)r��
cli_threadr�r�s&  �rr�� InterruptedSendTimeoutTest.setUp~s����
��
�����)���������,�,�-��%�%�T�^�^�<�
�����"�i�i�.�.�0���
�t�����
�
�+�+�,��������!�!�$�,�,�/rc�R�UOOUO2P!r)r�rgr�r�s&rr�
�$InterruptedSendTimeoutTest.doConnect�s�������t�~�~�.rc��UO[29^tt^2oUOUO2UU-U@J')%fhL9hSO]2P!SO]2h9hr)ror�rx
r{
r�
s&&*, r�checkInterruptedSend�/InterruptedSendTimeoutTest.checkInterruptedSend�s_��	��"�"�#4�5�5����M�M�$�/�/�2��$�)�&�)�6�5��

�M�M�!���D�M�M�!��s"�A.�(A�A	�A	�A.�.Bc�T�UOUOOQ2P!��ar)r�
r�rvr�s&r�testInterruptedSendTimeout�5InterruptedSendTimeoutTest.testInterruptedSendTimeout�s���!�!�$�.�.�"5�"5�x�@rc�j�UOUOOQUO2P!r�
)r�
r�ryr�r�s&r�testInterruptedSendtoTimeout�7InterruptedSendTimeoutTest.testInterruptedSendtoTimeout�s'��	
�!�!�$�.�.�"7�"7��"&�.�.�	2rr�c�V�UOUOOQ,2P!r�
)r�
r�r�r�s&r�testInterruptedSendmsgTimeout�8InterruptedSendTimeoutTest.testInterruptedSendmsgTimeout�s ��	
�!�!�$�.�.�"8�"8�8�*�Err�)r�r�r�r�r�r�
r�
r�requires_mac_verr�
r�
r6r8r�
r�r�r�r�s@@rr�
r�
vs�����0�/�
�
���b�!�$�A�%�A�
���b�!�$�2�%�2�
���b�!�$��&�-�-��+�F�,�%�F�Frr�
c�.`�\sQsQsnQsQsQsUsP!)�
TCPCloserTesti�c�^�UOO2vq[OU,,,[O2vooUOV1,2UOUO
]2Q2UO2UO2UO2P!)r�r�)r�r^rr�
SHORT_TIMEOUTrorlrD)r�r_r�r�s&   r�	testClose�TCPCloserTest.testClose�s}���)�)�"�"�$����]�]�D�6�2�r�7�3H�3H�I�
��a������v�&�������1��t�,��
�
��	
�
�
���
�
�rc��UOO[UO12UOO	Q2[
O
UO,,,[O2vooUOVO,2UOUOO]2Q2P!)r�r)
rrgrFr�rvrrr�
rorl)r�r�r�s&  r�
_testClose�TCPCloserTest._testClose�s��������$��	�	�*�+����
�
�d���]�]�D�H�H�:�r�2�w�7L�7L�M�
��a��������z�*���������q�)�3�/rr)r�r�r�r�r�
r�
r�r�r�s@rr�
r�
�s����
�0�0rr�
c�V`�\sQsQsnQQksQsQsQsQsQs	Qs
Q	sQ
sUs
P!)�BasicSocketPairTesti�c�4�[OVQ5P!r)r�r�rs&&rr��BasicSocketPairTest.__init__�s�������<rc��UOU[O2[[Q2%c,UOUO[O
2L*UOUO[O2UOUO[O2UOUO]2P!)r�)
rQr8r7rorar�rsrrcrbr�s&&r�_check_defaults�#BasicSocketPairTest._check_defaults�s������d�F�M�M�2��6�9�%�%����T�[�[�&�.�.�9����T�[�[�&�.�.�9�������F�$6�$6�7�������Q�'rc�>�UOUO2P!r)r�
rr�s&r�
_testDefaults�!BasicSocketPairTest._testDefaults�s�����T�X�X�&rc�>�UOUO2P!r)r�
r�r�s&r�testDefaults� BasicSocketPairTest.testDefaults�s�����T�Y�Y�'rc�j�UOOQ2oUOU[2P!rj�r�rlrorprrs& rr��BasicSocketPairTest.testRecv��$���i�i�n�n�T�"������c�"rc�F�UOO[2P!r�rrvrpr�s&rr��BasicSocketPairTest._testRecv�������
�
�c�rc�F�UOO[2P!r�r�rvrpr�s&r�testSend�BasicSocketPairTest.testSend�����	�	���s�rc�j�UOOQ2oUOU[2P!rj�rrlrorprrs& r�	_testSend�BasicSocketPairTest._testSend��$���h�h�m�m�D�!������c�"rrr!)r�r�r�r�r�r�
r�
r�
r�r�r�
r�
r�r�r�s@rr�
r�
�s2����=�(�'�(�#���#�#rr�
c�2``�\sQsQsnQsU1QksU1QksQsQsQs	Qs
Q	sQ
s\
O\\Q2%(9%f\\Q2%(Q
2\
O"\O&Q2Q22sQsQsQsQsUsU9s!)�PurePythonSocketPairTesti�c��[O[O2![c([O[O2t!h9hr)r8r�r
r=rsr�s&rr��#PurePythonSocketPairTest.socketpair�s@��	5��$�$�V�_�_�5�5���	5��$�$�V�^�^�4�4�	5�s�#'�	A�%A�Ac�:�[[Q2%c0[OUm[O
[mLPUm[RU_2P!)r�)r7rJr8r��_orig_sp�_fallback_socketpairr�r�r�s&�rr��PurePythonSocketPairTest.setUp�s?����7�L�)�)�"�-�-�D�M�!'� ;� ;�F��!�D�M�
��
�rc�p:�[RU_2UOdUO[mP!P!r)r�r�r�
r8r�r�s&�rr��!PurePythonSocketPairTest.tearDowns)���
�����=�=�$� $�
�
�F��%rc�j�UOOQ2oUOU[2P!rjr�
rrs& r�	test_recv�"PurePythonSocketPairTest.test_recvr�
rc�F�UOO[2P!rr�
r�s&r�
_test_recv�#PurePythonSocketPairTest._test_recv
r�
rc�F�UOO[2P!rr�
r�s&r�	test_send�"PurePythonSocketPairTest.test_send
r�
rc�j�UOOQ2oUOU[2P!rjr�
rrs& r�
_test_send�#PurePythonSocketPairTest._test_sendr�
rc��[O[O2vqUO2UO2P!r)r8r�rsrD�r�rr7s&  r�	test_ipv4�"PurePythonSocketPairTest.test_ipv4s*���$�$�V�^�^�4����	�	���	�	�rc��P!rrr�s&r�
_test_ipv4�#PurePythonSocketPairTest._test_ipv4r�rr��IPV6_V6ONLY� IPV6_V6ONLY option not supportedr�c��[O[O2vqUO2UO2P!r)r8r�r
rDr�
s&  r�	test_ipv6�"PurePythonSocketPairTest.test_ipv6s,��
�$�$�V�_�_�5����	�	���	�	�rc��P!rrr�s&r�
_test_ipv6�#PurePythonSocketPairTest._test_ipv6%r�rc�``�[OOnPnUU1QkoP9q#U[OmUO[29^tt^2[O2vq#PPP2R[OmR%cRO2U%cUO2U%cUO2P!P!)%fhKq9hR[OmR%cRO2S%cSO2S%cSO2hh9h)Nc�,:�RU2oReo[O[O[O2nROP
2RO	UQ*2ROP	2U![
[1cK&h9h)N:Nr
N)r8rsrcrerg�BlockingIOError�InterruptedError)r�r{�inject_sock�orig_getsocknames& ��r�inject_getsocketname�[PurePythonSocketPairTest.test_injected_authentication_failure.<locals>.inject_getsocketname,s����'��-�H��"�$�m�m�F�N�N�F�<N�<N�O���'�'��.���'�'����5��'�'��-��O��(�)9�:����s�A?�?B�B�B)r8rGror=r�rD)r�r�sock1�sock2rrs&   @@r�$test_injected_authentication_failure�=PurePythonSocketPairTest.test_injected_authentication_failure(s����!�=�=�4�4����
	����	�(<�F�M�M�%��"�"�7�+�+�%�0�0�2���,�)9�F�M�M�%���!�!�#�����
�����
��,�+��)9�F�M�M�%���!�!�#�����
�����
��s;�2C1�C�5C1�C.	�'C.	�)C1�1E�E�'E�?Ec��P!rrr�s&r�%_test_injected_authentication_failure�>PurePythonSocketPairTest._test_injected_authentication_failureIs��
	
r)r�
)r�r�r�r�r�r�r�r�
r�
r�
r�
r�
r�
r#r�r7rJr�rr�r�
r�
r
r
r�r�r�r�s@@rr�
r�
�s�����
5�	�.�#���#��

��_�_���.�9�9�9�9� ��-�8�8�7�9�����3�3�5R�S��T�9��

��B
�
rr�
c�f`�\sQsQsnQQksQsQsQs\O\
O\PIQ2Q22s
\O\2s\
O\\Q2Q	2\O$]]]2Q
22sQsQsQ
sQsQsQsQsQsQsQsQsQsUs P!)�NonBlockingTCPTestsiQc�h�[O2Um[O	VQ5P!r)r�r��eventrr�rs&&rr��NonBlockingTCPTests.__init__Ss!���_�_�&��
��&�&�t�&�Crc��UOUOO2U2UQ6goUOUO2U2[dpUPIo[OU[O
[O2oUO[U[O*2%(U2P!P!)�)	ror�r=�getblockingr6�F_GETFLr��
O_NONBLOCK�bool)r�rvr|�blocking�fd_blocking�flags&&&   r�assert_sock_timeout�'NonBlockingTCPTests.assert_sock_timeoutWs���������-�-�/��9��s�N������)�)�+�X�6���#�d�?�K��;�;�t�U�]�]�B�M�M�B�D�����d�R�]�]�&:�!;�;�[�I�rc��UOOP	2UOUOP2UOOP
2UOUOQ2UOOP2UOUOP2UOO]2UOUO]2UOO]
2UOUO]
2UOO]2UOUO]2P!�Tr)r�rerr\r�s&r�testSetBlocking�#NonBlockingTCPTests.testSetBlockinghs����	�	���d�#�� � ����D�1��	�	���e�$�� � ����C�0��	�	���T�"�� � ����D�1��	�	���Q��� � ����A�.��	�	���R� �� � ����B�/��	�	���Q��� � ����A�.rc��P!rrr�s&r�_testSetBlocking�$NonBlockingTCPTests._testSetBlocking|r�rr�c��]PHoUOUO6�cUOQ2UOOP
2UO
UOO2Q2UOOUO]*2UOUOO22P!)rzneeds UINT_MAX < ULONG_MAXr)	r�r r�r�r�reror=r�r!s& r�testSetBlocking_overflow�,NonBlockingTCPTests.testSetBlocking_overflows���	�����!4�!4�4��M�M�6�7��	�	���e�$�������-�-�/��5��	�	���i�0�0�1�4�5����$�)�)�.�.�0�1rrdztest needs socket.SOCK_NONBLOCKc��UOO2[O[O[O[O
*2UmUO
UO]2P!rE)r�rDr8rsrcrdrr�s&r�testInitNonBlocking�'NonBlockingTCPTests.testInitNonBlocking�sQ��
	
�	�	�����M�M�&�.�.�"(�"4�"4�v�7K�7K�"K�M��	�� � ����A�.rc��P!rrr�s&r�_testInitNonBlocking�(NonBlockingTCPTests._testInitNonBlocking�r�rc�J�[P29^tt^2UOO]
2UOO2vqUO	UO
2UO
UO22PPP2P!)%fhP!9hr)r~r�r\r^r�rDr�r=r�s&  r�testInheritFlagsBlocking�,NonBlockingTCPTests.testInheritFlagsBlocking�si��&�d�
+�
+��I�I� � ��$����)�)�+�J�D��O�O�D�J�J�'����d�o�o�/�0�	,�
+�
+�
+�s�A2B�B"	�B"	c�^�UOO[UO12P!r�rrgrFr�r�s&r�_testInheritFlagsBlocking�-NonBlockingTCPTests._testInheritFlagsBlocking���������$��	�	�*�+rc�P�Qo[U29^tt^2UOO]
2UOO2vq#UO	UO
2UO
UO2U2PPP2P!)%fhP!9h)g4@)r~r�r\r^r�rDror=)r��default_timeoutr_r�s&   r�testInheritFlagsTimeout�+NonBlockingTCPTests.testInheritFlagsTimeout�sp����
%�o�
6�
6��I�I� � ��$����)�)�+�J�D��O�O�D�J�J�'����T�_�_�.��@�	7�
6�
6�
6�s�A3B�B%	�B%	c�^�UOO[UO12P!rr3r�s&r�_testInheritFlagsTimeout�,NonBlockingTCPTests._testInheritFlagsTimeout�r6rc��UOOP
2[O2oUO	[
29^tt^2UOO
2vq#PPP2[O2U*
oUOUQ2UOO2[OUO,,,[O2vqVoUOU7cUOQ2UOO
2vq#UOUO2UO!UO#22P!)%fhCK9h)F��?z'Error trying to do accept after select.)r�rere�	monotonicrorr^r(	rr�rr�LONG_TIMEOUTrhr�rDr�r=)r��
start_timer_r��dtr�r�r?s&       r�
testAccept�NonBlockingTCPTests.testAccept�s����	�	���e�$��^�^�%�
�
�
�
��
/�
/����)�)�+�J�D�0�
�^�^�
�
�
*������C� ��
�
����!�=�=�$�)�)��b�"�g�>R�>R�S���S��9�9�D� ��I�I�?�@��Y�Y�%�%�'�
������
�
�#����$�/�/�+�,�0�
/�
/�s�E+�+E<	�4E<	c��UOO2UOO[UO
12P!r)rr�rrgrFr�r�s&r�_testAccept�NonBlockingTCPTests._testAccept�s-��	
�
�
���������$��	�	�*�+rc�f�UOO2vqUOUO2UO	P
2UO[29^tt^2UO[[22oPPP2UOO2[OU,,,[O2vqEoV7cUOQ2UO[[22oUO!U[2P!)%fhK�9h)Fz0Error during select call to non-blocking socket.)r�r^r�rDrerorrlr�rprr�rrrArhro)r�r_r�rqr�r�r?s&      rr��NonBlockingTCPTests.testRecv�s����Y�Y�%�%�'�
������
�
�#�������
�
��
/�
/��)�)�C��H�%�C�0�	
�
�
����!�=�=�$���R��9M�9M�N���S����I�I�H�I��i�i��C��!������c�"�0�
/�s�'D � D0	�)D0	c���UOO[UO12UOO2UOO
[2P!r)rrgrFr�rr�r�rpr�s&rr��NonBlockingTCPTests._testRecv�sA�������$��	�	�*�+�	
�
�
����	
������rc�>�[d[O]*oLQoUOO2vq#UO	UO
2UO
U2UO[[22oP![cP!h9h�Nr)r�r;r�r^r�rDr\r�rlr�rp)r��
large_timeoutr_r�rqs&    r�testLargeTimeout�$NonBlockingTCPTests.testLargeTimeout�s���� �%�-�-��1�M�&�M��Y�Y�%�%�'�
������
�
�#�	��O�O�M�*�
�i�i��C��!���	�	�
�	�s�B
�
	B�B�Bc�<�[d[O]*oLQoUOO[UO
12UOO
U2UOO[2P![cP!h9hrN)
r�r;rrgrFr�r\r�r�rp)r�rOs& r�_testLargeTimeout�%NonBlockingTCPTests._testLargeTimeoutsw��� �%�-�-��1�M�&�M������$��	�	�*�+�	��H�H���
�.�	
���������	��	�s�B�	B�B�B)rr�r!)!r�r�r�r�r�rr!r$rrr#r�r�r'�_testSetBlocking_overflowr�r7r8�requires_linux_versionr*r-r0r4r9r<rDrGr�r�rPrSr�r�r�s@rrrQs�����D�J�"/�(
�
���
�_�_�Y�$�&�(<�=�
2�>��
2�!(� 4� 4�5E� F��
������9�:�<��#�#�A�q�"�-�/�.�<�/�
�1�,�	A�,�-�,,�#�(�"�(�rrc��`�\sQsQsnQsPsQsQsPsQs	\
sQs\
s
Q!QksQsQ	sQ
sQsQsQ
sQsQsQsQsQsQsQsQsQsQsQsQs Qs!Qs"Qs#Qs$Qs%Qs&Q s'Us(P!)"�FileObjectClassTestCaseiaSUnit tests for the object returned by socket.makefile()

self.read_file is the io object returned by makefile() on
the client connection.  You can read from this file to
get output from the server.

self.write_file is the io object returned by makefile() on the
server connection.  You can write to this file to send output
to the client.
r�strictr4r"c�4�[OVQ5P!rr�rs&&rr�� FileObjectClassTestCase.__init__)r�rc�z�[]2Tt,tFDo[O2MJ	tovUmUmUmUm[OU2UOOUOUOUOUOUOQ5UmP!ttoh)r��r�errors�newline)r,r�r��evt1�evt2�
serv_finished�cli_finishedr|r�r�r	�	read_moder�rr^r_�	read_file)r�r�s& rr��FileObjectClassTestCase.setUp,s���',�Q�x�G1�'/�!�I�O�O��x�G1�C��	�4�9�d�0�$�2C��!�!�$�'����/�/��N�N�D�L�L��}�}��[�[��l�l�	0�$����G1s� B8c���UOO2UOO2UO	UOO
2PUm[OU2P!r)rbr�rerDrG�closedr|r�r�s&rr�� FileObjectClassTestCase.tearDown6sO������� �������������-�-�.�����$�$�T�*rc���[OU2UOOUOUO
UOUOUOQ5Um	P!)r])
r|rr�r	�
write_moder�rr^r_�
write_filer�s&rr�#FileObjectClassTestCase.clientSetUp=sM���'�'��-��.�.�1�1��O�O�T�\�\��}�}��[�[��l�l�	2�$��rc���UOO2UOO2UO	UOO
2PUm[OU2P!r)rcr�rlrDrGrhr|rr�s&rr�&FileObjectClassTestCase.clientTearDownEsO��������������������.�.�/�����*�*�4�0rc��UOO]2UOO]2UO	[
UOO]2UO	[29^tt^2oUOO]2PPP2UOQ[WO22P!)%fhK79h)r�z!cannot read from timed out object)
r�r\rer�ror�r=rYr;rz)r��ctxs& r�testReadAfterTimeout�,FileObjectClassTestCase.testReadAfterTimeoutLs���	
�
�
� � ��#������A�����,����(;�(;�Q�?�
�
�
�w�
'�
'�3��N�N����"�(��
�
�9�3�s�}�}�;M�N�(�
'�s�C�C	�C	c���UOOUOQ*2UOO2UOO2P!):rr�N)rlr��	write_msg�flushrbr�r�s&r�_testReadAfterTimeout�-FileObjectClassTestCase._testReadAfterTimeoutXs?�������d�n�n�S�1�2������������!rc���UOO[UO2]*
2oUOO]2oV*oUO	V0O2P!)r�)rer�r��read_msgro)r��	first_seg�
second_segrqs&   r�
testSmallRead�%FileObjectClassTestCase.testSmallRead]sR���N�N�'�'��D�M�M�(:�1�(<�=�	��^�^�(�(��+�
��$������m�m�,rc��UOOUO2UOO2P!r�rlr�rurvr�s&r�_testSmallRead�&FileObjectClassTestCase._testSmallReadd�(�������d�n�n�-������rc�r�UOO2oUOVO2P!r)rer�rorzrrs& r�testFullRead�$FileObjectClassTestCase.testFullReadhs&���n�n�!�!�#������m�m�,rc��UOOUO2UOO2P!r)rlr�rurDr�s&r�
_testFullRead�%FileObjectClassTestCase._testFullReadmr�rc���[UO22oUOO]2oU%fL
V*
oJ/UO	VO2P!r�)rrzrer�ro)r�r��chars&  r�testUnbufferedRead�*FileObjectClassTestCase.testUnbufferedReadqsI���4�=�=�!�#����>�>�&�&�q�)�D����K�C�����m�m�,rc��UOOUO2UOO2P!rr�r�s&r�_testUnbufferedRead�+FileObjectClassTestCase._testUnbufferedRead{r�rc�r�UOO2oUOVO2P!r)re�readlinerorz�r��lines& r�testReadline�$FileObjectClassTestCase.testReadlines&���~�~�&�&�(������}�}�-rc��UOOUO2UOO2P!rr�r�s&r�
_testReadline�%FileObjectClassTestCase._testReadline�r�rc��UOO2UOO2oUO	VO
2P!r)r�rDrer�rorzrrs& r�testCloseAfterMakefile�.FileObjectClassTestCase.testCloseAfterMakefile�s6���
�
�����n�n�!�!�#������m�m�,rc��UOOUO2UOO2P!rr�r�s&r�_testCloseAfterMakefile�/FileObjectClassTestCase._testCloseAfterMakefile�r�rc�"�UOO2UOO[	[
22o[
UO[2%cUO2oUOVO2P!r)rerDr�rlr�rprrzr;�decoderorrs& r�testMakefileAfterMakefileClose�6FileObjectClassTestCase.testMakefileAfterMakefileClose�sX���������m�m� � ��S��*���d�m�m�S�)�)��*�*�,�C�����m�m�,rc��UOOUO2UOO2P!rr�r�s&r�_testMakefileAfterMakefileClose�7FileObjectClassTestCase._testMakefileAfterMakefileClose�r�rc�\�UOUOO%(2P!r)rGrerhr�s&r�testClosedAttr�&FileObjectClassTestCase.testClosedAttr�s�����D�N�N�1�1�1�2rc�\�UOUOO%(2P!r)rGrlrhr�s&r�_testClosedAttr�'FileObjectClassTestCase._testClosedAttr�s�����D�O�O�2�2�2�3rc���UOUOOUO2UOUOOUO
O
22P!r)rorerrdr/r�rZr�s&r�testAttributes�&FileObjectClassTestCase.testAttributes�sG��������,�,�d�n�n�=�������,�,�d�m�m�.B�.B�.D�Erc���UOUOOUO2UOUOOUO
O
22P!r)rorlrrkr/r�rZr�s&r�_testAttributes�'FileObjectClassTestCase._testAttributes�sG��������-�-�t���?�������-�-�t�~�~�/D�/D�/F�Grc��UOO2UO[UOO2UO
O2UO[UO
O2P!r)rerDror�rZr�r=rGr�s&r�
testRealClose�%FileObjectClassTestCase.testRealClose�sV�����������*�d�n�n�&;�&;�<��
�
�������'�4�=�=�#<�#<�=rc��P!rrr�s&r�_testRealClose�&FileObjectClassTestCase._testRealClose�r�r)rcr`rarerbrlr!))r�r�r�r�r�r�rr^r_rdrprzrkrur�r�r�rrrrrwr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�s@rrXrXs�����	��G��H�
�F��G��I��H��J��I�B�$�+�$�1�
O�"�
-� �-�
 �-� �.�
 �-� �-� �3�4�F�H�>�
�
rrXc�`�\sQsQsnQs]sQsQsQsQs	\
O\\
Q2Q2Q	2sQ
sQsQsQ
sQsQsUsP!)�!UnbufferedFileObjectClassTestCasei�asRepeat the tests from FileObjectClassTestCase with bufsize==0.

In this case (and in this case only), it should be possible to
create a file object, read a line from it, create another file
object, read another line from it, without loss of data in the
first file object's buffer.  Note that http.client relies on this
when reading multiple requests from the same socket.c�>�UOO2oUOUQUO*2UOOQ]2UmUOO2oUOUQUO*2P!)�A. r4�B. )rer�rorur�r	r�s& r�testUnbufferedReadline�8UnbufferedFileObjectClassTestCase.testUnbufferedReadline�sp���~�~�&�&�(������v����6�7����/�/��a�8����~�~�&�&�(������v����6�7rc���UOOQUO*2UOOQUO*2UOO2P!)r�r�r�r�s&r�_testUnbufferedReadline�9UnbufferedFileObjectClassTestCase._testUnbufferedReadline�sH�������f�t�~�~�5�6������f�t�~�~�5�6������rc�2�UOO2UOOQ2oUOVO2UO
O2UO
[UOOQ2P!rj)r�rDrlrorzreror=rrs& r�testMakefileClose�3UnbufferedFileObjectClassTestCase.testMakefileClose�sd���
�
�����m�m� � ��&������m�m�,����������'�4�=�=�#5�#5�t�<rc��UOOUO2UOO2P!rr�r�s&r�_testMakefileClose�4UnbufferedFileObjectClassTestCase._testMakefileClose�r�rr�r�c���[OUO2oUOO	2[OUO2oUOU]*
U2P!r�)r�r�r�rerDro)r��refcount_before�refcount_afters&  r�testMakefileCloseSocketDestroy�@UnbufferedFileObjectClassTestCase.testMakefileCloseSocketDestroy�sM���/�/�$�-�-�8��������������7������1�,�n�=rc��P!rrr�s&r�_testMakefileCloseSocketDestroy�AUnbufferedFileObjectClassTestCase._testMakefileCloseSocketDestroy�r�rc��UOOP
2UOUOO	[]
22P2UOUOO
[UO2]*
2P2UOO2UOOQ2UOO
[UO2]*
2oUeL[OQ2UOO
[UO2]*
2o[]
2oUOO	U2oUOU]2VPU*oUOV@O2UOUOO	[]22P2UOUOO
]2P2P!)Fr?g�?)r�rerore�readintortr�r�rzr`r�rar�rerf)r�r{r�r�rqs&    r�testSmallReadNonBlocking�:UnbufferedFileObjectClassTestCase.testSmallReadNonBlocking�se���
�
�!�!�%�(�������0�0��2��?��F�������,�,�S����-?�!�-C�D�d�K��	�	�
�
���	�	���s���N�N�'�'��D�M�M�(:�Q�(>�?�	����J�J�s�O����+�+�C��
�
�,>��,B�C�I���m���N�N�#�#�C�(������A���b�q�'�!������m�m�,�������0�0��2��?��F�������,�,�Q�/��6rc�&�UOOQ2UOOUO2UOO2UOO2UOOQ2P!)r?�@)	r`r�rlr�rurvrar�rbr�s&r�_testSmallReadNonBlocking�;UnbufferedFileObjectClassTestCase._testSmallReadNonBlocking�s[���	�	���s�������d�n�n�-��������	�	�
�
��	
������$rc��UOOQ2UO%cUOUO2P!P!)r�)rcr��serv_skippedr�r�s&r�testWriteNonBlocking�6UnbufferedFileObjectClassTestCase.testWriteNonBlockings;�������s�#������M�M�$�+�+�,�rc�v�PUmUOOP
2Q[O*o]
oUO
O
U2oUOU]2[U2FD8oUO
O
U2oUeP!UOU]2J:	QUmP!)Nr�z$failed to saturate the socket buffer)	r�r�rerr�rlr�r�r,)r��BIG�LIMITr�r�s&    r�_testWriteNonBlocking�7UnbufferedFileObjectClassTestCase._testWriteNonBlockings��� ������"�"�5�)��W�*�*�*�����O�O�!�!�#�&�����1�a� ��u��A����%�%�c�*�A��y�����q�!�$��!G�D�r)rer�)r�r�r�r�r�r�r�r�r�r�r#r�r7r�r�r�r�r�r�r�r�r�r�s@rr�r��sp����<��G�8� �
=� ������m�4�7�9�>�9�>�
�7�&%�-�G�Grr�c��\sQsQs]sQsP!)�#LineBufferedFileObjectClassTestCasei$r�r�r�r�r�r�r�rrrr�r�$����Grr�c��\sQsQs]sQsP!)�$SmallBufferedFileObjectClassTestCasei)rr�rrrr�r�)r�rr�c�N�\sQsQsQsQs\OQ2sQs	\s
PsQsP!)�"UnicodeReadFileObjectClassTestCasei.�=Tests for socket.makefile() in text mode (rather than binary)r>rr"r�
r�r�r�r�r�rdrpr�rzrkrur_r�rrrr�r�.s'��G��I��z�z�'�"�H��J��I��Grr�c�N�\sQsQsQsQs\sQs\OQ2s
PsQsP!)�#UnicodeWriteFileObjectClassTestCasei8r�r4r!rr)
r�r�r�r�r�rdrprzrkr�rur_r�rrrr�r�8s'��G��I��H��J��
�
�7�#�I��Grr�c�l�\sQsQsQsQs\OQ2sQs	\OQ2s
PsQsP!)�'UnicodeReadWriteFileObjectClassTestCaseiBr�r>rr!rr�rrrr�r�Bs0��G��I��z�z�'�"�H��J��
�
�7�#�I��Grr�c�,`�\sQsQsnQsQsQsUsP!)�NetworkConnectionTestiLzProve network connection.c��[O[UO12UmUOUmP!r)r8�create_connectionrFr�rr�r�s&rr�!NetworkConnectionTest.clientSetUpOs*���+�+�T�4�9�9�,=�>�������r)rr�)r�r�r�r�r�rr�r�r�s@rr�r�Ls����#�"�"rr�c��\sQsQsQsQsP!)�
BasicTCPTest2iUzLTests that NetworkConnection does not break existing TCP functionality.
    r)r�r�r�r�r�r�rrrr�r�Us��rr�c��`�\sQsQsnQQ\O2s\OQ2s\	OQ2s\	OQ2sQs
QsQ	sUsP!)
�NetworkConnectionNoServeriYc�(`�\sQsQsnQsQsUsP!)�$NetworkConnectionNoServer.MockSocketi[c��[Q2g)z	timed out)r�rcs&*rrg�,NetworkConnectionNoServer.MockSocket.connect\s
���{�+�+rr)r�r�r�r�rgr�r�r�s@r�
MockSocketr�[s����	,�	,rr�c#� �[OoUO[mPw�U[mP!S[mh9h3h)z*Return a socket which times out on connect)r8r�)r��
old_sockets& r�mocked_socket_module�.NetworkConnectionNoServer.mocked_socket_module_s1����]�]�
�����
�	'��&�F�M��J�F�M�s�'A�<�
A�
A	�	Ac���[O2o[O[O[O2oUOUO2UO[29^tt^2oUO[U12PPP2UOWOO[O2P!)%fhKF9hr)rr�r8rsrcr�rDror=rgrFrorzrt�ECONNREFUSED)r�r�rr|s&   r�test_connect�&NetworkConnectionNoServer.test_connectis����-�-�/���m�m�F�N�N�F�,>�,>�?������	�	�"�
�
�
�w�
'�
'�2��K�K��t��%�(�������+�+�U�-?�-?�@�(�
'�s�C�C(	�!C(	c�R�[O2oUO[29^tt^2o[O
[U12PPP2[O2oUOWOOU2P!)%fhKM9hr)rr�ror=r8r�rF�get_socket_conn_refused_errsrYrzrt)r�r�r|�expected_errnoss&   r�test_create_connection�0NetworkConnectionNoServer.test_create_connectionrsm���-�-�/��
�
�
�w�
'�
'�2��$�$�d�D�\�2�(�"(�D�D�F���
�
�b�l�l�(�(�/�:�%(�
'�s�B�B&	�B&	c���[O2o[O[U1P	Q5UOQ2UOW[2UOFDoUOU[2J	[OQU][O2oUO[U2[UO22P![c
oSoPo=K�Po=hh9h)T)�
all_errorszexpected connection to failr�)rr�r8r�rFrh�ExceptionGrouprQ�
exceptionsr=r�rcror�)r�r�r�eg�	addressess&    r�!test_create_connection_all_errors�;NetworkConnectionNoServer.test_create_connection_all_errors�s����-�-�/��	5��$�$�d�D�\�d�C�
�I�I�3�4����b�.�1����A��!�!�!�W�-���&�&���q�&�"4�"4�6�	�	
����Y���R�]�]�);�<���	��B��	�s�C�	C5�(C5�)C0�0C5c��UO29^tt^2[O[Q12UO	Q2PPP2P![
cK[cAo[O%f SO[O6wcgPo=K\Po=hh9h)%fhP!9h)rzTimeoutError not raised)rr8r�rFrhr�r=rr�rt�EAFNOSUPPORTrs& r�test_create_connection_timeout�8NetworkConnectionNoServer.test_create_connection_timeout�s����
&�
&�
(�
(�
5��(�(�$���6��	�	�3�4�)�
(�� �
���
� �-�-�-����e�>P�>P�1P��2Q��
��)�
(�
(�s]�B-�A�B-�	B*�B*�B-� B*�)B*�*B%�B%�B%� B-�%B*�*B-�-B>	�6B>	r)r�r�r�r�r8r�r-�contextmanagerrr�skip_if_tcp_blackholerr	rrr�r�r�s@rr�r�Yst����,�V�]�]�,����'��'��(�(�A�)�A��(�(�;�)�;�0=�$5�5rr�c�~`�\sQsQsnPsQ
QksQsQsQs\s	Qs
\sQs\s
Qs\sQ	s\sQ
s\sQsQsUsP!)�NetworkConnectionAttributesTesti�c�^�[OVQ5[OU2P!rrrs&&rr��(NetworkConnectionAttributesTest.__init__�rrc�<�[O2UmP!r)rr��source_portr�s&rr�+NetworkConnectionAttributesTest.clientSetUp�s��(�9�9�;��rc��UOdUOO2PUm[OU2P!rrr�s&rr�.NetworkConnectionAttributesTest.clientTearDown�s/���8�8���H�H�N�N������%�%�d�+rc�`�UOO2vqUO2P!r)r�r^rDr�s&  r�_justAccept�+NetworkConnectionAttributesTest._justAccept�s���Y�Y�%�%�'�
���
�
�rc��[O[UO1[O
Q5UmUOUOO2UOUOO]2P!rb)r8r�rFr�rr]rr�rDrorar�s&r�_testFamily�+NetworkConnectionAttributesTest._testFamily�sT���+�+�T�4�9�9�,=�$+�$<�$<�>�����������'���������!�,rc�X�[O[UO1[O
PUO1Q5UmUOUOO2UOUOO2]*UO2P!)rv)r|�source_address)r8r�rFr�rr]rrr�rDrorGr�s&r�_testSourceAddress�2NetworkConnectionAttributesTest._testSourceAddress�su���+�+�T�4�9�9�,=�$+�$<�$<�,.��0@�0@�+A�C���	
��������'�������-�-�/��2�D�4D�4D�Erc���UO[O2PI2[O]*2[O[
UO12UmUOUOO2[OP2UOUOO2]*2P![OP2h9hr�rGr8rzr{r�rFr�rr�rDror=r�s&r�_testTimeoutDefault�3NetworkConnectionAttributesTest._testTimeoutDefault�s�������0�0�2�d�:�;�� � ��$�	+��/�/��t�y�y�0A�B�D�H��O�O�D�H�H�N�N�+��$�$�T�*�������,�,�.��3��
�$�$�T�*�s�AC�C)c���UO[O2PI2[O]2[O[
UO1PQ5UmUOUOO2[OP2UOUOO2P2P![OP2h9h)Nr
r-r�s&r�_testTimeoutNone�0NetworkConnectionAttributesTest._testTimeoutNone�s�������0�0�2�d�:�;�� � ��$�	+��/�/��t�y�y�0A�4�P�D�H��O�O�D�H�H�N�N�+��$�$�T�*�������,�,�.��5��
�$�$�T�*�s�AC�C+c��[O[UO1]Q5UmUOUOO
2]2P!)�r
)r8r�rFr�rror=r�s&r�_testTimeoutValueNamed�6NetworkConnectionAttributesTest._testTimeoutValueNamed�s<���+�+�T�4�9�9�,=�r�J���������,�,�.��3rc��[O[UO1]2UmUOUOO2UOUOO2]2P!)r4)	r8r�rFr�rr�rDror=r�s&r�_testTimeoutValueNonamed�8NetworkConnectionAttributesTest._testTimeoutValueNonamed�sP���+�+�T�4�9�9�,=�r�B�����������'�������,�,�.��3r)rrr!)r�r�r�r�rr�rrr#�
testFamilyr&�testSourceAddressr*�testTimeoutDefaultr.�testTimeoutNoner1�testTimeoutValueNamedr5�testTimeoutValueNonamedr8r�r�r�s@rrr�sp����
�C�&�<�,���J�-�$��F�%��	4�"�O�	6�(��4�*��4�4rrc�N`�\sQsQsnQ	QksQsQsQs\sQs	Qs
QsUsP!)
�NetworkConnectionBehaviourTesti�c�^�[OVQ5[OU2P!rrrs&&rr��'NetworkConnectionBehaviourTest.__init__�rrc��P!rrr�s&rr�*NetworkConnectionBehaviourTest.clientSetUp�r�rc�t�UOO2PUm[OU2P!rrr�s&rr�-NetworkConnectionBehaviourTest.clientTearDown�rrc���UOO2vqUOUO2[O
]2UO
Q2P!)r��done!)r�r^r�rDrerfrvr�s&  r�testInsideTimeout�0NetworkConnectionBehaviourTest.testInsideTimeouts=���Y�Y�%�%�'�
������
�
�#��
�
�1�
��	�	�(�rc��[O[UO129UmoUO]2oUO
UQ2P!)�rI)r8r�rFr�rrlro)r�rvr;s&  r�_testInsideTimeout�1NetworkConnectionBehaviourTest._testInsideTimeout
s?�� �2�2�D�$�)�)�3D�E�E���4��y�y��|������x�(rc�`�[O[UO1]Q59UmnUO[U1Qk2P!)r�r
c�(:�RO]2!)rM)rl�rvs�rr�DNetworkConnectionBehaviourTest._testOutsideTimeout.<locals>.<lambda>s
����	�	�!�r)r8r�rFr�rror�r�s&@r�_testOutsideTimeout�2NetworkConnectionBehaviourTest._testOutsideTimeouts6��� �2�2�D�$�)�)�3D�a�P�P���4����,�(<�=rr r!)
r�r�r�r�r�rrrJ�testOutsideTimeoutrNrTr�r�r�s@rrArA�s0����&�
�,�
�
+��)�
>�>rrAc�n`�\sQsQsnQsQs\O\\	Q2Q2Q2s
QsUsP!)�TCPTimeoutTestic�D`�U1QkoRO[UQ2P!)c�t:�ROOQ2ROO2P!)r?)r�r\r^�r%r�r�s*,�r�
raise_timeout�4TCPTimeoutTest.testTCPTimeout.<locals>.raise_timeouts%����I�I� � ��%��I�I���rz*Error generating a timeout exception (TCP)�ror��r�r\sf r�testTCPTimeout�TCPTimeoutTest.testTCPTimeouts ���	�	
���,�
�J�	Lrc�4�P
oUOOQ2UOO2oU%fUO	Q2P!P![cSO	Q2K;[
cP	oKISO	Q2K]9h)Frz%caught timeout instead of error (TCP)z!caught unexpected exception (TCP)z3accept() returned success when we did not expect it)r�r\r^r�rhr=�r��okrLs&  r�testTimeoutZero�TCPTimeoutTest.testTimeoutZeros��
��	;��I�I� � ��%��)�)�"�"�$�C���I�I�K�L���
�	?��I�I�=�>��	��B�	;��I�I�9�:�s#�5A�	B�!B�5B�>B�Br�ztest needs signal.alarm()c
�b`�UOOQ2QQ[2nU1Qko[O[OU2o[O
]2UOO
2oUOQ2[O
]2[O[OU2P![cSOQ2K[RcKc[cDoSOQ[S28QS8Q[O2802Po=K�Po=hh9h[O
]2h9hRcSOQ	2K�h9h[O[OS2h9h)
r�c��\sQsQsQsP!)�4TCPTimeoutTest.testInterruptedTimeout.<locals>.Alarmi2rr
rrr�Alarmri2s��rrjc�
:�Rgrr)r�r@rjs&&�r�
alarm_handler�<TCPTimeoutTest.testInterruptedTimeout.<locals>.alarm_handler4s����Krznothing caughtzcaught timeout instead of Alarmz)caught other exception instead of Alarm: �(z):
zgot Alarm in wrong place)
r�r\ryr�r�r�r^rhr�rr�	traceback�
format_exc)r�rlr�rLrrjs&    @r�testInterruptedTimeout�%TCPTimeoutTest.testInterruptedTimeout+s/���	
�	�	���S�!�	�I�	�	��M�M�&�.�.�-�@�	�	5�
 ����Q���i�i�&�&�(���	�	�*�+����Q��

�M�M�&�.�.�)�4��! �
=��	�	�;�<��
�� �
@��	�	���7�A�y�';�';�'=�?�@�@��
@�����Q����	2��I�I�0�1�	2��
�M�M�&�.�.�)�4�s��0C�
E�E)�	E�"E�4E�6E�;E�<E�>E�E�9E�E�E�E�E&�&E)�)F�/F�F�F�F�'F.r)
r�r�r�r�r`rer#r�r7r�rqr�r�r�s@rrXrXs<����L�M�������1�4�6�5�6�5rrXc�.`�\sQsQsnQsQsQsUsP!)�UDPTimeoutTestiMc�D`�U1QkoRO[UQ2P!)c�v:�ROOQ2ROOQ2P!�r?rk�r�r\rlr[s*,�rr\�4UDPTimeoutTest.testUDPTimeout.<locals>.raise_timeoutP�%����I�I� � ��%��I�I�N�N�4� rz*Error generating a timeout exception (UDP)r^r_sf r�testUDPTimeout�UDPTimeoutTest.testUDPTimeoutOs ���	!�	
���,�
�J�	Lrc�6�P
oUOOQ2UOOQ2oU%fUO	Q2P!P![cSO	Q2K;[
cP	oKISO	Q2K]9h)Frrkz%caught timeout instead of error (UDP)z!caught unexpected exception (UDP)�1recv() returned success when we did not expect it�r�r\rlr�rhr=rcs&  rre�UDPTimeoutTest.testTimeoutZeroVs��
��	;��I�I� � ��%��)�)�.�.��&�C���I�I�I�J���
�	?��I�I�=�>��	��B�	;��I�I�9�:��#�6A�	B�"B�6B�?B�Br)r�r�r�r�r{rer�r�r�s@rrtrtMs����L�K�Krrtc�.`�\sQsQsnQsQsQsUsP!)�UDPLITETimeoutTestidc�D`�U1QkoRO[UQ2P!)c�v:�ROOQ2ROOQ2P!rwrxr[s*,�rr\�<UDPLITETimeoutTest.testUDPLITETimeout.<locals>.raise_timeoutirzrz.Error generating a timeout exception (UDPLITE)r^r_sf r�testUDPLITETimeout�%UDPLITETimeoutTest.testUDPLITETimeouths ���	!�	
���,�
�N�	Prc�6�P
oUOOQ2UOOQ2oU%fUO	Q2P!P![cSO	Q2K;[
cP	oKISO	Q2K]9h)Frrkz)caught timeout instead of error (UDPLITE)z%caught unexpected exception (UDPLITE)r~rrcs&  rre�"UDPLITETimeoutTest.testTimeoutZeroos���
��	?��I�I� � ��%��)�)�.�.��&�C���I�I�I�J���
�	C��I�I�A�B��	��B�	?��I�I�=�>�r�r)r�r�r�r�r�rer�r�r�s@rr�r�ds����P�K�Krr�c�.`�\sQsQsnQsQsQsUsP!)�TestExceptionsi}c��UO[[2UO[O[2UO[O
[2UO[O[2UO[O[2UO[O[2P!r)
�assertIsSubclassr=ryr8rprqr|�assertIs�errorr�r�s&r�testExceptionTree� TestExceptions.testExceptionTreesr�����g�y�1����f�m�m�W�5����f�o�o�w�7����f�n�n�g�6��
�
�f�l�l�G�,��
�
�f�n�n�l�3rc���[O[O[O]2o[O[O[O]UO22oUO	2UOUO2UO[29^tt^2UOP
2PPP2P!)%fhP!9hrE)
r8rsrcrZrDr�rmror=re)r��sock0rvs&  r�test_setblocking_invalidfd�)TestExceptions.test_setblocking_invalidfd�s����
�
�f�n�n�f�.@�.@�!�D���}�}��N�N�F�.�.��5�<�<�>�C��
���
�������$�
�
�
�w�
'�
'����U�#�(�
'�
'�
'�s�C�C.	�&C.	r)r�r�r�r�r�r�r�r�r�s@rr�r�}s����4�
$�
$rr�zLinux specific testc�J`�\sQsQsn]lsQsQsQsQsQs	Qs
QsUsP!)	�TestLinuxAbstractNamespacei�c���Qo[O[O[O29^tt^2oUOU2UO	2[O[O[O29^tt^2oUOUO
22UO2]*9^tt^2oUOUO
2U2UOUO2U2PPP2PPP2PPP2P!)%fhK"9h)%fhK-9h)%fhP!9h)spython-test-hello�)
r8r�rcr�r�rgrGr^ror�)r�r�s1r��s3s&    r�testLinuxAbstractNamespace�5TestLinuxAbstractNamespace.testLinuxAbstractNamespace�s���2��
�]�]�6�>�>�6�+=�+=�
>�
>�"��G�G�G���I�I�K����v�~�~�v�/A�/A�B�B�b��
�
�2�>�>�+�,��Y�Y�[��^�^�r��$�$�R�^�^�%5�w�?��$�$�R�^�^�%5�w�?�$�C�?�
>�
$�^��C�B��?�
>�
>�sO�AE�?E		�AD6
�E		�$E�6E�?E�E		�	E
�E
�E�E-	�%E-	c�\�QQUO]*
**o[O[O[O29^tt^2oUO	U2UOUO
2U2PPP2P!)%fhP!9h)rF�h)�
UNIX_PATH_MAXr8r�rcr�rorG�r�rrGs&  r�testMaxName�&TestLinuxAbstractNamespace.testMaxName�si���D�D�$6�$6��$:�;�;��
�]�]�6�>�>�6�+=�+=�
>�
>�!�
�F�F�7�O����Q�]�]�_�g�6�?�
>�
>�
>�s�2B�B+	�#B+	c�.�QQUO**o[O[O[O29^tt^2oUO	[
UOU2PPP2P!)%fhP!9h)r��h)r�r8r�rcror=r�r�s&  r�testNameOverflow�+TestLinuxAbstractNamespace.testNameOverflow�sY���3��!3�!3�3�3��
�]�]�6�>�>�6�+=�+=�
>�
>�!����g�q�v�v�w�7�?�
>�
>�
>�s�"B�B	�B	c��[O[O[O2oUOQ2UO	UO2Q2UO
2P!SO
2h9h)z
pythontest�
pythontest)r8r�rcr�rorGrDr\s& r�testStrName�&TestLinuxAbstractNamespace.testStrName�sX���M�M�&�.�.�&�*<�*<�=��	�
�F�F�+�,����Q�]�]�_�.G�H�
�G�G�I��A�G�G�I�s�1A9�9Bc�,�[O[O[O29^tt^2oUO[	Q22UOUO
2Q2PPP2P!)%fhP!9h)r�)r8r�rcr�rtrorGr\s& r�testBytearrayName�,TestLinuxAbstractNamespace.testBytearrayName�sW��
�]�]�6�>�>�6�+=�+=�
>�
>�!�
�F�F�9�6�7�8����Q�]�]�_�.G�H�?�
>�
>�
>�s�;B�B	�B	c	��Qo[O[O[O29^tt^2oUOP2UO	UO2U2[O[O[O29^tt^2oUOP2UO	UO2U2UO
UO2UO22PPP2PPP2P!)%fhK9h)%fhP!9h)s
^[0-9a-f]{5})r8r�rcr�r�rGr)r��abstract_addressr�r�s&   r�testAutobind�'TestLinuxAbstractNamespace.testAutobind�s���-��
�]�]�6�>�>�6�+=�+=�
>�
>�"��G�G�B�K����R�^�^�-�/?�@����v�~�~�v�/A�/A�B�B�b������� � ����!1�3C�D��#�#�B�N�N�$4�b�n�n�6F�G�C�	?�
>�C�B��	?�
>�
>�s1�A-D1�,A D	�D1�D.
�'D.
�)D1�1E	�:E	r)
r�r�r�r�r�r�r�r�r�r�r�r�r�r�s@rr�r��s3�����M�	@�7�8�
�I�H�Hrr�ztest needs socket.AF_UNIXc�`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
s\
O\O Q7Q2Q2sQ
sUsP!)�TestUnixDomaini�c�x�[O[O[O2UmP!r)r8r�rcrvr�s&rr��TestUnixDomain.setUp�s���M�M�&�.�.�&�2D�2D�E��	rc�<�UOO2P!r)rvrDr�s&rr��TestUnixDomain.tearDown�s���	�	���rc��[OU2![c9SOQO	S[
O222P!h9h)zBPathname {0!a} cannot be represented in file system encoding {1!r})r��fsencoder�r�r>r��getfilesystemencoding�r�r�s&&r�encoded�TestUnixDomain.encoded�sN��	8��;�;�t�$�$��!�	8��M�M�(�(.���#�3�3�5�)7�
8�	8�s��	A�5A�Ac���[OV2P![c=o[S2Q6Xc'SO	QOS22Po=P!gPo=hh9h)zAF_UNIX path too longz6Pathname {0!a} is too long to serve as an AF_UNIX path)rr�r=r;r�r>)r�rvr�rs&&& rr��TestUnixDomain.bind�sT��	��*�*�4�6���	��1�v�0�0��
�
�L��V�D�\�#�#���
	�s$��	A"�A"�A� A�A�A"c�\�UOUOO2Q2P!)rv)rvN)rYrvrGr�s&rr�TestUnixDomain.testUnbound�s���
�
�d�i�i�+�+�-�z�:rc�.�[OO[O2oUOUOU2UO[OU2UOUOO2U2P!r)r�r��abspathr�TESTFNr�rvr�r�rorGr�s& r�testStrAddr�TestUnixDomain.testStrAddr�s]���w�w���y�/�/�0���	�	�$�)�)�T�"����	�(�(�$�/�������.�.�0�$�7rc�L�[OO[O2oUOUOUOU22UO[OU2UOUOO2U2P!r)r�r�r�rr�r�rvr�r�r�rorGr�s& r�
testBytesAddr�TestUnixDomain.testBytesAddr�sf���w�w���y�/�/�0���	�	�$�)�)�T�\�\�$�/�0����	�(�(�$�/�������.�.�0�$�7rc�p�[OO[O2oUOU2oUO
UOUOQQ22UO[OU2UOUOO2U2P!)�ascii�surrogateescape)
r�r�r�r�TESTFN_UNICODEr�r�rvr�r�r�rorG)r�r�r�s&  r�testSurrogateescapeBind�&TestUnixDomain.testSurrogateescapeBind�sy���w�w���y�7�7�8���L�L�����	�	�$�)�)�Q�X�X�g�/@�A�B����	�(�(�$�/�������.�.�0�$�7rc�t�[OeUOQ2[OO[O2oUO
UOU2UO[OU2UOUOO2U2P!)Nz!No unencodable filename available)r�TESTFN_UNENCODABLEr�r�r�r�r�rvr�r�rorGr�s& r�testUnencodableAddr�"TestUnixDomain.testUnencodableAddrsx���'�'�/��M�M�=�>��w�w���y�;�;�<���	�	�$�)�)�T�"����	�(�(�$�/�������.�.�0�$�7rz6Linux behavior is tested by TestLinuxAbstractNamespacec�^�UO[UOOP2P!r)ror=rvr�r�s&r�testEmptyAddress�TestUnixDomain.testEmptyAddresss��	
���'�4�9�9�>�>�2�6rrR�r%r()r�r�r�r�r�r�r�r�rr�r�r�r�r#r�r�rpr�r�r�r�s@rr�r��sa����F��	8�
�;�8�8�8�8��_�_�S�\�\�%9�9�M�O�7�O�7rr�c�`�\sQsQsnQsQQksQsQsQs\s	Qs
\sQsQ	s
Q
s\
sQs\
sQsQ
sQs\
sQsUsP!)�BufferIOTestiz>
Test the buffer versions of socket.recv() and socket.send().
c�4�[OVQ5P!rr�rs&&rr��BufferIOTest.__init__r�rc�D�[OQ],[[2*2oUOO	U2oUOU[[22UO
2oUP[[2oUOU[2P!r�)r�r�rpr�r�
ror��r�r�r�rqs&   r�testRecvIntoArray�BufferIOTest.testRecvIntoArraysn���k�k�#��s�S��X�~�.�����(�(��-�������S��*��k�k�m���)�3�s�8�n������c�"rc�\�[[2oUOOU2P!r�rdrpr�rv�r�r�s& r�_testRecvIntoArray�BufferIOTest._testRecvIntoArray'����C�j�������C� rc���[Q2oUOOU2oUOU[	[
22UP[	[
2oUOU[
2P!rj)rtr�r�
ror�rpr�s&   r�testRecvIntoBytearray�"BufferIOTest.testRecvIntoBytearray+sR����o�����(�(��-�������S��*��)�3�s�8�n������c�"rc���[Q2oUOO[U22oUO	U[[22UP[[2oUO	U[2P!rj)rtr�r�
r�ror�rpr�s&   r�testRecvIntoMemoryview�#BufferIOTest.testRecvIntoMemoryview4sV����o�����(�(��C��9�������S��*��)�3�s�8�n������c�"rc�H�[OQ],[[2*2oUOO	U2vq#UOU[[22UO
2oUP[[2oUOU[2P!r�)r�r�rpr�r�ror��r�r�r�r�rqs&    r�testRecvFromIntoArray�"BufferIOTest.testRecvFromIntoArray=sp���k�k�#��s�S��X�~�.���}�}�2�2�3�7��������S��*��k�k�m���)�3�s�8�n������c�"rc�\�[[2oUOOU2P!rr�r�s& r�_testRecvFromIntoArray�#BufferIOTest._testRecvFromIntoArrayEr�rc���[Q2oUOOU2vq#UOU[	[
22UP[	[
2oUOU[
2P!rj)rtr�r�ror�rpr�s&    r�testRecvFromIntoBytearray�&BufferIOTest.testRecvFromIntoBytearrayIsT����o���}�}�2�2�3�7��������S��*��)�3�s�8�n������c�"rc��[Q2oUOO[U22vq#UO	U[[22UP[[2oUO	U[2P!rj)rtr�r�r�ror�rpr�s&    r�testRecvFromIntoMemoryview�'BufferIOTest.testRecvFromIntoMemoryviewRsX����o���}�}�2�2�:�c�?�C��������S��*��)�3�s�8�n������c�"rc�v�[]2oUO[UOOUQ2P!)�rk)rtror�r�r�r�s& r�testRecvFromIntoSmallBuffer�(BufferIOTest.testRecvFromIntoSmallBuffer[s)����l�����*�d�m�m�&A�&A�3��Mrc�F�UOO[2P!rr�r�s&r�_testRecvFromIntoSmallBuffer�)BufferIOTest._testRecvFromIntoSmallBuffer`r�rc��[2oUOOU2UOOU]2P!rE)rtr�r�r�s& r�testRecvFromIntoEmptyBuffer�(BufferIOTest.testRecvFromIntoEmptyBuffercs/���k���
�
�#�#�C�(��
�
�#�#�C��+rrr!)r�r�r�r�r�r�r�r�r��_testRecvIntoBytearrayr��_testRecvIntoMemoryviewr�r�r��_testRecvFromIntoBytearrayr��_testRecvFromIntoMemoryviewr�r�r
�_testRecvFromIntoEmptyBufferr�r�r�s@rr�r�sp�����B�#�!�#�0��#�1��#�!�#�"8��#�#9��N�
!�,�
$:� rr�i�c�6�[[Q2%fP
![QQQ5oS9^tt^2SFD&oUO
Q2%fJPPP2P	!	PPP2P
![[[
1cP
!h9h)%fhP
!9h)z|Check if the TIPC module is loaded

The TIPC module is not loaded automatically on Ubuntu and probably
other Linux distros.
�AF_TIPCz
/proc/modulesrrztipc )r7r8r9�FileNotFoundError�IsADirectoryErrorrmr1)rr�s  r�isTipcAvailabler

os����6�9�%�%�����7�3��

���D����w�'�'��
���
���
�0�/�B�����
���s4�
A*�B�B�B�*B�?B�B�B	�B	z6TIPC module is not loaded, please 'sudo modprobe tipc'c�(`�\sQsQsnQsQsUsP!)�TIPCTesti�c�B�[O[O[O2o[O[O[O2oUOUO2UOUO2UO[O[O]2[O[[[1oUOU2[O[[[[[*
]*2*]1oUO[ U2UO#Q2vqVUO%UO'2U2UO%U[ 2P!)r�rk)r8r

r�r�rDr�r�r��TIPC_ADDR_NAMESEQ�
TIPC_STYPE�
TIPC_LOWER�
TIPC_UPPERr��TIPC_ADDR_NAMEr�ryrpr�rorG)r�r7r�srvaddr�sendaddrrq�recvaddrs&      r�testRDM�TIPCTest.testRDM�s���m�m�F�N�N�F�O�O�<���m�m�F�N�N�F�O�O�<������	�	�"�����	�	�"����v�(�(�&�*=�*=�q�A��+�+�Z��J�(��������)�)�:��S�*�z�"9�Q�!>�?�?��D���
�
�3��!����T�*�
��������*�H�5�����c�"rr)r�r�r�r�r
r�r�r�s@rr
r
�s����#�#rr
c�D`�\sQsQsnQQksQsQsQsQsQs	Us
P!)	�TIPCThreadableTesti�c�r�[OOVQ5[OU2P!rrSrs&&rr��TIPCThreadableTest.__init__�s'�����"�"�4�"�A�����%rc��[O[O[O2UmUO	UOO
2UOO
[O[O]2[O[[[1oUOOU2UOO2UO2UOO!2vUmUmUO	UO"O
2P!r�)r8r

rcr7r�rDr�r�r�r
r
r
r
r�r�r�r^r_r`)r�r
s& rr��TIPCThreadableTest.setUp�s����=�=�����1C�1C�D�����������'������F�-�-�v�/B�/B�A�F��+�+�Z��J�(�����
�
�g��������� � �"�#'�8�8�?�?�#4� ��	�4�=�����	�	���(rc���[OQ2[O[O[O2UmUO
UO
O2[O[[[[[*
]*2*]1oUO
OU2UO
O2UmP!rc)rerfr8r

rcrr�rDr
r
r
r�r
rgrG�cliaddr)r�r�s& rr�TIPCThreadableTest.clientSetUp�s���	
�
�
�3���=�=�����1C�1C�D�����������'��%�%�z��S�*�z�"9�Q�!>�?�?��D����������x�x�+�+�-��rc��UOOQ2oUOU[2UOUOUO
2P!rj)r_rlrorpr"
r`rrs& rrr�TIPCThreadableTest.testStream�s<���i�i�n�n�T�"������c�"�������t�}�}�5rc�z�UOO[2UOO2P!rrur�s&rrw�TIPCThreadableTest._testStream�ryr)rr"
r_r`r7r!rzr�s@rr
r
�s#����&�
)�
.�6�
�rr
c�@`�\sQsQsnQsQsQsQsQsQs	Us
P!)�ContextManagersTesti�c��[O29^tt^2oUOUO2PPP2UOWO2[O29^tt^2oUO	2PPP2UOUO2[O29^tt^2oUO[UOQ2PPP2UOUO2P!)%fhK�9h)%fhK�9h)%fhKS9h�Nrw)r8r�r%rGrDror=r�r�s& r�_testSocketClass�$ContextManagersTest._testSocketClass�s���
�]�]�_�_�����T�\�\�*��������%�
�]�]�_�_���J�J�L��������%�
�]�]�_�_�����g�t�|�|�V�<��������%��_���_���_�s5�D�;D&�"D9�D#	�D#	�&D6	�/D6	�9E		�E		c��UOO2vqUOUO2UO	Q2oUOU2P!rj�r�r^r�rDrlr��r�r_r�r;s&   r�testCreateConnectionBase�,ContextManagersTest.testCreateConnectionBase��?���Y�Y�%�%�'�
������
�
�#��y�y�������T�rc��UOO2o[OU29^tt^2oUO	UO
2UO
Q2UOUOQ2Q2PPP2UOWO
2P!)%fhK-9h)rwrk)
r�rGr8r�r�r%r�rorlrG�r�rrvs&  r�_testCreateConnectionBase�-ContextManagersTest._testCreateConnectionBase�s}���)�)�'�'�)��
�
%�
%�g�
.�
.�$����T�\�\�*��L�L�� ����T�Y�Y�t�_�f�5�/�	
������%�	/�
.�s�AB-�-B=	�6B=	c��UOO2vqUOUO2UO	Q2oUOU2P!rjr/
r0
s&   r�testCreateConnectionClose�-ContextManagersTest.testCreateConnectionClose�r3
rc�H�UOO2o[OU29^tt^2oUO	2PPP2UOWO2UO[UOQ2P!)%fhKN9hr+
)
r�rGr8r�rDrGr%ror=r�r5
s&  r�_testCreateConnectionClose�.ContextManagersTest._testCreateConnectionClose�sd���)�)�'�'�)��
�
%�
%�g�
.�
.�$��J�J�L�/�������%����'�4�<�<��8�/�
.�s�B�B!	�B!	r)r�r�r�r�r,
r1
r6
r9
r<
r�r�r�s@rr)
r)
�s#����&��&��9�9rr)
c�`�\sQsQsn\O
\\Q2Q2\O]]]2Q22s
QsQsQs
\O\PIQ2Q	2s\O\PIQ2Q
2sQsQsUsP!)
�InheritanceTesti�r�zSOCK_CLOEXEC not definedc�t�[O[O[O[O*29^tt^2oUO	UO
[O2UO
UO22PPP2P!)%fhP!9hr)r8rsrcr�rorr��get_inheritabler\s& r�test_SOCK_CLOEXEC�!InheritanceTest.test_SOCK_CLOEXEC�s~���]�]�6�>�>�!�-�-��0C�0C�C�E�E�HI����Q�V�V�V�%7�%7�8����Q�.�.�0�1�E�E�E�E�s�A
B&�&B7	�/B7	c��[O2oU9^tt^2UOUO2P
2PPP2P!)%fhP!9hr�)r8rorA
r�s& r�test_default_inheritable�(InheritanceTest.test_default_inheritable�s7���}�}���
�T����T�1�1�3�U�;��T�T�T�s�!A�A	�A	c	�L�[O2oS9^tt^2UO2oUO2U9^tt^2UOUO	2P
2PPP2PPP2P!)%fhK9h)%fhP!9hr�)r8rrDrorA
)r�rv�newsocks&  r�test_dup�InheritanceTest.test_dup�sb���}�}���
�T��h�h�j�G��J�J�L���� � ��!8�!8�!:�E�B���T�����T�T�s/�+B�!A?	�-B�?B
�B
�
B�B#	�B#	c�D�[O2oU9^tt^2UOP	2UOUO2P	2UOP
2UOUO2P
2PPP2P!)%fhP!9hr)r8�set_inheritablerorA
r�s& r�test_set_inheritable�$InheritanceTest.test_set_inheritablesl���}�}���
�T�� � ��&����T�1�1�3�T�:�� � ��'����T�1�1�3�U�;��T�T�T�s�A#B�B	�B	rMc���[O2oU9^tt^2UO2oUOUO2P
2[OU[O
2oU[O&*o[OU[OU2UOUO2P	2PPP2P!)%fhP!9hr�)r8rZrorA
r6�F_GETFD�
FD_CLOEXEC�F_SETFD)r�rvrsr�s&   r�test_get_inheritable_cloexec�,InheritanceTest.test_get_inheritable_cloexecs����}�}���
�T�����B����T�1�1�3�U�;��K�K��E�M�M�2�E��e�&�&�&�&�E��K�K��E�M�M�5�1����T�1�1�3�T�:��T�T�T�s�B4C�C0	�(C0	c��[O2oU9^tt^2UO2oUO[OU[O2[O
*[O
2UO
P	2UO[OU[O2[O
*]2PPP2P!)%fhP!9hr)r8rZror6rP
rQ
rL
)r�rvrss&  r�test_set_inheritable_cloexec�,InheritanceTest.test_set_inheritable_cloexecs����}�}���
�T�����B����U�[�[��U�]�]�;�e�>N�>N�N�"�-�-�
/�
� � ��&����U�[�[��U�]�]�;�e�>N�>N�N��
 �
�T�T�T�s�CC/�/D	�8D	c�"�[O2vqUOUO2UOUO2UO	UO2P
2UO	UO2P
2P!r�)r8r�r�rDrorA
)r�r�r�s&  r�test_socketpair�InheritanceTest.test_socketpair+sd���"�"�$���������!�������!�����+�+�-�u�5�����+�+�-�u�5rr)r�r�r�r�r#r�r7r8rrVrB
rE
rI
rM
r�r6rS
rV
rY
r�r�r�s@rr?
r?
�s�����
������8�3�5��#�#�A�q�"�-�2�.�5�2�<�
C�<��_�_�U�d�]�L�1�;�2�;��_�_�U�d�]�L�1�	 �2�	 �6�6rr?
rdzSOCK_NONBLOCK not definedc�``�\sQsQsnQQks\O]]]2Q2sQsUs	P!)�NonblockConstantTesti3c�p�U%c�UOUO[O2UOUO	2U2UO[OU[O[O2[O*2U]6Xc"UOUO22P!UOUO22P!UOUO[O2UOUO	2P2UO[OU[O[O2[O*2UOUO22P!rE)rorr8rcr=rGr6rr�rr�r)r�rG�nonblockr|s&&&&r�
checkNonblock�"NonblockConstantTest.checkNonblock6s������Q�V�V�V�%7�%7�8����Q�\�\�^�W�5��O�O����A�u�}�}�b�m�m�<�r�}�}�L�
N��!�|�� � �����1�����
�
��0����Q�V�V�V�%7�%7�8����Q�\�\�^�T�2�������A�u�}�}�b�m�m�<�r�}�}�L�
N��O�O�A�M�M�O�,rc���[O[O[O[O*29^tt^2oUO	U2UOP	2UO	UP
Q5UOP
2UO	U2UO
P2UO	UP
Q5UO
Q2UO	UQQ5UOP	2UO	UP
Q5PPP2[O2o[OQ2[O29^tt^2oUO	U2PPP2[OP2[O29^tt^2oUO	UP
2PPP2[OQ2[O29^tt^2oUO	UQQ5PPP2[OP2[O29^tt^2oUO	UP
2PPP2[OU2P!)%fhCKv9h)%fhCK(9h)%fhK�9h)%fhK�9h)%fhKv9h)T)r^
g@r
r)	r8rsrcrdr_
rer\rzr{)r�rG�ts&  r�test_SOCK_NONBLOCK�'NonblockConstantTest.test_SOCK_NONBLOCKOs����]�]�6�>�>�!�-�-��0D�0D�D�F�F�IJ����q�!�
�M�M�$�����q�5��1�
�M�M�%� ����q�!�
�L�L������q�5��1�
�L�L������q�#��.�
�M�M�$�����q�5��1�F�
�$�$�&��� � ��%�
�]�]�_�_�����q�!��� � ��&�
�]�]�_�_�����q�%�(��� � ��%�
�]�]�_�_�����q�#��.��� � ��&�
�]�]�_�_�����q�%�(��� � ��#�7F�F�F�� �_�_���_���_���_�s[�CJ�&J�3J+�J>�K�J	�J	�J(	� J(	�+J;	�4J;	�>K	�K	�K!	�K!	rr )
r�r�r�r�r_
rrVrc
r�r�r�s@rr\
r\
3s-����-�2
�#�#�A�q�"�-�$�.�$rr\
r�r�zneed multiprocessingc�P`�\sQsQsn\Q2sQsQsQsQs	Qs
QsUsP!)	�TestSocketSharingiqc��UO2oUO2o[OU2oUO2vqVUO	U2UO2UO2P!r)r�r8�	fromsharer^r�rD)r:�q�sdatar�rGr�r�s&&     r�remoteProcessServer�%TestSocketSharing.remoteProcessServervsW��������%�%�'�����U�#�����
���	�
�
�7��
���
�	���	rc��[O2o[OUOU1Q5oUO	2UO
O
UO2oUO
O2oUO
O2UOU2QoUOU2[OU2o,oUO]d2oU%fLUOU2J.UO2QOU2oUO!V�2UO2P!)�r�
r%s
slapmahfror)�multiprocessingr��Processrk
r�
r��share�pidrGrDrr8r�rlr�r3ro)	r�ri
rjr;r�r�rG�m�receiveds	&        r�	testShare�TestSocketSharing.testShare�s���

�!�!�#���#�#�4�+C�+C�1�$�O��	���	��y�y���q�u�u�%���y�y�$�$�&���	�	����	���d�� ��	���g��
�$�$�T�*������6�6�#�;�D���
�H�H�T�N�	���	��8�8�A�;������+�	���rc��UOO[O22oUO	[
[OUPP2UO	[
[OUQ*2P!r+
)r�rq
r��getpidror�r8rh
)r�r;s& r�testShareLength�!TestSocketSharing.testShareLength�sT���y�y���r�y�y�{�+�����*�f�&6�&6��S�b�	�B����*�f�&6�&6��V��Drc��UOUO2P2UOUO2UO22UOUOUO2UOUOUO2UO]6wc)UOUOUO2P!P!r)ror=rarrb)r��org�others&&&r�compareSockets� TestSocketSharing.compareSockets�s���	
������)�4�0�������)�5�+;�+;�+=�>�������U�\�\�2�������5�:�:�.��9�9��>����S�Y�Y����4�rc��UOO[O22o[O
U2oUO
UOU2UO2P!SO2h9hr)r�rq
r�rx
r8rh
r~
rD)r�r;rGs&  r�testShareLocal� TestSocketSharing.testShareLocal�sV���y�y���r�y�y�{�+�����T�"��	�����	�	�1�-�
�G�G�I��A�G�G�I�s�A5�5Bc�2�[O[O,o[O[O,oSFD�oSFD�o[OV42oUO
[O22o[OU2oUOVW2UO2UO2J�	J�	P![
cJ�h9hSO2h9hSO2h9hr)r8rsr
rcrKr=rq
r�rx
rh
r~
rD)r��families�typesrrb
r�r;�shareds&       r�	testTypes�TestSocketSharing.testTypes�s����N�N�F�O�O�4���#�#�V�%6�%6�7���A����#�]�]�1�0�F�#�!�<�<��	�	��4�D�#�-�-�d�3�F�'��+�+�F�;������L�L�N���������������L�L�N�s<�C�&:D�!C/�2D�	C,�'C,�+C,�/D�D�Dr)
r�r�r�r�rrrk
ru
ry
r~
r�
r�
r�r�r�s@rrf
rf
qs9����
����!�FE�
5� �#�#rrf
c�`�\sQsQsnQsQ!sQsQs\Os
\Q2s\Q2s
QsQsQ	sQ
sQsQsQ
sQsQsQsQsQsQsQsQsQsQsQsQs Qs!Qs"Qs#Qs$Qs%Qs&Q s'Us(P!)"�SendfileUsingSendTesti�z6
Test the send() implementation of socket.sendfile().
r�rc	��QoQO[UO2Tt,tFD5o[O[
O2O2MJ7	to2o[[OQ29^tt^2oUUOUO2FDoUOU2J	PPP2[[OQ29^tt^2oUO2Um[UO2UO6XfPgPPP2P!ttoh)%fhK~9h)%fhP!9h)c3�h �V6�fPgV6�cUw�	V*oJU%cUw�	P!P!3hrr)�total�steps&&r�chunks�0SendfileUsingSendTest.setUpClass.<locals>.chunks�s-����=� �=��,��
��
������s�2�2�2�	2rr"r4)r3r,�BUFSIZE�random�choice�string�
ascii_lettersr�r9rr��FILESIZEr�r��FILEDATAr�)r:r�
r��chunkr�csizes&     r�
setUpClass� SendfileUsingSendTest.setUpClass�s���	����#(����#5�7�#5�a�!�-�-��(<�(<�=�D�D�F�#5�7�8��
�)�"�"�D�
)�
)�Q�����c�k�k�:�������;�*��)�"�"�D�
)�
)�Q��6�6�8�C�L��s�|�|�$����4�4�4�*�
)��7�
)�
)��*�
)�
)�s/�=D4�7D9�-9E�'E�9E		�E		�E	�E	c�P�[O[O2P!r)rr�r�)r:s&r�
tearDownClass�#SendfileUsingSendTest.tearDownClass�s������)�)�*rc��UOO[O2UOO	2vqUOUO
2UO
UO2U!r)r�r\rrAr^�TIMEOUTr�rDr�s&  r�accept_conn�!SendfileUsingSendTest.accept_conn�sS���	�	���W�1�1�2��Y�Y�%�%�'�
��������%�����
�
�#��rc��,oUOUO2oU%fLUOU2J8QOU2!)Tr)rlr�
r�r3)r�r_rt
r�
s&&  r�	recv_data�SendfileUsingSendTest.recv_datas=������I�I�d�l�l�+�E����O�O�E�"��x�x��!�!rc��[UQ2!)�_sendfile_use_send�r�r�s&&r�meth_from_sock�$SendfileUsingSendTest.meth_from_sock	s���t�1�2�2rc	���UOO2o[[OQ2o[
OU29^tt^2p29^tt^2oUOU2oUU2oUOVPO2UOUO2UO2PPP2PPP2P!)%fhK9h)%fhP!9h�r4�r�rGr9rr�r8r�r�
ror�
�tell�r�r�filerv�meth�sents&     r�_testRegularFile�&SendfileUsingSendTest._testRegularFiles����)�)�'�'�)���I�$�$�d�+��
�
%�
%�g�
.�
.�$�����&�&�t�,�D���:�D����T�=�=�1����T�Y�Y�[�$�-�-�8�	9=�
.�
.����
.�
.�
.�s1�
C"�AC	�=C"�C
�C
�C"�"C3	�+C3	c���UO2oUOU2oUO[U2UO2UOV O
2P!r�r�
r�
ror�r�
r�
�r�r_r;s&  r�testRegularFile�%SendfileUsingSendTest.testRegularFile�H�����!���~�~�d�#������T��D�M�M�2�����}�}�-rc	�>�UOO2o[OUO2o[
OU29^tt^2p29^tt^2oUOU2oUOV@O2UOUO2UO2UO[
OUOU2PPP2PPP2P!)%fhK9h)%fhP!9hr)r�rG�io�BytesIOr�
r8r�rxror�
r�
ror�r�)r�rr�
rvr�
s&    r�_testNonRegularFile�)SendfileUsingSendTest._testNonRegularFile!s����)�)�'�'�)���z�z�$�-�-�(��
�
%�
%�g�
.�
.�$�����=�=��&�D����T�=�=�1����T�Y�Y�[�$�-�-�8����f�6�6�"�9�9�4�
A�	9=�
.�
.����
.�
.�
.�s1�
D�$BC8	�&D�8D
�D
�D�D	�D	c���UO2oUOU2oUO[U2UO2UOV O
2P!rr�
r�
s&  r�testNonRegularFile�(SendfileUsingSendTest.testNonRegularFile+r�
rc	�x�UOO2o[OQ*o[	UQ29^tt^2UO[OU2PPP2[	UQ2o[OU29^tt^2pC9^tt^2oUOU2oUU2oUOU]2UOUO2]2PPP2PPP2P!)%fhK�9h)%fhK-9h)%fhP!9h)�2r"r4)r�rGrr�r9r�r�r8r�r�
ror�
)r�r�filenamer�
rvr�
r�
s&      r�_testEmptyFileSend�(SendfileUsingSendTest._testEmptyFileSend3s����)�)�'�'�)���#�#�c�)��
�(�D�
!�
!��O�O�I�,�,�h�7�"��H�d�#��
�
%�
%�g�
.�
.�$�����&�&�t�,�D���:�D����T�1�%����T�Y�Y�[�!�,�	9=�
.�
.�"�
!��9=���
.�
.�
.�sC�!D�
D(�$AD	�0D(�D	�D	�D%
�D%
� D(�(D9	�1D9	c�n�UO2oUOU2oUOUQ2P!r$	)r�
r�
ror�
s&  r�testEmptyFileSend�'SendfileUsingSendTest.testEmptyFileSend?s.�����!���~�~�d�#������s�#rc	��UOO2o[[OQ2o[
OU29^tt^2p29^tt^2oUOU2oUUQQ5oUOVPOQ*
2UOUO2UO2PPP2PPP2P!)%fhK9h)%fhP!9h)r4�)�offsetr�
r�
s&     r�_testOffset�!SendfileUsingSendTest._testOffsetFs����)�)�'�'�)���I�$�$�d�+��
�
%�
%�g�
.�
.�$�����&�&�t�,�D���T�*�D����T�=�=�4�#7�8����T�Y�Y�[�$�-�-�8�	9=�
.�
.����
.�
.�
.�s1�
C+�A(C	�C+�C(
�!C(
�#C+�+C<	�4C<	c���UO2oUOU2oUO[U2UOQ*
2UOV O
Q*2P!)r�
:i�NNr�
r�
s&  r�
testOffset� SendfileUsingSendTest.testOffsetOsR�����!���~�~�d�#������T��D�M�M�D�$8�9�����}�}�U�3�4rc	���UOO2o[[OQ2o[
OU[OQ5oS9^tt^2U9^tt^2QoUOU2oUV$Q5oUOVd2UOUO2U2PPP2PPP2P!)%fhK9h)%fhP!9h)r4r
�GKL�r�r�rGr9rr�r8r�rr]r�
ror�
�r�rr�
rvrr�
r�
s&      r�
_testCount� SendfileUsingSendTest._testCountWs����)�)�'�'�)���I�$�$�d�+���'�'��07�0H�0H�J��
�T�4�4��E��&�&�t�,�D���*�D����T�)����T�Y�Y�[�%�0��T�T�4�4��T�T�T��1�&C$�1AC	�?C$�C!
�C!
�C$�$C5	�-C5	c��QoUO2oUOU2oUO[U2U2UOV0OPU2P!)r�
�r�
r�
ror�r�
�r�rr_r;s&   r�	testCount�SendfileUsingSendTest.testCountcsP�������!���~�~�d�#������T��E�*�����}�}�V�e�4�5rc	���UOO2o[[OQ2o[
OU[OQ5oS9^tt^2U9^tt^2]oUOU2oUV$Q5oUOVd2UOUO2U2PPP2PPP2P!)%fhK9h)%fhP!9h)r4r
r�
r�
r�
s&      r�_testCountSmall�%SendfileUsingSendTest._testCountSmallls����)�)�'�'�)���I�$�$�d�+���'�'��07�0H�0H�J��
�T�4�4��E��&�&�t�,�D���*�D����T�)����T�Y�Y�[�%�0��T�T�4�4��T�T�T�r�
c��]oUO2oUOU2oUO[U2U2UOV0OPU2P!r�r�
r�
s&   r�testCountSmall�$SendfileUsingSendTest.testCountSmallxsP�������!���~�~�d�#������T��E�*�����}�}�V�e�4�5rc
���UOO2o[[OQ2o[
OU]Q59^tt^2p29^tt^2oQoUOU2oUUQUQ5oUOVd2UOUO2UQ*2PPP2PPP2P!)%fhK9h)%fhP!9h)r4r
駆��)r�
r)
r�rGr9rr�r8r�r�
ror�
r�
s&      r�_testCountWithOffset�*SendfileUsingSendTest._testCountWithOffset�s����)�)�'�'�)���I�$�$�d�+��
�
%�
%�g�q�
9�
9�T�4�4�4��E��&�&�t�,�D���T��7�D����T�)����T�Y�Y�[�%�$�,�7�DH�
9�
9�4�4��
9�
9�
9�s1�
C� AC		�7C�	C
�C
�C�C-	�%C-	c���QoUO2oUOU2oUO[U2U2UOV0OQUQ*2P!)r�
r�
r�
r�
s&   r�testCountWithOffset�)SendfileUsingSendTest.testCountWithOffset�sT�������!���~�~�d�#������T��E�*�����}�}�T�%��*�=�>rc	���UOO2o[[OQ2o[
OU29^tt^2p29^tt^2oUOP
2UOU2oUO[VB2UO[UOU2PPP2PPP2P!)%fhK9h)%fhP!9hr�
)r�rGr9rr�r8r�rer�
ror�rx�r�rr�
rvr�
s&    r�_testNonBlocking�&SendfileUsingSendTest._testNonBlocking�s����)�)�'�'�)���I�$�$�d�+��
�
%�
%�g�
.�
.�$�������U�#��&�&�t�,�D����j�$�5����j�$�-�-��>�	9=�
.�
.����
.�
.�
.�s1�
C�AC
	�8C�
C
�C
�C�C.	�&C.	c�|�UO2oUOQ2%cUOQ2P!P!)r�z$was not supposed to receive any data)r�
rlrh�r�r_s& r�testNonBlocking�%SendfileUsingSendTest.testNonBlocking�s/�����!���9�9�T�?�?��I�I�<�=�rc	��UOO2o[[OQ2o[
OU[OQ5oS9^tt^2U9^tt^2UOU2oUU2oUOVPO2PPP2PPP2P!)%fhK9h)%fhP!9h)r4r
)r�rGr9rr�r8r�rr]r�
ror�
r�
s&     r�_testWithTimeout�&SendfileUsingSendTest._testWithTimeout�s����)�)�'�'�)���I�$�$�d�+���'�'��07�0H�0H�J��
�T�4�4��&�&�t�,�D���:�D����T�=�=�1��T�T�4�4��T�T�T�s0�&C�15B8	�&C�8C
�C
�C�C	�C	c���UO2oUOU2oUO[U2UO2UOV O
2P!rr�
r�
s&  r�testWithTimeout�%SendfileUsingSendTest.testWithTimeout�r�
rc	��UOO2o[[OQ29^tt^2o[
OU29^tt^2oUOQ2UOU2oUO[VB2PPP2PPP2P!)%fhK9h)%fhP!9h)r4g{�G�z�?)r�rGr9rr�r8r�r\r�
ror�r�
s&    r�_testWithTimeoutTriggeredSend�3SendfileUsingSendTest._testWithTimeoutTriggeredSend�s����)�)�'�'�)��
�)�"�"�D�
)�
)�T��)�)�'�2�2�d�����%��*�*�4�0���!�!�,��;�3�*�
)�2�2��*�
)�
)�s/�B;�9B(	�B;�(B8
�1B8
�3B;�;C	�C	c�v�UO2oUOQ2[O]2P!)i�X)r�
rlrerfr�
s& r�testWithTimeoutTriggeredSend�2SendfileUsingSendTest.testWithTimeoutTriggeredSend�s'�����!���	�	�%���
�
�1�
rc��P!rrr�s&r�_test_errors�"SendfileUsingSendTest._test_errors�r�rc��[[OQ29^tt^2o[O[OQ59^tt^2oUOU2oUO
[QV12PPP2PPP2[[OQQ59^tt^2o[O29^tt^2oUOU2oUO
[QV12PPP2PPP2[[OQ29^tt^2o[O29^tt^2oUOU2oUO
[QV1QQ5UO
[QV1Q	Q5UO
[QV1]Q5UO
[QV1PQ5PPP2PPP2P!)%fhCK[9h)%fhCKg9h)%fhCK	9h)%fhCK9h)%fhKj9h)%fhP!9h)
r4r�rcrrzbinary modezpositive integerr�
r�
rd)	r9rr�r8rKr�
rKr�r)r�r�
rGr�
s&   r�test_errors�!SendfileUsingSendTest.test_errors�s���
�)�"�"�D�
)�
)�T����F�$5�$5�6�6�!��*�*�1�-���&�&��
�t�;�7�*�
�)�"�"�W�
5�
5�������A��*�*�1�-���&�&��
�t�;�!�6�
�)�"�"�D�
)�
)�T������A��*�*�1�-���&�&�y�2D�'+��'�>��&�&�y�2D�'+��'�>��&�&�z�3E�'+��'�<��&�&�z�3E�'+��'�=�!�*�
)�7�6�6��*�
)�
)��!����6�
5�
5��!���*�
)�
)�s��.G!�)G
	�;G!�.H	�)G5	�5H	�'H0�A6H	�;H0�
G
�G
�	G!�!G2	�*G2	�5H
�>H
�	H	�	H	�H	�H-
�&H-
�(H0�0I	�9I	ri�))r�r�r�r�r�r�
r�
r�
rr]r�
rrr�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
r�
rrrr�r�r�s@rr�
r�
�s������!�H��G��H��&�&�G��5��5�$�+��+��"�3�9�.�A�.�
-�$�9�5�
1�6�
1�6�8�?�?�>�2�.�<��
�=�=rr�
rxz%os.sendfile() required for this test.c�,`�\sQsQsnQsQsQsUsP!)�SendfileUsingSendfileTesti�z:
Test the sendfile() implementation of socket.sendfile().
c��[UQ2!)r�r�
r�s&&rr�
�(SendfileUsingSendfileTest.meth_from_sock�s���t�5�6�6rr)r�r�r�r�r�r�
r�r�r�s@rr	r	�s�����7�7rr	zAF_ALG requiredc�`�\sQsQsnQs\O]]2Q2sQs\O]]2Q2s	\O]]	2Q2s
\O]]2Q2sQsQ	s
Q
sUsP!)�LinuxKernelCryptoAPIi�c��[O[O[O]2oUOV12U![c6oSO2[O[S2X2gPo=hh9hrE)	r8rYrTr�r
rDr#r$r;)r��typr/rvrs&&&  r�
create_alg�LinuxKernelCryptoAPI.create_alg�sj���}�}�V�]�]�F�,A�,A�1�E��	��I�I�s�k�"��K��!�	7��J�J�L��#�#�C��F�C�6�6��	7�s�A�	B�B�0B�Bc	��[OQ2oUOQQ29^tt^2oUO2vq4U9^tt^2UO	Q2UOUO
Q2U2PPP2UO2vq4U9^tt^2UOQ[O2UOQ[O2UOQ[O2UOQ2UOUO
Q2U2PPP2PPP2P!)%fhK�9h)%fhK-9h)%fhP!9h)	�@ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad�hash�sha256sabcr-r�
�b�cr)
rd�fromhexrr^r�rorlrvr8�MSG_MORE)r�rc�algo�opr�s&    r�test_sha256� LinuxKernelCryptoAPI.test_sha256�s����=�=�":�;��
�_�_�V�X�
.�
.�$��K�K�M�E�B����
�
�6�"�� � ������x�8���K�K�M�E�B�������f�o�o�.�����f�o�o�.�����f�o�o�.������� � ������x�8��/�
.����
���/�
.�
.�sN�E0�3E
	�$E0�%BE	�8E0�
E
�E
�E0�E-
�&E-
�(E0�0F	�9F	c	���QoQo[OQ2oUOQQ29^tt^2oUO[O
[OU2UO2vqVU9^tt^2UOU2UOUOQ2U2PPP2PPP2P!)%fhK9h)%fhP!9h)sPython loves AF_ALGswhat do ya want for nothing?�(193dbb43c6297b47ea6277ec0ce67119a3f3aa66rz
hmac(sha1)r-)rdrrr�r8�SOL_ALG�ALG_SET_KEYr^r�rorl)r��keyr;rcrrr�s&      r�test_hmac_sha1�#LinuxKernelCryptoAPI.test_hmac_sha1
s���%��.���=�=�!K�L��
�_�_�V�\�
2�
2�d��O�O�F�N�N�F�,>�,>��D��K�K�M�E�B����
�
�4� �� � ������x�8��3�
2����3�
2�
2�s0�AC�3C	�4C�C
�C
�C�C*	�"C*	c
�Z�[OQ2o[OQ2oQo[OQ2o[U2oUOQQ29^tt^2oUO	[
O[
OU2UO2vqxU9^tt^2UO[
OU[
OQ5UOU2UOUOU2U2PPP2UO2vqxU9^tt^2UOU,[
OUQ5UOUOU2U2PPP2Qo	U,U	*o
UO2vqxU9^tt^2UOU
[
OUQ5UOVY*2oPPP2UO[W2VY*2UOUPUU2UO2vqxU9^tt^2UOU,[
OUQ5UOVY*2oPPP2UO[W2VY*2UOV�U	*2PPP2P!)%fhCK�9h)%fhCKg9h)%fhCK9h)%fhK�9h)%fhP!9h)	� 06a9214036b8a15b512e03d534120006� 3dafba429d9eb430b422da802c9fac41sSingle block msg� e353779c1079aeb82708942dbe77181a�skcipherzcbc(aes))r�ivr�)rr*rk)rdrr�rr�r8r r!r^�
sendmsg_afalg�ALG_OP_ENCRYPTrr�rorl�ALG_OP_DECRYPT)
r�r"r*rq�
ciphertext�msglenrrr��
multiplier�longmsg�enc�decs
&            r�test_aes_cbc�!LinuxKernelCryptoAPI.test_aes_cbcsY���m�m�>�?��
�]�]�=�
>��!���]�]�#E�F�
��S���
�_�_�Z��
4�
4���O�O�F�N�N�F�,>�,>��D��K�K�M�E�B���� � �F�$9�$9�b�'-���!�8��
�
�3��� � ������*�=�	��K�K�M�E�B���� � �*��$*�$9�$9�b�!�B�� � ������#�6���J��e�j�(�G��K�K�M�E�B���� � ��$*�$9�$9�b�!�B��g�g�f�1�2���
���S��X�v�':�;����S��&�\�:�6��K�K�M�E�B���� � �#��$*�$9�$9�b�!�B��g�g�f�1�2���
���S��X�v�':�;����S�
�"2�3�A5�
4����������������75�
4�
4�s��(AL�4A#K
	�$L�;AK	�0L�0:K2	�*AL�;L	�?AL�
K
�K
�	L�K/
�'K/
�)	L�2L
�;L
�=	L�L
�L
�L�L*	�"L*	c��	�[OQ2oUd UQ
6�cUQ6cUOQ2[O	Q2o[O	Q2o[O	Q2o[O	Q2o[O	Q2o[O	Q2o[U2o[U2o	UO
QQ	29^tt^2o
U
O[O[OU2U
O[O[OPU2U
O2vq�U9^tt^2UO[OUU	[OQ
5UO!U[O2UO!U2UO#U	[U2*U*2o
UO%VmV�'2UO%V}U'P2PPP2U
O2vq�U9^tt^2VT*oUOU,[OUU	Q5UO#U	[U2*U*2o
UO%VmV�'2UO%V}U'P2PPP2[&O(Q2O*oU
O2vq�U9^tt^2VT*oUO-U,[O[O.U[O2,[O[O0U[U22U*,[O[O2UU	2,12UO#[U2U*2o
UO%VmV�'2UO%V}U'P2PPP2U
O2vq�U9^tt^2VV*U*oUOU,[O4UU	Q5UO#[U2U*
2o
UO%VMU	P2PPP2PPP2P!)%fhCK�9h)%fhCK�9h)%fhK�9h)%fhKU9h)%fhP!9h)�Linuxzupstream Linux kernel issue� c939cc13397c1d37de6ae0e1cb7c423c�b3d8cc017cbb89b39e0f67e2� c3b3c41f113a31b73d9a5cd432103069� 24825602bd12a984e0092d3e448eda5f� 93fe7d9e9bfd10348a5606e5cafa7354� 0032a1dc85f1c9786925a2e71d8272dd�aeadzgcm(aes))rr*�assoclenr�)rr*r?r5)��)r@�)r�_get_kernel_versionr�rdrr�rr�r8r r!�ALG_SET_AEAD_AUTHSIZEr^r+r,rr�rlror;�Structr.r��
ALG_SET_OP�
ALG_SET_IV�ALG_SET_AEAD_ASSOCLENr-)r��kernel_versionr"r*�plain�assoc�expected_ct�expected_tag�taglenr?rrr��resrq�pack_uint32s&               r�test_aead_aes_gcm�&LinuxKernelCryptoAPI.test_aead_aes_gcmEs��� �4�4�W�=���%���(�^�g�-E��
�
�;�<��m�m�>�?��
�]�]�5�
6���
�
�@�A���
�
�@�A���m�m�$F�G���}�}�%G�H���\�"���u�:��
�_�_�V�Z�
0�
0�D��O�O�F�N�N�F�,>�,>��D��O�O�F�N�N�F�,H�,H� �&�
*��K�K�M�E�B���� � �F�$9�$9�b�*2�&�/�/�!�K��
�
�5�&�/�/�2��
�
�5�!��g�g�h��U��3�f�<�=��� � ��(�7�.C�D�� � ��F�7�8�}�=���K�K�M�E�B����m��� � �#��6�+@�+@�R�*2�!�4��g�g�h��U��3�f�<�=��� � ��(�7�.C�D�� � ��F�7�8�}�=�
�!�-�-��,�1�1�K��K�K�M�E�B����m���
�
��E��n�n�f�&7�&7��V�EZ�EZ�9[�\��n�n�f�&7�&7��S��W�9M�PR�9R�S��n�n�f�&B�&B�K�PX�DY�Z����g�g�c�#�h��/�0��� � ��(�7�.C�D�� � ��F�7�8�}�=���K�K�M�E�B����)�L�8��� � �#��6�+@�+@�R�*2�!�4��g�g�c�#�h��/�0��� � ��H�I��7��Y1�
0���������������Y1�
0�
0�s��)A<S"�%B4R	�$S"�=A>R(	�;AS"�?C6R<	�5$S"�A)S	�S"�R%
�R%
�	S"�(R9
�1R9
�3	S"�<S
�S
�S"�S
�S
�S"�"S3	�+S3	c	���UOQQ29^tt^2o[O] 2oUO[O
[OU2UO2vq4U9^tt^2UO] 2oUO[U2] 2PPP2PPP2P!)%fhK9h)%fhP!9h)�rng�drbg_pr_sha256)rr��urandomr�r8r r!r^rlror�)r�r�
extra_seedrr��rns&     r�test_drbg_pr_sha256�(LinuxKernelCryptoAPI.test_drbg_pr_sha256�s����_�_�U�$4�
5�
5�����B��J��O�O�F�N�N�F�,>�,>�
�K��K�K�M�E�B����W�W�R�[��� � ��R��"�-��	6�
5����	6�
5�
5�s0�A"C�>-B=	�+C�=C

�C

�C�C!	�C!	c	���[O[O[O]2oS9^tt^2UO[29^tt^2UO2PPP2UO[29^tt^2UOPQ5PPP2UO[29^tt^2UO]2PPP2UO[29^tt^2UO[OPQ5PPP2UO[29^tt^2UO[OPQ5PPP2PPP2P!)%fhCK9h)%fhK�9h)%fhK�9h)%fhK�9h)%fhKg9h)%fhP!9h)r)r)rr?)r8rYrTrorr+r,r�s& r�test_sendmsg_afalg_args�,LinuxKernelCryptoAPI.test_sendmsg_afalg_args�s5���}�}�V�]�]�F�,A�,A�1�E��
�T��"�"�9�-�-��"�"�$�.��"�"�9�-�-��"�"�d�"�+�.��"�"�9�-�-��"�"�1�%�.��"�"�9�-�-��"�"�f�&;�&;�d�"�K�.��"�"�9�-�-��"�"�f�&;�&;�b�"�I�.��T�-�-�-��.�-��.�-��.�-��.�-���T�T�s��G�E>	�/%G�F	�'%G�F%	�%G�"F8	�%%G�
"G	�,G�>F
�F
�		G�F"
�F"
�G�%F5
�.F5
�0G�8G
�G
�G�G
�G
�G�G/	�'G/	c��[O[O[O]2oUOUO2UO[29^tt^2UOQ2PPP2UO[Q29^tt^2UOQ2PPP2UO[29^tt^2UOQ2PPP2UO[Q29^tt^2UOQ2PPP2P!)%fhK�9h)%fhK�9h)%fhKp9h)%fhP!9h)rz
type too longz
name too long)�
tttttttttttttr/)�ttttttttttttttr/)r�?nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn)r�@nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn)
r8rYrTr�rDror
r�rKr�r�s& r�test_length_restriction�,LinuxKernelCryptoAPI.test_length_restriction�s����}�}�V�]�]�F�,A�,A�1�E������
�
�#��
�
�0�
1�
1��I�I�(�)�2�
�
#�
#�J��
@�
@��I�I�(�)�A��
�
�0�
1�
1��I�I�(�)�2�
�
#�
#�J��
@�
@��I�I�(�)�A�
@�2�
1��
@�
@��2�
1��
@�
@�
@�sH�.D1�&E�E�E*�1E	�:E	�E	�
E	�E'	� E'	�*E;	�3E;	r)r�r�r�r�rrrVrr#r4rQrYr\rcr�r�r�s@rr
r
�s�����	�
�#�#�A�q�)�9�*�9�"9�
�#�#�A�q�)�&4�*�&4�P
�#�#�A�q�)�B8�*�B8�H
�#�#�A�q�)�.�*�.�J�$*�*rr
r�r�c�(`�\sQsQsnQsQsUsP!)�TestMacOSTCPFlagsi�c�F�UO[O2P!r)rGr8�
TCP_KEEPALIVEr�s&r�test_tcp_keepalive�$TestMacOSTCPFlags.test_tcp_keepalive�s������,�,�-rr)r�r�r�r�rir�r�r�s@rrfrf�s����.�.rrf�TCP_QUICKACKzneed socket.TCP_QUICKACKc�.`�\sQsQsnQsQsQsUsP!)�TestQuickackFlagi�c�,�UO[O[O2oU%c0UO	[O[O]2UO[O[O2oUOU2UO	[O[O]2UO[O[O2oUO
U2P!rE)r�r8r�rkr�r�rG�r�rvr�s&& r�check_set_quickack�#TestQuickackFlag.check_set_quickack�s����o�o�f�0�0�&�2E�2E�F����O�O�F�.�.��0C�0C�Q�G��o�o�f�0�0�&�2E�2E�F�����������*�*�F�,?�,?��C��o�o�f�0�0�&�2E�2E�F������rc��[O[O[O[OQ5oU9^tt^2UO	U2PPP2P!)%fhP!9h))rarrb)r8rsrcr�rpr�s& r�test_set_quickack�"TestQuickackFlag.test_set_quickack�sF���}�}�F�N�N��9K�9K�#)�#5�#5�7��
�T��#�#�D�)��T�T�T�s�A+�+A<	�4A<	r)r�r�r�r�rprsr�r�r�s@rrmrm�s�����*�*rrm�winzrequires Windowsc�0`�\sQsQsn.QlsQsQsUsP!)�TestMSWindowsTCPFlagsi�c��[[2Tt,tFDpOQ2%fJUMJ	ooSTt,tFDpUO7fJUMJ	ooUO	,UQ2P!ttohttoh)�TCPzANew TCP flags were discovered. See bpo-32394 for more information)�dirr8r1�
knownTCPFlagsro)r�rG�provided�unknowns&   r�test_new_tcp_flags�(TestMSWindowsTCPFlags.test_new_tcp_flags�se��"�6�{�B�{�!�l�l�5�.A�A�A�{��B�&�F�h��4�3E�3E�*E�1�1�h��F�����W�O�	Q��C��Fs�A2�A2�A7�A7r>�
TCP_MAXSEG�TCP_KEEPCNT�TCP_NODELAY�TCP_FASTOPEN�TCP_KEEPIDLErk�
TCP_KEEPINTVL)r�r�r�r�r{r~r�r�r�s@rrwrw�s����
�M�Q�Qrrwc�`�\sQsQsnQsQsQs\O\	\
Q2%(9%f\	\
Q2%(Q2\O\OQ2Q	22s\O\O 2%(Q
2\O\OQ2Q22sQsUsP!)
�CreateServerTesti�c��[O2o[OQU129^tt^2oUO	UO2]*Q2UO	UO2]*U2PPP2[O%c�[OQU1[OQ59^tt^2oUO	UO2]*Q2UO	UO2]*U2PPP2P!P!)%fhK�9h)%fhP!9h)rXrXr�)rr�r8�
create_serverrorGr�r
�r�r�rvs&  r�test_address�CreateServerTest.test_address�s����-�-�/��
�
!�
!�;��"5�
6�
6�$����T�-�-�/��2�K�@����T�-�-�/��2�D�9�7��%�%�%��%�%�u�d�m�-3�_�_�>�>�AE�� � ��!1�!1�!3�A�!6��>�� � ��!1�!1�!3�A�!6��=�>�>�&�7�
6��>�>�>�s%�AD/�AE�/D?	�8D?	�E	�E	c��[OQ29^tt^2oUOUO[O2UOUO
[O2PPP2[O%c�[OQ[OQ59^tt^2oUOUO[O2UOWO
[O2PPP2P!P!)%fhK�9h)%fhP!9h)rXr�rW�rXr)
r8r�rorarsrrcrr�r
)r�rvrGs&  r�test_family_and_type�%CreateServerTest.test_family_and_type�s���
�
!�
!�"2�
3�
3�t����T�[�[�&�.�.�9����T�Y�Y��(:�(:�;�4��%�%�%��%�%�j����I�I�Q�� � ����6�?�?�;�� � ����F�,>�,>�?�J�I�&�4�
3��J�I�I�s%�AD"�AD5�"D2	�+D2	�5E	�>E	c���[[Q2%fAUO[29^tt^2[OQP	Q5PPP2P![OQ29^tt^2oUO[O[O2oUOU]2PPP2[OQP	Q59^tt^2oUO[O[O2oUOU]2PPP2P!)%fhP!9h)%fhK�9h)%fhP!9h)�SO_REUSEPORT)�
reuse_port)r�r)
r7r8ror�r�r�r�r�rorros&  r�test_reuse_port� CreateServerTest.test_reuse_ports����v�~�.�.��"�"�:�.�.��$�$�%5�$�G�/�.��%�%�&6�7�7�4��o�o�f�&7�&7��9L�9L�M��� � ��a�(�8��%�%�&6�4�H�H�D��o�o�f�&7�&7��9L�9L�M���#�#�C��+�I�H�
/�.�.��8�7��I�H�H�s7�D*�6AD>�AE�*D;	�3D;	�>E	�E	�E"	�E"	r�r�
r�
r�c��[OQ[OQ59^tt^2oUO[O[O
2%fPgPPP2P!)%fhP!9h)rXr�r�)r8r�r
r�r�r�
r�s& r�test_ipv6_only_default�'CreateServerTest.test_ipv6_only_defaultsP��
�
!�
!�*�V�_�_�
E�
E���?�?�6�#6�#6��8J�8J�K�K�K�K�F�
E�
E�
E�s�4A2�%A2�2B	�;B	�dualstack_ipv6 not supportedc���[OQ[OP	Q59^tt^2oUOUO[O2PPP2P!)%fhP!9h)rX�ra�dualstack_ipv6r�)r8r�r
rorar�s& r�test_dualstack_ipv6_family�+CreateServerTest.test_dualstack_ipv6_familysR���
!�
!�*�V�_�_�15�7�7�:>����T�[�[�&�/�/�:�7�7�7�7�s�+A&�&A7	�/A7	r)r�r�r�r�r�r�r�r#r�r7rJr�rr�r�r8�has_dualstack_ipv6r�r�r�r�s@rr�r��s�����	>�@�
,��_�_���.�9�9�9�9� ��-�8�8�7�9�����3�3�5R�S�L�T�9�L��_�_��2�2�4�4�3�5�
����3�3�5R�S�;�T�5�;rr�c��`�\sQsQsn\O
sQsQsQs	\
O\OQ2Q2s\
O\O"2%(Q2\
O\OQ2Q22s\
O\O"2%(Q2\
O\OQ2Q	22sQ
sUsP!)�CreateServerFunctionalTesti!c�8``�UU1Qko[O2nUORO2[OV!1Q5oUO
2RO
UORO2RO2P!)c	�x:�S9^tt^2UO2vqS9^tt^2RORO2UOQ2oU%fPPP2PPP2P!UO	U2PPP2PPP2P!)%fhK9h)%fhP!9hrj)r^r�r|rlr�)rvr_r�rqrr�s&   ��r�run�3CreateServerFunctionalTest.echo_server.<locals>.run%ss������+�+�-����T��J�J�t�|�|�,��)�)�D�/�C���	����L�L��%�����T�����s@�B(�4B	�B	� B(�2B	�B(�B%
�B%
� B(�(B9	�1B9	rn
)	r�r�r\r|r�
r�
r�r3r�)r�rvr�r�rsf&  @r�echo_server�&CreateServerFunctionalTest.echo_server$s`���	&����!��������%��!�!��8�<������������T�\�\�2�
�	�	�rc�<�[OUQ59^tt^2oUOUO2UOU2UO	Q2UOUO
Q2Q2PPP2P!)%fhP!9h)r�rwrk)r8r\r|rgr�rorl)r�r�rarvs&&& r�echo_client�&CreateServerFunctionalTest.echo_client6sb��
�]�]�&�
)�
)�T��O�O�D�L�L�)��L�L����L�L�� ����T�Y�Y�t�_�f�5�	*�
)�
)�
)�s�AB
�
B	�B	c��[O2o[OPU129^tt^2oUO	U2UOQU1[O2PPP2P!)%fhP!9h)rvrX)rr�r8r�r�r�rsr�s&  r�	test_tcp4�$CreateServerFunctionalTest.test_tcp4=s]���-�-�/��
�
!�
!�2�t�*�
-�
-�����T�"����k�4�0�&�.�.�A�.�
-�
-�
-�s�4A5�5B	�>B	r�c�2�[O2o[OPU1[OQ59^tt^2oUOU2UO
QU1[O2PPP2P!)%fhP!9h)rvr�rX�rr�r8r�r
r�r�r�s&  r�	test_tcp6�$CreateServerFunctionalTest.test_tcp6Csn���-�-�/��
�
!�
!�2�t�*�)/���:�:�=A����T�"����e�T�]�F�O�O�<�:�:�:�:�s�4B�B	�B	r�c�4�[O2o[OPU1[OP	Q59^tt^2oUOU2UO
QU1[O2PPP2P!)%fhP!9h)rvr�rX)rr�r8r�r
r�r�rsr�s&  r�test_dual_stack_client_v4�4CreateServerFunctionalTest.test_dual_stack_client_v4Mss���-�-�/��
�
!�
!�2�t�*�V�_�_�15�7�7�:>����T�"����k�4�0�&�.�.�A�7�7�7�7���4B�B	�B	c�4�[O2o[OPU1[OP	Q59^tt^2oUOU2UO
QU1[O2PPP2P!)%fhP!9h)rvr�rXr�r�s&  r�test_dual_stack_client_v6�4CreateServerFunctionalTest.test_dual_stack_client_v6Wsr���-�-�/��
�
!�
!�2�t�*�V�_�_�15�7�7�:>����T�"����e�T�]�F�O�O�<�7�7�7�7�r�r)r�r�r�r�rr]r|r�r�r�r#r�rr�r�r�r8r�r�r�r�r�r�s@rr�r�!s������&�&�G��$6�B�����3�3�5R�S�=�T�=��_�_��2�2�4�4�3�5�
����3�3�5R�S�B�T�5�B��_�_��2�2�4�4�3�5�
����3�3�5R�S�=�T�5�=rr��send_fds�recv_fdsc�(`�\sQsQsnQsQsUsP!)�SendRecvFdsTestsiac��QoQo[]
2Tt,tFDo[O2MJ	ooUOV2STTt,tFDvqVUMJ		ooo[O
[O[O2vq�S9^tt^2U	9^tt^2[OU[,U2[OU	[[2]*[U2]*2vq�q�UOV+2PPP2PPP2UOW
[2UO[W2[U22UOW]2[U2FD7vq�UvqV[OU[U2O!22J9	[U2FDEvq�[O"U]d2oUOU[U2O!22JG	P!ttohttooh)%fhCK9h)%fhCK9h)c�x�SFD1vq[OU2[OU2J3	P!r�r�rD)�pipesr	�fd2s&  r�close_pipes�8SendRecvFdsTests.testSendAndRecvFds.<locals>.close_pipesfs$��!�������
�����
�"rc�H�SFDo[OU2J	P!rr�)r�rss& r�	close_fds�6SendRecvFdsTests.testSendAndRecvFds.<locals>.close_fdsks���������r)r,r��piper�r8r�r�rcr�rpr�r�ror�r�r;r�r�)r�r�r�r�r��rfd�wfdr�rr	rq�fds2r�r�r�r;s&               r�testSendAndRecvFds�#SendRecvFdsTests.testSendAndRecvFdses���	�
	�
%*�"�I�.�I�q�����I��.�����+�#(�)�5�x�s�s�5��)��(�(�����9K�9K�L���
�U�E�E��O�O�E�C�5�#�.�%+�_�_�U�C��H�q�L�#�c�(�UV�,�%W�"�C�u��O�O�I�,�	�U�	
����c�"�����T��C��H�-������"�$�E�*�J�E��H�C��H�H�S�#�e�*�+�+�-�.�+�$�D�/�J�E��7�7�3��$�D����T�C��J�$5�$5�$7�8�*��-/��)��E�E��U�U�U�s<� H�H�H.�'A.H	�H.�H+
�#H+
�%	H.�.H?	�7H?	r)r�r�r�r�r�r�r�r�s@rr�r�as����#9�#9rr�c�(`�\sQsQsnQsQsUsP!)�FreeThreadingTestsi�c�^`�[O[O[O2nU1QkoU1Qko[OUQ5o[OUQ5o[
OV4,29^tt^2PPP2P!)%fhP!9h)c�P:�[Q2FDoRO2J	P!�r�)r,rD�r�rGs �rrD�8FreeThreadingTests.test_close_detach_race.<locals>.close�s����4�[�����	�!rc�P:�[Q2FDoRO2J	P!r�)r,rmr�s �rrm�9FreeThreadingTests.test_close_detach_race.<locals>.detach�s����4�[�����
�!rr�
)r8rsrcr�r�
r	�
start_threads)r�rDrm�t1�t2rGs&    @r�test_close_detach_race�)FreeThreadingTests.test_close_detach_race�sn����M�M�&�.�.�&�*<�*<�=��	�	��
�
�U�
+��
�
�
�V�
,��
�
+�
+�R�H�
5�
5��6�
5�
5�
5�s�B�B,	�$B,	r)r�r�r�r�r�r�r�r�s@rr�r��s�����rr�c��`�\sQsQsnQs\O\\OQ2Q2Q2s	\O\\OQ2Q2Q2s
Q	sUsP!)
�ReentrantMutationTestsi�z�Regression tests for re-entrant mutation in sendmsg/recvmsg_into.

These tests verify that mutating sequences during argument parsing
via __buffer__ protocol does not cause crashes.

See: https://github.com/python/cpython/issues/143988
r�r�c	�h`�,nU1QkQ2oU2QQ,n[O2vq#S9^tt^2U9^tt^2UOR2UOUO	Q2Q2PPP2PPP2P!)%fhK9h)%fhP!9h)c�6:`�\sQsQsnQsU1QksQsUsP!)�NReentrantMutationTests.test_sendmsg_reentrant_data_mutation.<locals>.MutBufferi�c��P
UmP!r���trippedr�s&rr��WReentrantMutationTests.test_sendmsg_reentrant_data_mutation.<locals>.MutBuffer.__init__��	��$��rc�n:�UO%fP	UmRO2[Q2!)TsHello�r�r�r�)r�r�r�s&&�r�
__buffer__�YReentrantMutationTests.test_sendmsg_reentrant_data_mutation.<locals>.MutBuffer.__buffer__�s'����|�|�|�#'�D�L��I�I�K�!�(�+�+rr��r�r�r�r�r�r�r�r�r�s@�r�	MutBufferr��s����
%�
,�
,rr�sWorldsTestrksHelloWorldTest)r8r�r�rorl)r�r�r�r�r�s&   @r�$test_sendmsg_reentrant_data_mutation�;ReentrantMutationTests.test_sendmsg_reentrant_data_mutation�sx�����	,�	,��{�H�g�.���'�'�)���
�T�5�5��L�L������U�Z�Z��-�/@�A��T�T�5�5��T�T�T�s/�B �3B
	�;B �
B
�B
�B � B1	�)B1	r�zrecvmsg_into not supportedc	��``�,n[]d2nUU1QkQ2oU2[]d2[]d2,n[O2vq#S9^tt^2U9^tt^2UOQ2UO	R2PPP2PPP2UORQO
]dQ22P!)%fhK<9h)%fhKG9h)r�c�8:`�\sQsQsnQsUU1QksQsUsP!)�UReentrantMutationTests.test_recvmsg_into_reentrant_buffer_mutation.<locals>.MutBufferi�c��P
UmP!r�r�r�s&rr��^ReentrantMutationTests.test_recvmsg_into_reentrant_buffer_mutation.<locals>.MutBuffer.__init__�r�rc�n:�UO%fP	UmRO2[R2!rr�)r�r��buf1r�s&&��rr��`ReentrantMutationTests.test_recvmsg_into_reentrant_buffer_mutation.<locals>.MutBuffer.__buffer__�s'����|�|�|�#'�D�L��I�I�K�!�$�'�'rr�r�)r�r�r�s@��rr�r��s����
%�
(�
(rr�sHello World!rF)rtr8r�rvr�ror9)r�r�r�r�r�r�s&   @@r�+test_recvmsg_into_reentrant_buffer_mutation�BReentrantMutationTests.test_recvmsg_into_reentrant_buffer_mutation�s��������~��	(�	(��{�I�c�N�I�c�N�;���'�'�)���
�T�5�5��I�I�o�&����s�#��T�	
�����4�4�S�'�B�C��5��T�T�s0�C�'#B>	�
C�>C
�C
�	C�C!	�C!	r)
r�r�r�r�r�r#r�r7r8r�r�r�r�r�s@rr�r��sl������������	�:�0�2�B�2�B�(��������?�5�7�D�7�Drr�c��[O2o[O[O,UN3P!r)r	�threading_setupr#�addModuleCleanup�threading_cleanup)�thread_infos r�setUpModuler��s*��"�2�2�4�K����.�@�@�O�;�Or�__main__)r+�openbsdr*)r�r*r�)�r#r�testr�test.supportrrrrrr	�test.support.import_helperr�_threadr�r�r-r>rtr@rHr�
r~r�r�r-rpr�r�
r�rr�r8r�
r;r�r�r�reror��weakrefrro
rjr6r��requires_working_socketrFr�rprZ�systemrr1r�r~	r	�release�WSLrJr1r?rHrMrQrUrZr]r`rerhrlrxrr~r��HAVE_SOCKET_CAN�HAVE_SOCKET_CAN_ISOTP�HAVE_SOCKET_CAN_J1939�HAVE_SOCKET_RDS�HAVE_SOCKET_ALG�HAVE_SOCKET_QIPCRTR�HAVE_SOCKET_VSOCK�HAVE_SOCKET_UDPLITE�HAVE_SOCKET_BLUETOOTHr��HAVE_SOCKET_HYPERVr�r�rTr�r�r�r�r�r�r�rr%r�r.r7r@r�r�rPr|r�r�r�r�r�r�r�r�r�r�r�rrr
rr(r6rArCr�r5rtr�r�r�rrr7r1rlr�r�r,rIrYr�r�r�r�r�r�r�rr"r*rsr�r�r�r�r�	r
r
r
r
r
r�r$
r'
r)
r+
r.
r0
r2
r4
r6
r8
r<
r>
r@
rB
rD
rF
rH
rJ
rL
rN
rP
rR
r\
r`
rb
rd
rf
rh
rj
rl
r~
r�
r�
r�
r�
rrXr�r�r�r�r�r�r�r�r�r�rrArXrtr�r�r�r�r�r
r
r
r

r
r
r)
r?
r\
r/rf
r�
r	r
rfrmrwr�r�r�r�r�r�r��mainrrr�<module>rs��������;�������	�	���	�
���
�	�
�
�
�
�
�
����������������t�,�����)�0�0��9���	��o�o��5� ��

�,�,�
!�
!�'�
*���,�,�1�1�&�(��!�\�\�4�4�5M�N���(�"2�"2�"4�4�����:(��������
����&���.��.�������"#�$��.�0��.�0��"�$��"�$��*�,��&�(��$�&��.�0��:�<��(�*���[�[��
�
&�
&�
�>�X�&�&�>�	�H�%�%�	��H�%�%��7�
�7�0+�H�%�%�0+�f
7�H�%�%�
7� m�m�^,�M�>�,�,�M�>�,�
���(�
3�5�,� 1�>�,�5�,�,�M�>�,�(,�M�>�,�,
����$���-�	����<�=�	���&�
1�3�	�����g�f�.?��C�C�@�B�,�H�$5�$5�~�,�B�3�>�.�,�\3�/�3�B,�X�&�&��,�H1�X�&�&�1�0�~��,�n�n�,�<!!�7�6�!!�H3��3�A�'�A�
6�>�
6�A�,�A�@�,�@�X�l�X�2�\�2� �L� �
A�=�A�Y�}�Y�/�.F�3�>C>��*�*�C>�L*
���_�&I�J�P[�8�$�$�P[�K�P[�f
���_�&I�J�W=�#�W=�K�W=�t
���*�,O�P�N��!�!�N�Q�N�b
���*�,O�P�:��!�!�:�Q�:�z
���_�&K�L�G�8�$�$�G�M�G�"
���_�&K�L�<9�#�<9�M�<9�|
���(�
3�5�7�x�(�(�7�5�7�6
����$���-�	���&�
1�3�,D�X�&�&�,D�3�.�,D�^
���W�V�^�4�@�B�J!��*�*�J!�B�J!�X
���*�@�B�I#�H�%�%�I#�B�I#�X
���'�>�@�/7�h�'�'�/7�@�/7�d!�&�!�D3�(�3�:
���(�
3�5�3�0�3�5�3�nt8�t8�n	6��	6�F��F�@��@�9�O�9�*
��
�(5�?�5�t@�/�t@�n:"��:"�z.��.�"SM�/�SM�l � 3� �F�&��:M5�'�)<�M5�`<I�X�&�&�<I�~I!�0�I!�Xy�7�y�|
	�6�:�4�k�	�
�f�m�m�Y�'�	�/�1G�	�(�	��f�m�m�Y�'�	�\�#9�	�(�	��f�m�m�^�,�	�)�+A�	�-�	�1�7�;�5�|�1��f�m�m�Y�'�	���]�/�/�1O�P��z�<�(�	�0�2I�	�)�Q�(�	��f�m�m�Y�'�	���]�/�/�1O�P��z�<�(�	�l�$;�	�)�Q�(�	��f�m�m�^�,�	���]�/�/�1O�P��z�<�(�	�*�,C�	�)�Q�-�	��f�m�m�Y�'�	���]�/�/�1O�P�
�f�n�%��z�<�(�	�&:�&=�	�)�&�Q�(�	��f�m�m�^�,�	���]�/�/�1O�P�
�f�n�%��z�<�(�	�*:�*>�*A�	�)�&�Q�-�	�
���(�
3�5�	�!:�:�4�o�	�5�	�

���(�
3�5�
�f�m�m�Y�'�	�3�5O�	�(�5�	�
���(�
3�5�
�f�m�m�Y�'�	��'A�	�(�5�	�
���(�
3�5�
�f�m�m�^�,�	�-�/I�	�-�5�	�
���(�
3�5�1�";�;�5�7G�1�5�1��f�m�m�Y�'�	���]�/�/�1O�P�	���(�
3�5��z�<�(�	�4�6Q�	�)�5�Q�(�
	��f�m�m�Y�'�	���]�/�/�1O�P�	���(�
3�5��z�<�(�	�,�(C�	�)�5�Q�(�
	��f�m�m�^�,�	���]�/�/�1O�P�	���(�
3�5��z�<�(�	�.�0K�	�)�5�Q�-�
	��f�m�m�Y�'�	���]�/�/�1O�P�	���(�
3�5�
�f�n�%��z�<�(�	�*>�&A�	�)�&�5�Q�(�	��f�m�m�^�,�	���]�/�/�1O�P�	���(�
3�5�
�f�n�%��z�<�(�	�.>�*>�*E�	�)�&�5�Q�-�	�	�5�5�{�	��f�m�m�Y�'�	�'�)?�	�(�	��f�m�m�Y�'�	�\�#<�+�	�(�	��f�m�m�^�,�	�)�+D�/�	�-�	�
	�$<�$<�$<�n�	�
�f�m�m�Y�'�	����N�O��y�-��8�	�.�0M�	�9�P�(�	��f�m�m�Y�'�	����N�O��y�-��8�	R�L�*C�9�	R�9�P�(�	R��f�m�m�^�,�	����N�O��y�-��8�	R� 0�2K� =�	R�9�P�-�	R�	�$<�$<�n�	��f�m�m�Y�'�
�f�i� �	�.�0M�	�!�(�	��f�m�m�Y�'�
�f�i� �	�L�*C�9�	�!�(�	��f�m�m�^�,�
�f�i� �	� 0�2K� =�	�!�-�	��f�m�m�Y�	�2�
�f�i��|�<�	��0M�	�=�3�	��f�m�m�Y��7�
�f�i��|�<�	�%5�}�%B�	�=�8�	�"�"�@�f�n�%�	���W�V�W�-�M�M����1M�B�D�$M�!7��$M�D�&�$M�R�f�n�%�	���W�V�W�-�M�M����1M�B�D�3F�!7�!9�;�3F�D�&�3F�l0�)�0�* #�.� #�Fg
�~�g
�T�/��D`
�1�`
�FkG�(?�kG�\�*A��
�+B��
�)@���*A���.E��"�F�"��)�<��P5�� 1� 1�P5�fF4�m�^�F4�R>�]�N�>�>75�]�75�rK�]�K�.
���(�
3�5�K�*�K�5�K�.$�X�&�&�$�.
���S�\�\�%9�9�;P�Q�4H��!2�!2�4H�R�4H�n
���W�V�Y�/�1L�M�H7�X�&�&�H7�N�H7�VP:�&�P:�f�
�
�
�
�
��(
���_�&�M�O�#�x� � �#�O�#�,
���_�&�M�O�$��*�*�N�$�O�$�N)9�/�)9�X@6�h�'�'�@6�F
���W�V�_�5�0�2�9$�8�,�,�9$�2�9$�x
���R�W�W��_�&8�9�	���_�&<�=�b#�
�b#�>�:�b#�JF=�1�F=�R
���W�R��,�<�>�7� 5�7�>�7�
���_�&7�8�J*�8�,�,�J*�9�J*�Z
���S�\�\�X�-�/D�E�.��)�)�.�F�.�
���W�V�^�4�6P�Q�*�x�(�(�*�R�*�,
���S�\�\�,�,�U�3�5G�H�Q�H�-�-�Q�I�Q�00;�x�(�(�0;�f>=��!2�!2�>=�@�f�j�!�
�f�j�!�
�f�i� �$9�x�(�(�$9�!�"�"�$9�N��*�*��(5D�X�.�.�5D�pP�
�z���M�M�O���mm���O������E������I���.���G��s|�AO� AO(�%AO8�AP�OAO%�OAO%�O$AO%�O(AO5�O.AO5�O4AO5�O8AP�O>AP�PAP�PAP�PAP�PAP

Youez - 2016 - github.com/yon3zu
LinuXploit