Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_selectors.cpython-311.opt-1.pyc
�

�Ke�I���ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddl	mZddlm
Z
ddlZddlZddlZddlmZ	ddlZn
#e$rdZYnwxYwejsejrejd���eed��rejZnejejdfd	�Zd
�ZGd�d��ZGd
�d��ZGd�deej��ZGd�deej��Z ej!eed��d��Gd�deeej����Z"ej!eed��d��Gd�deeej����Z#ej!eed��d��Gd�deeej����Z$ej!eed��d ��Gd!�d"eeej����Z%d#�Z&e'd$krej(��dSdS)%�N)�support)�	os_helper)�
socket_helper)�sleep)�	monotonicz,Cannot create socketpair on Emscripten/WASI.�
socketpairc�$�tj|||��5}|�tjdf��|���tj|||��}	|�|�����|���}	|���\}}||kr||fcddd��S|����B#t$r|����wxYw#1swxYwYdS)Nr)
�socket�bindr�HOST�listen�connect�getsockname�accept�close�OSError)�family�type�proto�l�c�caddr�a�addrs        �=/usr/local/apps/python3/lib/python3.11/test/test_selectors.pyrrsD��
�]�6�4��
/�
/�	�1�
�F�F�M�&��*�+�+�+�
�H�H�J�J�J��
�f�d�E�2�2�A�
��	�	�!�-�-�/�/�*�*�*��
�
������h�h�j�j�G�A�t��u�}�}� �!�t�	�	�	�	�	�	�	�	��G�G�I�I�I����
�
�
����	�	�	��
����	�	�	�	����	�	�	�	�	�	s+�AD�$AC"�
C"�" D�D�D	�D	c�X�g}|D]$\}}||zr|�|j���%|S�N)�append�fileobj)�ready�flag�match�key�eventss     r�find_ready_matchingr%0s@���E��&�&���V��D�=�	&��L�L���%�%�%���L�c��eZdZd�Zd�Zd�Zd�Zeje	j
dkd��d���Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zejejdkd��d���Zd�Zejeed��d��d���Zejeed��d��d���ZdS)�BaseSelectorTestCasec��t��\}}|�|j��|�|j��||fSr)r�
addCleanupr)�self�rd�wrs   r�make_socketpairz$BaseSelectorTestCase.make_socketpair:s@�������B������!�!�!������!�!�!��2�v�
r&c��|���}|�|j��|���\}}|�|t
jd��}|�|t
j��|�	|j
|��|�	|j|�����|�	|j
t
j��|�	|jd��|�t |jdd��|�t |jdt
j��|�t"|j|t
j��|�t"|j|���t
j��dS)N�datar�?Bi����)�SELECTORr*rr.�register�	selectors�
EVENT_READ�assertIsInstance�SelectorKey�assertEqualr�fd�filenor$r0�assertRaises�
ValueError�KeyError�r+�sr,r-r#s     r�
test_registerz"BaseSelectorTestCase.test_register@sn���M�M�O�O������� � � ��%�%�'�'���B��j�j��Y�1�6�:�:�����c�9�#8�9�9�9������b�)�)�)�����������-�-�-������Y�%9�:�:�:������6�*�*�*�	
���*�a�j�!�V�<�<�<�	
���*�a�j�#�y�7K�L�L�L�	
���(�A�J��I�4H�I�I�I�	
���(�A�J��	�	���#�.�	0�	0�	0�	0�	0r&c�~�|���}|�|j��|���\}}|�|t
j��|�|��|�t|jd��|�t|j|��dS�Nr1)
r2r*rr.r3r4r5�
unregisterr;r=�r+r?r,r-s    r�test_unregisterz$BaseSelectorTestCase.test_unregisterZs����M�M�O�O������� � � ��%�%�'�'���B�	�
�
�2�y�+�,�,�,�	���R����	
���(�A�L�&�9�9�9�	
���(�A�L�"�5�5�5�5�5r&c��|���}|�|j��|���\}}|���|���}}|�|tj��|�|tj��|���|���|�	|��|�	|��dSr)
r2r*rr.r:r3r4r5�EVENT_WRITErC)r+r?r,r-�r�ws      r�test_unregister_after_fd_closez3BaseSelectorTestCase.test_unregister_after_fd_closeis����M�M�O�O������� � � ��%�%�'�'���B��y�y�{�{�B�I�I�K�K�1��	�
�
�1�i�*�+�+�+�	�
�
�1�i�+�,�,�,�
���
�
�
�
���
�
�
�	���Q����	���Q�����r&�posixzrequires posixc�N�|���}|�|j��|���\}}|���|���}}|�|tj��|�|tj��|���\}}|���|���tj
|���|��tj
|���|��|�tj|��|�tj|��|�|��|�|��dSr)r2r*rr.r:r3r4r5rG�os�dup2rC)r+r?r,r-rHrI�rd2�wr2s        r�(test_unregister_after_fd_close_and_reusez=BaseSelectorTestCase.test_unregister_after_fd_close_and_reuseus0���M�M�O�O������� � � ��%�%�'�'���B��y�y�{�{�B�I�I�K�K�1��	�
�
�1�i�*�+�+�+�	�
�
�1�i�+�,�,�,��'�'�)�)���S�
���
�
�
�
���
�
�
�
���
�
���a� � � �
���
�
���a� � � ������!�$�$�$������!�$�$�$�	���Q����	���Q�����r&c��|���}|�|j��|���\}}|�|t
j��|�|t
j��|���|���|�|��|�|��dSr)	r2r*rr.r3r4r5rGrCrDs    r�"test_unregister_after_socket_closez7BaseSelectorTestCase.test_unregister_after_socket_close�s����M�M�O�O������� � � ��%�%�'�'���B�	�
�
�2�y�+�,�,�,�	�
�
�2�y�,�-�-�-�
���
�
�
�
���
�
�
�	���R����	���R�����r&c�N�|���}|�|j��|���\}}|�|t
j��}|�|t
j��}|�	|j
|j
��|�||�|����|�
|��t��}t��}|�|t
j|��}|�|t
j|��}|�|j
|j
��|�	|j|j��|�||�|����|�|j|��|�t"|jdt
j��t��}t$j���|_t$j���|_
|�|t
j|��|�|jj��|�|j
j��dSrB)r2r*rr.r3r4r5�modifyrG�assertNotEqualr$r8�get_keyrC�objectr0r;r=�unittest�mock�Mock�assertFalse�called)	r+r?r,r-r#�key2�d1�d2�d3s	         r�test_modifyz BaseSelectorTestCase.test_modify�s	���M�M�O�O������� � � ��%�%�'�'���B��j�j��Y�1�2�2���x�x��I�1�2�2�����C�J���4�4�4�����q�y�y��}�}�-�-�-�	���R�����X�X��
�X�X���j�j��Y�1�2�6�6���x�x��I�0�"�5�5�������T�[�1�1�1����C�H�d�i�0�0�0�����q�y�y��}�}�-�-�-������B�'�'�'�	
���(�A�H�f�i�6J�K�K�K��X�X���]�'�'�)�)��
��}�)�)�+�+���	����Y�)�2�.�.�.������*�+�+�+������,�-�-�-�-�-r&c���|jjdkr tj�d��}nu|jjdkr tj�d��}nE|jjdkr tj�d��}n|�d���|5}tj�t���|j_	|���}|�
|j��|���\}}|�
|tj��|�t#|j��d	��|�t��5|�	|tj��ddd��n#1swxYwY|�t#|j��d
��ddd��dS#1swxYwYdS)N�
EpollSelectorz%selectors.EpollSelector._selector_cls�PollSelectorz$selectors.PollSelector._selector_cls�DevpollSelectorz'selectors.DevpollSelector._selector_cls�)�side_effect�r)r2�__name__rYrZ�patch�skipTestr[�ZeroDivisionError�return_valuerUr*rr.r3r4r5r8�len�_mapr;rG)r+rk�mr?r,r-s      r�test_modify_unregisterz+BaseSelectorTestCase.test_modify_unregister�s2���=�!�_�4�4��M�'�'�7�9�9�E�E�
�]�
#�~�
5�
5��M�'�'�6�8�8�E�E�
�]�
#�'8�
8�
8��M�'�'�9�;�;�E�E��-�-��#�#�#�
�
	-�a�$,�M�$6�$6�-�%7�%/�%/�A�N�!��
