Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/test/test_asyncio/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/test/test_asyncio/__pycache__/test_unix_events.cpython-312.pyc

�

(Μg�
��z�dZddlZddlZddlZddlZddlmZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlmZddlZddlmZddlmZddlmZddlmZdd	lmZej2d
k(rej4d��ddlZddlmZdd
lmZddlmZ d�Z!ejDZ#d�Z$d�Z%d�Z&ejNe	d�Gd�de jP��Z)ejNe*e
d�d�Gd�de jP��Z+ejNe*ed�d�Gd�de jP��Z,Gd�de jP�Z-Gd �d!e jP�Z.Gd"�d#ejP�Z/Gd$�d%ejP�Z0Gd&�d'�Z1Gd(�d)e1e jP�Z2Gd*�d+e1e jP�Z3Gd,�d-ejP�Z4Gd.�d/ejP�Z5ejNe*ed0�d1�Gd2�d3ejl��Z7e8d4k(rejr�yy)5zTests for unix_events.py.�N)�_cleanup_tests)�mock)�support)�	os_helper)�
socket_helper)�wait_process)�hashlib_helper�win32z	UNIX only)�log)�unix_events)�utilsc�.�tjd�y�N)�asyncio�set_event_loop_policy���?/usr/local/lib/python3.12/test/test_asyncio/test_unix_events.py�tearDownModuler#s���!�!�$�'rc��d|zS)N��r��exitcodes r�EXITCODEr*s
���8��rc�B�d|cxkrdksntd|����d|z
S)N��Dzinvalid signum r)�AssertionError)�signums r�SIGNALr .s+�����"����v�h�7�8�8��6�>�rc�`�|j�y|jj�d|_yr)�_pipe�close)�	transports r�close_pipe_transportr%4s(�������
�O�O�����I�OrzSignals are not supportedc�H��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|j�yr��super�setUpr�SelectorEventLoop�loop�set_event_loop��self�	__class__s �rr+z"SelectorEventLoopSignalTests.setUp@�.���
��
���-�-�/��	����D�I�I�&rc���|jt|jjd�|jt|jjt
jdz�y)N�1r)�assertRaises�	TypeErrorr-�
_check_signal�
ValueError�signal�NSIG�r0s r�test_check_signalz.SelectorEventLoopSignalTests.test_check_signalEsI������t�y�y�.�.��	5������	�	�/�/����q��	Brc�\�|jjtjdz�y)Nr)r-�_handle_signalr9r:r;s r�test_handle_signal_no_handlerz:SelectorEventLoopSignalTests.test_handle_signal_no_handlerKs���	�	� � ����q��1rc��tjtj�dtj���}|j	�||j
jtjdz<tj�|j
_	|j
jtjdz�|j
jjtjdz�y)Nr)r-r)r�Handler�Mock�cancelr-�_signal_handlersr9r:�remove_signal_handlerr>�assert_called_with)r0�hs  r�$test_handle_signal_cancelled_handlerzASelectorEventLoopSignalTests.test_handle_signal_cancelled_handlerNs����N�N�4�9�9�;�� $�	�	��
-��	���
�67��	�	�"�"�6�;�;��?�3�*.�)�)�+��	�	�'��	�	� � ����q��1��	�	�'�'�:�:�6�;�;��?�Krzasyncio.unix_events.signalc��tj|_tj|_t|j_|j
t|jjtjd��y)Nc��y�NTrrrr�<lambda>zRSelectorEventLoopSignalTests.test_add_signal_handler_setup_error.<locals>.<lambda>`���4r)r9r:�
valid_signalsr8�
set_wakeup_fd�side_effectr5�RuntimeErrorr-�add_signal_handler�SIGINT�r0�m_signals  r�#test_add_signal_handler_setup_errorz@SelectorEventLoopSignalTests.test_add_signal_handler_setup_errorWsP������
�!'�!5�!5���-7����*������I�I�(�(��M�M�<�	)rc��tj|_d�}|}|�}|j|j�||fD]=}|j	t
d|jjtj|��?y)Nc��K�y�wrrrrr�simple_coroutinez^SelectorEventLoopSignalTests.test_add_signal_handler_coroutine_error.<locals>.simple_coroutinefs	�����s�z1coroutines cannot be used with add_signal_handler)	r9r:�
addCleanupr#�assertRaisesRegexr6r-rRrS)r0rUrY�	coro_func�coro_obj�funcs      r�'test_add_signal_handler_coroutine_errorzDSelectorEventLoopSignalTests.test_add_signal_handler_coroutine_errorbsi������
�	�%�	��;��������'���)�D��"�"��N��	�	�,�,��
�
�t�
%�*rc��tj|_tj|_d�}|jj	tj
|�|jjjtj
�}|j|tj�|j|j|�y)Nc��yrKrrrrrLzFSelectorEventLoopSignalTests.test_add_signal_handler.<locals>.<lambda>x���Tr)
r9r:rNr-rR�SIGHUPrD�get�assertIsInstancerrA�assertEqual�	_callback)r0rU�cbrGs    r�test_add_signal_handlerz4SelectorEventLoopSignalTests.test_add_signal_handlerss~������
�!'�!5�!5���
���	�	�$�$�V�]�]�B�7��I�I�&�&�*�*�6�=�=�9�����a����0�������b�)rc��tj|_tj|_d�}||_Gd�dt�}||j_|j
||jjtjd��y)Nc�"�|dk(r
t��y)N���)r8)�fds rrOzYSelectorEventLoopSignalTests.test_add_signal_handler_install_error.<locals>.set_wakeup_fd�s���R�x� �l�"�rc�$�eZdZejZy)�OSelectorEventLoopSignalTests.test_add_signal_handler_install_error.<locals>.ErrN)�__name__�
__module__�__qualname__�errno�EFAULTrrr�Errro�����L�L�Erruc��yrKrrrrrLzTSelectorEventLoopSignalTests.test_add_signal_handler_install_error.<locals>.<lambda>�rMr)
r9r:rNrO�OSErrorrPr5r-rRrS)r0rUrOrus    r�%test_add_signal_handler_install_errorzBSelectorEventLoopSignalTests.test_add_signal_handler_install_error~si������
�!'�!5�!5���	#�"/���	!�'�	!�&)����#������I�I�(�(��M�M�<�	)rzasyncio.base_events.loggerc���tj|_tj|_Gd�dt�}||j_d�|j
jtj<|jt|j
jtjd��|j|jj�|jd|j j"�y)Nc�$�eZdZejZy)�PSelectorEventLoopSignalTests.test_add_signal_handler_install_error2.<locals>.ErrN�rprqrrrs�EINVALrrrrur|�rvrruc��yrKrrrrrLzUSelectorEventLoopSignalTests.test_add_signal_handler_install_error2.<locals>.<lambda>����Drc��yrKrrrrrLzUSelectorEventLoopSignalTests.test_add_signal_handler_install_error2.<locals>.<lambda>�rMrr)r9r:rNrxrPr-rDrcr5rQrRrS�assertFalse�info�calledrfrO�
call_count�r0�	m_loggingrUrus    r�&test_add_signal_handler_install_error2zCSelectorEventLoopSignalTests.test_add_signal_handler_install_error2�s�������
�!'�!5�!5���	!�'�	!�&)����#�4@��	�	�"�"�6�=�=�1������I�I�(�(��M�M�<�	)�	
������.�.�/�����H�2�2�=�=�>rc��Gd�dt�}||j_tj|_tj|_|jt|jjtjd��|j|jj�|jd|jj�y)Nc�$�eZdZejZy)�PSelectorEventLoopSignalTests.test_add_signal_handler_install_error3.<locals>.ErrNr}rrrrur��rvrruc��yrKrrrrrLzUSelectorEventLoopSignalTests.test_add_signal_handler_install_error3.<locals>.<lambda>�rMr�)rxr9rPr:rNr5rQr-rRrSr�r�r�rfrOr�r�s    r�&test_add_signal_handler_install_error3zCSelectorEventLoopSignalTests.test_add_signal_handler_install_error3�s���	!�'�	!�&)����#�����
�!'�!5�!5��������I�I�(�(��M�M�<�	)�	
������.�.�/�����H�2�2�=�=�>rc�8�tj|_tj|_|jj	tj
d��|j
|jjtj
��|j
|jj�|j
|jj�|jtj
|jf|jjd�y)Nc��yrKrrrrrLzISelectorEventLoopSignalTests.test_remove_signal_handler.<locals>.<lambda>�r�rr)
r9r:rNr-rRrc�
assertTruerErOr�rf�SIG_DFL�	call_argsrTs  r�test_remove_signal_handlerz7SelectorEventLoopSignalTests.test_remove_signal_handler�s�������
�!'�!5�!5����	�	�$�$�V�]�]�L�A�����I�I�+�+�F�M�M�:�	<�����.�.�5�5�6�������.�.�/����
�]�]�H�,�,�-�x���/H�/H��/K�	Mrc���tj|_tj|_tj|_|jjtjd��t
�|jjtj<|jj�|j|jjtj��|j|jj�|j|jj�|jtj|j f|jj"d�y)Nc��yrKrrrrrLzKSelectorEventLoopSignalTests.test_remove_signal_handler_2.<locals>.<lambda>�r�rr)r9r:rSrNr-rR�objectrDrcrO�
reset_mockr�rEr�r�rf�default_int_handlerr�rTs  r�test_remove_signal_handler_2z9SelectorEventLoopSignalTests.test_remove_signal_handler_2�s�������
� �-�-���!'�!5�!5����	�	�$�$�V�]�]�L�A�4:�H��	�	�"�"�6�=�=�1����)�)�+�����I�I�+�+�F�M�M�:�	<�����/�/�6�6�7�������.�.�/����
�]�]�H�8�8�9��O�O�%�%�a�(�	*rc�`�tj|_tj|_|jj	tj
d��t|j_|jjtj
�|j|j�y)Nc��yrKrrrrrLzWSelectorEventLoopSignalTests.test_remove_signal_handler_cleanup_error.<locals>.<lambda>�r�r)r9r:rNr-rRrcr8rOrPrEr�r�)r0r�rUs   r�(test_remove_signal_handler_cleanup_errorzESelectorEventLoopSignalTests.test_remove_signal_handler_cleanup_error�si������
�!'�!5�!5����	�	�$�$�V�]�]�L�A�-7����*��	�	�'�'��
�
�6����	���'rc�J�tj|_tj|_|jj	tj
d��t|j_|jt|jjtj
�y)Nc��yrKrrrrrLzOSelectorEventLoopSignalTests.test_remove_signal_handler_error.<locals>.<lambda>�r�r)
r9r:rNr-rRrcrxrPr5rErTs  r� test_remove_signal_handler_errorz=SelectorEventLoopSignalTests.test_remove_signal_handler_error�sc������
�!'�!5�!5����	�	�$�$�V�]�]�L�A�&-����#�����T�Y�Y�4�4�f�m�m�	Erc�`�tj|_tj|_|jj	tj
d��Gd�dt�}||j_|jt|jjtj
�y)Nc��yrKrrrrrLzPSelectorEventLoopSignalTests.test_remove_signal_handler_error2.<locals>.<lambda>�r�rc�$�eZdZejZy)�KSelectorEventLoopSignalTests.test_remove_signal_handler_error2.<locals>.ErrNr}rrrrur��rvrru)r9r:rNr-rRrcrxrPr5rQrE)r0rUrus   r�!test_remove_signal_handler_error2z>SelectorEventLoopSignalTests.test_remove_signal_handler_error2�so������
�!'�!5�!5����	�	�$�$�V�]�]�L�A�	!�'�	!�&)����#�����$�)�)�9�9�6�=�=�	Jrc�^�tj|_tj|_|jj	tj
d��|jj	tjd��|jt|jj�d�|jj�|jj�|jt|jj�d�|jjd�y)Nc��yrKrrrrrLz9SelectorEventLoopSignalTests.test_close.<locals>.<lambda>�r�rc��yrKrrrrrLz9SelectorEventLoopSignalTests.test_close.<locals>.<lambda>�s��Trr�rrl)r9r:rNr-rRrc�SIGCHLDrf�lenrDrOr�r#�assert_called_once_withrTs  r�
test_closez'SelectorEventLoopSignalTests.test_close�s�������
�!'�!5�!5����	�	�$�$�V�]�]�L�A��	�	�$�$�V�^�^�\�B�����T�Y�Y�7�7�8�!�<����)�)�+��	�	��������T�Y�Y�7�7�8�!�<����6�6�r�:rzasyncio.unix_events.sysc��tj|_tj|_|jj	tj
d��|j
t|jj�d�d|j_
|jj�|jtd�5|jj�ddd�|j
t|jj�d�|j|jj �y#1swY�^xYw)Nc��yrKrrrrrLzGSelectorEventLoopSignalTests.test_close_on_finalizing.<locals>.<lambda>
r�rrTz skipping signal handlers removalr)r9r:rNr-rRrcrfr�rD�
is_finalizing�return_valuer��assertWarnsRegex�ResourceWarningr#r�r�)r0rU�m_syss   r�test_close_on_finalizingz5SelectorEventLoopSignalTests.test_close_on_finalizings�������
�!'�!5�!5����	�	�$�$�V�]�]�L�A�����T�Y�Y�7�7�8�!�<�+/����(����"�"�$�
�
"�
"�?�#E�G��I�I�O�O��G�	
����T�Y�Y�7�7�8�!�<�������/�/�0�G�G�s�D>�>E)rprqrrr+r<r?rHr�patchrVr_riryr�r�r�r�r�r�r�r�r��
__classcell__�r1s@rr'r'=s���'�
B�2�L��T�Z�Z�,�-�)�.�)��T�Z�Z�,�-�%�.�%� �T�Z�Z�,�-�*�.�*��T�Z�Z�,�-�)�.�)�$�T�Z�Z�,�-��T�Z�Z�,�-�?�.�.�?� �T�Z�Z�,�-��T�Z�Z�,�-�?�.�.�?��T�Z�Z�,�-�M�.�M��T�Z�Z�,�-�*�.�*�"�T�Z�Z�,�-��T�Z�Z�,�-�(�.�.�(��T�Z�Z�,�-�E�.�E��T�Z�Z�,�-�
J�.�
J��T�Z�Z�,�-�;�.�;� �T�Z�Z�)�*��T�Z�Z�,�-�1�.�+�1rr'�AF_UNIXzUNIX Sockets are not supportedc�B��eZdZ�fd�Zej
d��Zej
d��Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
ejeed
�d�ej
d���Zd
�Zd�Zej,d�d��Zd�Zd�Zd�Zd�Zd�Z�xZS)� SelectorEventLoopUnixSocketTestsc���t�|��tj�|_|j|j�yrr)r/s �rr+z&SelectorEventLoopUnixSocketTests.setUpr2rc���tj�5}tjtj�}|j	|�|jd�|j
�|jjd�|�}|jj|�}|j
�|jj|j��ddd�y#1swYyxYw)Nrc��yrrrrrrLz]SelectorEventLoopUnixSocketTests.test_create_unix_server_existing_path_sock.<locals>.<lambda>,���r)�
test_utils�unix_socket_path�socketr��bind�listenr#r-�create_unix_server�run_until_complete�wait_closed)r0�path�sock�coro�srvs     r�*test_create_unix_server_existing_path_sockzKSelectorEventLoopUnixSocketTests.test_create_unix_server_existing_path_sock$s���
�
(�
(�
*�d��=�=����0�D��I�I�d�O��K�K��N��J�J�L��9�9�/�/��d�C�D��)�)�.�.�t�4�C��I�I�K��I�I�(�(����):�;�+�
*�
*�s�CC%�%C.c�b�tj�5}tj|�}|jjd�|�}|jj
|�}|j�|jj
|j��ddd�y#1swYyxYw)Nc��yrrrrrrLzSSelectorEventLoopUnixSocketTests.test_create_unix_server_pathlike.<locals>.<lambda>5r�r)	r�r�r�FakePathr-r�r�r#r�)r0r��srv_coror�s    r� test_create_unix_server_pathlikezASelectorEventLoopUnixSocketTests.test_create_unix_server_pathlike1sx��
�
(�
(�
*�d��%�%�d�+�D��y�y�3�3�L�$�G�H��)�)�.�.�x�8�C��I�I�K��I�I�(�(����):�;�+�
*�
*�s�BB%�%B.c�D�tj�5}tj|�}|jjd�|�}|j
t�5|jj|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nc��yrrrrrrLzWSelectorEventLoopUnixSocketTests.test_create_unix_connection_pathlike.<locals>.<lambda>=r�r)	r�r�rr�r-�create_unix_connectionr5�FileNotFoundErrorr��r0r�r�s   r�$test_create_unix_connection_pathlikezESelectorEventLoopUnixSocketTests.test_create_unix_connection_pathlike:sx��
�
(�
(�
*�d��%�%�d�+�D��9�9�3�3�L�$�G�D��"�"�#4�5��	�	�,�,�T�2�6�+�
*�6�5��+�
*�s$�AB�B
�9B�
B	�B�Bc�f�tj�}|jtj|�t|d�j
�|jjd�|�}|jtd�5|jj|�ddd�y#1swYyxYw)N�wbc��yrrrrrrLz`SelectorEventLoopUnixSocketTests.test_create_unix_server_existing_path_nonsock.<locals>.<lambda>I���DrzAddress.*is already in use)r��gen_unix_socket_pathrZr�unlink�openr#r-r�r[rxr�r�s   r�-test_create_unix_server_existing_path_nonsockzNSelectorEventLoopUnixSocketTests.test_create_unix_server_existing_path_nonsockCs����.�.�0�����	�(�(�$�/��T�4���� ��y�y�+�+�L�$�?��
�
#�
#�G�$@�B��I�I�(�(��.�B�B�B�s�B'�'B0c���|jjd�dd��}|jtd�5|jj	|�ddd�y#1swYyxYw)Nc��yrrrrrrLzSSelectorEventLoopUnixSocketTests.test_create_unix_server_ssl_bool.<locals>.<lambda>Or�r�spamT)r��sslz"ssl argument must be an SSLContext)r-r�r[r6r��r0r�s  r� test_create_unix_server_ssl_boolzASelectorEventLoopUnixSocketTests.test_create_unix_server_ssl_boolNs[���y�y�+�+�L�v�04�,�6��
�
#�
#�I�$H�J��I�I�(�(��.�J�J�J���A�A$c���|jjd�d��}|jtd�5|jj	|�ddd�y#1swYyxYw)Nc��yrrrrrrLzXSelectorEventLoopUnixSocketTests.test_create_unix_server_nopath_nosock.<locals>.<lambda>Vr�r�r�z#path was not specified, and no sock�r-r�r[r8r�r�s  r�%test_create_unix_server_nopath_nosockzFSelectorEventLoopUnixSocketTests.test_create_unix_server_nopath_nosockUsT���y�y�+�+�L�t�+�D��
�
#�
#�J�$I�K��I�I�(�(��.�K�K�K�s�A�A#c�$�tj�}|5|jjd�d|��}|jtd�5|jj|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nc��yrrrrrrLzXSelectorEventLoopUnixSocketTests.test_create_unix_server_path_inetsock.<locals>.<lambda>^r�r�r�r��"A UNIX Domain Stream.*was expected)r�r-r�r[r8r��r0r�r�s   r�%test_create_unix_server_path_inetsockzFSelectorEventLoopUnixSocketTests.test_create_unix_server_path_inetsock[sx���}�}���
��9�9�/�/��4�59�0�;�D��'�'�
�(L�N��	�	�,�,�T�2�N��T�N�N���T�s#�6B�
A:�)B�:B	�?B�Bc�`�tjtjtj�}|5|jj	d�d|��}|jtd�5|jj|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nc��yrrrrrrLzUSelectorEventLoopUnixSocketTests.test_create_unix_server_path_dgram.<locals>.<lambda>gr�rr�r�)r�r��
SOCK_DGRAMr-r�r[r8r�r�s   r�"test_create_unix_server_path_dgramzCSelectorEventLoopUnixSocketTests.test_create_unix_server_path_dgramds����}�}�V�^�^�V�->�->�?��
��9�9�/�/��4�59�0�;�D��'�'�
�(L�N��	�	�,�,�T�2�N��T�N�N���T�s#�6B$�+B�B$�B!	�B$�$B-�
SOCK_NONBLOCKz$no socket.SOCK_NONBLOCK (linux only)c�(�tj�}|jtj|�tj
t
jt
jt
jz�}|5|j|�|jjd�d|��}|jj|�}|j�|jj|j��ddd�y#1swYyxYw)Nc��yrrrrrrLz^SelectorEventLoopUnixSocketTests.test_create_unix_server_path_stream_bittype.<locals>.<lambda>xr�rr�)r�r�rZrr�r�r��SOCK_STREAMr�r�r-r�r�r#r�)r0�fnr�r�r�s     r�+test_create_unix_server_path_stream_bittypezLSelectorEventLoopUnixSocketTests.test_create_unix_server_path_stream_bittypems����
,�
,�
.�����	�(�(�"�-��}�}�V�^�^�#�/�/�&�2F�2F�F�H��
��I�I�b�M��9�9�/�/��4�59�0�;�D��)�)�.�.�t�4�C��I�I�K��I�I�(�(����):�;�
�T�T�s
�:BD�Dc���|jjd�dd��}|jtd�5|jj	|�ddd�y#1swYyxYw)Nc��yrrrrrrLzfSelectorEventLoopUnixSocketTests.test_create_unix_server_ssl_timeout_with_plain_sock.<locals>.<lambda>r�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_sock~s_���y�y�+�+�L�v�BC�,�E��
�
#�
#��C�E�
�I�I�(�(��.�E�E�E�r�c�"�tj�}|5|jjd�|��}|jtd�5|jj|�ddd�ddd�y#1swY�xYw#1swYyxYw)Nc��yrrrrrrLz\SelectorEventLoopUnixSocketTests.test_create_unix_connection_path_inetsock.<locals>.<lambda>�r�r�r�r�)r�r-r�r[r8r�r�s   r�)test_create_unix_connection_path_inetsockzJSelectorEventLoopUnixSocketTests.test_create_unix_connection_path_inetsock�sv���}�}���
��9�9�3�3�L�9=�4�?�D��'�'�
�(L�N��	�	�,�,�T�2�N��T�N�N���T�s#�5B�A9�(B�9B	�>B�Bzasyncio.unix_events.socketc���tj�}||j_t|j
_|jjd�d��}|jt�5|jj|�ddd�|j|jj�t|j
_|jjd�d��}|jt�5|jj|�ddd�|j|jj�y#1swY��xYw#1swY�;xYw)Nc��yrrrrrrLzUSelectorEventLoopUnixSocketTests.test_create_unix_server_bind_error.<locals>.<lambda>�r�rz/testr�c��yrrrrrrLzUSelectorEventLoopUnixSocketTests.test_create_unix_server_bind_error.<locals>.<lambda>�r�r)rrBr�r�rxr�rPr-r�r5r�r�r#r��MemoryError)r0�m_socketr�r�s    r�"test_create_unix_server_bind_errorzCSelectorEventLoopUnixSocketTests.test_create_unix_server_bind_error�s����y�y�{��'+����$� '��	�	���y�y�+�+�L�w�+�G��
�
�
�w�
'��I�I�(�(��.�(�����
�
�)�)�*� +��	�	���y�y�+�+�L�w�+�G��
�
�
�{�
+��I�I�(�(��.�,�����
�
�)�)�*�(�
'��,�
+�s�.E	�?E�	E�Ec��|jjd�tjt	���}|jtd�5|jj|�ddd�y#1swYyxYw)Nc��yrrrrrrLzXSelectorEventLoopUnixSocketTests.test_create_unix_connection_path_sock.<locals>.<lambda>����Drrzpath and sock can not be)r-r��os�devnullr�r[r8r�r�s  r�%test_create_unix_connection_path_sockzFSelectorEventLoopUnixSocketTests.test_create_unix_connection_path_sock�sX���y�y�/�/��"�*�*�6�8�0�5��
�
#�
#�J�0J�
K��I�I�(�(��.�L�
K�
K�s�A1�1A:c���|jjd�d�}|jtd�5|jj	|�ddd�y#1swYyxYw)Nc��yrrrrrrLz\SelectorEventLoopUnixSocketTests.test_create_unix_connection_nopath_nosock.<locals>.<lambda>�r
rzno path and sock were specified�r-r�r[r8r�r�s  r�)test_create_unix_connection_nopath_nosockzJSelectorEventLoopUnixSocketTests.test_create_unix_connection_nopath_nosock�sT���y�y�/�/��$� ��
�
#�
#�J�$E�G��I�I�(�(��.�G�G�G�s�A�A"c���|jjd�tjd��}|j	t
d�5|jj
|�ddd�y#1swYyxYw)Nc��yrrrrrrLz_SelectorEventLoopUnixSocketTests.test_create_unix_connection_nossl_serverhost.<locals>.<lambda>�r
rr�)�server_hostnamez"server_hostname is only meaningful�r-r�rrr[r8r�r�s  r�,test_create_unix_connection_nossl_serverhostzMSelectorEventLoopUnixSocketTests.test_create_unix_connection_nossl_serverhost�s_���y�y�/�/��"�*�*�f�0�>��
�
#�
#�J�$H�J��I�I�(�(��.�J�J�J���A)�)A2c���|jjd�tjd��}|j	t
d�5|jj
|�ddd�y#1swYyxYw)Nc��yrrrrrrLz_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�sd���y�y�/�/��"�*�*�$�0�0���
#�
#��I�K�
�I�I�(�(��.�K�K�K�rc���|jjd�dd��}|jtd�5|jj	|�ddd�y#1swYyxYw)Nc��yrrrrrrLzjSelectorEventLoopUnixSocketTests.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�y�/�/��6�BC�0�E��
�
#�
#��C�E�
�I�I�(�(��.�E�E�E�r�)rprqrrr+r�skip_unless_bind_unix_socketr�r�r�r�r�r�r�r��unittest�
skipUnless�hasattrr�r�rrrr�r
rrrrr r�r�s@rr�r�s����'�
�/�/�
<�0�
<��/�/�<�0�<�3�	/�/�/�3�3��X������9�?�A��/�/�<�0�A�<�/�3��T�Z�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�Zy)�.SelectorEventLoopUnixSockSendfileTests.MyProtoc��d|_d|_t�|_|j	�|_d|_|j	�|_y)NF)�started�closed�	bytearray�data�
create_future�futr$�_ready)r0r-s  r�__init__z7SelectorEventLoopUnixSockSendfileTests.MyProto.__init__�s@�� �D�L��D�K�!��D�I��)�)�+�D�H�!�D�N��,�,�.�D�Krc�V�d|_||_|jjd�yrK)r,r$r2�
set_result)r0r$s  r�connection_madez>SelectorEventLoopUnixSockSendfileTests.MyProto.connection_made�s"���D�L�&�D�N��K�K�"�"�4�(rc�:�|jj|�yr)r/�extend)r0r/s  r�
data_receivedz<SelectorEventLoopUnixSockSendfileTests.MyProto.data_received�s���I�I���T�"rc�H�d|_|jjd�yrK)r-r1r5)r0�excs  r�connection_lostz>SelectorEventLoopUnixSockSendfileTests.MyProto.connection_lost�s���D�K��H�H����%rc��8K�|j�d{���y7��wr)r1r;s rr�z:SelectorEventLoopUnixSockSendfileTests.MyProto.wait_closed�s�����(�(�N�N�s���N)rprqrrr3r6r9r<r�rrr�MyProtor*�s��	/�	)�
	#�	&�	rr>c���ttjd�5}|j|j�ddd�t
�|��y#1swY�xYw)Nr�)r�r�TESTFN�write�DATAr*�
setUpClass)�cls�fpr1s  �rrCz1SelectorEventLoopUnixSockSendfileTests.setUpClass�s>���
�)�"�"�D�
)�R��H�H�S�X�X��*�
����*�
)�s�A�Ac�h��tjtj�t�|��yr)rr�r@r*�
tearDownClass)rDr1s �rrGz4SelectorEventLoopUnixSockSendfileTests.tearDownClass�s"�������)�)�*�
���rc���tj�|_|j|j�t	t
jd�|_|j|jj�t�|�-�y)N�rb)r�new_event_loopr-r.r�rr@�filerZr#r*r+r/s �rr+z,SelectorEventLoopUnixSockSendfileTests.setUp�sV����*�*�,��	����D�I�I�&���)�)�4�0��	�����	�	���(�
��
�rc��tjtjtj�}|jd�|j	tj
tjd�|j	tj
tjd�|r|j|j�|S)NFr()
r��AF_INETr��setblocking�
setsockopt�
SOL_SOCKET�	SO_SNDBUF�	SO_RCVBUFrZr#)r0�cleanupr�s   r�make_socketz2SelectorEventLoopUnixSockSendfileTests.make_socket�sz���}�}�V�^�^�V�-?�-?�@�����������)�)�6�+;�+;�T�B�����)�)�6�+;�+;�T�B���O�O�D�J�J�'��rc�8�|jj|�Sr)r-r�r�s  r�run_loopz/SelectorEventLoopUnixSockSendfileTests.run_loops���y�y�+�+�D�1�1rc�.�����j�}�j�j��tj�}�jd��}|jtj|f��j�jj�fd�|�����j�jj|tj|f���j�j����fd�}�j|�|�fS)NF)rSc����Srr)�protos�rrLz@SelectorEventLoopUnixSockSendfileTests.prepare.<locals>.<lambda>
s���Errc�����jj��j�j���j��j�j��yr)r$r#rVr�)rYr0�servers���rrSz?SelectorEventLoopUnixSockSendfileTests.prepare.<locals>.cleanupsF����O�O�!�!�#��M�M�%�+�+�-�.��L�L�N��M�M�&�,�,�.�/r)rTr>r-r�find_unused_portr��HOSTrV�
create_server�sock_connectr2rZ)r0r��port�srv_sockrSrYr[s`    @@r�preparez.SelectorEventLoopUnixSockSendfileTests.prepares�������!�����T�Y�Y�'���-�-�/���#�#�E�#�2���
�
�}�)�)�4�0�1����t�y�y�6�6��� 7� *�+���
�
�d�i�i�,�,�T�M�4F�4F��3M�N�O��
�
�e�l�l�#�	0�	
���� ��U�{�rc
��|j�\}}tjdg��5|jtj
d�5|j
|jj||jdd��ddd�ddd�|j|jj�d�y#1swY�<xYw#1swY�@xYw)Nzasyncio.unix_events.os)�specz$os[.]sendfile[(][)] is not availabler)rbrr�r[r�SendfileNotAvailableErrorrVr-�_sock_sendfile_nativerKrf�tell)r0r�rYs   r� test_sock_sendfile_not_availablezGSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_not_availables����l�l�n���e�
�Z�Z�0�r�
:��'�'��(I�(I�(N�P��
�
�d�i�i�=�=�d�D�I�I�>?��G�H�P�;�
	
��������)�1�-�	P�P��;�
:�s#�!C�8B?�C�?C	�C�Cc	�V�|j�\}}t�}|jtjd�5|j|jj||dd��ddd�|j|jj�d�y#1swY�4xYw�N�not a regular filer)rbr�r[rrerVr-rfrfrKrg�r0r�rY�fs    r�test_sock_sendfile_not_a_filezDSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_not_a_file"s����l�l�n���e��H��
�
#�
#�G�$E�$E�$8�:��M�M�$�)�)�9�9�$��:;�T�C�
D�:�	
��������)�1�-�	:�:�s�.B�B(c	�j�|j�\}}tj�}|jtj
d�5|j
|jj||dd��ddd�|j|jj�d�y#1swY�4xYwrj)rb�io�BytesIOr[rrerVr-rfrfrKrgrls    r�test_sock_sendfile_iobufferzBSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_iobuffer+s����l�l�n���e��J�J�L��
�
#�
#�G�$E�$E�$8�:��M�M�$�)�)�9�9�$��:;�T�C�
D�:�	
��������)�1�-�	:�:�s�.B)�)B2c	��|j�\}}tj�}d|j_|jtjd�5|j|jj||dd��ddd�|j|jj�d�y#1swY�4xYw)Nrlrkr)rbrrB�filenor�r[rrerVr-rfrfrKrgrls    r�#test_sock_sendfile_not_regular_filezJSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_not_regular_file4s����l�l�n���e��I�I�K�� "�����
�
#�
#�G�$E�$E�$8�:��M�M�$�)�)�9�9�$��:;�T�C�
D�:�	
��������)�1�-�	:�:�s�.B:�:Cc�L�|j�\}}|jj�}|jj	�}|jj|d||ddt
|j�d�|j�tjtj�5|j|�ddd�|jt�5|jj j#|�ddd�y#1swY�MxYw#1swYyxYw�Nr)rbr-r0rKrt�_sock_sendfile_native_implr�rBrC�
contextlib�suppressr�CancelledErrorrVr5�KeyError�	_selector�get_key�r0r�rYr1rts     r�test_sock_sendfile_cancel1zASelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_cancel1>s����l�l�n���e��i�i�%�%�'�����!�!�#���	�	�,�,�S�$��f�-.��c�$�)�)�n�a�	I��
�
��
�
 �
 ��!7�!7�
8��M�M�#��9�
�
�
�x�
(��I�I���'�'��-�)�
(�9�
8��
(�
(�s�0D�&D�D�D#c�@�|j�\}}|jj�}|jj	�}|jj|d||ddt
|j�d�|j�|jj||j	�||ddt
|j�d�|jt�5|jjj|�ddd�y#1swYyxYwrw)
rbr-r0rKrtrxr�rBrCr5r|r}r~rs     r�test_sock_sendfile_cancel2zASelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_cancel2Ks����l�l�n���e��i�i�%�%�'�����!�!�#���	�	�,�,�S�$��f�-.��c�$�)�)�n�a�	I��
�
���	�	�,�,�S�$�+�+�-��v�-.��c�$�)�)�n�a�	I�
�
�
�x�
(��I�I���'�'��-�)�
(�
(�s�%&D�Dc�8�|j�\}}|jj�}tj�}d|j
_tjdt���5|jj|d||ddt|j�d�ddd�|jjj|�}|j|�|j j#tj$�y#1swY�ixYw)NF�os.sendfile�rPr)rbrKrtrrB�	cancelledr�r��BlockingIOErrorr-rxr�rBr}r~�assertIsNotNone�add_done_callbackr��ANY)r0r�rYrtr1�keys      r�!test_sock_sendfile_blocking_errorzHSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_blocking_errorXs����l�l�n���e����!�!�#���i�i�k��%*��
�
�"�
�Z�Z�
�?�3D�
E��I�I�0�0��d�D�&�12�D�#�d�i�i�.�!�
M�F��i�i�!�!�)�)�$�/�����S�!����5�5�d�h�h�?�F�
E�s�26D�Dc��|j�\}}|jj�}|jj	�}tjdt���5|jj|d||ddt|j�d�ddd�|jt�5|jjj|�ddd�|j�}|j!|t"j$�|j'd|jj)��y#1swY��xYw#1swY�pxYw)Nr�r�r)rbrKrtr-r0rr�rxrxr�rBr5r|r}r~�	exceptionrerrerfrg)r0r�rYrtr1r;s      r�&test_sock_sendfile_os_error_first_callzMSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_os_error_first_calles����l�l�n���e����!�!�#���i�i�%�%�'��
�Z�Z�
�7�9�
=��I�I�0�0��d�D�&�12�D�#�d�i�i�.�!�
M�>��
�
�x�
(��I�I���'�'��-�)��m�m�o�����c�7�#D�#D�E�����D�I�I�N�N�,�-�>�
=��)�
(�s�'6E�:&E�E�Ec��|j�\}}|jj�}|jj	�}t�}t
jd|��5|jj||j�||ddt|j�d�ddd�|jt�5|jjj|�ddd�|j�}|j!||�|j#d|jj%��y#1swY��xYw#1swY�bxYw�Nr�r�i�)rbrKrtr-r0rxrr�rxr�rBr5r|r}r~r��assertIsrfrg�r0r�rYrtr1�errr;s       r�%test_sock_sendfile_os_error_next_callzLSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_os_error_next_callss����l�l�n���e����!�!�#���i�i�%�%�'���i��
�Z�Z�
�3�
7��I�I�0�0��d�k�k�m�15�v�15�t�S����^�15�
7�8�
�
�
�x�
(��I�I���'�'��-�)��m�m�o���
�
�c�3������t�y�y�~�~�/�0�8�
7��
)�
(�s�)AE�
&E�E�Ec���|j�\}}|jj�}|jj	�}tj�}tjd|��5|jj||j�||ddt|j�d�ddd�|jt�5|jjj|�ddd�|j!�}|j#||�|j%d|jj'��y#1swY��xYw#1swY�bxYwr�)rbrKrtr-r0rrerr�rxr�rBr5r|r}r~r�r�rfrgr�s       r�test_sock_sendfile_exceptionzCSelectorEventLoopUnixSockSendfileTests.test_sock_sendfile_exception�s����l�l�n���e����!�!�#���i�i�%�%�'���/�/�1��
�Z�Z�
�3�
7��I�I�0�0��d�k�k�m�15�v�15�t�S����^�15�
7�8�
�
�
�x�
(��I�I���'�'��-�)��m�m�o���
�
�c�3������t�y�y�~�~�/�0�8�
7��
)�
(�s�3AE�&E�E�E$)T)rprqrrrBr�Protocolr>�classmethodrCrGr+rTrVrbrhrnrrrur�r�r�r�r�r�r�r�s@rr'r'�s������$�D��'�"�"��2����
� �� ���2��,.�.�.�.�.�.�@�.�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�|��|j�|_t	j
tj�|_tjtj��|_
d|jj_tj d�}|j#�|j%|j&�tj d�}|j#�}tj�}t(j*|_||_|j%|j&�y�N)�spec_set�zos.set_blockingzos.fstat)r*r+�
new_test_loopr-r��make_test_protocolrr��protocolrrBrp�	RawIOBase�pipertr�r��startrZ�stop�stat�S_IFIFO�st_mode�r0�blocking_patcher�
fstat_patcher�m_fstat�str1s     �rr+z UnixReadPipeTransportTests.setUp�s����
��
���&�&�(��	�"�5�5�g�6F�6F�G��
��I�I�r�|�|�4��	�()��	�	���%��:�:�&7�8����� ����(�-�-�.��
�
�:�.�
��%�%�'��
�Y�Y�[���\�\��
�!������
�*�*�+rc��tj|j|j|j|��}|jt|�|S�N��waiter)r�_UnixReadPipeTransportr-r�r�rZr%�r0r�r$s   r�read_pipe_transportz.UnixReadPipeTransportTests.read_pipe_transport�s@���6�6�t�y�y�$�)�)�7;�}�}�>D�F�	�	
���,�i�8��rc�f�|jj�}|j|��}|jj|�|jj
j
|�|jjd|j�|j|j��y�Nr�r�)r-r0r�r�r�r6rF�
assert_reader�_read_ready�assertIsNone�result�r0r��trs   r�	test_ctorz$UnixReadPipeTransportTests.test_ctor�s}�����(�(�*��
�
%�
%�V�
%�
4���	�	�$�$�V�,��
�
�%�%�8�8��<��	�	����2�>�>�2����&�-�-�/�*rzos.readc���|j�}d|_|j�|jd|j�|j
jjd�y�N�datar�)r�r�r�rF�max_sizer�r9�r0�m_readr�s   r�test__read_readyz+UnixReadPipeTransportTests.test__read_ready�sN��
�
%�
%�
'��%���
�����!�!�!�R�[�[�1��
�
�#�#�6�6�w�?rc��|j�}d|_|j�|jd|j�|j|jj�tj|j�|jjj�|jjjd�y)Nrr�)
r�r�r�rFr�r�r-�readersr��run_brieflyr��eof_receivedr<r�s   r�test__read_ready_eofz/UnixReadPipeTransportTests.test__read_ready_eof�s���
�
%�
%�
'��!���
�����!�!�!�R�[�[�1�������*�*�+����t�y�y�)��
�
�"�"�5�5�7��
�
�%�%�8�8��>rc�.�|j�}t|_|j�|j	d|j
�t
j|j�|j|jjj�y�Nr�)
r�r�rPr�rFr�r�r�r-r�r�r9r�r�s   r�test__read_ready_blockedz3UnixReadPipeTransportTests.test__read_ready_blocked�sf��
�
%�
%�
'��,���
�����!�!�!�R�[�[�1����t�y�y�)�������4�4�;�;�<r�asyncio.log.logger.errorc�p�|j�}t�}||_tj�|_|j
�|jd|j�|j
j|�|jtjd�tttf��y)Nr�z;Fatal read error on pipe transport
protocol:.*
transport:.*)�exc_info)r�rxrPrrB�_closer�rFr�r��MockPattern�MOCK_ANY)r0r��m_logexcr�r�s     r�test__read_ready_errorz1UnixReadPipeTransportTests.test__read_ready_error�s����
%�
%�
'���i�� ����I�I�K��	�
�����!�!�!�R�[�[�1�
�	�	�$�$�S�)��#�#��"�"�.�
/��x��2�		$�	4rc���|j�}tj�}|jj	d|�|j�|j
|jj�yr�)r�rrBr-�
add_reader�
pause_readingr�r�)r0r�r��ms    r�test_pause_readingz-UnixReadPipeTransportTests.test_pause_reading�sS��
�
%�
%�
'���I�I�K���	�	���Q��"�
����������*�*�+rc��|j�}|j�|j�|jj	d|j
�yr�)r�r��resume_readingr-r�r�r�s   r�test_resume_readingz.UnixReadPipeTransportTests.test_resume_reading�s@��
�
%�
%�
'��
����
�����	�	����2�>�>�2rc��|j�}tj�|_|j	�|jjd�yr)r�rrBr�r#rFr�s   rr�z%UnixReadPipeTransportTests.test_close�s8��
�
%�
%�
'���I�I�K��	�
���
�
�	�	�$�$�T�*rc���|j�}d|_tj�|_|j�|j
|jj�yrK)r��_closingrrBr�r#r�r�r�s   r�test_close_already_closingz5UnixReadPipeTransportTests.test_close_already_closingsE��
�
%�
%�
'������I�I�K��	�
���
�������)�)�*rc�j�|j�}t�}|j|�|j|j	��|j|jj�tj|j�|jjj|�yr)
r�r�r�r��
is_closingr�r-r�r�r�r�r<rF)r0r�r�r�s    r�test__closez&UnixReadPipeTransportTests.test__closesv��
�
%�
%�
'���h��
�	�	�#������
�
��(�������*�*�+����t�y�y�)��
�
�%�%�8�8��=rc��|j�}|j|j�|j|j�d}|j	|�|j
jj|�|jjj�|j|j�|j|j�yr)r�r��	_protocol�_loop�_call_connection_lostr�r<rFr�r#r��r0r�r�s   r�test__call_connection_lostz5UnixReadPipeTransportTests.test__call_connection_losts���
�
%�
%�
'�����R�\�\�*����R�X�X�&���
� � ��%��
�
�%�%�8�8��=��	�	���*�*�,����"�,�,�'����"�(�(�#rc���|j�}|j|j�|j|j�t	�}|j|�|jjj|�|jjj�|j|j�|j|j�yr)r�r�r�r�rxr�r�r<rFr�r#r�r�s   r�#test__call_connection_lost_with_errz>UnixReadPipeTransportTests.test__call_connection_lost_with_errs���
�
%�
%�
'�����R�\�\�*����R�X�X�&��i��
� � ��%��
�
�%�%�8�8��=��	�	���*�*�,����"�,�,�'����"�(�(�#rc���|j�}|j�tj|j�|j|j�|j�yr)r�r#r�r�r-r�r�r��r0r�s  r�!test_pause_reading_on_closed_pipez<UnixReadPipeTransportTests.test_pause_reading_on_closed_pipe,sI��
�
%�
%�
'��
���
����t�y�y�)����"�(�(�#�
���rc�d�|j�}|j�|j�yr)r�r�r�s  r�!test_pause_reading_on_paused_pipez<UnixReadPipeTransportTests.test_pause_reading_on_paused_pipe3s(��
�
%�
%�
'��
����
���rc���|j�}|j�tj|j�|j|j�|j�yr)r�r#r�r�r-r�r�r�r�s  r�"test_resume_reading_on_closed_pipez=UnixReadPipeTransportTests.test_resume_reading_on_closed_pipe9sI��
�
%�
%�
'��
���
����t�y�y�)����"�(�(�#�
���rc�D�|j�}|j�yr)r�r�r�s  r�"test_resume_reading_on_paused_pipez=UnixReadPipeTransportTests.test_resume_reading_on_paused_pipe@s��
�
%�
%�
'��	���rr)rprqrrr+r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�s@rr�r��s]���,�$�+��T�Z�Z�	��@��@��T�Z�Z�	��	?��	?��T�Z�Z�	��=��=��T�Z�Z�*�+��T�Z�Z�	��
4��,�
4��T�Z�Z�	��,��,��T�Z�Z�	��3��3��T�Z�Z�	��+��+��T�Z�Z�	��+��+��T�Z�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�|��|j�|_t	j
tj�|_tjtj��|_
d|jj_tj d�}|j#�|j%|j&�tj d�}|j#�}tj�}t(j*|_||_|j%|j&�yr�)r*r+r�r-r�r�r�BaseProtocolr�rrBrpr�r�rtr�r�r�rZr�r��S_IFSOCKr�r�s     �rr+z!UnixWritePipeTransportTests.setUpIs����
��
���&�&�(��	�"�5�5�g�6J�6J�K��
��I�I�r�|�|�4��	�()��	�	���%��:�:�&7�8����� ����(�-�-�.��
�
�:�.�
��%�%�'��
�Y�Y�[���]�]��
�!������
�*�*�+rc��tj|j|j|j|��}|jt|�|Sr�)r�_UnixWritePipeTransportr-r�r�rZr%r�s   r�write_pipe_transportz0UnixWritePipeTransportTests.write_pipe_transport[s@���7�7��	�	�4�9�9�8<�
�
�?E�G�	�	
���,�i�8��rc�h�|jj�}|j|��}|jj|�|jj
j
|�|jjd|j�|jd|j��yr�)r-r0r�r�r�r6rFr�r�rfr�r�s   rr�z%UnixWritePipeTransportTests.test_ctorbs�����(�(�*��
�
&�
&�f�
&�
5���	�	�$�$�V�,��
�
�%�%�8�8��<��	�	����2�>�>�2�����v�}�}��/rc�b�|j�}|j|j��yr)r�r��
can_write_eofr�s  r�test_can_write_eofz.UnixWritePipeTransportTests.test_can_write_eofks%��
�
&�
&�
(������(�(�*�+rzos.writec�
�|j�}d|_|jd�|jdd�|j	|j
j�|jt�|j�y)N�r�r�)
r�r�rArFr�r-�writersrfr.�_buffer�r0�m_writer�s   r�
test_writez&UnixWritePipeTransportTests.test_writeosb��
�
&�
&�
(�� ���
������"�"�1�g�.�������*�*�+������b�j�j�1rc��|j�}|jd�|j|j�|j|jj
�|j
td�|j�y)Nr)	r�rAr�r�r-rrfr.rrs   r�test_write_no_dataz.UnixWritePipeTransportTests.test_write_no_dataxs]��
�
&�
&�
(��
����
�������(�������*�*�+�����3�����4rc���|j�}d|_|jd�|jj	d|j
�|j
td�|j�y)Nr�r�r��ta)	r�r�rAr-�
assert_writer�_write_readyrfr.rrs   r�test_write_partialz.UnixWritePipeTransportTests.test_write_partial�sU��
�
&�
&�
(�� ���
������	�	����2�?�?�3�����5�)�2�:�:�6rc�~�|j�}|jjd|j�t	d�|_|j
d�|j|j�|jjd|j�|jt	d�|j
�y)Nr�spreviousr�spreviousdata)r�r-�
add_writerrr.rrAr�r�r
rfrs   r�test_write_bufferz-UnixWritePipeTransportTests.test_write_buffer�s���
�
&�
&�
(���	�	���Q����0��{�+��
�
�����������(��	�	����2�?�?�3�����?�3�R�Z�Z�@rc�0�|j�}t�|_|jd�|j	dtd��|jjd|j�|jtd�|j�yr�)r�r�rPrArFr.r-r
rrfrrs   r�test_write_againz,UnixWritePipeTransportTests.test_write_again�sm��
�
&�
&�
(��-�/���
������"�"�1�i��&8�9��	�	����2�?�?�3�����7�+�R�Z�Z�8rzasyncio.unix_events.loggerc��|j�}t�}||_tj�|_|j
d�|jdd�|j|jj�|jt�|j�|j
j|d�|jd|j�|j
d�|jd|j�|j
d�|j
d�|j
d�|j
d�|jjd�|j!�y)Nr�r�z#Fatal write error on pipe transportrr�z=pipe closed by peer or os.write(pipe, data) raised exception.)r�rxrPrrB�_fatal_errorrArFr�r-rrfr.r�
_conn_lost�warningr#)r0r�m_logr�r�s     r�test_write_errz*UnixWritePipeTransportTests.test_write_err�s���
&�
&�
(���i��!����)�)�+���
������"�"�1�g�.�������*�*�+������b�j�j�1�
���*�*��A�	C�	
����B�M�M�*�
���������B�M�M�*�
�����
�����
�����
�����
�
�
�(�(�K�	M�
���
rc��|j�}|j�|jd�|j|jd�|jd�|j|jd�y)Nr�rr�)r�r�rArfrrs   r�test_write_closez,UnixWritePipeTransportTests.test_write_close�sZ��
�
&�
&�
(��
����
������������*�
������������*rc��|j�}|j�|j|jj�|j|jj
�|j
|j��tj|j�|jjjd�yr)
r�r�r�r-r�rr�r�r�r�r�r<rFr�s  rr�z,UnixWritePipeTransportTests.test__read_ready�s���
�
&�
&�
(��
����������*�*�+�������*�*�+�����
�
��(����t�y�y�)��
�
�%�%�8�8��>rc�P�|j�}|jjd|j�t	d�|_d|_|j�|j|jj�|jt	�|j
�y)Nr�r�r)
r�r-rrr.rr�r�rrfrs   r�test__write_readyz-UnixWritePipeTransportTests.test__write_ready�st��
�
&�
&�
(���	�	���Q����0��w�'��
� ���
����������*�*�+������b�j�j�1rc�T�|j�}|jjd|j�t	d�|_d|_|j�|jjd|j�|jt	d�|j
�y)Nr�r���a)	r�r-rrr.rr�r
rfrs   r�test__write_ready_partialz5UnixWritePipeTransportTests.test__write_ready_partial�sv��
�
&�
&�
(���	�	���Q����0��w�'��
� ���
�����	�	����2�?�?�3�����4��"�*�*�5rc��|j�}|jjd|j�t	d�|_t
�|_|j�|jdt	d��|jjd|j�|jt	d�|j
�y)Nr�r�)r�r-rrr.rr�rPrFr
rfrs   r�test__write_ready_againz3UnixWritePipeTransportTests.test__write_ready_again�s���
�
&�
&�
(���	�	���Q����0��w�'��
�-�/���
�����"�"�1�i��&8�9��	�	����2�?�?�3�����7�+�R�Z�Z�8rc��|j�}|jjd|j�t	d�|_d|_|j�|jdt	d��|jjd|j�|jt	d�|j
�y)Nr�r�r)
r�r-rrr.rr�rFr
rfrs   r�test__write_ready_emptyz3UnixWritePipeTransportTests.test__write_ready_empty�s���
�
&�
&�
(���	�	���Q����0��w�'��
� ���
�����"�"�1�i��&8�9��	�	����2�?�?�3�����7�+�R�Z�Z�8rr�c���|j�}|jjd|j�t	d�|_t
�x|_}|j�|j|jj�|j|jj�|jt	�|j
�|j|j��|j�|jd|j�t!j"|j�|j$j&j)|�y)Nr�r�r)r�r-rrr.rrxrPr�rr�rfr�r��assert_not_calledrr�r�r�r<rF)r0rr�r�r�s     r�test__write_ready_errz1UnixWritePipeTransportTests.test__write_ready_err�s����
&�
&�
(���	�	���Q����0��w�'��
�$+�I�-���c�
����������*�*�+�������*�*�+������b�j�j�1�����
�
��(��"�"�$�����B�M�M�*����t�y�y�)��
�
�%�%�8�8��=rc�:�|j�}|jjd|j�d|_td�|_d|_|j�|j|jj�|j|jj�|jt�|j�|jjjd�|jj j�y)Nr�Tr�r)r�r-rrr�r.rr�r�rr�rfr�r<rFr�r#rs   r�test__write_ready_closingz5UnixWritePipeTransportTests.test__write_ready_closings���
�
&�
&�
(���	�	���Q����0�����w�'��
� ���
����������*�*�+�������*�*�+������b�j�j�1��
�
�%�%�8�8��>��	�	���*�*�,rc��|j�}|jjd|j�|jj	d|j
�ddg|_|j�|j|j�|j|jj�|j|jj�|jg|j�|j|j��tj |j�|j"j$j'd�y)Nr�sdar)r�r-rrr�r�r�abortr�r�r�rrfr�r�r�r�r�r<rFrs   r�
test_abortz&UnixWritePipeTransportTests.test_aborts���
�
&�
&�
(���	�	���Q����0��	�	���Q����/��U�^��
�
���
�������(�������*�*�+�������*�*�+�����R�Z�Z�(�����
�
��(����t�y�y�)��
�
�%�%�8�8��>rc��|j�}|j|j�|j|j�d}|j	|�|j
jj|�|jjj�|j|j�|j|j�yr)r�r�r�r�r�r�r<rFr�r#r�r�s   rr�z6UnixWritePipeTransportTests.test__call_connection_lost!s���
�
&�
&�
(�����R�\�\�*����R�X�X�&���
� � ��%��
�
�%�%�8�8��=��	�	���*�*�,����"�,�,�'����"�(�(�#rc���|j�}|j|j�|j|j�t	�}|j|�|jjj|�|jjj�|j|j�|j|j�yr)r�r�r�r�rxr�r�r<rFr�r#r�r�s   rr�z?UnixWritePipeTransportTests.test__call_connection_lost_with_err.s���
�
&�
&�
(�����R�\�\�*����R�X�X�&��i��
� � ��%��
�
�%�%�8�8��=��	�	���*�*�,����"�,�,�'����"�(�(�#rc���|j�}tj�|_|j	�|jj�|j	�yr)r�rrB�	write_eofr#rFr�s  rr�z&UnixWritePipeTransportTests.test_close;sA��
�
&�
&�
(���y�y�{���
���
�
���'�'�)�	���
rc���|j�}tj�|_d|_|j�|j
|jj�yrK)r�rrBr3r�r#r�r�r�s  r�test_close_closingz.UnixWritePipeTransportTests.test_close_closingDsE��
�
&�
&�
(���y�y�{������
���
�������,�,�-rc�T�|j�}|j�|j|j��|j	|j
j�tj|j
�|jjjd�yr)r�r3r�r�r�r-r�r�r�r�r<rFr�s  r�test_write_eofz*UnixWritePipeTransportTests.test_write_eofKsm��
�
&�
&�
(��
��������
�
��(�������*�*�+����t�y�y�)��
�
�%�%�8�8��>rc���|j�}dg|_|j�|j|j	��|j|jjj�y)Nr�)	r�rr3r�r�r�r�r<r�r�s  r�test_write_eof_pendingz2UnixWritePipeTransportTests.test_write_eof_pendingSsR��
�
&�
&�
(���Y��
�
��������
�
��(�������6�6�=�=�>rr)rprqrrr+r�r�rrr�rr
rrrrrr�rr#r%r'r*r,r/r�r�r�r5r7r9r�r�s@rr�r�Gs���,�$�0�,��T�Z�Z�
��2��2��T�Z�Z�
��5��5��T�Z�Z�
��7��7��T�Z�Z�
��A��A��T�Z�Z�
��9��9��T�Z�Z�,�-��T�Z�Z�
����.��2�T�Z�Z�
��+��+�?��T�Z�Z�
��2��2��T�Z�Z�
��6��6��T�Z�Z�
��9��9��T�Z�Z�
��9��9��T�Z�Z�*�+��T�Z�Z�
��
>��,�
>��T�Z�Z�
��-��-��T�Z�Z�
��?��?�$�$��.�?�?rr�c��eZdZd�Zd�Zy)�AbstractChildWatcherTestsc��|jt�5Gd�dtj�}ddd�y#1swYyxYw)Nc��eZdZy)�FAbstractChildWatcherTests.test_warns_on_subclassing.<locals>.MyWatcherN)rprqrrrrr�	MyWatcherr>_s��rr?)�assertWarns�DeprecationWarningr�AbstractChildWatcher)r0r?s  r�test_warns_on_subclassingz3AbstractChildWatcherTests.test_warns_on_subclassing]s/��
�
�
�0�
1�
�G�8�8�
�2�
1�
1�s	�9�Ac�"�tj�}tj�}|j	t
|j||�|j	t
|j|�|j	t
|j|�|j	t
|j�|j	t
|j�|j	t
|j�|j	t
|j|||�yr)
rrBrrBr5�NotImplementedError�add_child_handler�remove_child_handler�attach_loopr#�	is_active�	__enter__�__exit__�r0rm�watchers   r�test_not_implementedz.AbstractChildWatcherTests.test_not_implementedbs����I�I�K���.�.�0�������!:�!:�A�q�	B������!=�!=�q�	B������!4�!4�a�	9��������	0������!2�!2�	4������!2�!2�	4������!1�!1�1�a��	<rN)rprqrrrCrNrrrr;r;[s���
<rr;c��eZdZd�Zy)�BaseChildWatcherTestsc��tj�}tj�}|j	t
|j|�yr)rrBr�BaseChildWatcherr5rE�_do_waitpidrLs   rrNz*BaseChildWatcherTests.test_not_implementedws6���I�I�K���.�.�0�������!4�!4�a�	9rN)rprqrrrNrrrrPrPus��9rrPc�h��eZdZejjejd�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�d��t�|��|j�|_d|_i|_tjj|jd�5|_	|j�|_|jj|j�ddd�y#1swYyxYw)NFrR)
r*r+r�r-�running�zombiesrr�r��m_add_signal_handler�create_watcherrMrHr/s �rr+zChildWatcherTestsMixin.setUp�s����
��
���&�&�(��	�������
�Z�Z�
�
��	�	�/�1�48�4M��.�.�0�D�L��L�L�$�$�T�Y�Y�/�1�1�1�s
�AB&�&B/c�>�t|jtj�s|dk7r|j	|d�	|dkr|j
j
�S||j
j|�fS#t$rYnwxYw|jryt��)Nrlr)rr)�
isinstancerMr�SafeChildWatcher�
assertGreaterrX�popitem�popr|rW�ChildProcessError)r0�pid�flagss   r�waitpidzChildWatcherTestsMixin.waitpid�s����d�l�l�G�$<�$<�=�������s�A�&�	��Q�w��|�|�+�+�-�-��D�L�L�,�,�S�1�1�1���	��	���<�<��#�%�%s�A9�A9�9	B�Bc�"�||j|<yr)rX)r0rb�statuss   r�
add_zombiez!ChildWatcherTestsMixin.add_zombie�s��"����S�rc�@�|dkDr|dz
Sd|cxkr	dkr|dz
S|S|S)Nri�r)r0rfs  r�waitstatus_to_exitcodez-ChildWatcherTestsMixin.waitstatus_to_exitcode�s:���E�>��E�>�!�
�V�
#�e�
#��E�>�!�$��M�6�Mrc��|jjtj|jj
�yr)rYr�r9r�rM�	_sig_chldr;s r�test_create_watcherz*ChildWatcherTestsMixin.test_create_watcher�s)���!�!�9�9��N�N�D�L�L�2�2�	4rc����fd�}|S)Nc���d�}|d|j�5|d|j�5}�||�ddd�ddd�y#1swY�xYw#1swYyxYw)Nc�N�tj||tj��S)N)�wraps�new_callable)rr�rB)�target�wrappers  rr�zIChildWatcherTestsMixin.waitpid_mocks.<locals>.wrapped_func.<locals>.patch�s���z�z�&��/3�y�y�:�:rz*asyncio.unix_events.waitstatus_to_exitcodez
os.waitpid)rird)r0r��	m_waitpidr^s   �r�wrapped_funcz:ChildWatcherTestsMixin.waitpid_mocks.<locals>.wrapped_func�sT���
:��C�T�E`�E`�a��|�T�\�\�2�i��T�9�%�3�b�a�2�2��b�a�s!�A�
A�A�A	�A�Ar)r^rus` r�
waitpid_mocksz$ChildWatcherTestsMixin.waitpid_mocks�s���	&��rc��tj�}|j5d|_|jj	d|ddd�ddd�|j|j�|jj�|j|j�d|_|jdtd��|jj�|jddddd�|j�|jdtd��|j5|jj�ddd�|j|j�|jj�|jj�|j|j�y#1swY��pxYw#1swY��xYw)	NT�*�	�
�F��
)rrBrMrWrFr�r�rkrgrr�r��ignore_warningsrX�clear�r0rt�callbacks   r�test_sigchldz#ChildWatcherTestsMixin.test_sigchld�sL���9�9�;��
�\�\��D�L��L�L�*�*�2�x��B��C��	
������)�	
����� �������)��������H�R�L�)������ ��(�(��R��B��;�����	
����H�R�L�)�
�
!�
!��L�L�"�"�$�"�	
������)�	
����������� �������)�?�\��,"�
!�s�'F6�(G�6G�Gc�z�tj�}tj�}|j5d|_|jj	d|dd�ddd�|j|j�|j|j�|j5|jj	d|dd�ddd�|j|j�|j|j�|jj�|j|j�|j|j�|jdtd��|jj�|jdd	dd�|j|j�|j�|jj�|j|j�|j|j�|jdtd
��d|_|jj�|jdd
dd�|j|j�|j�|jdtd��|jdtd
��|j5|jj�ddd�|j|j�|j|j�|jj�|jj�|j|j�|j|j�y#1swY��>xYw#1swY���xYw#1swY��xYw)NT�+���,��r!����lFr{�)rrBrMrWrFr�r�rkrgr r�r�rr~rXr�r0rt�	callback1�	callback2s    r�test_sigchld_two_childrenz0ChildWatcherTestsMixin.test_sigchld_two_children�s����I�I�K�	��I�I�K�	��\�\��D�L��L�L�*�*�2�y�!�Q�?��	
����)�)�*�����)�)�*��\�\��L�L�*�*�2�y�#�r�B��	
����)�)�*�����)�)�*�	
����� �����)�)�*�����)�)�*�	
����F�1�I�&������ ��)�)�"�b�!�Q�7�����)�)�*�����	
����� �����)�)�*�����)�)�*�	
����H�S�M�*��������� ��)�)�"�c�3��;�����)�)�*�����	
����H�R�L�)�����H�R�L�)�
�
!�
!��L�L�"�"�$�"�	
����)�)�*�����)�)�*�	
����������� �����)�)�*�����)�)�*�w�\���\��P"�
!�s#�&N�%N$�N1�N!�$N.�1N:c�f�tj�}tj�}|j5d|_|jj	d|dd�ddd�|j|j�|j|j�|j5|jj	d|dd�ddd�|j|j�|j|j�|jj�|j|j�|j|j�|jdtd��|jdtd	��d
|_|jj�|jdddd�|jdddd�|j�|j�|jdtd��|jdtd
��|j5|jj�ddd�|j|j�|j|j�y#1swY��4xYw#1swY���xYw#1swY�ZxYw)NT�-�r��.i{r��Nr�F���r{r�)rrBrMrWrFr�r�rkrgrr r�r�r~r�s    r�.test_sigchld_two_children_terminating_togetherzEChildWatcherTestsMixin.test_sigchld_two_children_terminating_togethers����I�I�K�	��I�I�K�	��\�\��D�L��L�L�*�*�2�y�"�a�@��	
����)�)�*�����)�)�*��\�\��L�L�*�*�2�y�$��C��	
����)�)�*�����)�)�*�	
����� �����)�)�*�����)�)�*�	
����H�R�L�)�����F�1�I�&��������� ��)�)�"�b�"�a�8��)�)�"�b�$��;���������	
����H�R�L�)�����H�R�L�)�
�
!�
!��L�L�"�"�$�"�	
����)�)�*�����)�)�*�Q�\���\��8"�
!�s#�&J
�%J�3J'�
J�J$�'J0c�>�tj�}|j5|jdt	d��|jj�|jj
d|dd�ddd�|jdddd�|j�|jdtd��|j5|jj�ddd�|j|j�y#1swY��xYw#1swY�1xYw)N�2rrr|)
rrBrMrgrrkrFr�r�r r~r�r�r�s   r�test_sigchld_race_conditionz2ChildWatcherTestsMixin.test_sigchld_race_conditionOs����9�9�;��
�\�\��O�O�B����,��L�L�"�"�$��L�L�*�*�2�x��B�?��	�(�(��Q��2�6�����	
����F�1�I�&�
�
!�
!��L�L�"�"�$�"�	
������)��\��"�
!�s�AD�D�D�Dc�B�tj�}tj�}|j5d|_|jj	d|d�ddd�|j|j�|j|j�|j5|jj	d|d�ddd�|j|j�|j|j�d|_|jdtd��|jj�|jddd�|j|j�|j�|jdtd��|j5|jj�ddd�|j|j�|j|j�y#1swY���xYw#1swY��HxYw#1swY�ZxYw)	NT�3��Fr�i����r})rrBrMrWrFr�r�rgr rkr�r�rr~r�s    r�test_sigchld_replace_handlerz3ChildWatcherTestsMixin.test_sigchld_replace_handleres����I�I�K�	��I�I�K�	��\�\��D�L��L�L�*�*�2�y�"�=��	
����)�)�*�����)�)�*��\�\��L�L�*�*�2�y�"�=��	
����)�)�*�����)�)�*��������F�1�I�&������ ��)�)�"�b�"�5�����)�)�*�����	
����H�R�L�)�
�
!�
!��L�L�"�"�$�"�	
����)�)�*�����)�)�*�=�\���\��$"�
!�s#�%G;�$H�!H�;H�H�Hc�H�tj�}|j5d|_|jj	d|d�ddd�|j|j�|jjd�|j|j�d|_|jdtd��|j5|jj�ddd�|j|j�y#1swY��xYw#1swY�1xYw)NT�4i�F�c)rrBrMrWrFr�r�rGrgrr~rkr�s   r�test_sigchld_remove_handlerz2ChildWatcherTestsMixin.test_sigchld_remove_handler�s����9�9�;���\�\��D�L��L�L�*�*�2�x��>��	
������)�	
���)�)�"�-�������)��������H�R�L�)�
�
!�
!��L�L�"�"�$�"�	
������)�#�\��"�
!�s�%D�
D�D�D!c�t�tj�}|j5d|_|jj	d|d�ddd�|j|j�d|jd<d|_|jj�|jddd�|j�|jdtd��|j5|jj�ddd�|j|j�y#1swY��xYw#1swY�1xYw)NT�5i��i�F�e)rrBrMrWrFr�r�rXrkr�r�rgrr~r�s   r�test_sigchld_unknown_statusz2ChildWatcherTestsMixin.test_sigchld_unknown_status�s����9�9�;���\�\��D�L��L�L�*�*�2�x��=��	
������)� ����R���������� ��(�(��T�3�7�����	
����H�S�M�*�
�
!�
!��L�L�"�"�$�"�	
������)�)�\��""�
!�s�%D"�#D.�"D+�.D7c��tj�}tj�}tj�}|j5d|_|jj	d|d�|jj	d|d�|jj	d|d�ddd�|j|jj
d��|j|jj
d��|j|jj
d��|j|jj
d��|jdtd��|jdtd��|jdtd��d	|_|j5|jj�ddd�|j|j�|j|j�|jddd�y#1swY���xYw#1swY�`xYw)
NT�6r�7r��8r!rF)rrBrMrWrFr�rGr�rgrr~rkr�r�)r0rtr�r��	callback3s     r�test_remove_child_handlerz0ChildWatcherTestsMixin.test_remove_child_handler�s����I�I�K�	��I�I�K�	��I�I�K�	��\�\��D�L��L�L�*�*�2�y�!�<��L�L�*�*�2�y�!�<��L�L�*�*�2�y�!�<�	�	
������9�9�"�=�>�	
������9�9�"�=�>�������:�:�2�>�?�������:�:�2�>�?�	
����H�Q�K�(�����H�Q�K�(�����H�Q�K�(����
�
!�
!��L�L�"�"�$�"�	
����)�)�*�����)�)�*��)�)�"�a��3�1�\��&"�
!�s�	AH)�<H6�)H3�6H?c���tj�}|j5d|_|jj	d|�ddd�t
|_tjjtjd�5}|j|jj�d�|j|j�ddd�y#1swY��xYw#1swYyxYw)NT�9�error)rrBrMrWrFr8rPr�r�r�loggerrfrkr�r�)r0rtr��m_errors    r� test_sigchld_unhandled_exceptionz7ChildWatcherTestsMixin.test_sigchld_unhandled_exception�s����9�9�;���\�\��D�L��L�L�*�*�2�x�8��
!+�	��
�Z�Z�
�
�s�z�z�&�(�+2����T�\�\�3�3�5�t�<��O�O�G�N�N�+�	(�(��\��(�(�s�$C�AC!�C�!C*c��tj�}|j5d|_|jj	d|�ddd�|j|j�d|_|jdtd��tjdtj�|j�|j5|jj�ddd�t|jt j"�r|j|j�y|j%dd�y#1swY��xYw#1swY�hxYw)NT�:Fr�)rrBrMrWrFr�r�rgrrrd�WNOHANGr�r~rkr\r�FastChildWatcherr�r�s   r�#test_sigchld_child_reaped_elsewherez:ChildWatcherTestsMixin.test_sigchld_child_reaped_elsewhere�s����9�9�;��
�\�\��D�L��L�L�*�*�2�x�8��	
������)��������H�Q�K�(�	�
�
�2�r�z�z�"������
!�
!��L�L�"�"�$�"��d�l�l�G�$<�$<�=�
���X�_�_�-��,�,�R��5�1�\�� "�
!�s�$E�
E�E	�Ec�P�tj�}tj�}|j5|j5d|_|jdt
d��|jdt
d��|jj�|jjd|�|jjd|�ddd�ddd�|jdd�|j|j�y#1swY�?xYw#1swY�CxYw)NTiOr�iQr�iP)rrBr~rMrWrgrrkrFr�r�r�r�s    r�,test_sigchld_unknown_pid_during_registrationzCChildWatcherTestsMixin.test_sigchld_unknown_pid_during_registrations����I�I�K�	��I�I�K�	�
�
!�
!�4�<�<��D�L��O�O�C��!��-��O�O�C��"��.��L�L�"�"�$��L�L�*�*�3�	�:��L�L�*�*�3�	�:�$0�
!�	�)�)�#�q�1�����)�)�*�$0�<��
!�
!�s$�
D�BD�D�D	�D�D%c�D�tj�}|j5d|_|jj	d|�ddd�|j
}|j
�|_tjj}||d�5}||j
d�5}|jj|j
�|jtj�|jtj|jj�ddd�ddd�d|_|jdtd��|jj�|jdd�y#1swY��:xYw#1swY�mxYw#1swY�qxYw)NT�<rErRFry)rrBrMrWrFr-r�r�r�rHr�r9r�rkrgr)r0rtr��old_loopr��m_old_remove�	m_new_adds       r�
test_set_loopz$ChildWatcherTestsMixin.test_set_loop%s)���9�9�;��
�\�\��D�L��L�L�*�*�2�x�8��
�9�9���&�&�(��	��
�
�!�!��
�8�4�
5��
�4�9�9�2�
3�y��L�L�$�$�T�Y�Y�/��0�0����
 ��-�-������� 6� 6�
8�
4�6��������H�Q�K�(������ ��(�(��Q�/�1�\��4�
3��6�
5�s0�$E=�F�%A9F
�F�=F�
F	�F�Fc��tj�}tj�}tj�}|j5d|_|jj	d|�|jj	d|�|jj	d|�ddd�|j
}d|_tjj|d�5}|jtd�5|jjd�ddd�|jtj�ddd�|jdtd��|jdt!d��|j#|j$�|j#|j$�|j#|j$�|j'�|_tjj|j
d	�5}|jj|j
�|jtj|jj(�|jdd�|jdd
�|j#|j$�ddd�|j+�|j+�d|_|jdtd��|jj)�|j#|j$�|j#|j$�|jdd�y#1swY���xYw#1swY��JxYw#1swY��0xYw#1swY��xYw)
NT�=�>inrEzA loop is being detached�r�rRr�Fr�)rrBrMrWrFr-r�r�r��RuntimeWarningrHr�r9r�rgrr r�r�r�rkr�)r0rtr�r�r�r��m_remove_signal_handlerrYs        r�test_set_loop_race_conditionz3ChildWatcherTestsMixin.test_set_loop_race_conditionDs����I�I�K�	��I�I�K�	��I�I�K�	�
�\�\��D�L��L�L�*�*�2�y�9��L�L�*�*�2�y�9��L�L�*�*�3�	�:�	��9�9����	�
�Z�Z�
�
��1�3�6M��&�&�"�$>�@����(�(��.�@�
$�;�;����
 �3�	
