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/test_asyncio/__pycache__/test_unix_events.cpython-311.pyc
�

��Vc~����dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlm
Z
ddlmZddlmZe	jdkrejd���ddlZddlmZdd	lmZdd
lmZd�Ze
jZd�Zd
�Zd�Zejed��Gd�dej ����Z!eje"ed��d��Gd�dej ����Z#eje"ed��d��Gd�dej ����Z$Gd�dej ��Z%Gd�dej ��Z&Gd�dej ��Z'Gd �d!ej ��Z(Gd"�d#��Z)Gd$�d%e)ej ��Z*Gd&�d'e)ej ��Z+Gd(�d)ej ��Z,Gd*�d+ej ��Z-e.d,krej/��dSdS)-zTests for unix_events.py.�N)�mock)�	os_helper)�
socket_helper�win32z	UNIX only)�log)�unix_events)�utilsc�.�tjd��dS�N)�asyncio�set_event_loop_policy���6D:\Python311\Lib\test\test_asyncio\test_unix_events.py�tearDownModulers���!�$�'�'�'�'�'rc��d|zS)N��r)�exitcodes r�EXITCODEr$s
���8��rc�N�d|cxkrdksntd|�����d|z
S)N��Dzinvalid signum r)�AssertionError)�signums r�SIGNALr(sR����9�9�9�9�"�9�9�9�9��7�v�7�7�8�8�8��6�>�rc�X�|j�dS|j���d|_dSr)�_pipe�close)�	transports r�close_pipe_transportr .s2�������
�O�������I�O�O�OrzSignals are not supportedc�j��eZdZ�fd�Zd�Zd�Zd�Zejd��d���Z	ejd��d���Z
ejd��d���Zejd��d	���Zejd��ejd
��d�����Z
ejd��ejd
��d�����Zejd��d
���Zejd��d���Zejd��ejd
��d�����Zejd��d���Zejd��d���Zejd��d���Zejd��ejd��d�����Z�xZS)�SelectorEventLoopSignalTestsc���t�����tj��|_|�|j��dSr��super�setUpr�SelectorEventLoop�loop�set_event_loop��self�	__class__s �rr&z"SelectorEventLoopSignalTests.setUp:�@���
���
�
�����-�/�/��	����D�I�&�&�&�&�&rc��|�t|jjd��|�t|jjt
jdz��dS)N�1r)�assertRaises�	TypeErrorr(�
_check_signal�
ValueError�signal�NSIG�r+s r�test_check_signalz.SelectorEventLoopSignalTests.test_check_signal?s_������t�y�.��	5�	5�	5������	�/���q��	B�	B�	B�	B�	Brc�T�|j�tjdz��dS)Nr)r(�_handle_signalr4r5r6s r�test_handle_signal_no_handlerz:SelectorEventLoopSignalTests.test_handle_signal_no_handlerEs$���	� � ���q��1�1�1�1�1rc��tjtj��dtj�����}|���||jjtjdz<tj��|j_	|j�
tjdz��|jj	�tjdz��dS)Nr)r(r)r�Handler�Mock�cancelr(�_signal_handlersr4r5�remove_signal_handlerr9�assert_called_with)r+�hs  r�$test_handle_signal_cancelled_handlerzASelectorEventLoopSignalTests.test_handle_signal_cancelled_handlerHs����N�4�9�;�;�� $�	���
-�
-�
-��	���
�
�
�67��	�"�6�;��?�3�*.�)�+�+��	�'��	� � ���q��1�1�1��	�'�:�:�6�;��?�K�K�K�K�Krzasyncio.unix_events.signalc���tj|_tj|_t|j_|�t|jj	tj
d���dS)Nc��dS�NTrrrr�<lambda>zRSelectorEventLoopSignalTests.test_add_signal_handler_setup_error.<locals>.<lambda>Z���4�r)r4r5�
valid_signalsr3�
set_wakeup_fd�side_effectr0�RuntimeErrorr(�add_signal_handler�SIGINT�r+�m_signals  r�#test_add_signal_handler_setup_errorz@SelectorEventLoopSignalTests.test_add_signal_handler_setup_errorQsW�����
�!'�!5���-7���*������I�(��M�<�<�	)�	)�	)�	)�	)rc���tj|_d�}|}|��}|�|j��||fD]4}|�t
d|jjtj|���5dS)Nc��
K�dSrrrrr�simple_coroutinez^SelectorEventLoopSignalTests.test_add_signal_handler_coroutine_error.<locals>.simple_coroutine`s�����Drz1coroutines cannot be used with add_signal_handler)	r4r5�
addCleanupr�assertRaisesRegexr1r(rMrN)r+rPrT�	coro_func�coro_obj�funcs      r�'test_add_signal_handler_coroutine_errorzDSelectorEventLoopSignalTests.test_add_signal_handler_coroutine_error\s������
�	�	�	�%�	��9�;�;�������'�'�'���)�	%�	%�D��"�"��N��	�,��
�t�
%�
%�
%�
%�	%�	%rc�b�tj|_tj|_d�}|j�tj|��|jj�tj��}|�|tj
��|�|j|��dS)Nc��dSrFrrrrrGzFSelectorEventLoopSignalTests.test_add_signal_handler.<locals>.<lambda>r���T�r)
r4r5rIr(rM�SIGHUPr?�get�assertIsInstancerr<�assertEqual�	_callback)r+rP�cbrBs    r�test_add_signal_handlerz4SelectorEventLoopSignalTests.test_add_signal_handlerms������
�!'�!5���
�\���	�$�$�V�]�B�7�7�7��I�&�*�*�6�=�9�9�����a���0�0�0������b�)�)�)�)�)rc��tj|_tj|_d�}||_Gd�dt��}||j_|�||jjtj	d���dS)Nc�.�|dkrt���dS)N���)r3)�fds rrJzYSelectorEventLoopSignalTests.test_add_signal_handler_install_error.<locals>.set_wakeup_fd}s"���R�x�
#� �l�l�"�
#�
#rc��eZdZejZdS)�OSelectorEventLoopSignalTests.test_add_signal_handler_install_error.<locals>.ErrN)�__name__�
__module__�__qualname__�errno�EFAULTrrr�Errrj���������L�E�E�Errpc��dSrFrrrrrGzTSelectorEventLoopSignalTests.test_add_signal_handler_install_error.<locals>.<lambda>�rHr)
r4r5rIrJ�OSErrorrKr0r(rMrN)r+rPrJrps    r�%test_add_signal_handler_install_errorzBSelectorEventLoopSignalTests.test_add_signal_handler_install_errorxs������
�!'�!5���	#�	#�	#�"/���	!�	!�	!�	!�	!�'�	!�	!�	!�&)���#������I�(��M�<�<�	)�	)�	)�	)�	)rzasyncio.base_events.loggerc��tj|_tj|_Gd�dt��}||j_d�|jjtj<|�t|jj
tjd���|�|j
j��|�d|jj��dS)Nc��eZdZejZdS)�PSelectorEventLoopSignalTests.test_add_signal_handler_install_error2.<locals>.ErrN�rkrlrmrn�EINVALrrrrprw�rqrrpc��dSrFrrrrrGzUSelectorEventLoopSignalTests.test_add_signal_handler_install_error2.<locals>.<lambda>����D�rc��dSrFrrrrrGzUSelectorEventLoopSignalTests.test_add_signal_handler_install_error2.<locals>.<lambda>�rHrr)r4r5rIrsrKr(r?r^r0rLrMrN�assertFalse�info�calledrarJ�
call_count�r+�	m_loggingrPrps    r�&test_add_signal_handler_install_error2zCSelectorEventLoopSignalTests.test_add_signal_handler_install_error2�s������
�!'�!5���	!�	!�	!�	!�	!�'�	!�	!�	!�&)���#�4@�L��	�"�6�=�1������I�(��M�<�<�	)�	)�	)�	
�����.�/�/�/�����H�2�=�>�>�>�>�>rc�j�Gd�dt��}||j_tj|_tj|_|�t|jjtj	d���|�
|jj��|�
d|jj��dS)Nc��eZdZejZdS)�PSelectorEventLoopSignalTests.test_add_signal_handler_install_error3.<locals>.ErrNrxrrrrpr��rqrrpc��dSrFrrrrrGzUSelectorEventLoopSignalTests.test_add_signal_handler_install_error3.<locals>.<lambda>�rHr�)rsr4rKr5rIr0rLr(rMrNr}r~rrarJr�r�s    r�&test_add_signal_handler_install_error3zCSelectorEventLoopSignalTests.test_add_signal_handler_install_error3�s���	!�	!�	!�	!�	!�'�	!�	!�	!�&)���#����
�!'�!5��������I�(��M�<�<�	)�	)�	)�	
�����.�/�/�/�����H�2�=�>�>�>�>�>rc���tj|_tj|_|j�tjd���|�|j�tj����|�|jj	��|�|jj	��|�
tj|jf|jjd��dS)Nc��dSrFrrrrrGzISelectorEventLoopSignalTests.test_remove_signal_handler.<locals>.<lambda>�r{rr)
r4r5rIr(rMr^�
assertTruer@rJrra�SIG_DFL�	call_argsrOs  r�test_remove_signal_handlerz7SelectorEventLoopSignalTests.test_remove_signal_handler�s������
�!'�!5����	�$�$�V�]�L�L�A�A�A�����I�+�+�F�M�:�:�	<�	<�	<�����.�5�6�6�6������.�/�/�/����
�]�H�,�-�x��/H��/K�	M�	M�	M�	M�	Mrc��tj|_tj|_tj|_|j�tjd���t
��|jjtj<|j	�
��|�|j�tj����|�
|j	j��|�|jj��|�tj|jf|jjd��dS)Nc��dSrFrrrrrGzKSelectorEventLoopSignalTests.test_remove_signal_handler_2.<locals>.<lambda>�r{rr)r4r5rNrIr(rM�objectr?r^rJ�
reset_mockr�r@r}rra�default_int_handlerr�rOs  r�test_remove_signal_handler_2z9SelectorEventLoopSignalTests.test_remove_signal_handler_2�s������
� �-���!'�!5����	�$�$�V�]�L�L�A�A�A�4:�H�H��	�"�6�=�1���)�)�+�+�+�����I�+�+�F�M�:�:�	<�	<�	<�����/�6�7�7�7������.�/�/�/����
�]�H�8�9��O�%�a�(�	*�	*�	*�	*�	*rc�4�tj|_tj|_|j�tjd���t|j_|j�	tj��|�
|j��dS)Nc��dSrFrrrrrGzWSelectorEventLoopSignalTests.test_remove_signal_handler_cleanup_error.<locals>.<lambda>�r{r)r4r5rIr(rMr^r3rJrKr@r�r~)r+r�rPs   r�(test_remove_signal_handler_cleanup_errorzESelectorEventLoopSignalTests.test_remove_signal_handler_cleanup_error�sq�����
�!'�!5����	�$�$�V�]�L�L�A�A�A�-7���*��	�'�'��
�6�6�6����	��'�'�'�'�'rc��tj|_tj|_|j�tjd���t|j_|�t|jj	tj��dS)Nc��dSrFrrrrrGzOSelectorEventLoopSignalTests.test_remove_signal_handler_error.<locals>.<lambda>�r{r)
r4r5rIr(rMr^rsrKr0r@rOs  r� test_remove_signal_handler_errorz=SelectorEventLoopSignalTests.test_remove_signal_handler_error�sq�����
�!'�!5����	�$�$�V�]�L�L�A�A�A�&-���#�����T�Y�4�f�m�	E�	E�	E�	E�	Erc�4�tj|_tj|_|j�tjd���Gd�dt��}||j_|�t|jj
tj��dS)Nc��dSrFrrrrrGzPSelectorEventLoopSignalTests.test_remove_signal_handler_error2.<locals>.<lambda>�r{rc��eZdZejZdS)�KSelectorEventLoopSignalTests.test_remove_signal_handler_error2.<locals>.ErrNrxrrrrpr��rqrrp)r4r5rIr(rMr^rsrKr0rLr@)r+rPrps   r�!test_remove_signal_handler_error2z>SelectorEventLoopSignalTests.test_remove_signal_handler_error2�s������
�!'�!5����	�$�$�V�]�L�L�A�A�A�	!�	!�	!�	!�	!�'�	!�	!�	!�&)���#�����$�)�9�6�=�	J�	J�	J�	J�	Jrc�.�tj|_tj|_|j�tjd���|j�tjd���|�t|jj	��d��|j
���|j���|�t|jj	��d��|j
�
d��dS)Nc��dSrFrrrrrGz9SelectorEventLoopSignalTests.test_close.<locals>.<lambda>�r{rc��dSrFrrrrrGz9SelectorEventLoopSignalTests.test_close.<locals>.<lambda>�s��T�rr�rrg)r4r5rIr(rMr^�SIGCHLDra�lenr?rJr�r�assert_called_once_withrOs  r�
test_closez'SelectorEventLoopSignalTests.test_close�s������
�!'�!5����	�$�$�V�]�L�L�A�A�A��	�$�$�V�^�\�\�B�B�B�����T�Y�7�8�8�!�<�<�<���)�)�+�+�+��	����������T�Y�7�8�8�!�<�<�<���6�6�r�:�:�:�:�:rzasyncio.unix_events.sysc�j�tj|_tj|_|j�tjd���|�t|jj��d��d|j	_
|j���|�td��5|j���ddd��n#1swxYwY|�t|jj��d��|�|jj��dS)Nc��dSrFrrrrrGzGSelectorEventLoopSignalTests.test_close_on_finalizing.<locals>.<lambda>r{rrTz skipping signal handlers removalr)r4r5rIr(rMr^rar�r?�
is_finalizing�return_valuer��assertWarnsRegex�ResourceWarningrr}r)r+rP�m_syss   r�test_close_on_finalizingz5SelectorEventLoopSignalTests.test_close_on_finalizings>�����
�!'�!5����	�$�$�V�]�L�L�A�A�A�����T�Y�7�8�8�!�<�<�<�+/���(���"�"�$�$�$�
�
"�
"�?�#E�G�G�	�	��I�O�O����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
����T�Y�7�8�8�!�<�<�<������/�0�0�0�0�0s�6C�C �#C )rkrlrmr&r7r:rCr�patchrQrZrdrtr�r�r�r�r�r�r�r�r��
__classcell__�r,s@rr"r"7s��������'�'�'�'�'�
B�B�B�2�2�2�L�L�L��T�Z�,�-�-�)�)�.�-�)��T�Z�,�-�-�%�%�.�-�%� �T�Z�,�-�-�*�*�.�-�*��T�Z�,�-�-�)�)�.�-�)�$�T�Z�,�-�-��T�Z�,�-�-�?�?�.�-�.�-�?� �T�Z�,�-�-��T�Z�,�-�-�?�?�.�-�.�-�?��T�Z�,�-�-�M�M�.�-�M��T�Z�,�-�-�*�*�.�-�*�"�T�Z�,�-�-��T�Z�,�-�-�(�(�.�-�.�-�(��T�Z�,�-�-�E�E�.�-�E��T�Z�,�-�-�
J�
J�.�-�
J��T�Z�,�-�-�;�;�.�-�;� �T�Z�)�*�*��T�Z�,�-�-�1�1�.�-�+�*�1�1�1�1�1rr"�AF_UNIXzUNIX Sockets are not supportedc�@��eZdZ�fd�Zejd���Zejd���Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
ejeed
��d��ejd�����Zd
�Zd�Zejd��d���Zd�Zd�Zd�Zd�Zd�Z�xZS)� SelectorEventLoopUnixSocketTestsc���t�����tj��|_|�|j��dSrr$r*s �rr&z&SelectorEventLoopUnixSocketTests.setUpr-rc��tj��5}tjtj��}|�|��|�d��|���|j�d�|��}|j�	|��}|���|j�	|�
����ddd��dS#1swxYwYdS)Nrc��dSrrrrrrGz]SelectorEventLoopUnixSocketTests.test_create_unix_server_existing_path_sock.<locals>.<lambda>&����r)�
test_utils�unix_socket_path�socketr��bind�listenrr(�create_unix_server�run_until_complete�wait_closed)r+�path�sock�coro�srvs     r�*test_create_unix_server_existing_path_sockzKSelectorEventLoopUnixSocketTests.test_create_unix_server_existing_path_socks	��
�
(�
*�
*�		<�d��=���0�0�D��I�I�d�O�O�O��K�K��N�N�N��J�J�L�L�L��9�/�/���d�C�C�D��)�.�.�t�4�4�C��I�I�K�K�K��I�(�(����):�):�;�;�;�		<�		<�		<�		<�		<�		<�		<�		<�		<�		<�		<�		<����		<�		<�		<�		<�		<�		<s�CC4�4C8�;C8c�r�tj��5}tj|��}|j�d�|��}|j�|��}|���|j�|�����ddd��dS#1swxYwYdS)Nc��dSrrrrrrGzRSelectorEventLoopUnixSocketTests.test_create_unix_server_pathlib.<locals>.<lambda>/r{r)	r�r��pathlib�Pathr(r�r�rr�)r+r��srv_coror�s    r�test_create_unix_server_pathlibz@SelectorEventLoopUnixSocketTests.test_create_unix_server_pathlib+s���
�
(�
*�
*�	<�d��<��%�%�D��y�3�3�L�L�$�G�G�H��)�.�.�x�8�8�C��I�I�K�K�K��I�(�(����):�):�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<s�BB,�,B0�3B0c�V�tj��5}tj|��}|j�d�|��}|�t��5|j�|��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��dSrrrrrrGzVSelectorEventLoopUnixSocketTests.test_create_unix_connection_pathlib.<locals>.<lambda>7r{r)	r�r�r�r�r(�create_unix_connectionr0�FileNotFoundErrorr�)r+r�r�s   r�#test_create_unix_connection_pathlibzDSelectorEventLoopUnixSocketTests.test_create_unix_connection_pathlib4s��
�
(�
*�
*�	3�d��<��%�%�D��9�3�3�L�L�$�G�G�D��"�"�#4�5�5�
3�
3��	�,�,�T�2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s6�AB�B�:B�B
	�
B�
B
	�B�B"�%B"c�:�tj��5}|j�d�|j��}|�td��5|j�|��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��dSrrrrrrGz`SelectorEventLoopUnixSocketTests.test_create_unix_server_existing_path_nonsock.<locals>.<lambda>?r�rzAddress.*is already in use)�tempfile�NamedTemporaryFiler(r��namerVrsr�)r+�filer�s   r�-test_create_unix_server_existing_path_nonsockzNSelectorEventLoopUnixSocketTests.test_create_unix_server_existing_path_nonsock=s��
�
(�
*�
*�	3�d��9�/�/���d�i�H�H�D��'�'��(D�F�F�
3�
3��	�,�,�T�2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s5�=B�A8�,B�8A<	�<B�?A<	�B�B�Bc���|j�d�dd���}|�td��5|j�|��ddd��dS#1swxYwYdS)Nc��dSrrrrrrGzSSelectorEventLoopUnixSocketTests.test_create_unix_server_ssl_bool.<locals>.<lambda>E���D�r�spamT)r��sslz"ssl argument must be an SSLContext)r(r�rVr1r��r+r�s  r� test_create_unix_server_ssl_boolzASelectorEventLoopUnixSocketTests.test_create_unix_server_ssl_boolDs����y�+�+�L�L�v�04�,�6�6��
�
#�
#�I�$H�J�J�	/�	/��I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/��A"�"A&�)A&c���|j�d�d���}|�td��5|j�|��ddd��dS#1swxYwYdS)Nc��dSrrrrrrGzXSelectorEventLoopUnixSocketTests.test_create_unix_server_nopath_nosock.<locals>.<lambda>Lr�r�r�z#path was not specified, and no sock�r(r�rVr3r�r�s  r�%test_create_unix_server_nopath_nosockzFSelectorEventLoopUnixSocketTests.test_create_unix_server_nopath_nosockKs����y�+�+�L�L�t�+�D�D��
�
#�
#�J�$I�K�K�	/�	/��I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�A!�!A%�(A%c�8�tj��}|5|j�d�d|���}|�td��5|j�|��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��dSrrrrrrGzXSelectorEventLoopUnixSocketTests.test_create_unix_server_path_inetsock.<locals>.<lambda>Tr�r�r�r��"A UNIX Domain Stream.*was expected)r�r(r�rVr3r��r+r�r�s   r�%test_create_unix_server_path_inetsockzFSelectorEventLoopUnixSocketTests.test_create_unix_server_path_inetsockQs$���}����
�	3�	3��9�/�/���4�59�0�;�;�D��'�'�
�(L�N�N�
3�
3��	�,�,�T�2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s5�:B�A7�+B�7A;	�;B�>A;	�?B�B�Bc�d�tjtjtj��}|5|j�d�d|���}|�td��5|j�|��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��dSrrrrrrGzUSelectorEventLoopUnixSocketTests.test_create_unix_server_path_dgram.<locals>.<lambda>]r�rr�r�)r�r��
SOCK_DGRAMr(r�rVr3r�r�s   r�"test_create_unix_server_path_dgramzCSelectorEventLoopUnixSocketTests.test_create_unix_server_path_dgramZs/���}�V�^�V�->�?�?��
�	3�	3��9�/�/���4�59�0�;�;�D��'�'�
�(L�N�N�
3�
3��	�,�,�T�2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s5�:B%�&B
�B%�
B	�B%�B	�B%�%B)�,B)�
SOCK_NONBLOCKz$no socket.SOCK_NONBLOCK (linux only)c��tjtjtjtjz��}t	j��5}|j}ddd��n#1swxYwY	|5|�|��|j�	d�d|���}|j�
|��}|���|j�
|�����ddd��n#1swxYwYtj|��dS#tj|��wxYw)Nc��dSrrrrrrGz^SelectorEventLoopUnixSocketTests.test_create_unix_server_path_stream_bittype.<locals>.<lambda>nr{rr�)r�r��SOCK_STREAMr�r�r�r�r�r(r�r�rr��os�unlink)r+r�r��fnr�r�s      r�+test_create_unix_server_path_stream_bittypezLSelectorEventLoopUnixSocketTests.test_create_unix_server_path_stream_bittypecs����}��N�F�.��1E�E�G�G��
�
(�
*�
*�	�d���B�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�		��
@�
@��	�	�"�
�
�
��y�3�3�L�L�t�9=�4�?�?���i�2�2�4�8�8���	�	�����	�,�,�S�_�_�->�->�?�?�?�

@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@�
�I�b�M�M�M�M�M��B�I�b�M�M�M�M���sC�
A�A"�%A"�*D'�,BD�:D'�D
�
D'�
D
�D'�'D=c���|j�d�dd���}|�td��5|j�|��ddd��dS#1swxYwYdS)Nc��dSrrrrrrGzfSelectorEventLoopUnixSocketTests.test_create_unix_server_ssl_timeout_with_plain_sock.<locals>.<lambda>wr�rr�r�r��ssl_handshake_timeout�1ssl_handshake_timeout is only meaningful with sslr�r�s  r�3test_create_unix_server_ssl_timeout_with_plain_sockzTSelectorEventLoopUnixSocketTests.test_create_unix_server_ssl_timeout_with_plain_sockvs����y�+�+�L�L�v�BC�,�E�E��
�
#�
#��C�E�E�	/�	/�
�I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/r�c�6�tj��}|5|j�d�|���}|�td��5|j�|��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��dSrrrrrrGz\SelectorEventLoopUnixSocketTests.test_create_unix_connection_path_inetsock.<locals>.<lambda>�r{r�r�r�)r�r(r�rVr3r�r�s   r�)test_create_unix_connection_path_inetsockzJSelectorEventLoopUnixSocketTests.test_create_unix_connection_path_inetsock~s"���}����
�	3�	3��9�3�3�L�L�9=�4�?�?�D��'�'�
�(L�N�N�
3�
3��	�,�,�T�2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s5�9B�A6�*B�6A:	�:B�=A:	�>B�B�Bzasyncio.unix_events.socketc��tj��}||j_t|j_|j�d�d���}|�	t��5|j�
|��ddd��n#1swxYwY|�|jj
��t|j_|j�d�d���}|�	t��5|j�
|��ddd��n#1swxYwY|�|jj
��dS)Nc��dSrrrrrrGzUSelectorEventLoopUnixSocketTests.test_create_unix_server_bind_error.<locals>.<lambda>�r�rz/testr�c��dSrrrrrrGzUSelectorEventLoopUnixSocketTests.test_create_unix_server_bind_error.<locals>.<lambda>�r�r)rr=r�r�rsr�rKr(r�r0r�r�rr�MemoryError)r+�m_socketr�r�s    r�"test_create_unix_server_bind_errorzCSelectorEventLoopUnixSocketTests.test_create_unix_server_bind_error�s����y�{�{��'+���$� '��	���y�+�+�L�L�w�+�G�G��
�
�
�w�
'�
'�	/�	/��I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�����
�)�*�*�*� +��	���y�+�+�L�L�w�+�G�G��
�
�
�{�
+�
+�	/�	/��I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�����
�)�*�*�*�*�*s$�(B�B�B�D(�(D,�/D,c�
�|j�d�tjt	�����}|�td��5|j�|��ddd��dS#1swxYwYdS)Nc��dSrrrrrrGzXSelectorEventLoopUnixSocketTests.test_create_unix_connection_path_sock.<locals>.<lambda>����D�rrzpath and sock can not be)r(r�r��devnullr�rVr3r�r�s  r�%test_create_unix_connection_path_sockzFSelectorEventLoopUnixSocketTests.test_create_unix_connection_path_sock�s����y�/�/��L�"�*�6�8�8�0�5�5��
�
#�
#�J�0J�
K�
K�	/�	/��I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�A8�8A<�?A<c���|j�d�d��}|�td��5|j�|��ddd��dS#1swxYwYdS)Nc��dSrrrrrrGz\SelectorEventLoopUnixSocketTests.test_create_unix_connection_nopath_nosock.<locals>.<lambda>�r
rzno path and sock were specified�r(r�rVr3r�r�s  r�)test_create_unix_connection_nopath_nosockzJSelectorEventLoopUnixSocketTests.test_create_unix_connection_nopath_nosock�s����y�/�/��L�$� � ��
�
#�
#�J�$E�G�G�	/�	/��I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�A � A$�'A$c���|j�d�tjd���}|�t
d��5|j�|��ddd��dS#1swxYwYdS)Nc��dSrrrrrrGz_SelectorEventLoopUnixSocketTests.test_create_unix_connection_nossl_serverhost.<locals>.<lambda>�r
rr�)�server_hostnamez"server_hostname is only meaningful�r(r�r�rrVr3r�r�s  r�,test_create_unix_connection_nossl_serverhostzMSelectorEventLoopUnixSocketTests.test_create_unix_connection_nossl_serverhost�s����y�/�/��L�"�*�f�0�>�>��
�
#�
#�J�$H�J�J�	/�	/��I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/��A,�,A0�3A0c���|j�d�tjd���}|�t
d��5|j�|��ddd��dS#1swxYwYdS)Nc��dSrrrrrrGz_SelectorEventLoopUnixSocketTests.test_create_unix_connection_ssl_noserverhost.<locals>.<lambda>�r
rT)r�z/you have to pass server_hostname when using sslrr�s  r�,test_create_unix_connection_ssl_noserverhostzMSelectorEventLoopUnixSocketTests.test_create_unix_connection_ssl_noserverhost�s����y�/�/��L�"�*�$�0�0�0���
#�
#��I�K�K�	/�	/�
�I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/rc���|j�d�dd���}|�td��5|j�|��ddd��dS#1swxYwYdS)Nc��dSrrrrrrGzjSelectorEventLoopUnixSocketTests.test_create_unix_connection_ssl_timeout_with_plain_sock.<locals>.<lambda>�r�rr�rr�r�rr�s  r�7test_create_unix_connection_ssl_timeout_with_plain_sockzXSelectorEventLoopUnixSocketTests.test_create_unix_connection_ssl_timeout_with_plain_sock�s����y�/�/���6�BC�0�E�E��
�
#�
#��C�E�E�	/�	/�
�I�(�(��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/r�)rkrlrmr&r�skip_unless_bind_unix_socketr�r�r�r�r�r�r�r��unittest�
skipUnless�hasattrr�r�r�rrr�rrrrrrr�r�s@rr�r�s��������'�'�'�'�'�
�/�
<�
<�0�/�
<��/�<�<�0�/�<�3�3�3�3�3�3�/�/�/�/�/�/�3�3�3�3�3�3��X������9�9�?�A�A��/���0�/�A�A�� /�/�/�3�3�3��T�Z�,�-�-�+�+�.�-�+�"/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/rr��sendfilezsendfile is not supportedc����eZdZddzZGd�dej��Ze�fd���Ze�fd���Z	�fd�Z
dd	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z�xZS)�&SelectorEventLoopUnixSockSendfileTestss�12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�.SelectorEventLoopUnixSockSendfileTests.MyProtoc��d|_d|_t��|_|���|_d|_|���|_dS)NF)�started�closed�	bytearray�data�
create_future�futr�_ready)r+r(s  r�__init__z7SelectorEventLoopUnixSockSendfileTests.MyProto.__init__�sL�� �D�L��D�K�!���D�I��)�)�+�+�D�H�!�D�N��,�,�.�.�D�K�K�Krc�V�d|_||_|j�d��dSrF)r(rr.�
set_result)r+rs  r�connection_madez>SelectorEventLoopUnixSockSendfileTests.MyProto.connection_made�s,���D�L�&�D�N��K�"�"�4�(�(�(�(�(rc�:�|j�|��dSr)r+�extend)r+r+s  r�
data_receivedz<SelectorEventLoopUnixSockSendfileTests.MyProto.data_received�s���I���T�"�"�"�"�"rc�H�d|_|j�d��dSrF)r)r-r1)r+�excs  r�connection_lostz>SelectorEventLoopUnixSockSendfileTests.MyProto.connection_lost�s%���D�K��H����%�%�%�%�%rc��$K�|j�d{V��dSr)r-r6s rr�z:SelectorEventLoopUnixSockSendfileTests.MyProto.wait_closed�s�����(�N�N�N�N�N�N�N�N�NrN)rkrlrmr/r2r5r8r�rrr�MyProtor&�s_������	/�	/�	/�	)�	)�	)�
	#�	#�	#�	&�	&�	&�	�	�	�	�	rr:c����ttjd��5}|�|j��ddd��n#1swxYwYt�����dS)N�wb)�openr�TESTFN�write�DATAr%�
setUpClass)�cls�fpr,s  �rrAz1SelectorEventLoopUnixSockSendfileTests.setUpClass�s����
�)�"�D�
)�
)�	�R��H�H�S�X����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
���������s�A�A�
Ac���tjtj��t�����dSr)rr�r>r%�
tearDownClass)rBr,s �rrEz4SelectorEventLoopUnixSockSendfileTests.tearDownClass�s3������)�*�*�*�
���������rc�(��tj��|_|�|j��t	t
jd��|_|�|jj	��t�����dS)N�rb)r�new_event_loopr(r)r=rr>r�rUrr%r&r*s �rr&z,SelectorEventLoopUnixSockSendfileTests.setUp�sh����*�,�,��	����D�I�&�&�&���)�4�0�0��	�����	��(�(�(�
���
�
�����rTc�f�tjtjtj��}|�d��|�tjtjd��|�tjtjd��|r|�|j	��|S)NFr$)
r��AF_INETr��setblocking�
setsockopt�
SOL_SOCKET�	SO_SNDBUF�	SO_RCVBUFrUr)r+�cleanupr�s   r�make_socketz2SelectorEventLoopUnixSockSendfileTests.make_socket�s����}�V�^�V�-?�@�@�������������)�6�+;�T�B�B�B�����)�6�+;�T�B�B�B��	(��O�O�D�J�'�'�'��rc�6�|j�|��Sr)r(r�r�s  r�run_loopz/SelectorEventLoopUnixSockSendfileTests.run_loop�s���y�+�+�D�1�1�1rc�D��������}���j���tj��}��d���}|�tj|f�����j��fd�|���������j�	|tj|f�������j
�����fd�}��|��|�fS)NF)rPc����Srr)�protos�rrGz@SelectorEventLoopUnixSockSendfileTests.prepare.<locals>.<lambda>s���E�rrc����j�����������������������dSr)rrrSr�)rVr+�servers���rrPz?SelectorEventLoopUnixSockSendfileTests.prepare.<locals>.cleanupsf����O�!�!�#�#�#��M�M�%�+�+�-�-�.�.�.��L�L�N�N�N��M�M�&�,�,�.�.�/�/�/�/�/r)rQr:r(r�find_unused_portr��HOSTrS�
create_server�sock_connectr.rU)r+r��port�srv_sockrPrVrXs`    @@r�preparez.SelectorEventLoopUnixSockSendfileTests.prepare�s��������!�!�����T�Y�'�'���-�/�/���#�#�E�#�2�2���
�
�}�)�4�0�1�1�1����t�y�6�6��M�M�M�� 7� *� *�+�+���
�
�d�i�,�,�T�M�4F��3M�N�N�O�O�O��
�
�e�l�#�#�#�	0�	0�	0�	0�	0�	0�	0�	
���� � � ��U�{�rc
���|���\}}tjdg���5|�tjd��5|�|j�||j	dd����ddd��n#1swxYwYddd��n#1swxYwY|�
|j	���d��dS)Nzasyncio.unix_events.os)�specz$os[.]sendfile[(][)] is not availabler)r_rr�rVr�SendfileNotAvailableErrorrSr(�_sock_sendfile_nativer�ra�tell)r+r�rVs   r� test_sock_sendfile_not_availablezGSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_not_availablesy���l�l�n�n���e�
�Z�0�r�
:�
:�
:�	H�	H��'�'��(I�(N�P�P�
H�
H��
�
�d�i�=�=�d�D�I�>?��G�G�H�H�H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H����
H�
H�
H�
H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�
	
�������)�)�1�-�-�-�-�-s5�!B(�6B�B(�B	�B(�B	�B(�(B,�/B,c	�z�|���\}}t��}|�tjd��5|�|j�||dd����ddd��n#1swxYwY|�|j	�
��d��dS�N�not a regular filer)r_r�rVrrbrSr(rcrar�rd�r+r�rV�fs    r�test_sock_sendfile_not_a_filezDSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_not_a_files���l�l�n�n���e��H�H��
�
#�
#�G�$E�$8�:�:�	D�	D��M�M�$�)�9�9�$��:;�T�C�C�
D�
D�
D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	
�������)�)�1�-�-�-�-�-s�1B�B�
Bc	��|���\}}tj��}|�tjd��5|�|j�||dd����ddd��n#1swxYwY|�	|j
���d��dSrg)r_�io�BytesIOrVrrbrSr(rcrar�rdris    r�test_sock_sendfile_iobufferzBSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_iobuffer#s���l�l�n�n���e��J�L�L��
�
#�
#�G�$E�$8�:�:�	D�	D��M�M�$�)�9�9�$��:;�T�C�C�
D�
D�
D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	
�������)�)�1�-�-�-�-�-s�1B�B�Bc	��|���\}}tj��}d|j_|�tjd��5|�|j	�
||dd����ddd��n#1swxYwY|�|j�
��d��dS)Nrgrhr)r_rr=�filenor�rVrrbrSr(rcrar�rdris    r�#test_sock_sendfile_not_regular_filezJSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_not_regular_file,s���l�l�n�n���e��I�K�K�� "����
�
#�
#�G�$E�$8�:�:�	D�	D��M�M�$�)�9�9�$��:;�T�C�C�
D�
D�
D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	
�������)�)�1�-�-�-�-�-s�1B�B�Bc�`�|���\}}|j���}|j���}|j�|d||ddt
|j��d��|���tj
tj��5|�
|��ddd��n#1swxYwY|�t��5|jj�|��ddd��dS#1swxYwYdS�Nr)r_r(r,r�rq�_sock_sendfile_native_implr�r@r>�
contextlib�suppressr�CancelledErrorrSr0�KeyError�	_selector�get_key�r+r�rVr-rqs     r�test_sock_sendfile_cancel1zASelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_cancel16s����l�l�n�n���e��i�%�%�'�'����!�!�#�#���	�,�,�S�$��f�-.��c�$�)�n�n�a�	I�	I�	I��
�
����
�
 ��!7�
8�
8�	�	��M�M�#����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�x�
(�
(�	.�	.��I��'�'��-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.s$�/C�C�C�6 D#�#D'�*D'c�T�|���\}}|j���}|j���}|j�|d||ddt
|j��d��|���|j�||���||ddt
|j��d��|�	t��5|jj�|��ddd��dS#1swxYwYdSrt)
r_r(r,r�rqrur�r@r>r0ryrzr{r|s     r�test_sock_sendfile_cancel2zASelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_cancel2CsK���l�l�n�n���e��i�%�%�'�'����!�!�#�#���	�,�,�S�$��f�-.��c�$�)�n�n�a�	I�	I�	I��
�
�����	�,�,�S�$�+�+�-�-��v�-.��c�$�)�n�n�a�	I�	I�	I�
�
�
�x�
(�
(�	.�	.��I��'�'��-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.s�0 D�D!�$D!c�.�|���\}}|j���}tj��}d|j_tjdt�����5|j	�
|d||ddt|j��d��ddd��n#1swxYwY|j	j
�|��}|�|��|j�tj��dS)NF�os.sendfile�rKr)r_r�rqrr=�	cancelledr�r��BlockingIOErrorr(rur�r@rzr{�assertIsNotNone�add_done_callbackr��ANY)r+r�rVrqr-�keys      r�!test_sock_sendfile_blocking_errorzHSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_blocking_errorPs?���l�l�n�n���e���!�!�#�#���i�k�k��%*��
�"�
�Z�
�?�3D�3D�
E�
E�
E�	M�	M��I�0�0��d�D�&�12�D�#�d�i�.�.�!�
M�
M�
M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M����	M�	M�	M�	M��i�!�)�)�$�/�/�����S�!�!�!���5�5�d�h�?�?�?�?�?s�24B2�2B6�9B6c���|���\}}|j���}|j���}tjdt�����5|j�|d||ddt|j
��d��ddd��n#1swxYwY|�t��5|jj
�|��ddd��n#1swxYwY|���}|�|t"j��|�d|j�����dS)Nr�r�r)r_r�rqr(r,rr�rsrur�r@r0ryrzr{�	exceptionr`rrbrard)r+r�rVrqr-r7s      r�&test_sock_sendfile_os_error_first_callzMSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_os_error_first_call]s����l�l�n�n���e���!�!�#�#���i�%�%�'�'��
�Z�
�7�9�9�
=�
=�
=�	M�	M��I�0�0��d�D�&�12�D�#�d�i�.�.�!�
M�
M�
M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M����	M�	M�	M�	M��
�
�x�
(�
(�	.�	.��I��'�'��-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.��m�m�o�o�����c�7�#D�E�E�E�����D�I�N�N�,�,�-�-�-�-�-s$�,4B,�,B0�3B0� C=�=D�Dc���|���\}}|j���}|j���}t��}t
jd|���5|j�||���||ddt|j
��d��ddd��n#1swxYwY|�t��5|jj
�|��ddd��n#1swxYwY|���}|�||��|�d|j�����dS�Nr�r�i�)r_r�rqr(r,rsrr�rur�r@r0ryrzr{r��assertIsrard�r+r�rVrqr-�errr7s       r�%test_sock_sendfile_os_error_next_callzLSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_os_error_next_callks����l�l�n�n���e���!�!�#�#���i�%�%�'�'���i�i��
�Z�
�3�
7�
7�
7�	7�	7��I�0�0��d�k�k�m�m�15�v�15�t�S���^�^�15�
7�
7�
7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�
�
�
�x�
(�
(�	.�	.��I��'�'��-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.��m�m�o�o���
�
�c�3��������t�y�~�~�/�/�0�0�0�0�0s%�.AC�C�C�% D�D�Dc���|���\}}|j���}|j���}tj��}tjd|���5|j�	||���||ddt|j��d��ddd��n#1swxYwY|�t��5|jj�|��ddd��n#1swxYwY|���}|�||��|�d|j�����dSr�)r_r�rqr(r,rrbrr�rur�r@r0ryrzr{r�r�rardr�s       r�test_sock_sendfile_exceptionzCSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_exception|s����l�l�n�n���e���!�!�#�#���i�%�%�'�'���/�1�1��
�Z�
�3�
7�
7�
7�	7�	7��I�0�0��d�k�k�m�m�15�v�15�t�S���^�^�15�
7�
7�
7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�
�
�
�x�
(�
(�	.�	.��I��'�'��-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.��m�m�o�o���
�
�c�3��������t�y�~�~�/�/�0�0�0�0�0s%�3AC�C	�C	�* D�D�D)T)rkrlrmr@r�Protocolr:�classmethodrArEr&rQrSr_rerkrorrr}rr�r�r�r�r�r�s@rr#r#�s����������$�D������'�"����2������[��
� � � � ��[� ����������2�2�2����,.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�@�@�@�.�.�.�1�1�1�"1�1�1�1�1�1�1rr#c�>��eZdZ�fd�Zdd�Zd�Zejd��d���Zejd��d���Z	ejd��d���Z
ejd	��ejd��d
�����Zejd��d���Zejd��d���Z
ejd��d
���Zejd��d���Zejd��d���Zd�Zd�Zd�Zd�Zd�Zd�Z�xZS)�UnixReadPipeTransportTestsc���t�����|���|_t	jtj��|_tj
tj���|_
d|j
j_tjd��}|���|�|j��tjd��}|���}tj
��}t(j|_||_|�|j��dS�N)�spec_set�zos.set_blockingzos.fstat)r%r&�
new_test_loopr(r��make_test_protocolrr��protocolrr=rm�	RawIOBase�piperqr�r��startrU�stop�stat�S_IFIFO�st_mode�r+�blocking_patcher�
fstat_patcher�m_fstat�str,s     �rr&z UnixReadPipeTransportTests.setUp�s����
���
�
�����&�&�(�(��	�"�5�g�6F�G�G��
��I�r�|�4�4�4��	�()��	��%��:�&7�8�8����� � � ����(�-�.�.�.��
�:�.�.�
��%�%�'�'��
�Y�[�[���\��
�!������
�*�+�+�+�+�+rNc��tj|j|j|j|���}|�t|��|S�N��waiter)r�_UnixReadPipeTransportr(r�r�rUr �r+r�rs   r�read_pipe_transportz.UnixReadPipeTransportTests.read_pipe_transport�sI���6�t�y�$�)�7;�}�>D�F�F�F�	�	
���,�i�8�8�8��rc�d�|j���}|�|���}|j�|��|jj�|��|j�d|j��|�	|�
����dS�Nr�r�)r(r,r�r�r�r2rA�
assert_reader�_read_ready�assertIsNone�result�r+r��trs   r�	test_ctorz$UnixReadPipeTransportTests.test_ctor�s�����(�(�*�*��
�
%�
%�V�
%�
4�
4���	�$�$�V�,�,�,��
�%�8�8��<�<�<��	����2�>�2�2�2����&�-�-�/�/�*�*�*�*�*rzos.readc���|���}d|_|���|�d|j��|jj�d��dS�N�datar�)r�r�r�rA�max_sizer�r5�r+�m_readr�s   r�test__read_readyz+UnixReadPipeTransportTests.test__read_ready�sb��
�
%�
%�
'�
'��%���
�������!�!�!�R�[�1�1�1��
�#�6�6�w�?�?�?�?�?rc��|���}d|_|���|�d|j��|�|jj��tj	|j��|j
j���|j
j�d��dS)Nrr�)
r�r�r�rAr�r}r(�readersr��run_brieflyr��eof_receivedr8r�s   r�test__read_ready_eofz/UnixReadPipeTransportTests.test__read_ready_eof�s���
�
%�
%�
'�
'��!���
�������!�!�!�R�[�1�1�1������*�+�+�+���t�y�)�)�)��
�"�5�5�7�7�7��
�%�8�8��>�>�>�>�>rc��|���}t|_|���|�d|j��t
j|j��|�	|j
jj��dS�Nr�)
r�r�rKr�rAr�r�r�r(r}r�r5rr�s   r�test__read_ready_blockedz3UnixReadPipeTransportTests.test__read_ready_blocked�sx��
�
%�
%�
'�
'��,���
�������!�!�!�R�[�1�1�1���t�y�)�)�)������4�;�<�<�<�<�<r�asyncio.log.logger.errorc��|���}t��}||_tj��|_|���|�d|j��|j�|��|�tj
d��tttf���dS)Nr�z;Fatal read error on pipe transport
protocol:.*
transport:.*)�exc_info)r�rsrKrr=�_closer�rAr�r��MockPattern�MOCK_ANY)r+r��m_logexcr�r�s     r�test__read_ready_errorz1UnixReadPipeTransportTests.test__read_ready_error�s����
%�
%�
'�
'���i�i�� ����I�K�K��	�
�������!�!�!�R�[�1�1�1�
�	�$�$�S�)�)�)��#�#��"�.�
/�
/��x��2�		$�	4�	4�	4�	4�	4rc���|���}tj��}|j�d|��|���|�|jj��dSr�)r�rr=r(�
add_reader�
pause_readingr}r�)r+r�r��ms    r�test_pause_readingz-UnixReadPipeTransportTests.test_pause_reading�sg��
�
%�
%�
'�
'���I�K�K���	���Q��"�"�"�
�����������*�+�+�+�+�+rc��|���}|���|���|j�d|j��dSr�)r�r��resume_readingr(r�r�r�s   r�test_resume_readingz.UnixReadPipeTransportTests.test_resume_reading�sW��
�
%�
%�
'�
'��
������
�������	����2�>�2�2�2�2�2rc��|���}tj��|_|���|j�d��dSr)r�rr=r�rrAr�s   rr�z%UnixReadPipeTransportTests.test_close�sI��
�
%�
%�
'�
'���I�K�K��	�
���
�
�
�
�	�$�$�T�*�*�*�*�*rc���|���}d|_tj��|_|���|�|jj��dSrF)r��_closingrr=r�rr}rr�s   r�test_close_already_closingz5UnixReadPipeTransportTests.test_close_already_closing�sS��
�
%�
%�
'�
'������I�K�K��	�
���
�
�
������)�*�*�*�*�*rc�p�|���}t��}|�|��|�|�����|�|jj��tj	|j��|j
j�|��dSr)
r�r�r�r��
is_closingr}r(r�r�r�r�r8rA)r+r�r�r�s    r�test__closez&UnixReadPipeTransportTests.test__closes���
�
%�
%�
'�
'���h�h��
�	�	�#��������
�
���(�(�(������*�+�+�+���t�y�)�)�)��
�%�8�8��=�=�=�=�=rc��|���}|�|j��|�|j��d}|�|��|jj�|��|jj	���|�
|j��|�
|j��dSr)r�r��	_protocol�_loop�_call_connection_lostr�r8rAr�rr��r+r�r�s   r�test__call_connection_lostz5UnixReadPipeTransportTests.test__call_connection_lost
s���
�
%�
%�
'�
'�����R�\�*�*�*����R�X�&�&�&���
� � ��%�%�%��
�%�8�8��=�=�=��	��*�*�,�,�,����"�,�'�'�'����"�(�#�#�#�#�#rc��|���}|�|j��|�|j��t	��}|�|��|jj�|��|j	j
���|�|j��|�|j��dSr)r�r�r�r�rsr�r�r8rAr�rr�r�s   r�#test__call_connection_lost_with_errz>UnixReadPipeTransportTests.test__call_connection_lost_with_errs���
�
%�
%�
'�
'�����R�\�*�*�*����R�X�&�&�&��i�i��
� � ��%�%�%��
�%�8�8��=�=�=��	��*�*�,�,�,����"�,�'�'�'����"�(�#�#�#�#�#rc���|���}|���tj|j��|�|j��|���dSr)r�rr�r�r(r�r�r��r+r�s  r�!test_pause_reading_on_closed_pipez<UnixReadPipeTransportTests.test_pause_reading_on_closed_pipe$sa��
�
%�
%�
'�
'��
���
�
�
���t�y�)�)�)����"�(�#�#�#�
�������rc�~�|���}|���|���dSr)r�r�r�s  r�!test_pause_reading_on_paused_pipez<UnixReadPipeTransportTests.test_pause_reading_on_paused_pipe+s=��
�
%�
%�
'�
'��
������
�������rc���|���}|���tj|j��|�|j��|���dSr)r�rr�r�r(r�r�r�r�s  r�"test_resume_reading_on_closed_pipez=UnixReadPipeTransportTests.test_resume_reading_on_closed_pipe1sa��
�
%�
%�
'�
'��
���
�
�
���t�y�)�)�)����"�(�#�#�#�
�������rc�V�|���}|���dSr)r�r�r�s  r�"test_resume_reading_on_paused_pipez=UnixReadPipeTransportTests.test_resume_reading_on_paused_pipe8s-��
�
%�
%�
'�
'��	�������rr)rkrlrmr&r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�s@rr�r��s8�������,�,�,�,�,�$����+�+�+��T�Z�	���@�@���@��T�Z�	���	?�	?���	?��T�Z�	���=�=���=��T�Z�*�+�+��T�Z�	���
4�
4���,�+�
4��T�Z�	���,�,���,��T�Z�	���3�3���3��T�Z�	���+�+���+��T�Z�	���+�+���+��T�Z�	���>�>���>�$�$�$�$�$�$����������������rr�c�p��eZdZ�fd�Zdd�Zd�Zd�Zejd��d���Z	ejd��d���Z
ejd��d	���Zejd��d
���Zejd��d���Z
ejd��ejd��d
�����Zejd��d���Zd�Zejd��d���Zejd��d���Zejd��d���Zejd��d���Zejd��ejd��d�����Zejd��d���Zejd��d���Zd�Zd�Zd�Zd�Zd�Zd�Z�xZS)�UnixWritePipeTransportTestsc���t�����|���|_t	jtj��|_tj
tj���|_
d|j
j_tjd��}|���|�|j��tjd��}|���}tj
��}t(j|_||_|�|j��dSr�)r%r&r�r(r�r�r�BaseProtocolr�rr=rmr�r�rqr�r�r�rUr�r��S_IFSOCKr�r�s     �rr&z!UnixWritePipeTransportTests.setUpAs����
���
�
�����&�&�(�(��	�"�5�g�6J�K�K��
��I�r�|�4�4�4��	�()��	��%��:�&7�8�8����� � � ����(�-�.�.�.��
�:�.�.�
��%�%�'�'��
�Y�[�[���]��
�!������
�*�+�+�+�+�+rNc��tj|j|j|j|���}|�t|��|Sr�)r�_UnixWritePipeTransportr(r�r�rUr r�s   r�write_pipe_transportz0UnixWritePipeTransportTests.write_pipe_transportSsI���7��	�4�9�8<�
�?E�G�G�G�	�	
���,�i�8�8�8��rc�f�|j���}|�|���}|j�|��|jj�|��|j�d|j��|�	d|�
����dSr�)r(r,r�r�r�r2rAr�r�rar�r�s   rr�z%UnixWritePipeTransportTests.test_ctorZs�����(�(�*�*��
�
&�
&�f�
&�
5�
5���	�$�$�V�,�,�,��
�%�8�8��<�<�<��	����2�>�2�2�2�����v�}�}���/�/�/�/�/rc�|�|���}|�|�����dSr)r�r��
can_write_eofr�s  r�test_can_write_eofz.UnixWritePipeTransportTests.test_can_write_eofcs7��
�
&�
&�
(�
(������(�(�*�*�+�+�+�+�+rzos.writec��|���}d|_|�d��|�dd��|�|jj��|�t��|j	��dS)N�r�r�)
r�r�r?rAr}r(�writersrar*�_buffer�r+�m_writer�s   r�
test_writez&UnixWritePipeTransportTests.test_writegs~��
�
&�
&�
(�
(�� ���
��������"�"�1�g�.�.�.������*�+�+�+�������b�j�1�1�1�1�1rc��|���}|�d��|�|j��|�|jj��|�td��|j��dS)Nr)	r�r?r}rr(rrar*rrs   r�test_write_no_dataz.UnixWritePipeTransportTests.test_write_no_datapsu��
�
&�
&�
(�
(��
����
�
�
������(�(�(������*�+�+�+�����3�����4�4�4�4�4rc��|���}d|_|�d��|j�d|j��|�td��|j��dS)Nr�r�r��ta)	r�r�r?r(�
assert_writer�_write_readyrar*rrs   r�test_write_partialz.UnixWritePipeTransportTests.test_write_partialxsm��
�
&�
&�
(�
(�� ���
��������	����2�?�3�3�3�����5�)�)�2�:�6�6�6�6�6rc��|���}|j�d|j��t	d��|_|�d��|�|j��|j�	d|j��|�
t	d��|j��dS)Nr�spreviousr�spreviousdata)r�r(�
add_writerrr*rr?r}rr
rars   r�test_write_bufferz-UnixWritePipeTransportTests.test_write_buffer�s���
�
&�
&�
(�
(���	���Q���0�0�0��{�+�+��
�
������������(�(�(��	����2�?�3�3�3�����?�3�3�R�Z�@�@�@�@�@rc�T�|���}t��|_|�d��|�dtd����|j�d|j��|�	td��|j
��dSr�)r�r�rKr?rAr*r(r
rrarrs   r�test_write_againz,UnixWritePipeTransportTests.test_write_again�s���
�
&�
&�
(�
(��-�/�/���
��������"�"�1�i��&8�&8�9�9�9��	����2�?�3�3�3�����7�+�+�R�Z�8�8�8�8�8rzasyncio.unix_events.loggerc�:�|���}t��}||_tj��|_|�d��|�dd��|�|j	j
��|�t��|j
��|j�|d��|�d|j��|�d��|�d|j��|�d��|�d��|�d��|�d��|j�d��|���dS)Nr�r�z#Fatal write error on pipe transportrr�z=pipe closed by peer or os.write(pipe, data) raised exception.)r�rsrKrr=�_fatal_errorr?rAr}r(rrar*r�
_conn_lost�warningr)r+r�m_logr�r�s     r�test_write_errz*UnixWritePipeTransportTests.test_write_err�sp���
&�
&�
(�
(���i�i��!����)�+�+���
��������"�"�1�g�.�.�.������*�+�+�+�������b�j�1�1�1�
��*�*��A�	C�	C�	C�	
����B�M�*�*�*�
�����������B�M�*�*�*�
�������
�������
�������
�������
�
�(�(�K�	M�	M�	M�
���
�
�
�
�
rc��|���}|���|�d��|�|jd��|�d��|�|jd��dS)Nr�rr�)r�r�r?rarrs   r�test_write_closez,UnixWritePipeTransportTests.test_write_close�s}��
�
&�
&�
(�
(��
������
�������������*�*�*�
�������������*�*�*�*�*rc��|���}|���|�|jj��|�|jj��|�|�����tj	|j��|j
j�d��dSr)
r�r�r}r(r�rr�r�r�r�r�r8rAr�s  rr�z,UnixWritePipeTransportTests.test__read_ready�s���
�
&�
&�
(�
(��
�����������*�+�+�+������*�+�+�+�����
�
���(�(�(���t�y�)�)�)��
�%�8�8��>�>�>�>�>rc�X�|���}|j�d|j��t	d��|_d|_|���|�|jj��|�	t	��|j��dS)Nr�r�r)
r�r(rrr*rr�r}rrars   r�test__write_readyz-UnixWritePipeTransportTests.test__write_ready�s���
�
&�
&�
(�
(���	���Q���0�0�0��w�'�'��
� ���
�����������*�+�+�+�������b�j�1�1�1�1�1rc�\�|���}|j�d|j��t	d��|_d|_|���|j�d|j��|�t	d��|j��dS)Nr�r���a)	r�r(rrr*rr�r
rars   r�test__write_ready_partialz5UnixWritePipeTransportTests.test__write_ready_partial�s���
�
&�
&�
(�
(���	���Q���0�0�0��w�'�'��
� ���
�������	����2�?�3�3�3�����4���"�*�5�5�5�5�5rc��|���}|j�d|j��t	d��|_t
��|_|���|�dt	d����|j�	d|j��|�
t	d��|j��dS)Nr�r�)r�r(rrr*rr�rKrAr
rars   r�test__write_ready_againz3UnixWritePipeTransportTests.test__write_ready_again�s���
�
&�
&�
(�
(���	���Q���0�0�0��w�'�'��
�-�/�/���
�������"�"�1�i��&8�&8�9�9�9��	����2�?�3�3�3�����7�+�+�R�Z�8�8�8�8�8rc��|���}|j�d|j��t	d��|_d|_|���|�dt	d����|j�d|j��|�	t	d��|j��dS)Nr�r�r)
r�r(rrr*rr�rAr
rars   r�test__write_ready_emptyz3UnixWritePipeTransportTests.test__write_ready_empty�s���
�
&�
&�
(�
(���	���Q���0�0�0��w�'�'��
� ���
�������"�"�1�i��&8�&8�9�9�9��	����2�?�3�3�3�����7�+�+�R�Z�8�8�8�8�8rr�c���|���}|j�d|j��t	d��|_t
��x|_}|���|�|jj	��|�|jj
��|�t	��|j��|�|�
����|���|�d|j��t!j|j��|jj�|��dS)Nr�r�r)r�r(rrr*rrsrKr}rr�rar�r��assert_not_calledrr�r�r�r8rA)r+rr�r�r�s     r�test__write_ready_errz1UnixWritePipeTransportTests.test__write_ready_err�s#���
&�
&�
(�
(���	���Q���0�0�0��w�'�'��
�$+�I�I�-���c�
�����������*�+�+�+������*�+�+�+�������b�j�1�1�1�����
�
���(�(�(��"�"�$�$�$�����B�M�*�*�*���t�y�)�)�)��
�%�8�8��=�=�=�=�=rc��|���}|j�d|j��d|_td��|_d|_|���|�|jj	��|�|jj
��|�t��|j��|jj
�d��|jj���dS)Nr�Tr�r)r�r(rrr�r*rr�r}rr�rar�r8rAr�rrs   r�test__write_ready_closingz5UnixWritePipeTransportTests.test__write_ready_closing�s���
�
&�
&�
(�
(���	���Q���0�0�0�����w�'�'��
� ���
�����������*�+�+�+������*�+�+�+�������b�j�1�1�1��
�%�8�8��>�>�>��	��*�*�,�,�,�,�,rc��|���}|j�d|j��|j�d|j��ddg|_|���|�|j	��|�|jj
��|�|jj��|�g|j��|�
|�����tj|j��|jj�d��dS)Nr�sdar	)r�r(rrr�r�r�abortr}rr�rrar�r�r�r�r�r8rArs   r�
test_abortz&UnixWritePipeTransportTests.test_abort
s��
�
&�
&�
(�
(���	���Q���0�0�0��	���Q���/�/�/��U�^��
�
���
�
�
������(�(�(������*�+�+�+������*�+�+�+�����R�Z�(�(�(�����
�
���(�(�(���t�y�)�)�)��
�%�8�8��>�>�>�>�>rc��|���}|�|j��|�|j��d}|�|��|jj�|��|jj	���|�
|j��|�
|j��dSr)r�r�r�r�r�r�r8rAr�rr�r�s   rr�z6UnixWritePipeTransportTests.test__call_connection_losts���
�
&�
&�
(�
(�����R�\�*�*�*����R�X�&�&�&���
� � ��%�%�%��
�%�8�8��=�=�=��	��*�*�,�,�,����"�,�'�'�'����"�(�#�#�#�#�#rc��|���}|�|j��|�|j��t	��}|�|��|jj�|��|j	j
���|�|j��|�|j��dSr)r�r�r�r�rsr�r�r8rAr�rr�r�s   rr�z?UnixWritePipeTransportTests.test__call_connection_lost_with_err&s���
�
&�
&�
(�
(�����R�\�*�*�*����R�X�&�&�&��i�i��
� � ��%�%�%��
�%�8�8��=�=�=��	��*�*�,�,�,����"�,�'�'�'����"�(�#�#�#�#�#rc���|���}tj��|_|���|j���|���dSr)r�rr=�	write_eofrrAr�s  rr�z&UnixWritePipeTransportTests.test_close3sT��
�
&�
&�
(�
(���y�{�{���
���
�
�
�
��'�'�)�)�)�	���
�
�
�
�
rc���|���}tj��|_d|_|���|�|jj��dSrF)r�rr=r0r�rr}rr�s  r�test_close_closingz.UnixWritePipeTransportTests.test_close_closing<sS��
�
&�
&�
(�
(���y�{�{������
���
�
�
������,�-�-�-�-�-rc�R�|���}|���|�|�����|�|jj��tj|j��|j	j
�d��dSr)r�r0r�r�r}r(r�r�r�r�r8rAr�s  r�test_write_eofz*UnixWritePipeTransportTests.test_write_eofCs���
�
&�
&�
(�
(��
����������
�
���(�(�(������*�+�+�+���t�y�)�)�)��
�%�8�8��>�>�>�>�>rc��|���}dg|_|���|�|�����|�|jjj��dS)Nr�)	r�rr0r�r�r}r�r8rr�s  r�test_write_eof_pendingz2UnixWritePipeTransportTests.test_write_eof_pendingKse��
�
&�
&�
(�
(���Y��
�
����������
�
���(�(�(������6�=�>�>�>�>�>rr)rkrlrmr&r�r�r�rr�rrrrrrrr�rr r"r$r'r)r,r�r�r�r2r4r6r�r�s@rr�r�?s6�������,�,�,�,�,�$����0�0�0�,�,�,��T�Z�
���2�2���2��T�Z�
���5�5���5��T�Z�
���7�7���7��T�Z�
���A�A���A��T�Z�
���9�9���9��T�Z�,�-�-��T�Z�
�������.�-��2�T�Z�
���+�+���+�?�?�?��T�Z�
���2�2���2��T�Z�
���6�6���6��T�Z�
���9�9���9��T�Z�
���9�9���9��T�Z�*�+�+��T�Z�
���
>�
>���,�+�
>��T�Z�
���-�-���-��T�Z�
���?�?���?�$�$�$�$�$�$����.�.�.�?�?�?�?�?�?�?�?�?�?rr�c��eZdZd�ZdS)�AbstractChildWatcherTestsc� �tj��}tj��}|�t
|j||��|�t
|j|��|�t
|j|��|�t
|j	��|�t
|j
��|�t
|j��|�t
|j|||��dSr)
rr=r�AbstractChildWatcherr0�NotImplementedError�add_child_handler�remove_child_handler�attach_loopr�	is_active�	__enter__�__exit__�r+rj�watchers   r�test_not_implementedz.AbstractChildWatcherTests.test_not_implementedUs���I�K�K���.�0�0�������!:�A�q�	B�	B�	B������!=�q�	B�	B�	B������!4�a�	9�	9�	9�������	0�	0�	0������!2�	4�	4�	4������!2�	4�	4�	4������!1�1�a��	<�	<�	<�	<�	<rN�rkrlrmrDrrrr8r8Ss#������<�<�<�<�<rr8c��eZdZd�ZdS)�BaseChildWatcherTestsc��tj��}tj��}|�t
|j|��dSr)rr=r�BaseChildWatcherr0r;�_do_waitpidrBs   rrDz*BaseChildWatcherTests.test_not_implementedjsG���I�K�K���.�0�0�������!4�a�	9�	9�	9�	9�	9rNrErrrrGrGhs#������9�9�9�9�9rrGc���eZdZej�ejd��Z�fd�Z	d�Z
d�Zd�Zd�Z
d�Zed���Zed	���Zed
���Zed���Zed���Zed
���Zed���Zed���Zed���Zed���Zed���Zed���Zed���Zed���Z�xZS)�ChildWatcherTestsMixinrc���t�����|���|_d|_i|_tj�|jd��5|_	|�
��|_|j�|j��ddd��dS#1swxYwYdS)NFrM)
r%r&r�r(�running�zombiesrr�r��m_add_signal_handler�create_watcherrCr>r*s �rr&zChildWatcherTestsMixin.setUpus����
���
�
�����&�&�(�(��	�������
�Z�
�
��	�/�1�1�	0�48�4M��.�.�0�0�D�L��L�$�$�T�Y�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0s�.>B9�9B=�B=c�>�t|jtj��s|dkr|�|d��	|dkr|j���S||j�|��fS#t$rYnwxYw|j	rdSt���)Nrgr)rr)�
isinstancerCr�SafeChildWatcher�
assertGreaterrO�popitem�popryrN�ChildProcessError)r+�pid�flagss   r�waitpidzChildWatcherTestsMixin.waitpid�s����d�l�G�$<�=�=�	'����	'����s�A�&�&�&�	��Q�w�
2��|�+�+�-�-�-��D�L�,�,�S�1�1�1�1���	�	�	��D�	�����<�	&��4�#�%�%�%s�A8�A8�8
B�Bc��||j|<dSr)rO)r+rY�statuss   r�
add_zombiez!ChildWatcherTestsMixin.add_zombie�s��"���S���rc�F�|dkr|dz
Sd|cxkrdkrnn|dz
S|S)Nri�r)r+r]s  r�waitstatus_to_exitcodez-ChildWatcherTestsMixin.waitstatus_to_exitcode�s[���E�>�	��E�>�!�
�V�	�	�	�	�e�	�	�	�	�	��E�>�!��Mrc�d�|j�tj|jj��dSr)rPr�r4r�rC�	_sig_chldr6s r�test_create_watcherz*ChildWatcherTestsMixin.test_create_watcher�s3���!�9�9��N�D�L�2�	4�	4�	4�	4�	4rc����fd�}|S)Nc����d�}|d|j��5|d|j��5}�||��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc�D�tj||tj���S)N)�wraps�new_callable)rr�r=)�target�wrappers  rr�zIChildWatcherTestsMixin.waitpid_mocks.<locals>.wrapped_func.<locals>.patch�s$���z�&��/3�y�:�:�:�:rz*asyncio.unix_events.waitstatus_to_exitcodez
os.waitpid)r`r[)r+r��	m_waitpidrYs   �r�wrapped_funcz:ChildWatcherTestsMixin.waitpid_mocks.<locals>.wrapped_func�s���
:�
:�
:���C�T�E`�a�a�
&�
&���|�T�\�2�2�
&�6?���T�9�%�%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&�
&�
&s3�A�
A�A�A	�A�A	�	A�A� Ar)rYrls` r�
waitpid_mocksz$ChildWatcherTestsMixin.waitpid_mocks�s$���	&�	&�	&�	&�	&��rc��tj��}|j5d|_|j�d|ddd��ddd��n#1swxYwY|�|j��|j���|�|j��d|_|�dtd����|j���|�
ddddd��|���|�dtd����|j5|j���ddd��n#1swxYwY|�|j��|j
���|j���|�|j��dS)	NT�*�	�
�F��
)rr=rCrNr<r}rrbr^rr�r��ignore_warningsrO�clear�r+rk�callbacks   r�test_sigchldz#ChildWatcherTestsMixin.test_sigchld�s7���9�;�;��
�\�	D�	D��D�L��L�*�*�2�x��B��C�C�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	
�����)�)�)�	
���� � � ������)�)�)��������H�R�L�L�)�)�)����� � � ��(�(��R��B��;�;�;�������	
����H�R�L�L�)�)�)�
�
!�	%�	%��L�"�"�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	
�����)�)�)�	
����������� � � ������)�)�)�)�)s#�&A
�
A�A�?E%�%E)�,E)c��tj��}tj��}|j5d|_|j�d|dd��ddd��n#1swxYwY|�|j��|�|j��|j5|j�d|dd��ddd��n#1swxYwY|�|j��|�|j��|j���|�|j��|�|j��|�dtd����|j���|�
dd	dd��|�|j��|���|j���|�|j��|�|j��|�dtd
����d|_|j���|�
dd
dd��|�|j��|���|�dtd����|�dtd
����|j
5|j���ddd��n#1swxYwY|�|j��|�|j��|j���|j���|�|j��|�|j��dS)NT�+���,��r����lFrr�)rr=rCrNr<r}rrbr^rr�r�rrurOrv�r+rk�	callback1�	callback2s    r�test_sigchld_two_childrenz0ChildWatcherTestsMixin.test_sigchld_two_children�sB���I�K�K�	��I�K�K�	��\�	@�	@��D�L��L�*�*�2�y�!�Q�?�?�?�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	
����)�*�*�*�����)�*�*�*��\�	C�	C��L�*�*�2�y�#�r�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�	
����)�*�*�*�����)�*�*�*�	
���� � � �����)�*�*�*�����)�*�*�*�	
����F�1�I�I�&�&�&����� � � ��)�)�"�b�!�Q�7�7�7�����)�*�*�*�������	
���� � � �����)�*�*�*�����)�*�*�*�	
����H�S�M�M�*�*�*�������� � � ��)�)�"�c�3��;�;�;�����)�*�*�*�������	
����H�R�L�L�)�)�)�����H�R�L�L�)�)�)�
�
!�	%�	%��L�"�"�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	
����)�*�*�*�����)�*�*�*�	
����������� � � �����)�*�*�*�����)�*�*�*�*�*s5�%A�A#�&A#�%C�C�C�L&�&L*�-L*c��tj��}tj��}|j5d|_|j�d|dd��ddd��n#1swxYwY|�|j��|�|j��|j5|j�d|dd��ddd��n#1swxYwY|�|j��|�|j��|j���|�|j��|�|j��|�dtd����|�dtd	����d
|_|j���|�dddd��|�dddd��|���|���|�dtd����|�dtd
����|j
5|j���ddd��n#1swxYwY|�|j��|�|j��dS)NT�-�r}�.i{r��Nr�F���rrr�)rr=rCrNr<r}rrbr^rrr�r�rur�s    r�.test_sigchld_two_children_terminating_togetherzEChildWatcherTestsMixin.test_sigchld_two_children_terminating_togethersb���I�K�K�	��I�K�K�	��\�	A�	A��D�L��L�*�*�2�y�"�a�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	
����)�*�*�*�����)�*�*�*��\�	D�	D��L�*�*�2�y�$��C�C�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	
����)�*�*�*�����)�*�*�*�	
���� � � �����)�*�*�*�����)�*�*�*�	
����H�R�L�L�)�)�)�����F�1�I�I�&�&�&�������� � � ��)�)�"�b�"�a�8�8�8��)�)�"�b�$��;�;�;�������������	
����H�R�L�L�)�)�)�����H�R�L�L�)�)�)�
�
!�	%�	%��L�"�"�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	
����)�*�*�*�����)�*�*�*�*�*s5�%A�A#�&A#�%C�C�C�&J�J�Jc�^�tj��}|j5|�dt	d����|j���|j�d|dd��ddd��n#1swxYwY|�dddd��|���|�dtd����|j
5|j���ddd��n#1swxYwY|�|j��dS)N�2rrrs)
rr=rCr^rrbr<r�r�rrur}rrws   r�test_sigchld_race_conditionz2ChildWatcherTestsMixin.test_sigchld_race_conditionBs����9�;�;��
�\�	@�	@��O�O�B�����,�,�,��L�"�"�$�$�$��L�*�*�2�x��B�?�?�?�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	�(�(��Q��2�6�6�6�������	
����F�1�I�I�&�&�&�
�
!�	%�	%��L�"�"�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	
�����)�)�)�)�)s$�AB�B�B�"D�D�Dc�J�tj��}tj��}|j5d|_|j�d|d��ddd��n#1swxYwY|�|j��|�|j��|j5|j�d|d��ddd��n#1swxYwY|�|j��|�|j��d|_|�dtd����|j�	��|�
ddd��|�|j��|���|�dtd����|j
5|j�	��ddd��n#1swxYwY|�|j��|�|j��dS)	NT�3��Fr}i����rt)rr=rCrNr<r}rr^rrbr�r�rrur�s    r�test_sigchld_replace_handlerz3ChildWatcherTestsMixin.test_sigchld_replace_handlerXs����I�K�K�	��I�K�K�	��\�	>�	>��D�L��L�*�*�2�y�"�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	
����)�*�*�*�����)�*�*�*��\�	>�	>��L�*�*�2�y�"�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	
����)�*�*�*�����)�*�*�*��������F�1�I�I�&�&�&����� � � ��)�)�"�b�"�5�5�5�����)�*�*�*�������	
����H�R�L�L�)�)�)�
�
!�	%�	%��L�"�"�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	
����)�*�*�*�����)�*�*�*�*�*s5�$A�A"�%A"�$C
�
C�C�>G$�$G(�+G(c�D�tj��}|j5d|_|j�d|d��ddd��n#1swxYwY|�|j��|j�d��|�|j��d|_|�dtd����|j
5|j���ddd��n#1swxYwY|�|j��dS)NT�4i�F�c)rr=rCrNr<r}rr=r^rrurbrws   r�test_sigchld_remove_handlerz2ChildWatcherTestsMixin.test_sigchld_remove_handler~s����9�;�;���\�	?�	?��D�L��L�*�*�2�x��>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	
�����)�)�)�	
��)�)�"�-�-�-������)�)�)��������H�R�L�L�)�)�)�
�
!�	%�	%��L�"�"�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	
�����)�)�)�)�)s#�$A�A�A�C;�;C?�C?c�x�tj��}|j5d|_|j�d|d��ddd��n#1swxYwY|�|j��d|jd<d|_|j���|�	ddd��|�
��|�dtd����|j
5|j���ddd��n#1swxYwY|�|j��dS)NT�5i��i�F�e)rr=rCrNr<r}rrOrbr�r�r^rrurws   r�test_sigchld_unknown_statusz2ChildWatcherTestsMixin.test_sigchld_unknown_status�s����9�;�;���\�	>�	>��D�L��L�*�*�2�x��=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	
�����)�)�)� ���R��������� � � ��(�(��T�3�7�7�7�������	
����H�S�M�M�*�*�*�
�
!�	%�	%��L�"�"�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	
�����)�)�)�)�)s#�$A�A�A�/D�D�Dc��tj��}tj��}tj��}|j5d|_|j�d|d��|j�d|d��|j�d|d��ddd��n#1swxYwY|�|j�d����|�|j�d����|�|j�d����|�|j�d����|�dtd����|�dtd����|�dtd����d	|_|j
5|j���ddd��n#1swxYwY|�|j��|�|j��|�
ddd��dS)
NT�6r�7r��8rrF)rr=rCrNr<r�r=r}r^rrurbrr�)r+rkr�r��	callback3s     r�test_remove_child_handlerz0ChildWatcherTestsMixin.test_remove_child_handler�s~���I�K�K�	��I�K�K�	��I�K�K�	��\�	=�	=��D�L��L�*�*�2�y�!�<�<�<��L�*�*�2�y�!�<�<�<��L�*�*�2�y�!�<�<�<�		=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	
�����9�9�"�=�=�>�>�>�	
�����9�9�"�=�=�>�>�>������:�:�2�>�>�?�?�?������:�:�2�>�>�?�?�?�	
����H�Q�K�K�(�(�(�����H�Q�K�K�(�(�(�����H�Q�K�K�(�(�(����
�
!�	%�	%��L�"�"�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	
����)�*�*�*�����)�*�*�*��)�)�"�a��3�3�3�3�3s%�AB)�)B-�0B-�H�H	�H	c���tj��}|j5d|_|j�d|��ddd��n#1swxYwYt
|_tj�tj
d��5}|�|j���d��|�
|j��ddd��dS#1swxYwYdS)NT�9�error)rr=rCrNr<r3rKr�r�r�loggerrarbr�r)r+rkrx�m_errors    r� test_sigchld_unhandled_exceptionz7ChildWatcherTestsMixin.test_sigchld_unhandled_exception�sN���9�;�;���\�	9�	9��D�L��L�*�*�2�x�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�
!+�	��
�Z�
�
�s�z�&�(�(�	,�+2����T�\�3�3�5�5�t�<�<�<��O�O�G�N�+�+�+�		,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,s$�#A
�
A�A�AC � C$�'C$c��tj��}|j5d|_|j�d|��ddd��n#1swxYwY|�|j��d|_|�dtd����tj
dtj��|���|j
5|j���ddd��n#1swxYwYt|jt j��r|�|j��dS|�dd��dS)NT�:Fr�)rr=rCrNr<r}rr^rr�r[�WNOHANGr�rurbrSr�FastChildWatcherr�rws   r�#test_sigchld_child_reaped_elsewherez:ChildWatcherTestsMixin.test_sigchld_child_reaped_elsewhere�s����9�;�;��
�\�	9�	9��D�L��L�*�*�2�x�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	
�����)�)�)��������H�Q�K�K�(�(�(�	�
�2�r�z�"�"�"��������
!�	%�	%��L�"�"�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%��d�l�G�$<�=�=�	6�
���X�_�-�-�-�-�-��,�,�R��5�5�5�5�5s#�#A
�
A�A�C9�9C=�C=c�f�tj��}tj��}|j5|j5d|_|�dt
d����|�dt
d����|j���|j�d|��|j�d|��ddd��n#1swxYwYddd��n#1swxYwY|�	dd��|�
|j��dS)NTiOr|iQr�iP)rr=rurCrNr^rrbr<r�r}rr�s    r�,test_sigchld_unknown_pid_during_registrationzCChildWatcherTestsMixin.test_sigchld_unknown_pid_during_registrations����I�K�K�	��I�K�K�	�
�
!�
	;�
	;�4�<�
	;�
	;��D�L��O�O�C��!���-�-�-��O�O�C��"���.�.�.��L�"�"�$�$�$��L�*�*�3�	�:�:�:��L�*�*�3�	�:�:�:�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;����
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;����
	;�
	;�
	;�
	;�	�)�)�#�q�1�1�1�����)�*�*�*�*�*s5�C6�BC�C6�C#	�#C6�&C#	�'C6�6C:�=C:c�,�tj��}|j5d|_|j�d|��ddd��n#1swxYwY|j}|���|_tjj}||d��5}||jd��5}|j�	|j��|�
tj��|�
tj|jj
��ddd��n#1swxYwYddd��n#1swxYwYd|_|�dtd����|j�
��|�
dd��dS)NT�<r@rMFrp)rr=rCrNr<r(r�r�r�r>r�r4r�rbr^r)r+rkrx�old_loopr��m_old_remove�	m_new_adds       r�
test_set_loopz$ChildWatcherTestsMixin.test_set_loops*���9�;�;��
�\�	9�	9��D�L��L�*�*�2�x�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�
�9���&�&�(�(��	��
�!��
�U�8�4�
5�
5�	8��
�U�4�9�2�
3�
3�	8�7@��L�$�$�T�Y�/�/�/��0�0���
 �
 �
 ��-�-����� 6�
8�
8�
8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8��������H�Q�K�K�(�(�(����� � � ��(�(��Q�/�/�/�/�/sH�#A
�
A�A�D0�$A)D�
D0�D	�D0� D	�!D0�0D4�7D4c�&�tj��}tj��}tj��}|j5d|_|j�d|��|j�d|��|j�d|��ddd��n#1swxYwY|j}d|_tj�|d��5}|�td��5|j�
d��ddd��n#1swxYwY|�tj
��ddd��n#1swxYwY|�dtd����|�dt!d����|�|j��|�|j��|�|j��|���|_tj�|jd	��5}|j�
|j��|�tj
|jj��|�dd��|�dd
��|�|j��ddd��n#1swxYwY|���|���d|_|�dtd����|j���|�|j��|�|j��|�dd��dS)
NT�=�>inr@zA loop is being detached�r�rMr�Fr�)rr=rCrNr<r(r�r�r��RuntimeWarningr>r�r4r�r^rrr}rr�rbr�)r+rkr�r�r�r��m_remove_signal_handlerrPs        r�test_set_loop_race_conditionz3ChildWatcherTestsMixin.test_set_loop_race_condition7s%���I�K�K�	��I�K�K�	��I�K�K�	�
�\�	;�	;��D�L��L�*�*�2�y�9�9�9��L�*�*�2�y�9�9�9��L�*�*�3�	�:�:�:�		;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;��9����	�
�Z�
�
��1�3�3�	 �6M��&�&�"�$>�@�@�
/�
/���(�(��.�.�.�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/�
$�;�;���
 �
 �
 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �	
����H�R�L�L�)�)�)�����F�1�I�I�&�&�&�	
����)�*�*�*�����)�*�*�*�����)�*�*�*��&�&�(�(��	�
�Z�
�
��	�/�1�1�		/�4H��L�$�$�T�Y�/�/�/� �8�8����� 6�
8�
8�
8��-�-�b�"�5�5�5��-�-�b�"�5�5�5����Y�-�.�.�.�		/�		/�		/�		/�		/�		/�		/�		/�		/�		/�		/����		/�		/�		/�		/�	�������������������X�b�\�\�*�*�*����� � � �����)�*�*�*�����)�*�*�*��)�)�#�r�2�2�2�2�2s\�AB&�&B*�-B*�E�;D"�E�"D&	�&E�)D&	�*"E�E�E�5BK�K�Kc�:�tj��}|j5d|_|�dtd����|�dtd����|j���|j�d|��|j�d|��|�t|jj
��d��t|jtj
��r-|�t|jj��d��tj�|jd��5}|j���|�t(j��|�|jj
��t|jtj
��r|�|jj��ddd��n#1swxYwYddd��dS#1swxYwYdS)	NT�?rp�Ar��@rr@)rr=rCrNr^rrbr<rar��
_callbacksrSrr��_zombiesr�r�r(rr�r4r�r})r+rkr�r�s    rr�z!ChildWatcherTestsMixin.test_closeusE���I�K�K�	�
�\�	<�	<��D�L��O�O�B�����,�,�,��O�O�B�����-�-�-��L�"�"�$�$�$��L�*�*�2�y�9�9�9��L�*�*�2�y�9�9�9����S���!8�9�9�1�=�=�=��$�,��(@�A�A�
@�� � ��T�\�%:�!;�!;�Q�?�?�?���"�"��I�+�-�-�

<�0G���"�"�$�$�$�'�?�?��N�$�$�$�� � ���!8�9�9�9��d�l�G�,D�E�E�<��$�$�T�\�%:�;�;�;�

<�

<�

<�

<�

<�

<�

<�

<�

<�

<�

<����

<�

<�

<�

<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<s7�D;H�BG8�,H�8G<	�<H�?G<	�H�H�H)rkrlrmrr�r�rr�rur&r[r^r`rcrmryr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�s@rrLrLqs��������j�'�'��
�I�>�>�O�	0�	0�	0�	0�	0�
&�
&�
&�#�#�#����4�4�4�	�	�	��#*�#*��]�#*�J�@+�@+��]�@+�D�-+�-+��]�-+�^�*�*��]�*�*�#+�#+��]�#+�J�*�*��]�*�.�*�*��]�*�4�4�4��]�4�@�,�,��]�,�"�6�6��]�6�<�+�+��]�+�(�0�0��]�0�<�;3�;3��]�;3�z�<�<��]�<�<�<�<�<rrLc��eZdZd�ZdS)�SafeChildWatcherTestsc�(�tj��Sr)rrTr6s rrQz$SafeChildWatcherTests.create_watcher�����'�)�)�)rN�rkrlrmrQrrrr�r���#������*�*�*�*�*rr�c��eZdZd�ZdS)�FastChildWatcherTestsc�(�tj��Sr)rr�r6s rrQz$FastChildWatcherTests.create_watcher�r�rNr�rrrr�r��r�rr�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�PolicyTestsc�(�tj��Sr)r�DefaultEventLoopPolicyr6s r�
create_policyzPolicyTests.create_policy�s���-�/�/�/rc�P�|���}|�|j��|���}|�|t
j��|�|j|��|�||�����dSr)r�r��_watcher�get_child_watcherr`r�ThreadedChildWatcherr��r+�policyrCs   r�test_get_default_child_watcherz*PolicyTests.test_get_default_child_watcher�s����#�#�%�%�����&�/�*�*�*��*�*�,�,�����g�w�'C�D�D�D��
�
�f�o�w�/�/�/��
�
�g�v�7�7�9�9�:�:�:�:�:rc��|���}tj��}|�|��|�|j|��|�||�����dSr)r�rr��set_child_watcherr�r�r�r�s   r� test_get_child_watcher_after_setz,PolicyTests.test_get_child_watcher_after_set�sq���#�#�%�%���*�,�,��� � ��)�)�)��
�
�f�o�w�/�/�/��
�
�g�v�7�7�9�9�:�:�:�:�:rc������fd�}�������tj����t	j|���}|���|���dS)Nc�����������������tj������}��|tj����|j	�������
��dSr)r)rHr`�get_event_loopr�AbstractEventLoopr�rTr�r�r)rCr�r+s ��rrjz4PolicyTests.test_get_child_watcher_thread.<locals>.f�s�����!�!�&�"7�"7�"9�"9�:�:�:��!�!�&�"7�"7�"9�"9�")�";�
=�
=�
=��.�.�0�0�G��!�!�'�7�+C�D�D�D����g�m�,�,�,��!�!�#�#�)�)�+�+�+�+�+r)ri)r�r�rrT�	threading�Threadr��join)r+rj�thr�s`  @r�test_get_child_watcher_threadz)PolicyTests.test_get_child_watcher_thread�s�����
	,�
	,�
	,�
	,�
	,�
	,��#�#�%�%��� � ��!9�!;�!;�<�<�<�
�
�Q�
'�
'�
'��
���
�
�
�
���	�	�	�	�	rc�>�|���}|���}tj��}|�|��|�|��|�|j|��|���}|�	|��|�|j|��|�	d��|�|jd��|�
��|�
��dSr)r�r�rrTr�r>r�r�rHr)r)r+r�r(rC�new_loops     r�,test_child_watcher_replace_mainloop_existingz8PolicyTests.test_child_watcher_replace_mainloop_existing�s����#�#�%�%���$�$�&�&���*�,�,��� � ��)�)�)����D�!�!�!��
�
�g�m�T�*�*�*��(�(�*�*�����h�'�'�'��
�
�g�m�X�.�.�.����d�#�#�#��
�
�g�m�T�*�*�*��
�
�����������rN)rkrlrmr�r�r�r�r�rrrr�r��s_������0�0�0�	;�	;�	;�;�;�;����*����rr�c�&�eZdZd�Zd�Zd�Zd�ZdS)�TestFunctionalc�h�tj��|_tj|j��dSr)rrHr(r)r6s rr&zTestFunctional.setUp�s+���*�,�,��	���t�y�)�)�)�)�)rc�`�|j���tjd��dSr)r(rrr)r6s r�tearDownzTestFunctional.tearDown�s+���	��������t�$�$�$�$�$rc�^���fd�}d�}|��5�j�t��|��ddd��n#1swxYwY|��5�j�t��|��ddd��n#1swxYwY|��5�j�t����ddd��n#1swxYwY|��5�j�t����ddd��dS#1swxYwYdS)Nc�:����td��S)NzInvalid file object)rVr3r6s�r�
assert_raiseszFTestFunctional.test_add_reader_invalid_argument.<locals>.assert_raises�s����)�)�*�6L�M�M�Mrc��dSrrrrrrGzATestFunctional.test_add_reader_invalid_argument.<locals>.<lambda>�r]r)r(r�r�r�
remove_reader�
remove_writer)r+r�rcs`  r� test_add_reader_invalid_argumentz/TestFunctional.test_add_reader_invalid_argument�s+���	N�	N�	N�	N�	N��\��
�]�_�_�	/�	/��I� � ����2�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�
�]�_�_�	/�	/��I� � ����2�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/��]�_�_�	.�	.��I�#�#�F�H�H�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�
�]�_�_�	.�	.��I�#�#�F�H�H�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.sG�(A�A�A�(B�B�B�&'C�C� C�.'D"�"D&�)D&c�@�����fd�����fd�}tj��\�}	�j�|��������|���dS#����|���wxYw)Nc�:����td��S)Nz'File descriptor .* is used by transport)rVrLr6s�rr�zLTestFunctional.test_add_reader_or_writer_transport_fd.<locals>.assert_raisess!����)�)��:�<�<�
<rc���K��j�d������d{V��\}}	d�}���5�j��|��ddd��n#1swxYwY���5�j�����|��ddd��n#1swxYwY���5�j����ddd��n#1swxYwY���5�j�������ddd��n#1swxYwY���5�j��|��ddd��n#1swxYwY���5�j�����|��ddd��n#1swxYwY���5�j����ddd��n#1swxYwY���5�j�������ddd��n#1swxYwY|���dS#|���wxYw)Nc�(�tj��Sr)rr�rrrrGzWTestFunctional.test_add_reader_or_writer_transport_fd.<locals>.runner.<locals>.<lambda>s���(�*�*�rrc��dSrrrrrrGzWTestFunctional.test_add_reader_or_writer_transport_fd.<locals>.runner.<locals>.<lambda>s��T�r)r(�create_connectionr�rqr�rr�r)r��prrcr��rsockr+s   ���r�runnerzETestFunctional.test_add_reader_or_writer_transport_fd.<locals>.runnersd������9�6�6�*�*��7�8�8�8�8�8�8�8�8�F�B��
�!�\��"�]�_�_�4�4��I�(�(���3�3�3�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�"�]�_�_�=�=��I�(�(�������<�<�<�=�=�=�=�=�=�=�=�=�=�=����=�=�=�=�#�]�_�_�3�3��I�+�+�E�2�2�2�3�3�3�3�3�3�3�3�3�3�3����3�3�3�3�"�]�_�_�<�<��I�+�+�E�L�L�N�N�;�;�;�<�<�<�<�<�<�<�<�<�<�<����<�<�<�<�#�]�_�_�4�4��I�(�(���3�3�3�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�"�]�_�_�=�=��I�(�(�������<�<�<�=�=�=�=�=�=�=�=�=�=�=����=�=�=�=�#�]�_�_�3�3��I�+�+�E�2�2�2�3�3�3�3�3�3�3�3�3�3�3����3�3�3�3�"�]�_�_�<�<��I�+�+�E�L�L�N�N�;�;�;�<�<�<�<�<�<�<�<�<�<�<����<�<�<�<����
�
�
�
�
�����
�
�
�
���s*�
I0�A �I0� A$�$I0�'A$�(
I0�5.B/�#I0�/B3�3I0�6B3�7
I0�C+�I0�+C/�/I0�2C/�3
I0�-D9�-I0�9D=�=I0�D=�
I0�E6�*I0�6E:�:I0�=E:�>
I0�.G�9I0�G	�	I0�G	�

I0�H�5I0�H�I0�H�	
I0�-I�I0�I�I0�I�I0�0J)r��
socketpairr(r�r)r+r��wsockr�r�s`  @@r�&test_add_reader_or_writer_transport_fdz5TestFunctional.test_add_reader_or_writer_transport_fds������	<�	<�	<�	<�	<�
	�	�	�	�	�	�	�<�(�*�*���u�	��I�(�(�����2�2�2��K�K�M�M�M��K�K�M�M�M�M�M��
�K�K�M�M�M��K�K�M�M�M�M���s�"A3�3*BN)rkrlrmr&r�r�rrrrr�r��sP������*�*�*�%�%�%�.�.�.� )�)�)�)�)rr��__main__)0�__doc__rvrnrmr�r�r4r�r��sysr�r�rr�test.supportrr�platform�SkipTestrrr�test.test_asyncior	r�rr�r�rrr r�TestCaser"r r�r#r�r�r8rGrLr�r�r�r�rk�mainrrr�<module>rse������������	�	�	�	�	�	�	�	�����
�
�
�
�
�
�
�
�����
�
�
�
�������������������"�"�"�"�"�"�&�&�&�&�&�&��<�7��)�
�(�
�K�
(�
(�(�����������������1�1�1�1�1�1�(�(�(��8��������������V�8�9�9�Z1�Z1�Z1�Z1�Z1�:�#6�Z1�Z1�:�9�Z1�z���W�W�V�Y�/�/�5�7�7�e/�e/�e/�e/�e/�z�':�e/�e/�7�7�e/�P���W�W�R��,�,�0�2�2�J1�J1�J1�J1�J1�Z�-@�J1�J1�2�2�J1�Zn�n�n�n�n��!4�n�n�n�bQ?�Q?�Q?�Q?�Q?�*�"5�Q?�Q?�Q?�h<�<�<�<�<�� 1�<�<�<�*9�9�9�9�9�H�-�9�9�9�b<�b<�b<�b<�b<�b<�b<�b<�J*�*�*�*�*�3�Z�5H�*�*�*�
*�*�*�*�*�3�Z�5H�*�*�*�
C�C�C�C�C�(�#�C�C�C�LC�C�C�C�C�X�&�C�C�C�L�z����H�M�O�O�O�O�O��r