�
���A��O�O�A�G�$�$�$��)�)�+�+�F�B��
�J�J�r�9�/�0�0�0����S���[�[�!�,�,�,��"�"�#4�5�5�
4�
4�����Y�2�3�3�3�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4����
4�
4�
4�
4����S���[�[�!�,�,�,�
	-�
	-�
	-�
	-�
	-�
	-�
	-�
	-�
	-�
	-�
	-�
	-����
	-�
	-�
	-�
	-�
	-�
	-s7�(CG,�?!F,� G,�,F0	�0G,�3F0	�4+G,�,G0�3G0c�h�|���}|�|j��|���}|���\}}|�|tj��|�|tj��|���|�	t|j|��|�	t|j|��|�	t|j
|��|�	t|j
|��dSr)r2r*r�get_mapr.r3r4r5rGr;�RuntimeErrorrWr=�__getitem__)r+r?�mappingr,r-s     r�
test_closezBaseSelectorTestCase.test_close�s����M�M�O�O������� � � ��)�)�+�+���%�%�'�'���B�	�
�
�2�y�+�,�,�,�	�
�
�2�y�,�-�-�-�	���	�	�	����,��	�2�6�6�6����,��	�2�6�6�6����(�G�$7��<�<�<����(�G�$7��<�<�<�<�<r&c�f�|���}|�|j��|���\}}|�|t
jd��}|�||�|����|�	t|jd��dS)Nr0r1)r2r*rr.r3r4r5r8rWr;r=r>s     r�test_get_keyz!BaseSelectorTestCase.test_get_key�s����M�M�O�O������� � � ��%�%�'�'���B��j�j��Y�1�6�:�:������a�i�i��m�m�,�,�,�	
���(�A�I�v�6�6�6�6�6r&c��|���}|�|j��|���\}}|���}|�|��|�t|��d��|�t|��g��|�	|tjd��}|�||��|�|||��|�t|��d��|�t|��|�
��g��|�t|�����|g��|�t ��5|dddd��n#1swxYwY|�t"��5||=ddd��dS#1swxYwYdS)Nrr0rir1)r2r*rr.rtr\r8ro�listr3r4r5�assertInr:�valuesr;r=�	TypeError)r+r?r,r-�keysr#s      r�test_get_mapz!BaseSelectorTestCase.test_get_map�s6���M�M�O�O������� � � ��%�%�'�'���B��y�y�{�{�������������T���A�&�&�&�����d���R�(�(�(��j�j��Y�1�6�:�:���
�
�b�$��������d�2�h�'�'�'�����T���A�&�&�&�����d���b�i�i�k�k�]�3�3�3�����d�k�k�m�m�,�,�s�e�4�4�4��
�
�x�
(�
(�	�	���L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�y�
)�
)�	�	��R��	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s$�1	G�G
�
G
�+G<�<H�Hc�r�|���}|�|j��|���\}}|�|t
j��|�|t
j��}|���}|D]w\}}|�	t|t
j����|�	|��|�|t
jt
jzz���x|�
|t
jfg|��dSr)r2r*rr.r3r4r5rG�select�
assertTrue�
isinstancer7r\r8)r+r?r,r-�wr_key�resultr#r$s        r�test_selectz BaseSelectorTestCase.test_selects���M�M�O�O������� � � ��%�%�'�'���B�	�
�
�2�y�+�,�,�,����B�	� 5�6�6��������!�	@�	@�K�C���O�O�J�s�I�,A�B�B�C�C�C��O�O�F�#�#�#����V�	�(<�(1�(=�)>�'?�?�
@�
@�
@�
@�	
���6�9�#8�9�:�F�C�C�C�C�Cr&c���|���}|�|j��|���\}}|5}|�|t
j��|�|t
j��ddd��n#1swxYwY|�t|j
|��|�t|j
|��dSr)r2r*rr.r3r4r5rGr;rurW)r+r?r,r-�sels     r�test_context_managerz)BaseSelectorTestCase.test_context_managers����M�M�O�O������� � � ��%�%�'�'���B�
�	4�#��L�L��Y�1�2�2�2��L�L��Y�2�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	
���,��	�2�6�6�6����,��	�2�6�6�6�6�6s�AB�B�Bc�*�|���}|�|j��t|d��rT|���}|�t
|t����|�|d��dSdS)Nr:r)	r2r*r�hasattrr:r�r��int�assertGreaterEqual)r+r?r9s   r�test_filenoz BaseSelectorTestCase.test_fileno's����M�M�O�O������� � � ��1�h���	+������B��O�O�J�r�3�/�/�0�0�0��#�#�B��*�*�*�*�*�	+�	+r&c�<�|���}|�|j��d}d}t|��}g}g}i}i}t	|��D]�}	|���\}
}|�|
tj��|�|tj	��|�
|
��|�
|��|||
<|
||<��g}|�r�|���}
t|
tj	��}|s|�
d��tj|��}|�|��t	d��D]C}	|���}
t|
tj��}|rn%t#d���D|�
d��|�||g|��|d}
|
�|��}|�t|��|��|�
|��|�||
��|�|
��|�||
��|���|�||g|z��dS)N�s This is a test.zno sockets ready for writing�
g�������?zno sockets ready for readingr)r2r*rro�ranger.r3r4r5rGrr�r%�fail�random�choice�sendrr8�recvrC�remove)r+r?�NUM_SOCKETS�MSG�MSG_LEN�readers�writers�r2w�w2r�ir,r-�bufsr �
ready_writers�
ready_readers�bufs                 r�
test_selectorz"BaseSelectorTestCase.test_selector0s���M�M�O�O������� � � ���!���c�(�(�����������{�#�#�	�	�A��)�)�+�+�F�B��
�J�J�r�9�/�0�0�0�
�J�J�r�9�0�1�1�1��N�N�2�����N�N�2�����C��G��C��G�G����	$��H�H�J�J�E�/��y�7L�M�M�M� �
:��	�	�8�9�9�9���}�-�-�B��G�G�C�L�L�L��2�Y�Y�

:�

:�����
�
�� 3�E�4=�4H�!J�!J�
� ���E��c�
�
�
�
��	�	�8�9�9�9����c�"�g�Y�
�6�6�6��q�!�B��'�'�'�"�"�C����S��X�X�w�/�/�/��K�K�����
�L�L��R��!�!�!�
�L�L������N�N�3�r�7�#�#�#�5�	$�8	
�����u�{�2�3�3�3�3�3r&�win32z1select.select() cannot be used with empty fd setsc��|���}|�|j��|�|�d���g��dS)Nr)�timeout)r2r*rr8r�)r+r?s  r�test_empty_selectz&BaseSelectorTestCase.test_empty_selectesO��

�M�M�O�O������� � � �������!��,�,�b�1�1�1�1�1r&c�X�|���}|�|j��|���\}}|�|t
j��t��}|�dt|�
d������|�dt|�
d������|�t��|z
d��|�|��|�|t
j
��t��}|�|�
d����|�|�
d����|�t��|z
d��t��}|�|�
d����t��}||z
}|�d|cxkodknc|��dS)Nrir���g�?皙�����?�@)r2r*rr.r3r4rG�timer8ror��
assertLessrCr5r\r�)r+r?r,r-�t�t0�t1�dts        r�test_timeoutz!BaseSelectorTestCase.test_timeoutns����M�M�O�O������� � � ��%�%�'�'���B�	�
�
�2�y�,�-�-�-��F�F������C�������,�,�-�-�-�����C�������-�-�.�.�.��������
�C�(�(�(�	���R����	�
�
�2�y�+�,�,�,��F�F��������!���%�%�%�������"���&�&�&��������
�C�(�(�(�
�V�V��������!���%�%�%�
�V�V��
�"�W������r�(�(�(�(�S�(�(�(�(�"�-�-�-�-�-r&�alarmz%signal.alarm() required for this testc���|���}|�|j��|���\}}Gd�dt����fd�}tjt
j|��}|�t
jt
j|��	tjd��|�|tj
��t��}|����5|�
d��ddd��n#1swxYwY|�t��|z
d��tjd��dS#tjd��wxYw)Nc��eZdZdS)�GBaseSelectorTestCase.test_select_interrupt_exc.<locals>.InterruptSelectN)rj�
__module__�__qualname__�r&r�InterruptSelectr��s�������Dr&r�c�����rr�)�argsr�s �r�handlerz?BaseSelectorTestCase.test_select_interrupt_exc.<locals>.handler�s	���!�!r&ri�g@r)r2r*rr.�	Exception�signal�SIGALRMr�r3r4r5r�r;r�r�)r+r?r,r-r��orig_alrm_handlerr�r�s       @r�test_select_interrupt_excz.BaseSelectorTestCase.test_select_interrupt_exc�s����
�M�M�O�O������� � � ��%�%�'�'���B�	�	�	�	�	�i�	�	�	�	"�	"�	"�	"�	"�#�M�&�.�'�B�B������
�v�~�7H�I�I�I�	��L��O�O�O�
�J�J�r�9�/�0�0�0����A��"�"�?�3�3�
�
��������
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�O�O�D�F�F�Q�J��,�,�,��L��O�O�O�O�O��F�L��O�O�O�O���s1�*AE)�D#�E)�#D'�'E)�*D'�+(E)�)E?c��|���}|�|j��|���\}}t	jtjd���}|�tjtj|��	t	jd��|�|tj	��t��}|�|�d����|�
t��|z
d��t	jd��dS#t	jd��wxYw)Nc��dSrr�)r�s r�<lambda>zDBaseSelectorTestCase.test_select_interrupt_noraise.<locals>.<lambda>�s���r&rig�?g�?r)r2r*rr.r�r�r�r3r4r5r�r\r�r�)r+r?r,r-r�r�s      r�test_select_interrupt_noraisez2BaseSelectorTestCase.test_select_interrupt_noraise�s��
�M�M�O�O������� � � ��%�%�'�'���B�"�M�&�.�:L�:L�M�M������
�v�~�7H�I�I�I�	��L��O�O�O�
�J�J�r�9�/�0�0�0����A�
���Q�X�X�c�]�]�+�+�+��#�#�D�F�F�Q�J��4�4�4��L��O�O�O�O�O��F�L��O�O�O�O���s
�BD7�7E
N)rjr�r�r.r@rErJrY�
skipUnlessrM�namerQrSrbrrrxrzr�r�r�r�r��skipIf�sys�platformr�r�r�r�r�r�r�r&rr(r(8s����������0�0�0�4
6�
6�
6�
�
�
��X����G�+�-=�>�>���?�>��"	�	�	�$.�$.�$.�L-�-�-�6=�=�=� 
7�
7�
7����2D�D�D�$7�7�7�+�+�+�34�34�34�j�X�_�S�\�W�,�H�J�J�2�2�J�J�2�.�.�.�4�X������1�1�@�B�B���B�B��8�X������1�1�@�B�B���B�B���r&r(c�p�eZdZejdd��ejed��d�����ZdS)�ScalableSelectorMixInr��zTest needs resource modulec�T�tjtj��\}}	tjtj||f��|�tjtj||f��t|d��}n#ttf$r|}YnwxYw|dz}|���}|�|j	��t|dz��D]�}	|���\}}n%#t$r|�d��YnwxYw	|�
|tj��|�
|tj����#t$r0}|jt"jkr|�d���d}~wwxYw	|���}	nM#t$r@}|jt"jkr%t*jdkr|�d���d}~wwxYw|�|dzt1|	����dS)Ni� �zFD limit reached�darwinz%Invalid argument error calling poll())�resource�	getrlimit�
RLIMIT_NOFILE�	setrlimitr*�minrr<r2rr�r.rlr3r4r5rG�errno�ENOSPCr��EINVALr�r�r8ro)
r+�soft�hard�NUM_FDSr?r�r,r-�e�fdss
          r�test_above_fd_setsizez+ScalableSelectorMixIn.test_above_fd_setsize�s<���'��(>�?�?�
��d�	���x�5��d�|�D�D�D��O�O�H�.��0F�!�4�L�
*�
*�
*��$��&�&�G�G����$�	�	�	��G�G�G�	����	�2�
���M�M�O�O������� � � ��w�!�|�$�$�	�	�A�
2��-�-�/�/���B�B���
2�
2�
2��
�
�0�1�1�1�1�1�	
2����
��
�
�2�y�3�4�4�4��
�
�2�y�4�5�5�5�5���
�
�
��7�e�l�*�*��M�M�"4�5�5�5������
����	��(�(�*�*�C�C���	�	�	��w�%�,�&�&�3�<�8�+C�+C��
�
�E�F�F�F������		����
	
����A��s�3�x�x�0�0�0�0�0sU�AB�B�B�#C;�;D�D�!AE"�"
F�,+F�F� F5�5
G?�?;G:�:G?N)	rjr�r�r�requires_mac_verrYr�r�r�r�r&rr�r��s[�������W��b�!�$�$��X���#?�@�@�-1�-1�A�@�%�$�-1�-1�-1r&r�c��eZdZejZdS)�DefaultSelectorTestCaseN)rjr�r�r4�DefaultSelectorr2r�r&rr�r��s�������(�H�H�Hr&r�c��eZdZejZdS)�SelectSelectorTestCaseN)rjr�r�r4�SelectSelectorr2r�r&rr�r��s�������'�H�H�Hr&r�rez!Test needs selectors.PollSelectorc�(�eZdZeedd��ZdS)�PollSelectorTestCasereN�rjr�r��getattrr4r2r�r&rr�r��s#������
�w�y�.�$�7�7�H�H�Hr&r�rdz"Test needs selectors.EpollSelectorc�.�eZdZeedd��Zd�ZdS)�EpollSelectorTestCaserdNc��|���}tj��5}|�t��5|�|tj��ddd��n#1swxYwY|�t��5|�	|��ddd��n#1swxYwYddd��dS#1swxYwYdSr)
r2�tempfile�NamedTemporaryFiler;�IOErrorr3r4r5r=rW)r+r?�fs   r�test_register_filez(EpollSelectorTestCase.test_register_file
sy���M�M�O�O��
�
(�
*�
*�	�a��"�"�7�+�+�
4�
4��
�
�1�i�2�3�3�3�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4����
4�
4�
4�
4��"�"�8�,�,�
�
��	�	�!����
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�		�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	sY�C�!A0�$C�0A4	�4C�7A4	�8C�B7�+C�7B;	�;C�>B;	�?C�C�C)rjr�r�r�r4r2r�r�r&rr�r�s8������
�w�y�/�4�8�8�H�����r&r��KqueueSelectorz$Test needs selectors.KqueueSelector)c�4�eZdZeedd��Zd�Zd�ZdS)�KqueueSelectorTestCaser�Nc���|���}tj��}|�t��5}|�|tj��ddd��n#1swxYwY|�|j	j
tj��|�t��5|�
|��ddd��dS#1swxYwYdSr)r2r�make_bad_fdr;rr3r4r5r8�	exceptionr��EBADFr=rW)r+r?�bad_f�cms    r�test_register_bad_fdz+KqueueSelectorTestCase.test_register_bad_fdsC��
�M�M�O�O���%�'�'��
�
�
�w�
'�
'�	4�2�
�J�J�u�i�2�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4������+�U�[�9�9�9�
�
�
�x�
(�
(�	�	�
�I�I�e����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s$�!A/�/A3�6A3�>C!�!C%�(C%c�>�|���}|�|j��t��}|�|�d��g��t��}||z
}|�d|cxkodknc|��dS)Nrir�r�)r2r*rr�r8r�r�)r+r?r�r�r�s     r�test_empty_select_timeoutz0KqueueSelectorTestCase.test_empty_select_timeout+s���
�M�M�O�O������� � � �
�V�V��������!���b�)�)�)�
�V�V��
�"�W������r�(�(�(�(�S�(�(�(�(�"�-�-�-�-�-r&)rjr�r�r�r4r2rrr�r&rr�r�sH������
�w�y�"2�D�9�9�H�
�
�
�.�.�.�.�.r&r�rfz$Test needs selectors.DevpollSelectorc�(�eZdZeedd��ZdS)�DevpollSelectorTestCaserfNr�r�r&rrr9s$������
�w�y�"3�T�:�:�H�H�Hr&rc�,�tj��dSr)r�
reap_childrenr�r&r�tearDownModuler	As��������r&�__main__))r�rMr�r4r�r
r��testr�test.supportrrr�rrY�
unittest.mockr�rr��ImportError�
is_emscripten�is_wasi�SkipTestr�r�AF_INET�SOCK_STREAMr%r(r��TestCaser�r�r�r�r�r�rr	rj�mainr�r&r�<module>rs�������	�	�	�	�
�
�
�
�����
�
�
�
�
�
�
�
�
�
�
�
�������"�"�"�"�"�"�&�&�&�&�&�&�������������������"�"�"�"�"�"���O�O�O�O�������H�H�H�������L�G�O�L�
�(�
�J�
K�
K�K��7�6�<� � ���"�J�J� �.�v�/A������&���D�D�D�D�D�D�D�D�N21�21�21�21�21�21�21�21�j)�)�)�)�)�2�H�4E�)�)�)�
(�(�(�(�(�1�8�3D�(�(�(�
���W�W�Y��7�7�8�:�:�8�8�8�8�8�/�1F�#�,�8�8�:�:�8����W�W�Y��8�8�9�;�;�
�
�
�
�
�0�2G�$�-�
�
�;�;�
� ���W�W�Y�(8�9�9�;�=�=�.�.�.�.�.�1�3H�%�.�.�.�=�=�.�>���W�W�Y�(9�:�:�;�=�=�;�;�;�;�;�2�4I�&�/�;�;�=�=�;�����z����H�M�O�O�O�O�O��s�A
�
A�A