����H�R�L�)�����F�1�I�&�	
����)�)�*�����)�)�*�����)�)�*��&�&�(��	�
�Z�Z�
�
��	�	�/�1�4H��L�L�$�$�T�Y�Y�/� �8�8������� 6� 6�
8��-�-�b�"�5��-�-�b�"�5����Y�-�-�.�1�	���������������X�b�\�*������ �����)�)�*�����)�)�*��)�)�#�r�2�k�\��@�@��3�3��,1�1�s>�	AM� M(�7M�'M(�BM5�M�M%	� M(�(M2�5M>c�\�tj�}|j5d|_|j	dtd��|j	dtd��|jj
�|jjd|�|jjd|�|jt|jj�d�t|jtj�r/|jt|jj�d�tjj!|j"d�5}|jj%�|j't(j*�|j-|jj�t|jtj�r%|j-|jj�ddd�ddd�y#1swY�xYw#1swYyxYw)	NT�?ry�Ar��@rrE)rrBrMrWrgrrkrFrfr��
_callbacksr\rr��_zombiesr�r�r-r#r�r9r�r�)r0rtr�r�s    rr�z!ChildWatcherTestsMixin.test_close�sr���I�I�K�	�
�\�\��D�L��O�O�B����,��O�O�B����-��L�L�"�"�$��L�L�*�*�2�y�9��L�L�*�*�2�y�9����S����!8�!8�9�1�=��$�,�,��(@�(@�A�� � ��T�\�\�%:�%:�!;�Q�?����"�"��I�I�+�-�0G����"�"�$�'�?�?��N�N�$�� � ����!8�!8�9��d�l�l�G�,D�,D�E��$�$�T�\�\�%:�%:�;�-��\�-�-���\�s%�D<H"�B(H�H"�H	�H"�"H+)rprqrrrr�r�rr�r~r+rdrgrirlrvr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�s@rrUrU~s[����j�j�'�'��
�
�I�>�O�	0�
&�#��4�	��#*��#*�J�@+��@+�D�-+��-+�^�*��*�*�#+��#+�J�*��*�.�*��*�4�4��4�@�,��,�"�6��6�<�+��+�(�0��0�<�;3��;3�z�<��<rrUc��eZdZd�Zy)�SafeChildWatcherTestsc��tj�5tjdt�t	j
�cddd�S#1swYyxYw�N�ignore)�warnings�catch_warnings�simplefilterrArr]r;s rrZz$SafeChildWatcherTests.create_watcher��7��
�
$�
$�
&��!�!�(�,>�?��+�+�-�'�
&�
&���.A
�
AN�rprqrrrZrrrr�r�����.rr�c��eZdZd�Zy)�FastChildWatcherTestsc��tj�5tjdt�t	j
�cddd�S#1swYyxYwr�)r�r�r�rArr�r;s rrZz$FastChildWatcherTests.create_watcher�r�r�Nr�rrrr�r��r�rr�c�T�eZdZd�Zej
d�d��Zd�Zd�Zd�Z	y)�PolicyTestsc�*�tj�Sr)r�DefaultEventLoopPolicyr;s r�
create_policyzPolicyTests.create_policy�s���-�-�/�/rz!asyncio.unix_events.can_use_pidfdc���d|_|j�}|j|j�|j	t
�5|j
�}ddd�|jtj�|j|j|�|j	t
�5|j||j
��ddd�d|_|j�}|j|j�|j	t
�5|j
�}ddd�|j|tj�|j|j|�|j	t
�5|j||j
��ddd�y#1swY��_xYw#1swY��xYw#1swY��xYw#1swYyxYw)NFT)r�r�r��_watcherr@rA�get_child_watcherrer�ThreadedChildWatcherr��PidfdChildWatcher)r0�m_can_use_pidfd�policyrMs    r�test_get_default_child_watcherz*PolicyTests.test_get_default_child_watcher�se��',��$��#�#�%�����&�/�/�*�
�
�
�0�
1��.�.�0�G�2����g�w�'C�'C�D��
�
�f�o�o�w�/�
�
�
�0�
1��M�M�'�6�#;�#;�#=�>�2�(,��$��#�#�%�����&�/�/�*�
�
�
�0�
1��.�.�0�G�2����g�w�'@�'@�A��
�
�f�o�o�w�/�
�
�
�0�
1��M�M�'�6�#;�#;�#=�>�2�
1�!2�
1��
2�
1��2�
1��
2�
1�s0�F6�2!G�"G�!G�6G�G�G�G$c��|j�}tj�5tjdt�tj�}|j|�ddd�|j|j�|jt�5|j||j��ddd�y#1swY�dxYw#1swYyxYwr�)r�r�r�r�rArr��set_child_watcherr�r�r@r�)r0r�rMs   r� test_get_child_watcher_after_setz,PolicyTests.test_get_child_watcher_after_set�s����#�#�%��
�
$�
$�
&��!�!�(�,>�?��.�.�0�G��$�$�W�-�'�
	
�
�
�f�o�o�w�/�
�
�
�0�
1��M�M�'�6�#;�#;�#=�>�2�
1�
'�
&��2�
1�s�AC�!C�C�Cc�l�����fd�}�j��tj�5tjdt��jt
j��ddd�tj|��}|j�|j�y#1swY�@xYw)Nc����j�j���j�j�tj
�t
j�5t
jdt��j�}ddd��jtj��j|j��j�j�y#1swY�cxYwr�)r.rJre�get_event_loopr�AbstractEventLoopr�r�r�rAr�r]r�r�r#)rMr�r0s ��rrmz4PolicyTests.test_get_child_watcher_thread.<locals>.f�s�����!�!�&�"7�"7�"9�:��!�!�&�"7�"7�"9�")�";�";�
=��(�(�*��%�%�h�0B�C� �2�2�4��+�
�!�!�'�7�+C�+C�D����g�m�m�,��!�!�#�)�)�+�+�*�s�#+C0�0C9r��rr)r�r�r�r�rAr�rr]�	threading�Threadr��join)r0rm�thr�s`  @r�test_get_child_watcher_threadz)PolicyTests.test_get_child_watcher_thread�s~���	,��#�#�%��
�
$�
$�
&��!�!�(�,>�?��$�$�W�%=�%=�%?�@�'��
�
�Q�
'��
���
�
���	�
'�
&�s�>B*�*B3c��|j�}|j�}|j|�tj�5tj
dt�tj�}|j|�ddd�j|�|j|j|�|j�}|j|�|j|j|�|jd�|j|jd�|j�|j�y#1swY��xYwr�)r�rJr.r�r�r�rArr]r�rHr�r�r#)r0r�r-rM�new_loops     r�,test_child_watcher_replace_mainloop_existingz8PolicyTests.test_child_watcher_replace_mainloop_existing�s����#�#�%���$�$�&�����d�#��
$�
$�
&��!�!�(�,>�?��.�.�0�G��$�$�W�-�'�	���D�!��
�
�g�m�m�T�*��(�(�*�����h�'��
�
�g�m�m�X�.����d�#��
�
�g�m�m�T�*��
�
������%'�
&�s
�AE�EN)
rprqrrr�rr�r�r�r�r�rrrr�r��s6��0��T�Z�Z�3�4�?�5�?�.	?��2rr�c�$�eZdZd�Zd�Zd�Zd�Zy)�TestFunctionalc�t�tj�|_tj|j�yr)rrJr-r.r;s rr+zTestFunctional.setUps$���*�*�,��	����t�y�y�)rc�b�|jj�tjd�yr)r-r#rr.r;s r�tearDownzTestFunctional.tearDowns���	�	�������t�$rc����fd�}d�}|�5�jjt�|�ddd�|�5�jjt�|�ddd�|�5�jj	t��ddd�|�5�jjt��ddd�y#1swY��xYw#1swY�|xYw#1swY�UxYw#1swYyxYw)Nc�0���jtd�S)NzInvalid file object)r[r8r;s�r�
assert_raiseszFTestFunctional.test_add_reader_invalid_argument.<locals>.assert_raisess����)�)�*�6L�M�Mrc��yrrrrrrLzATestFunctional.test_add_reader_invalid_argument.<locals>.<lambda>rbr)r-r�r�r�
remove_reader�
remove_writer)r0rrhs`  r� test_add_reader_invalid_argumentz/TestFunctional.test_add_reader_invalid_arguments����	N���
�_��I�I� � ���2�.��
�_��I�I� � ���2�.���_��I�I�#�#�F�H�-��
�_��I�I�#�#�F�H�-��_��_��
�_���_��
�_�s/�%C�%C%�9$C1�,$C=�C"�%C.�1C:�=Dc������fd�����fd�}tj�\�}	�jj|���j	�|j	�y#�j	�|j	�wxYw)Nc�0���jtd�S)Nz'File descriptor .* is used by transport)r[rQr;s�rrzLTestFunctional.test_add_reader_or_writer_transport_fd.<locals>.assert_raises)s����)�)��:�<�
<rc���K��jjd�����d{���\}}	d�}��5�jj�|�ddd���5�jj�j�|�ddd���5�jj	��ddd���5�jj	�j��ddd���5�jj�|�ddd���5�jj�j�|�ddd���5�jj
��ddd���5�jj
�j��ddd�|j�y7���#1swY���xYw#1swY��YxYw#1swY��;xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY�uxYw#|j�wxYw�w)Nc�*�tj�Sr)rr�rrrrLzWTestFunctional.test_add_reader_or_writer_transport_fd.<locals>.runner.<locals>.<lambda>0s
���(�(�*rrc��yrrrrrrLzWTestFunctional.test_add_reader_or_writer_transport_fd.<locals>.runner.<locals>.<lambda>3s��Tr)r-�create_connectionr�rtrrrr#)r��prrhr�rsockr0s   ���r�runnerzETestFunctional.test_add_reader_or_writer_transport_fd.<locals>.runner.s�������9�9�6�6�*��7�8�8�F�B��
�!��"�_��I�I�(�(���3�%�"�_��I�I�(�(������<�%�#�_��I�I�+�+�E�2�%�"�_��I�I�+�+�E�L�L�N�;�%�#�_��I�I�(�(���3�%�"�_��I�I�(�(������<�%�#�_��I�I�+�+�E�2�%�"�_��I�I�+�+�E�L�L�N�;�%����
�78��%�_��$�_��%�_��$�_��%�_��$�_��%�_��$�_�����
�s��"I�G�I�
H=�G�H=�$+G&�H=�G3�:H=�	*H�3H=�H
�H=�.+H�H=�(H%�H=�*H1�=H=�I�G#�H=�&G0�+H=�3G=�8H=�H
�H=�
H�H=�H"�H=�%H.�*H=�1H:�6H=�=I�I)r��
socketpairr-r�r#)r0r�wsockrrs`  @@r�&test_add_reader_or_writer_transport_fdz5TestFunctional.test_add_reader_or_writer_transport_fd(sb���	<�
	�<�(�(�*���u�	��I�I�(�(���2��K�K�M��K�K�M��
�K�K�M��K�K�M�s� A)�)"BN)rprqrrr+r�rrrrrr�r�s��*�%�.� )rr��forkzrequires os.fork()c��eZdZd�Zej
d�d��Zej
d�d��Zej
d�d��Zy)�TestForkc	��K�tj�}tj�\}}|j	tj
|�|j	tj
|�tj�}|dk(r�	|jt�5tj�j�}ddd�tj|dtt|��j�z�tj$d�ytj&|d�}|j)|ddd|�|j+t-|dd�t|��t/|d��y#1swY��xYw#t$rtj|d�Y��t $r:}tj|dt#|�j�z�Yd}~��d}~wwxYw#tj$d�wxYw�w)NrsLOOP:sNO LOOPsERROR:�dr�r)r�get_running_looprr�rZr#rr@rA�get_event_loop_policyr�rA�str�id�encoderQ�
BaseException�ascii�_exit�readrf�assertNotEqual�intr)r0r-�r�wrb�er�s       r�test_fork_not_share_event_loopz'TestFork.test_fork_not_share_event_loopWsi�����'�'�)���w�w�y���1�������!�$�������!�$��g�g�i���!�8�	
��%�%�&8�9�"�8�8�:�I�I�K�D�:�����H�s�2�d�8�}�';�';�'=�=�>�������W�W�Q��_�F����V�B�Q�Z��6�:�����F�1�2�J���D��:���q�)�:�9�� �
(�����J�'� �
;�����I��a����(9�9�:�:��
;�������sb�BH�F�#E8�AF�A7H�8F�=F�G'�#G*�%G'�-0G"�G*�"G'�'G*�*H�H�md5c�(��������jt�tjd���j	�}�j|j
�|j
��|j
��|j
����fd�������fd�}tj|���jtj���j�j���j�j��y)Nrc����fd�}tjtj|��j�	tjd��)Nc�N���j�tj�yr)�set�sys�exit)�args�
child_handleds �r�
on_sigtermzJTestFork.test_fork_signal_handling.<locals>.child_main.<locals>.on_sigterms����!�!�#����
rr)r9�SIGTERMr+�time�sleep)r0r/�
child_starteds ��r�
child_mainz6TestFork.test_fork_signal_handling.<locals>.child_main~s;���
�
�M�M�&�.�.�*�5�������
�
�1�
�rc����K�tj�}|jtj�fd���j���}|j
��j�tj|jtj�|jtj��d�}�jtj|���d{���d�y7�
�w)Nc�$���j�Sr)r+)r.�parent_handleds �rrLzBTestFork.test_fork_signal_handling.<locals>.main.<locals>.<lambda>�s���.�BT�BT�BVrr���timeoutc��JK�tjd��d{���y7��w�Ng�������?rx)rr3rrrr^z>TestFork.test_fork_signal_handling.<locals>.main.<locals>.func�s �����m�m�C�(�(�(��)�s�#�!�#rx)rrrRr9r1�Processr��waitr�killrbr�r�
SHORT_TIMEOUTrf�create_task)r-�processr^r5r4�ctxr8r0s   �����r�mainz0TestFork.test_fork_signal_handling.<locals>.main�s�������+�+�-�D��#�#�F�N�N�4V�W��k�k��k�4�G��M�M�O���� ��G�G�G�K�K����0��L�L��!6�!6�L�7�
�

���7�#6�#6�t�v�#>�>��C�>�s�C#C3�&C1�'C3r9)rZ�multiprocessing_cleanup_tests�multiprocessing�get_context�Manager�shutdown�Eventr�runr>rr@r��is_setr�)r0�managerrDr/r5r4rCr8s`  @@@@@r�test_fork_signal_handlingz"TestFork.test_fork_signal_handlingqs�������5�6��)�)�&�1���+�+�-������(�(�)��
�
��
��
�
��
� �����	�	D�	D�"	���D�F�����7�#8�#8��9�����.�.�0�1����
�,�,�.�/rc����|jt�tjd�}|j	�}|j|j
�|j
dd���fd��|j�fd���}|j�|j�|j�jd�y)Nr�irc��Z�K�tjd��d{���d�_y7��wr<)rr3�value)r�s�rr5z2TestFork.test_fork_asyncio_run.<locals>.child_main�s%������-�-��$�$�$��F�L�
%�s�+�)�
+c�8��tj���Sr�rrK�r5s�rrLz0TestFork.test_fork_asyncio_run.<locals>.<lambda>�����W�[�[���-Frr�rx�rZrErFrGrHrI�Valuer=r�r�rfrR�r0rCrMrBr5r�s    @@r�test_fork_asyncio_runzTestFork.test_fork_asyncio_run�s�������5�6��)�)�&�1���+�+�-������(�(�)����s�A�&��	��+�+�%F�+�G���
�
������������r�*rc����|jt�tjd�}|j	�}|j|j
�|j
dd���fd��|j�fd���}|j�|j�|j�jd�y)NrrPrc���K�tjtjdd��d{���}|j	��d{����_y7�"7��w)Nz-c�pass)r�create_subprocess_execr,�
executabler>rR)�procr�s �rr5z9TestFork.test_fork_asyncio_subprocess.<locals>.child_main�s<����� �7�7�����f�U�U�D�!%����,�F�L�V��,�s!�)A�A�A�A�A�Ac�8��tj���SrrTrUs�rrLz7TestFork.test_fork_asyncio_subprocess.<locals>.<lambda>�rVrr�rrWrYs    @@r�test_fork_asyncio_subprocessz%TestFork.test_fork_asyncio_subprocess�s�������5�6��)�)�&�1���+�+�-������(�(�)����s�A�&��	-��+�+�%F�+�G���
�
������������q�)rN)	rprqrrr&r	�requires_hashdigestrNrZrbrrrrrTsk��*�4(�^�'�'��.�+0�/�+0�Z(�^�'�'��.�+�/�+�$(�^�'�'��.�*�/�*rr�__main__):�__doc__ryrsrprF�multiprocessing.utilrrErr9r�r�r,r�r2r"rr��testr�test.supportrrrr	�platform�SkipTestrrr�test.test_asyncior
r�rr�r�rr r%r#�TestCaser'r$r�r'r�r�r;rPrUr�r�r�r��IsolatedAsyncioTestCaserrprDrrr�<module>rnsG�����	��P�	�
�
��
�������"�&�%�'��<�<�7��
�(�
�
�K�
(�(����1�(��8�8���������V�8�9�Z1�:�#6�#6�Z1�:�Z1�z����W�V�Y�/�5�7�g/�z�':�':�g/�7�g/�T����W�R��,�0�2�J1�Z�-@�-@�J1�2�J1�Zn��!4�!4�n�bQ?�*�"5�"5�Q?�h<�� 1� 1�<�49�H�-�-�9�b<�b<�J.�3�Z�5H�5H�.�.�3�Z�5H�5H�.�Z�(�#�#�Z�zC�X�&�&�C�L����W�R��(�*>�?�n*�x�/�/�n*�@�n*�`�z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists