HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/__pycache__/test_asyncore.cpython-311.opt-2.pyc
�

��Vc�k���ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZddlm
Z
ddlmZddlmZddlmZe
jrejd���e
jd	�
��ejd��Zeed��ZGd
�d��ZGd�d��ZGd�d��ZGd�d��Zd�Zd�ZGd�dej��Z Gd�dej��Z!Gd�dej"��Z#Gd�dej��Z$ej%eed��d ��Gd!�d"ej����Z&Gd#�d$ej'��Z(Gd%�d&ej'��Z)Gd'�d(e(��Z*Gd)�d*��Z+Gd+�d,e+��Z,ej%e
j-d-��Gd.�d/e+����Z.ej%ed0��Gd1�d2e+����Z/Gd3�d4e,ej��Z0ej%eed5��d6��Gd7�d8e,ej����Z1Gd9�d:e.ej��Z2ej%eed5��d6��Gd;�d<e.ej����Z3Gd=�d>e/ej��Z4ej%eed5��d6��Gd?�d@e/ej����Z5e6dAkrej7��dSdS)B�N)�support)�	os_helper)�
socket_helper)�threading_helper)�warnings_helper)�BytesIOztest is not helpful for PGOT)�module�asyncore�AF_UNIXc� �eZdZd�Zd�Zd�ZdS)�dummysocketc��d|_dS�NF��closed��selfs �&D:\Python311\Lib\test\test_asyncore.py�__init__zdummysocket.__init__s
�������c��d|_dS�NTrrs r�closezdummysocket.close s
������rc��dS)N�*�rs r�filenozdummysocket.fileno#s���rrN)�__name__�
__module__�__qualname__rrrrrrr
r
sA����������������rr
c��eZdZd�Zd�ZdS)�dummychannelc�,�t��|_dS�N)r
�socketrs rrzdummychannel.__init__'s��!�m�m����rc�8�|j���dSr$)r%rrs rrzdummychannel.close*s����������rN)rrr rrrrrr"r"&s2������$�$�$�����rr"c�&�eZdZd�Zd�ZeZeZeZdS)�exitingdummyc��dSr$rrs rrzexitingdummy.__init__.����rc�4�t����r$)r
�ExitNowrs r�handle_read_eventzexitingdummy.handle_read_event1s����� � � rN)rrr rr-�handle_write_event�handle_close�handle_expt_eventrrrr(r(-sA������
�
�
�!�!�!�+��$�L�)���rr(c�,�eZdZd�Zd�ZeZeZeZd�ZdS)�
crashingdummyc��d|_dSr��
error_handledrs rrzcrashingdummy.__init__9s��"����rc��t���r$��	Exceptionrs rr-zcrashingdummy.handle_read_event<s���k�k�rc��d|_dSrr4rs r�handle_errorzcrashingdummy.handle_errorCs��!����rN�	rrr rr-r.r/r0r:rrrr2r28sT������#�#�#����+��$�L�)��"�"�"�"�"rr2c���	|���|���\}}d}tj��}|dkr�tj��|z
dkr�t	j|gggd��\}}}	|rH|dz}|�d��}
|�|
�dd����d|
vrn4tjd	��|dkrtj��|z
dk��|�	��n#t$rYnwxYw|�	��|���dS#|�	��|���wxYw)
N��rg@皙�����?��
�
r�{�G�z�?)�listen�accept�time�	monotonic�select�recv�write�replace�sleepr�TimeoutError�set)�evt�buf�serv�conn�addr�n�start�r�w�e�datas           r�capture_serverrYGsv������
�
�
��[�[�]�]�
��d�
���� � ���!�e�		���(�(�5�0�3�6�		��m�T�F�B��C�8�8�G�A�q�!��
��Q����y�y��}�}���	�	�$�,�,�u�c�2�2�3�3�3��D�=����J�t�����!�e�		���(�(�5�0�3�6�		�	
�
�
������!�
�
�
���
����$	
�
�
�������	�	�	�	�	��	
�
�
�������	�	�	�	���s)�+D�C$E�
D�E�D�E�*E5c��	tr@|jtjkr+t	j|��t
j||��dS|�|��dSr$)	�HAS_UNIX_SOCKETS�familyr%rr�unlinkr�bind_unix_socket�bind)�sockrRs  r�
bind_af_awarera`sZ��C���D�K�6�>�9���������&�t�T�2�2�2�2�2��	�	�$�����rc�t�eZdZd�Zejeed��d��d���Zd�Z	d�Z
d�Zd�Zd	S)
�HelperFunctionTestsc��t��}|�tjtj|��|�tjtj|��|�tjtj|��t��}t�|��|�|j	d��t��}t�|��|�|j	d��t��}t�|��|�|j	d��dSr)
r(�assertRaisesr
r,�readrI�
_exceptionr2�assertEqualr5)r�tr1�tr2s   r�test_readwriteexcz%HelperFunctionTests.test_readwriteexcks��
�n�n�����(�*�H�M�3�?�?�?����(�*�H�N�C�@�@�@����(�*�H�,?��E�E�E��o�o���
�
�c��������*�D�1�1�1��o�o�����s��������*�D�1�1�1��o�o�����C� � � �����*�D�1�1�1�1�1r�poll�select.poll requiredc��d}tjdftjdftjdftjdftjdftjdff}Gd�d��}|D�]\}}|��}|�t||��d��t�
||��|D]*}|�t||��||k���+t��}|�tj
tj
||��t��}	|�|	jd��t�
|	|��|�|	jd	����dS)
N)rf�exptrIrr5rfrorIrc�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�3HelperFunctionTests.test_readwrite.<locals>.testobjc�L�d|_d|_d|_d|_d|_dSr)rfrIrror5rs rrz<HelperFunctionTests.test_readwrite.<locals>.testobj.__init__�s,��!��	�"��
�#���!��	�%*��"�"�"rc��d|_dSr)rfrs rr-zEHelperFunctionTests.test_readwrite.<locals>.testobj.handle_read_event��
�� ��	�	�	rc��d|_dSr)rIrs rr.zFHelperFunctionTests.test_readwrite.<locals>.testobj.handle_write_event�s
��!��
�
�
rc��d|_dSrrrs rr/z@HelperFunctionTests.test_readwrite.<locals>.testobj.handle_close�s
��"����rc��d|_dSr)rors rr0zEHelperFunctionTests.test_readwrite.<locals>.testobj.handle_expt_event�rtrc��d|_dSrr4rs rr:z@HelperFunctionTests.test_readwrite.<locals>.testobj.handle_error�s��%)��"�"�"rNr;rrr�testobjrq�sn������
+�
+�
+�
!�
!�
!�
"�
"�
"�
#�
#�
#�
!�
!�
!�
*�
*�
*�
*�
*rryFT)rG�POLLIN�POLLPRI�POLLOUT�POLLERR�POLLHUP�POLLNVALrh�getattrr
�	readwriter(rer,r2r5)
r�
attributes�expectedry�flag�expectedattr�tobj�attrrirjs
          r�test_readwritez"HelperFunctionTests.test_readwrite�s���J�
��]�F�#�
�^�V�$�
�^�W�%�
�^�X�&�
�^�X�&�
�_�h�'�
��	*�	*�	*�	*�	*�	*�	*�	*�.#+�	6�	6��D�,��7�9�9�D����W�T�<�8�8�%�@�@�@����t�T�*�*�*�#�
J�
J��� � ���t�!4�!4�d�L�6H�I�I�I�I��.�.�C����h�.��0B�C��N�N�N� �/�/�C����S�.��6�6�6����s�D�)�)�)����S�.��5�5�5�5�)	6�	6rc�0�|�d��dSr��closeall_checkrs r�
test_closeallz!HelperFunctionTests.test_closeall�s�����E�"�"�"�"�"rc�0�|�d��dSrr�rs r�test_closeall_defaultz)HelperFunctionTests.test_closeall_default�s�����D�!�!�!�!�!rc�^�g}i}td��D]J}t��}|�|��|�|jjd��|||<�K|rjtj}	|t_t���tj|c}t_n8#tj|c}t_wxYwt�|��|�t|��d��|D]"}|�|jjd���#dS)Nr@FrT)
�ranger"�appendrhr%rr
�
socket_map�	close_all�len)r�
usedefault�l�testmap�i�c�	socketmaps       rr�z"HelperFunctionTests.closeall_check�s)��
�����r���	�	�A����A�
�H�H�Q�K�K�K����Q�X�_�e�4�4�4��G�A�J�J��	(� �+�I�
N�&-��#��"�"�$�$�$�/7�/B�I�,���,�,��x�/B�I�,���,�M�M�M�M����w�'�'�'�����W���q�)�)�)��	4�	4�A����Q�X�_�d�3�3�3�3�	4�	4s�.%B-�-Cc
���	td���#tj��\}}}t���}YnxYw|\\}}}}}	}
|�tj�	|��dd��|�|d��|�||��|�|	|��|�|
d|�d|�d|�d���dS)	N�I don't like spam!zExpected exception���ztest_asyncore.py�test_compact_traceback�[�|�])
r8�fail�sys�exc_infor
�compact_tracebackrh�os�path�split)r�real_t�real_v�real_tbrU�f�function�line�t�v�infos           rr�z*HelperFunctionTests.test_compact_traceback�s���	,��0�1�1�1��	-�&)�l�n�n�#�F�F�G��*�*�,�,�A�A�A����+,�'���H�d�Q��4��������q�)�)�"�-�/A�B�B�B�����#;�<�<�<�����F�#�#�#�����F�#�#�#������q�q�q�(�(�(�D�D�D�A�B�B�B�B�Bs	��2AN)
rrr rk�unittest�
skipUnless�hasattrrGr�r�r�r�r�rrrrcrcjs�������2�2�2�:�X������0�0�2H�I�I�96�96�J�I�96�v#�#�#�"�"�"�4�4�4�4C�C�C�C�Crrcc�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�DispatcherTestsc��dSr$rrs r�setUpzDispatcherTests.setUp�r*rc�8�t���dSr$�r
r�rs r�tearDownzDispatcherTests.tearDown�����������rc���t���}|�|���d��|�|���d��dSr)r
�
dispatcherrh�readable�writable�r�ds  r�
test_basiczDispatcherTests.test_basic�sU�����!�!����������t�,�,�,���������t�,�,�,�,�,rc��t���}|�t|��dt	|��z��dS)Nz<asyncore.dispatcher at %#x>)r
r�rh�repr�idr�s  r�	test_reprzDispatcherTests.test_reprsA�����!�!������a���"@�2�a�5�5�"H�I�I�I�I�Irc�r�t���}d}d}tj��5}|�|��|�|��ddd��n#1swxYwY|������}|�|d|zd|zg��dS)NzLovely spam! Wonderful spam!r�zlog: %s)r
r�r�captured_stderr�log�getvalue�
splitlinesrh)rr��l1�l2�stderr�liness      r�test_logzDispatcherTests.test_logs������!�!��,��
!��
�
$�
&�
&�	�&�
�E�E�"�I�I�I�
�E�E�"�I�I�I�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����!�!�,�,�.�.�������R���R�� @�A�A�A�A�As�+A(�(A,�/A,c��t���}d}d}d}tj��5}|�|d��|�|��|�|d��ddd��n#1swxYwY|������}d|zd|zd|zg}|�||��dS)	Nz#Have you got anything without spam?z.Why can't she have egg bacon spam and sausage?zTHAT'S got spam in it!�EGGS�SPAMzEGGS: %szinfo: %szSPAM: %s)r
r�r�captured_stdout�log_infor�r�rh)rr�r�r��l3�stdoutr�r�s        r�
test_log_infozDispatcherTests.test_log_infos
�����!�!��3��
=��
%��
�
$�
&�
&�	#�&�
�J�J�r�6�"�"�"�
�J�J�r�N�N�N�
�J�J�r�6�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
���!�!�,�,�.�.����O�Z�"�_�j�2�o�F�������)�)�)�)�)s�AB�B�Bc��t���}d|_tj��5}|���|���|���|���ddd��n#1swxYwY|�	���
��}gd�}|�||��dS)Nr)z*warning: unhandled incoming priority eventzwarning: unhandled read eventzwarning: unhandled write eventz warning: unhandled connect event)r
r��ignore_log_typesrr��handle_expt�handle_read�handle_write�handle_connectr�r�rh)rr�r�r�r�s     r�test_unhandledzDispatcherTests.test_unhandled"s�����!�!������
$�
&�
&�	�&�
�M�M�O�O�O�
�M�M�O�O�O�
�N�N����
������		�	�	�	�	�	�	�	�	�	�	����	�	�	�	����!�!�,�,�.�.��8�8�8��	
�����)�)�)�)�)s�AB�B�Bc�B�t�tj��}t	t
d��r2|�|tjtj����t�d��}|�|dk��dS)N�strerrorr��)	r
�	_strerror�errno�EPERMr�r�rhr��
assertTrue)r�errs  r�
test_strerrorzDispatcherTests.test_strerror4sz��� � ���-�-���2�z�"�"�	<����S�"�+�e�k�":�":�;�;�;�� � ��$�$������r�	�"�"�"�"�"rN)rrr r�r�r�r�r�r�r�r�rrrr�r��s�������
�
�
����-�-�-�
J�J�J�B�B�B�*�*�*� *�*�*�$#�#�#�#�#rr�c��eZdZd�Zd�ZdS)�dispatcherwithsend_noreadc��dSrrrs rr�z"dispatcherwithsend_noread.readable>s���urc��dSr$rrs rr�z(dispatcherwithsend_noread.handle_connectAr*rN)rrr r�r�rrrr�r�=s2���������
�
�
�
�
rr�c�:�eZdZd�Zd�Zejd���ZdS)�DispatcherWithSendTestsc��dSr$rrs rr�zDispatcherWithSendTests.setUpFr*rc�8�t���dSr$r�rs rr�z DispatcherWithSendTests.tearDownIr�rc���tj��}tj��}|�d��t	j|��}t
��}|||f}tjt|���}|�	��	tjd��d}t��}|�
��|�tj|f��tjd��|�|��|�|��|�d��d}	|jr1|	dkr+t$���|	d	z}	|jr|	dk�+|���|�|���|d
z��t/j|��dS#t/j|��wxYw)N�)�target�args皙�����?s$Suppose there isn't a 16-ton weight?r>rAi�rr?�)�	threading�Eventr%�
settimeoutr�	bind_portr�ThreadrYrTrErKr��
create_socket�connect�HOST�send�
out_bufferr
rl�waitrhr�r�join_thread)
rrNr`�port�capr�r�rXr�rSs
          r�	test_sendz!DispatcherWithSendTests.test_sendLs����o�����}������������&�t�,�,���i�i���S�$�����N��>�>�>��	���	�	�	�	,�
�J�s�O�O�O�:�D�)�+�+�A�
�O�O����
�I�I�}�)�4�0�1�1�1�
�J�s�O�O�O�
�F�F�4�L�L�L�
�F�F�4�L�L�L�
�F�F�5�M�M�M��A��,�
�1�q�5�
��
�
�����Q����,�
�1�q�5�
�
�H�H�J�J�J����S�\�\�^�^�T�!�V�4�4�4��(��+�+�+�+�+���(��+�+�+�+���s
�D%G�G$N)rrr r�r�r�reap_threadsrrrrr�r�EsQ������
�
�
�����"�$,�$,�#�"�$,�$,�$,rr��file_wrapperzasyncore.file_wrapper requiredc�z�eZdZd�Zd�Zd�Zd�Zeje	e
d��d��d���Zd�Zd	�Z
d
S)�FileWrapperTestc��d|_ttjd��5}|�|j��ddd��dS#1swxYwYdS)NsIt's not dead, it's sleeping!�wb)r��openr�TESTFNrI)r�files  rr�zFileWrapperTest.setUpws���1���
�)�"�D�
)�
)�	�T��J�J�t�v����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A
�
A�Ac�B�tjtj��dSr$)rr]rrs rr�zFileWrapperTest.tearDown|s�����)�*�*�*�*�*rc�H�tjtjtj��}t
�|��}tj|��|�|j	|��|�|�
��|��|�|�d��d��|�|�
d��d��|���|�t|j
d��dS)N�
s
It's not dead�s, it'sr?)r�r
rr�O_RDONLYr
rr�assertNotEqual�fdrrhrHrfre�OSError)rrrVs   r�	test_recvzFileWrapperTest.test_recvs���
�W�Y�%�r�{�
3�
3���!�!�"�%�%��
���������A�D�"�%�%�%����A�H�H�J�J��+�+�+����������%5�6�6�6����������I�.�.�.�	���	�	�	����'�1�6�1�-�-�-�-�-rc��d}d}tjtjtjtjz��}t�|��}tj|��|�	|��|�
|��|���ttjd��5}|�|���|j
|z|z��ddd��dS#1swxYwYdS)NsCome again?sI want to buy some cheese.�rb)r�r
rr�O_WRONLY�O_APPENDr
rrrIrrhrfr�)r�d1�d2rrVrs      rrzFileWrapperTest.test_send�s��
��
*��
�W�Y�%�r�{�R�[�'@�
A�
A���!�!�"�%�%��
������	�������	���r�
�
�
�	���	�	�	�
�)�"�D�
)�
)�	<�T����T�Y�Y�[�[�$�&�2�+��*:�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<s�4D�D�	D�file_dispatcherz!asyncore.file_dispatcher requiredc�f��tjtjtj��}g�G�fd�dt
j��}||��}tj|��t
�ddd���|�	d�
���|j��dS)Nc���eZdZ�fd�ZdS)�7FileWrapperTest.test_dispatcher.<locals>.FileDispatcherc�X����|�d����dS)N�)r�rH�rrXs �rr�zCFileWrapperTest.test_dispatcher.<locals>.FileDispatcher.handle_read�s%������D�I�I�b�M�M�*�*�*�*�*rN�rrr r��rXs�r�FileDispatcherr"�s.�������
+�
+�
+�
+�
+�
+�
+rr(rBTr���timeout�use_poll�countr)r�r
rrrr
rr�looprh�joinr�)rrr(�srXs    @r�test_dispatcherzFileWrapperTest.test_dispatcher�s�����W�Y�%�r�{�
3�
3����	+�	+�	+�	+�	+�	+�	+�X�5�	+�	+�	+�
�N�2����
�������
�
�d�T��
�;�;�;�������$�����0�0�0�0�0rc�F�tjtjtj��}t
�|��}tj|��tj	dtf��5d}tj��ddd��dS#1swxYwYdS)Nr�)
r�r
rrrr
rrr�check_warnings�ResourceWarningr�
gc_collect�rrr�s   r�test_resource_warningz%FileWrapperTest.test_resource_warning�s���
�W�Y�%�r�{�
3�
3���!�!�"�%�%��
������
�
+�R��,A�
B�
B�	!�	!��A��� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	!�	!s�3B�B�Bc���tjtjtj��}t
�|��}tj|��tj|j��|�	t��5|���ddd��n#1swxYwY|�|jd��|���dS)Nr�)r�r
rrrr
rrrrerrhr5s   r�test_close_twicez FileWrapperTest.test_close_twice�s���
�W�Y�%�r�{�
3�
3���!�!�"�%�%��
������
�������
�
�
�w�
'�
'�	�	�
�G�G�I�I�I�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�����r�"�"�"�	���	�	�	�	�	s�B,�,B0�3B0N)rrr r�r�rrr�r�r�r
r0r6r8rrrr
r
ts����������
+�+�+�
.�
.�
.�<�<�<��X�����+<�=�=�<�>�>�	1�	1�>�>�	1�!�!�!�����rr
c�:�eZdZd	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)
�BaseTestHandlerNc�T�tj�||��d|_dSr)r
r�rr�)rr`s  rrzBaseTestHandler.__init__�s&����$�$�T�4�0�0�0���	�	�	rc� �td���)Nz'handle_accept not supposed to be calledr7rs r�
handle_acceptzBaseTestHandler.handle_accept�s���A�B�B�Brc� �td���)Nz)handle_accepted not supposed to be calledr7rs r�handle_acceptedzBaseTestHandler.handle_accepted�s���C�D�D�Drc� �td���)Nz(handle_connect not supposed to be calledr7rs rr�zBaseTestHandler.handle_connect�s���B�C�C�Crc� �td���)Nz%handle_expt not supposed to be calledr7rs rr�zBaseTestHandler.handle_expt�s���?�@�@�@rc� �td���)Nz&handle_close not supposed to be calledr7rs rr/zBaseTestHandler.handle_close�s���@�A�A�Arc���r$rrs rr:zBaseTestHandler.handle_error����
rr$)
rrr rr=r?r�r�r/r:rrrr:r:�s�����������C�C�C�E�E�E�D�D�D�A�A�A�B�B�B�����rr:c�<�eZdZ	efd�Zed���Zd�Zd�ZdS)�
BaseServerc��tj�|��|�|��|���t|j|��|�d��||_dS�N�)	r
r�rr��set_reuse_addrrar%rC�handler)rr\rRrKs    rrzBaseServer.__init__�sk����$�$�T�*�*�*����6�"�"�"��������d�k�4�(�(�(����A��������rc�4�|j���Sr$)r%�getsocknamers r�addresszBaseServer.address�s���{�&�&�(�(�(rc�0�|�|��dSr$)rK�rr`rRs   rr?zBaseServer.handle_accepted�s�����T�����rc���r$rrs rr:zBaseServer.handle_error�rDrN)	rrr r:r�propertyrNr?r:rrrrFrF�sk�������.=������)�)��X�)��������rrFc��eZdZd�Zd�ZdS)�
BaseClientc��t�|��|�|��|�|��dSr$)r:rr�r�)rr\rNs   rrzBaseClient.__init__�sB��� � ��&�&�&����6�"�"�"����W�����rc��dSr$rrs rr�zBaseClient.handle_connect�r*rN)rrr rr�rrrrTrT�s2���������

�
�
�
�
rrTc���eZdZd�Zdd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zej
ej�d��d��d
���Zd�Zd�Zd�Zd�Zd�Zejd���ZdS)�BaseTestAPIc�<�t�d���dS)NT)�
ignore_allr�rs rr�zBaseTestAPI.tearDown�s�����d��+�+�+�+�+rrIc�(�t|��dz}d}tjr\|dkrVt�dd|j���|jrdS|dz}t
j|��tjr|dk�V|�d��dS)N�drrBr?)r*r,r+zflag not set)	�floatr
r�r-r+r�rErKr�)r�instancer*r,s    r�loop_waiting_for_flagz!BaseTestAPI.loop_waiting_for_flag�s�����.�.�3�&�����!�	 �e�a�i�	 ��M�M�$�a�$�-�M�H�H�H��}�
����Q�J�E��J�w�����!�	 �e�a�i�	 �	
�	�	�.�!�!�!�!�!rc��Gd�dt��}t|j|j��}||j|j��}|�|��dS)Nc��eZdZd�ZdS)�3BaseTestAPI.test_handle_connect.<locals>.TestClientc��d|_dSr�r�rs rr�zBBaseTestAPI.test_handle_connect.<locals>.TestClient.handle_connect
rtrN)rrr r�rrr�
TestClientrb�#������
!�
!�
!�
!�
!rre�rTrFr\rRrNr_�rre�server�clients    r�test_handle_connectzBaseTestAPI.test_handle_connect	�p��	!�	!�	!�	!�	!��	!�	!�	!��D�K���3�3����D�K���8�8���"�"�6�*�*�*�*�*rc��Gd�dt��}||j|j��}t|j|j��}|�|��dS)Nc��eZdZd�Zd�ZdS)�4BaseTestAPI.test_handle_accept.<locals>.TestListenerc���t�|��|�|��t|j|��|�d��|j���|_dSrH�r:rr�rar%rCrMrN�rr\rRs   rrz=BaseTestAPI.test_handle_accept.<locals>.TestListener.__init__�d���(�(��.�.�.��"�"�6�*�*�*��d�k�4�0�0�0����A����#�{�6�6�8�8����rc��d|_dSrrdrs rr=zBBaseTestAPI.test_handle_accept.<locals>.TestListener.handle_accept rtrN)rrr rr=rrr�TestListenerros2������
9�
9�
9�
!�
!�
!�
!�
!rru�r:r\rRrTrNr_�rrurirjs    r�test_handle_acceptzBaseTestAPI.test_handle_acceptsp��
	!�
	!�
	!�
	!�
	!�?�
	!�
	!�
	!���d�k�4�9�5�5���D�K���8�8���"�"�6�*�*�*�*�*rc��Gd�dt��}||j|j��}t|j|j��}|�|��dS)Nc� �eZdZd�Zd�Zd�ZdS)�6BaseTestAPI.test_handle_accepted.<locals>.TestListenerc���t�|��|�|��t|j|��|�d��|j���|_dSrHrqrrs   rrz?BaseTestAPI.test_handle_accepted.<locals>.TestListener.__init__,rsrc�D�tj�|��dSr$)r
r�r=rs rr=zDBaseTestAPI.test_handle_accepted.<locals>.TestListener.handle_accept3s���#�1�1�$�7�7�7�7�7rc�<�|���d|_dSr)rr�rPs   rr?zFBaseTestAPI.test_handle_accepted.<locals>.TestListener.handle_accepted6s���
�
���� ��	�	�	rN)rrr rr=r?rrrrur{*sA������
9�
9�
9�
8�
8�
8�
!�
!�
!�
!�
!rrurvrws    r�test_handle_acceptedz BaseTestAPI.test_handle_accepted'sp��	!�	!�	!�	!�	!�?�	!�	!�	!� ��d�k�4�9�5�5���D�K���8�8���"�"�6�*�*�*�*�*rc���Gd�dt��}Gd�dt��}t|j|j|��}||j|j��}|�|��dS)Nc��eZdZd�ZdS)�0BaseTestAPI.test_handle_read.<locals>.TestClientc��d|_dSrrdrs rr�z<BaseTestAPI.test_handle_read.<locals>.TestClient.handle_readCrtrNr&rrrrer�Brfrrec��eZdZd�ZdS)�1BaseTestAPI.test_handle_read.<locals>.TestHandlerc�f�t�||��|�d��dS)Nsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r:rr�rrQs  rrz:BaseTestAPI.test_handle_read.<locals>.TestHandler.__init__Gs0���(�(��t�4�4�4��	�	�+�&�&�&�&�&rN�rrr rrrr�TestHandlerr�Fs#������
'�
'�
'�
'�
'rr��rTr:rFr\rRrNr_�rrer�rirjs     r�test_handle_readzBaseTestAPI.test_handle_read?s���	!�	!�	!�	!�	!��	!�	!�	!�	'�	'�	'�	'�	'�/�	'�	'�	'�
�D�K���K�@�@����D�K���8�8���"�"�6�*�*�*�*�*rc��Gd�dt��}t|j|j��}||j|j��}|�|��dS)Nc��eZdZd�ZdS)�1BaseTestAPI.test_handle_write.<locals>.TestClientc��d|_dSrrdrs rr�z>BaseTestAPI.test_handle_write.<locals>.TestClient.handle_writeSrtrN)rrr r�rrrrer�Rrfrrergrhs    r�test_handle_writezBaseTestAPI.test_handle_writeOrlrc���Gd�dt��}Gd�dt��}t|j|j|��}||j|j��}|�|��dS)Nc��eZdZd�Zd�ZdS)�1BaseTestAPI.test_handle_close.<locals>.TestClientc�0�|�d��dS)N�)rHrs rr�z=BaseTestAPI.test_handle_close.<locals>.TestClient.handle_read`s���	�	�$�����rc�<�d|_|���dSr�r�rrs rr/z>BaseTestAPI.test_handle_close.<locals>.TestClient.handle_closee��� ��	��
�
�����rN)rrr r�r/rrrrer�^s2������
 �
 �
 �

�
�
�
�
rrec��eZdZd�ZdS)�2BaseTestAPI.test_handle_close.<locals>.TestHandlerc�d�t�||��|���dSr$)r:rrr�s  rrz;BaseTestAPI.test_handle_close.<locals>.TestHandler.__init__js)���(�(��t�4�4�4��
�
�����rNr�rrrr�r�is#������
�
�
�
�
rr�r�r�s     r�test_handle_closezBaseTestAPI.test_handle_closeZs���		�		�		�		�		��		�		�		�	�	�	�	�	�/�	�	�	�
�D�K���K�@�@����D�K���8�8���"�"�6�*�*�*�*�*rc����d�G�fd�dt��}G�fd�dt��}t|j|j|��}||j|j��}|�|��dS)Ns�c�&��eZdZ�fd�Zd�Zd�ZdS)�CBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestClientc�2��|����dSr$)rr%s �rr�zPBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestClient.handle_writezs����	�	�$�����rc�<�d|_|���dSrr�rs rr/zPBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestClient.handle_close}r�rc�<�d|_|���dSrr�rs rr�zOBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestClient.handle_expt�r�rN)rrr r�r/r�r's�rrer�xsL�������
 �
 �
 �
 �
 �
�
�
�
�
�
�
�
rrec� ��eZdZ�fd�Zd�ZdS)�DBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestHandlerc�t��|�t�����|���dSr$)rHr�rr%s �rr�zPBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestHandler.handle_read�s,����	�	�#�d�)�)�$�$�$��
�
�����rc��dSrrrs rr�zMBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestHandler.writable�s���urN)rrr r�r�r's�rr�r��s=�������
�
�
�
�
�
�
�
�
�
rr�r�)rrer�rirjrXs     @r�#test_handle_close_after_conn_brokenz/BaseTestAPI.test_handle_close_after_conn_brokenrs������	�	�	�	�	�	�	��	�	�	�	�	�	�	�	�	�	�/�	�	�	��D�K���K�@�@����D�K���8�8���"�"�6�*�*�*�*�*r�sunosz OOB support is broken on Solarisc��tr*|jtjkr|�d��t
jdkr|jr|�d��Gd�dt��}Gd�dt��}t|j|j|��}||j|j��}|�
|��dS)N�"Not applicable to AF_UNIX sockets.�darwinz(poll may fail on macOS; see issue #28087c��eZdZd�ZdS)�0BaseTestAPI.test_handle_expt.<locals>.TestClientc�^�|j�dtj��d|_dS)Nr�T)r%rH�MSG_OOBr�rs rr�z<BaseTestAPI.test_handle_expt.<locals>.TestClient.handle_expt�s'���� � ��v�~�6�6�6� ��	�	�	rN)rrr r�rrrrer��s#������
!�
!�
!�
!�
!rrec��eZdZd�ZdS)�1BaseTestAPI.test_handle_expt.<locals>.TestHandlerc��t�||��|j�t	td��d��tj��dS)N��zlatin-1)r:rr%r�bytes�chrr�r�s  rrz:BaseTestAPI.test_handle_expt.<locals>.TestHandler.__init__�sH���(�(��t�4�4�4��� � ��s�3�x�x��!;�!;�V�^�L�L�L�L�LrNr�rrrr�r��s(������
M�
M�
M�
M�
Mrr�)r[r\r%r�skipTestr��platformr+rTr:rFrRrNr_r�s     r�test_handle_exptzBaseTestAPI.test_handle_expt�s���	@���v�~� =�	@��M�M�>�?�?�?��<�8�#�	F��
�	F��M�M�D�E�E�E�	!�	!�	!�	!�	!��	!�	!�	!�
	M�	M�	M�	M�	M�/�	M�	M�	M�
�D�K���K�@�@����D�K���8�8���"�"�6�*�*�*�*�*rc��Gd�dt��}t|j|j��}||j|j��}|�|��dS)Nc��eZdZd�Zd�ZdS)�1BaseTestAPI.test_handle_error.<locals>.TestClientc��ddzdS)Ng�?rrrs rr�z>BaseTestAPI.test_handle_error.<locals>.TestClient.handle_write�s���a����rc�6�d|_	�#t$rYdSwxYwr)r�r8�ZeroDivisionErrorrs rr:z>BaseTestAPI.test_handle_error.<locals>.TestClient.handle_error�s3�� ��	�<���(�����D�D����s�
�
�N)rrr r�r:rrrrer��s2������
�
�
�
<�
<�
<�
<�
<rrergrhs    r�test_handle_errorzBaseTestAPI.test_handle_error�sp��
	<�
	<�
	<�
	<�
	<��
	<�
	<�
	<��D�K���3�3����D�K���8�8���"�"�6�*�*�*�*�*rc��t|j|j��}t|j|j��}|�|j��|�|j��|�|j��t�
d|jd���|�|j��|�|j��|�|j��|�|j��|���|�|j��|�|j��|�|j��|�|j��|���|�|j��|�|j��dS)NrBr\r))
rFr\rRrTrN�assertFalse�	connectedr��	acceptingr
r-r+r)rrirjs   r�test_connection_attributesz&BaseTestAPI.test_connection_attributes�s����D�K���3�3���D�K���8�8��	
����)�*�*�*�����(�)�)�)�	
����)�*�*�*�	�
�
�d�T�]�#�
�F�F�F�����)�*�*�*�����(�)�)�)�����(�)�)�)�����)�*�*�*�	����������)�*�*�*�����(�)�)�)�����)�*�*�*�����)�*�*�*�	����������)�*�*�*�����)�*�*�*�*�*rc��t���}|�|j��|�|jjt
j��|�|jj|j��|�|j���d��|�	|j�
����dS)Nr)r
r�r�r\rhr%�type�SOCK_STREAM�
gettimeoutr��get_inheritable)rr/s  r�test_create_socketzBaseTestAPI.test_create_socket�s������!�!��	�����$�$�$��������(:�;�;�;�������$�+�6�6�6������,�,�.�.��2�2�2������1�1�3�3�4�4�4�4�4rc�,�tr*|jtjkr|�d��t
���}|�|j��|�|j	��|�
d��|j���d}t
���}|�|j��|�t|j|j	d|f��dS)Nr�rIr?r)r[r\r%rr�r
r�r�r_rRrCrMrer)r�s1r�s2s    r�	test_bindzBaseTestAPI.test_bind�s����	@���v�~� =�	@��M�M�>�?�?�?�
�
 �
 �
"�
"��
�����%�%�%�
����	����
�	�	�!�����y�$�$�&�&�q�)��
�
 �
 �
"�
"��
�����%�%�%����'�2�7�T�Y�q�\�4�,@�A�A�A�A�Arc�f�tr*|jtjkr|�d��tj|j��5}	|�tjtjd��t�	tj|j����}|�
|j�tjtj����|j���|�
|j��|���|�|j�tjtj����n$#t $rt#jd��YnwxYwddd��dS#1swxYwYdS)Nr�r?z+SO_REUSEADDR not supported on this platform)r[r\r%rr��
setsockopt�
SOL_SOCKET�SO_REUSEADDRr
r�r��
getsockoptrr�rJr�rr��skip)rr`r/s   r�test_set_reuse_addrzBaseTestAPI.test_set_reuse_addr�s����	@���v�~� =�	@��M�M�>�?�?�?�
�]�4�;�
'�
'�	K�4�
K����� 1�6�3F��J�J�J��'�'��
�d�k�(B�(B�C�C��� � ���!4�!4�V�5F�5;�5H�"J�"J�K�K�K����� � � ������,�,�,�� � �"�"�"������ 3� 3�F�4E�5;�5H�!J�!J�K�K�K�K���
M�
M�
M��
�K�L�L�L�L�L�
M����	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�	K�	Ks7�F&�
+E5�8C=F&�5F�F&�F�F&�&F*�-F*c
��|jtjttdt	����fvr|�d��t
|j|j��}tj	d����}|�
��	tj|jtj��5}|�d��|�
tjtjt!jddd����	|�|j��n#t($rYnwxYwddd��n#1swxYwYt+j|��dS#t+j|��wxYw)	N�AF_INET6z%test specific to AF_INET and AF_INET6c�:�t�dd���S)Nr>rI)r*r,)r
r-rrr�<lambda>z0BaseTestAPI.test_quick_connect.<locals>.<lambda>s ��H�M�M�#�@A�-:�-C�-C�r)r�r��iir?r)r\r%�AF_INETr��objectr�rFrRr�r�rTr�r�r�r��	SO_LINGER�struct�packr�rNrrr)rrir�r/s    r�test_quick_connectzBaseTestAPI.test_quick_connects����;�v�~�w�v�z�6�8�8�/T�/T�U�U�	C��M�M�A�B�B�B��D�K���3�3����%C�%C�
D�
D�
D��	���	�	�	�	,���t�{�F�,>�?�?�
�1����R� � � ����V�.��0@�#�[��q�!�4�4�6�6�6���I�I�f�n�-�-�-�-�������D�����
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�(��+�+�+�+�+���(��+�+�+�+���sU�$E"�4AE�
D%�$E�%
D2�/E�1D2�2E�5E"�E�E"�E�	E"�"E8N)rI)rrr r�r_rkrxrr�r�r�r�r��skipIfr�r��
startswithr�r�r�r�r�r�rrr�rrrrXrX�sR������,�,�,�	"�	"�	"�	"�	+�	+�	+�+�+�+�&+�+�+�0+�+�+� 	+�	+�	+�+�+�+�0+�+�+�@�X�_�S�\�,�,�W�5�5�7�9�9�+�+�9�9�+�0+�+�+�$+�+�+�<5�5�5�B�B�B�K�K�K�*�"�,�,�#�"�,�,�,rrXc�.�eZdZejZejdfZdS)�TestAPI_UseIPv4SocketsrN)	rrr r%r�r\rr�rRrrrr�r�s"������
�^�F����"�D�D�Drr�zIPv6 support requiredc�.�eZdZejZejdfZdS)�TestAPI_UseIPv6SocketsrN)	rrr r%r�r\r�HOSTv6rRrrrr�r�#s"������
�_�F�� �!�$�D�D�Drr�zUnix sockets requiredc�4�eZdZerejZejZ	d�Z
dS)�TestAPI_UseUnixSocketsc�l�tj|j��t�|��dSr$)rr]rRrXr�rs rr�zTestAPI_UseUnixSockets.tearDown.s/������#�#�#����T�"�"�"�"�"rN)rrr r[r%rr\rrrRr�rrrr�r�(s:������� ������D�#�#�#�#�#rr�c��eZdZdZdS)�TestAPI_UseIPv4SelectFN�rrr r+rrrr�r�2��������H�H�Hrr�rlrmc��eZdZdZdS)�TestAPI_UseIPv4PollTNr�rrrr�r�5��������H�H�Hrr�c��eZdZdZdS)�TestAPI_UseIPv6SelectFNr�rrrr�r�9r�rr�c��eZdZdZdS)�TestAPI_UseIPv6PollTNr�rrrr�r�<r�rr�c��eZdZdZdS)�TestAPI_UseUnixSocketsSelectFNr�rrrr�r�@r�rr�c��eZdZdZdS)�TestAPI_UseUnixSocketsPollTNr�rrrr�r�Cr�rr��__main__)8r�rGr�r%r�rEr�r�r��testr�test.supportrrrr�ior�PGO�SkipTest�requires_working_socket�import_deprecatedr
r�r[r
r"r(r2rYra�TestCasercr��dispatcher_with_sendr�r�r�r
r�r:rFrTrXr��IPV6_ENABLEDr�r�r�r�r�r�r�r�r�mainrrr�<module>rsL������
�
�
�
�	�	�	�	�
�
�
�
�
�
�
�
���������
�
�
�
�����������"�"�"�"�"�"�&�&�&�&�&�&�)�)�)�)�)�)�(�(�(�(�(�(�������
�;�;�
�(�
�9�
:�
:�:����t�,�,�,�,�,�?�,�Z�8�8���7�6�9�-�-������������������	*�	*�	*�	*�	*�	*�	*�	*�"�"�"�"�"�"�"�"����2���HC�HC�HC�HC�HC�(�+�HC�HC�HC�VE#�E#�E#�E#�E#�h�'�E#�E#�E#�P
�
�
�
�
�� =�
�
�
�,,�,,�,,�,,�,,�h�/�,,�,,�,,�^���W�W�X�~�6�6�5�7�7�D�D�D�D�D�h�'�D�D�7�7�D�N�����h�)����2������$����0
�
�
�
�
��
�
�
�d,�d,�d,�d,�d,�d,�d,�d,�L	#�#�#�#�#�[�#�#�#����]�/�1H�I�I�%�%�%�%�%�[�%�%�J�I�%����%�'>�?�?�#�#�#�#�#�[�#�#�@�?�#������2�H�4E�������W�W�V�V�,�,�.D�E�E������0�(�2C���F�E�������2�H�4E�������W�W�V�V�,�,�.D�E�E������0�(�2C���F�E�������#9�8�;L�������W�W�V�V�,�,�.D�E�E������!7��9J���F�E���z����H�M�O�O�O�O�O��r