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_subprocess.cpython-311.pyc
�

��VcEj���ddlZddlZddlZddlZddlZddlmZddlZddlmZddlmZddl	m
Zddlm
Z
ddlmZejdkrdd	lmZe
jd
���rejd���ejd
dgZejd
d�d��gZd�ZGd�dej��ZGd�dej��ZGd�d��Zejdkr�Gd�de��ZGd�deej��Zej d��Gd�deej����Z!Gd�d eej��Z"Gd!�d"eej��Z#d#�Z$ej%e$��d$��Gd%�d&eej����Z&Gd'�d(ej��Z'nGd)�d*eej��Z(e)d+krej*��dSdS),�N)�mock)�base_subprocess)�
subprocess)�utils)�support)�	os_helper�win32)�unix_eventsT)�addressz#Exposes ASAN flakiness in GitHub CI�-czimport time; time.sleep(3600)�;)�
import syszdata = sys.stdin.buffer.read()zsys.stdout.buffer.write(data)c�.�tjd��dS�N)�asyncio�set_event_loop_policy���5D:\Python311\Lib\test\test_asyncio\test_subprocess.py�tearDownModuler s���!�$�'�'�'�'�'rc��eZdZd�ZdS)�TestSubprocessTransportc��tj��|_d|j_d|j_d|j_d|j_dS)N���)r�Mock�_proc�stdin�stdout�stderr�pid)�self�args�kwargss   r�_startzTestSubprocessTransport._start%s:���Y�[�[��
���
�� ��
�� ��
����
���rN)�__name__�
__module__�__qualname__r$rrrrr$s#����������rrc�2��eZdZ�fd�Zdd�Zd�Zd�Z�xZS)�SubprocessTransportTestsc���t�����|���|_|�|j��dSr)�super�setUp�
new_test_loop�loop�set_event_loop�r!�	__class__s �rr,zSubprocessTransportTests.setUp.sC���
���
�
�����&�&�(�(��	����D�I�&�&�&�&�&rNc�l�tj��}t|j|dgddddd|��	�	}||fS)N�testFr)�waiter)rrrr.)r!r4�protocol�	transports    r�create_transportz)SubprocessTransportTests.create_transport3sF���9�;�;��+��	�8�f�X�u��d�D�!�F�<�<�<�	��8�$�$rc��|j���}|�|��\}}|�d��|j�|��|�|���d��|�|jj	��|�|j
j	��|�|jj	��|�|jjdd��|�
|�����|�|j��|�|j��|�|j��|�t(|jt,j��|�t(|j��|�t(|j��|���dS)N�rr)r.�
create_futurer7�_process_exited�run_until_complete�assertEqual�get_returncode�
assertTrue�connection_made�called�process_exited�connection_lost�	call_args�assertFalse�
is_closing�assertIsNone�_loopr�	_protocol�assertRaises�ProcessLookupError�send_signal�signal�SIGTERM�	terminate�kill�close�r!r4r6r5s    r�test_proc_exitedz)SubprocessTransportTests.test_proc_exited:s�����(�(�*�*��"�3�3�F�;�;��	�8��!�!�!�$�$�$��	�$�$�V�,�,�,�����1�1�3�3�Q�7�7�7�����0�7�8�8�8�����/�6�7�7�7�����0�7�8�8�8�����1�;�A�>��H�H�H�����-�-�/�/�0�0�0����)�/�*�*�*����)�/�*�*�*����)�-�.�.�.�	
���,�#�/���	A�	A�	A����,�i�.A�B�B�B����,�i�n�=�=�=��������rc���|j���}|�|��\}}|�d��|j�|��|�t
|��d��d|_|�t
|��d��d|_d|_|�t
|��d��|�	��dS)Nr9z-<TestSubprocessTransport pid=-1 returncode=6>z(<TestSubprocessTransport pid=-1 running>z%<TestSubprocessTransport not started>)
r.r:r7r;r<r=�repr�_returncode�_pidrQrRs    r�test_subprocess_reprz-SubprocessTransportTests.test_subprocess_reprTs�����(�(�*�*��"�3�3�F�;�;��	�8��!�!�!�$�$�$��	�$�$�V�,�,�,������O�O�;�	
�	
�	
�!%�	�������O�O�6�	
�	
�	
��	�� $�	�������O�O�3�	
�	
�	
�	�������rr)r%r&r'r,r7rSrX�
__classcell__�r1s@rr)r)-sj�������'�'�'�'�'�
%�%�%�%����4������rr)c��eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	j
ejdkd��d	���Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"dS) �SubprocessMixinc����t��fd�}|d��}tj|d��}|j�|��\}}|�|d��|�|d��dS)Nc��~�K�tj�tjtjd���d{V��}|j�|��|j����d{V��|j���|j�	���d{V��}|�
���d{V��}||fS�N)rr)r�create_subprocess_execr�PIPEr�write�drainrQr�read�wait)�data�proc�exitcoder"s   �r�runz.SubprocessMixin.test_stdin_stdout.<locals>.runqs������ �7�� �o�!�����������D�
�J���T�"�"�"��*�"�"�$�$�$�$�$�$�$�$�$��J��������)�)�+�+�+�+�+�+�+�+�D�!�Y�Y�[�[�(�(�(�(�(�(�H��d�#�#r�	some datagN@r)�PROGRAM_CATr�wait_forr.r<r=�r!ri�taskrhrr"s     @r�test_stdin_stdoutz!SubprocessMixin.test_stdin_stdoutns������	$�	$�	$�	$�	$�"�s�<� � �����d�+�+���9�7�7��=�=���&�����1�%�%�%������.�.�.�.�.rc���t��fd�}|d��}tj|tj��}|j�|��\}}|�|d��|�|d��dS)Nc���K�tj�tjtjd���d{V��}|�|���d{V��\}}|j|fSr_)rr`rra�communicate�
returncode)rfrgrrr"s    �rriz-SubprocessMixin.test_communicate.<locals>.run�s������ �7�� �o�!�����������D�
$(�#3�#3�D�#9�#9�9�9�9�9�9�9�N�F�F��?�F�*�*rrjr)rkrrlr�LONG_TIMEOUTr.r<r=rms     @r�test_communicatez SubprocessMixin.test_communicate�s������	+�	+�	+�	+�	+��s�<� � �����g�&:�;�;���9�7�7��=�=���&�����1�%�%�%������.�.�.�.�.rc���|j�tjd����}|j�|�����}|�|d��dS)Nzexit 7��r.r<r�create_subprocess_shellrer=�r!rgrhs   r�
test_shellzSubprocessMixin.test_shell�sb���y�+�+��+�H�5�5�
�
���9�/�/��	�	���<�<������1�%�%�%�%�%rc���|j�tjdd�����}|j�|�����}|�|d��dS)Nzexit 8T)�start_new_session�rxrzs   r�test_start_new_sessionz&SubprocessMixin.test_start_new_session�so���y�+�+��+��"&�
�
�
�
�
���9�/�/��	�	���<�<������1�%�%�%�%�%rc�|�t}|j�tj|���}|���|j�|�����}tjdkr|�	|t��dS|�tj
|��dS�Nr	)�PROGRAM_BLOCKEDr.r<rr`rPre�sys�platform�assertIsInstance�intr=rM�SIGKILL�r!r"rgrss    r�	test_killzSubprocessMixin.test_kill�s������y�+�+��*�D�1�
�
��	
�	�	�����Y�1�1�$�)�)�+�+�>�>�
��<�7�"�	:��!�!�*�c�2�2�2�2�2�
���f�n�_�j�9�9�9�9�9rc�|�t}|j�tj|���}|���|j�|�����}tjdkr|�	|t��dS|�tj
|��dSr�)r�r.r<rr`rOrer�r�r�r�r=rMrNr�s    r�test_terminatezSubprocessMixin.test_terminate�s������y�+�+��*�D�1�
�
��	
�������Y�1�1�$�)�)�+�+�>�>�
��<�7�"�	:��!�!�*�c�2�2�2�2�2�
���f�n�_�j�9�9�9�9�9rr	zDon't have SIGHUPc���tjtjtj��}	d}tjd|g}�j�tj|dtj
i���}�fd�}�j�||����}��tj|��tjtj|��dS#tjtj|��wxYw)Nz<import time; print("sleeping", flush=True); time.sleep(3600)rrc����K�|j����d{V��}��|d��|�tj��|����d{V��}|S)Ns	sleeping
)r�readliner=rLrM�SIGHUPre)rg�linersr!s   �rrLz5SubprocessMixin.test_send_signal.<locals>.send_signal�s}�����!�[�1�1�3�3�3�3�3�3�3�3��� � ��}�5�5�5�� � ���/�/�/�#'�9�9�;�;�.�.�.�.�.�.�
�!�!r)rMr��SIG_DFLr��
executabler.r<rr`rrar=)r!�old_handler�coder"rgrLrss`      r�test_send_signalz SubprocessMixin.test_send_signal�s����
�m�F�M�6�>�B�B��	6�Q�D��N�D�$�/�D��9�/�/��.���%�?�����D�
"�
"�
"�
"�
"���5�5�k�k�$�6G�6G�H�H�J����f�m�^�Z�8�8�8��M�&�-��5�5�5�5�5��F�M�&�-��5�5�5�5���s�B
C�!C;c��dtjz}|j�t	jtjddtj	�����}||fS)N�xr�pass�r)
r�
PIPE_MAX_SIZEr.r<rr`r�r�rra)r!�
large_datargs   r�prepare_broken_pipe_testz(SubprocessMixin.prepare_broken_pipe_test�sX���G�1�1�
��y�+�+��*����f� �o�
�
�
�
�
���j�!�!rc�Z�|���\}}d�}|||��}tj��5|�tt
f|jj|��ddd��n#1swxYwY|j�|�����dS)Nc��K�tjd���d{V��|j�|��|j����d{V��dS)Ng�?)r�sleeprrbrc)rgrfs  r�write_stdinz;SubprocessMixin.test_stdin_broken_pipe.<locals>.write_stdin�sj�����-��$�$�$�$�$�$�$�$�$��J���T�"�"�"��*�"�"�$�$�$�$�$�$�$�$�$�$�$r)	r��
test_utils�disable_loggerrJ�BrokenPipeError�ConnectionResetErrorr.r<re)r!rgr�r��coros     r�test_stdin_broken_pipez&SubprocessMixin.test_stdin_broken_pipe�s���8�8�:�:���j�	%�	%�	%�
�{�4��,�,��
�
&�
(�
(�	B�	B�����0D�E�"�i�:�D�
B�
B�
B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	
�	�$�$�T�Y�Y�[�[�1�1�1�1�1s�.A4�4A8�;A8c��|���\}}|j�d���|j�|�|����|j�|�����dS)Nc��dSrr)r.�msgs  r�<lambda>zESubprocessMixin.test_communicate_ignore_broken_pipe.<locals>.<lambda>s��$�r)r�r.�set_exception_handlerr<rrre)r!rgr�s   r�#test_communicate_ignore_broken_pipez3SubprocessMixin.test_communicate_ignore_broken_pipes|���8�8�:�:���j�	
�	�'�'�(>�(>�?�?�?��	�$�$�T�%5�%5�j�%A�%A�B�B�B��	�$�$�T�Y�Y�[�[�1�1�1�1�1rc�&����d��dzdz����fd�}�j�|����\}}��|d�z����|jj����|jj��dS)N�
��c����K�d�dd�	zdf��}�jj��fd�}|�j_tjt
jd|tjjtjj�����d{V��}|j	�
d��}|����d{V��\}}||fS)	N�
rzsys.stdout.write("x" * %s)�sys.stdout.flush()c���K��|i|���d{V��\}}tj��|_tj��|_||fSr)rr�
pause_reading�resume_reading)r"�kwr6r5�connect_read_pipes    �r�connect_read_pipe_mockz^SubprocessMixin.test_pause_reading.<locals>.test_pause_reading.<locals>.connect_read_pipe_mocksZ�����,=�,=�t�,J�r�,J�,J�&J�&J�&J�&J�&J�&J�#�	�8�*.�)�+�+�	�'�+/�9�;�;�	�(�!�8�,�,rr)rr�limitr�)�joinr.r�rr`r�r�rra�
_transport�get_pipe_transportrr)
r�r�rg�stdout_transportrrr�r�r!�sizes
      @���r�test_pause_readingz>SubprocessMixin.test_pause_reading.<locals>.test_pause_reading
s�������9�9��,�t�3�$����D�!%�	� ;��
-�
-�
-�
-�
-�+A�D�I�'� �7����d��(�-��)�.��	���������D� $��A�A�!�D�D��#'�#3�#3�#5�#5�5�5�5�5�5�5�N�F�F�
�,�-�-rr�)r.r<r=r?r�rAr�)r!r�rr6r�r�s`   @@rr�z"SubprocessMixin.test_pause_reading	s����������	�A�
��	.�	.�	.�	.�	.�	.�	.�D!�I�8�8�9K�9K�9M�9M�N�N���	��������-�-�-����	�/�6�7�7�7����	�0�7�8�8�8�8�8rc���d�}|j�|d����\}}|�|���d��|�|d��dS)Nc	��2K�d}tjtjd|tjjtjjtjjd����d{V��}|�|���d{V��\}}|����d{V��}||fS�N�5import sys; data = sys.stdin.read(); print(len(data))rF�rrr�	close_fds�rr`r�r�rrarrre)�messager�rgrrrhs      r�len_messagez?SubprocessMixin.test_stdin_not_inheritable.<locals>.len_message8s�����J�D� �7����d��(�-��)�.��)�.�����������D�$(�#3�#3�G�#<�#<�<�<�<�<�<�<�N�F�F�!�Y�Y�[�[�(�(�(�(�(�(�H��H�%�%r�abc�3r�r.r<r=�rstrip)r!r��outputrhs    r�test_stdin_not_inheritablez*SubprocessMixin.test_stdin_not_inheritable5sq��	&�	&�	&� �9�7�7���F�8K�8K�L�L������������$�/�/�/�����1�%�%�%�%�%rc���d�}|j�|����\}}|�|���d��|�|d��dS)Nc	��2K�d}tjtjd|tjjtjjtjjd����d{V��}|�d���d{V��\}}|����d{V��}||fS)Nr�rFr�rr��r�rgrrrhs     r�empty_inputz5SubprocessMixin.test_empty_input.<locals>.empty_inputKs�����J�D� �7����d��(�-��)�.��)�.�����������D�$(�#3�#3�C�#8�#8�8�8�8�8�8�8�N�F�F�!�Y�Y�[�[�(�(�(�(�(�(�H��H�%�%r�0rr��r!r�r�rhs    r�test_empty_inputz SubprocessMixin.test_empty_inputI�m��	&�	&�	&� �9�7�7���
�
�F�F������������$�/�/�/�����1�%�%�%�%�%rc���d�}|j�|����\}}|�|���d��|�|d��dS)Nc	��0K�d}tjtjd|tjjtjjtjjd����d{V��}|����d{V��\}}|����d{V��}||fSr�)	rr`r�r�r�DEVNULLrarrrer�s     rr�z7SubprocessMixin.test_devnull_input.<locals>.empty_input^s�����J�D� �7����d��(�0��)�.��)�.�����������D�$(�#3�#3�#5�#5�5�5�5�5�5�5�N�F�F�!�Y�Y�[�[�(�(�(�(�(�(�H��H�%�%rr�rr�r�s    r�test_devnull_inputz"SubprocessMixin.test_devnull_input\r�rc��d�}|j�|����\}}|�|d��|�|d��dS)Nc	��2K�d}tjtjd|tjjtjjtjjd����d{V��}|�d���d{V��\}}|����d{V��}||fS�Nr�rFr�r��	rr`r�r�rrar�rrrer�s     r�empty_outputz9SubprocessMixin.test_devnull_output.<locals>.empty_outputqs�����J�D� �7����d��(�-��)�1��)�.�����������D�$(�#3�#3�F�#;�#;�;�;�;�;�;�;�N�F�F�!�Y�Y�[�[�(�(�(�(�(�(�H��H�%�%rr�r.r<r=)r!r�r�rhs    r�test_devnull_outputz#SubprocessMixin.test_devnull_outputose��	&�	&�	&� �9�7�7�����G�G���������&�&�&�����1�%�%�%�%�%rc��d�}|j�|����\}}|�|d��|�|d��dS)Nc	��2K�d}tjtjd|tjjtjjtjjd����d{V��}|�d���d{V��\}}|����d{V��}||fSr�r�r�s     r�empty_errorz7SubprocessMixin.test_devnull_error.<locals>.empty_error�s�����J�D� �7����d��(�-��)�.��)�1�����������D�$(�#3�#3�F�#;�#;�;�;�;�;�;�;�N�F�F�!�Y�Y�[�[�(�(�(�(�(�(�H��H�%�%rrr�)r!r�r�rhs    r�test_devnull_errorz"SubprocessMixin.test_devnull_error�se��	&�	&�	&� �9�7�7���
�
�F�F���������&�&�&�����1�%�%�%�%�%rc�V���fd�}�j�|����dS)Nc���K�tjt��d{V��}�j�|�����}�j�|j��	|�d{V��n#tj$rYnwxYw|���|�	��|����d{V��dSr)
rr`r�r.�create_taskre�	call_soon�cancel�CancelledErrorrP)rgrnr!s  �r�cancel_waitz=SubprocessMixin.test_cancel_process_wait.<locals>.cancel_wait�s������ �7��I�I�I�I�I�I�I�D��9�(�(������5�5�D��I�����,�,�,�
��
�
�
�
�
�
�
�
���)�
�
�
���
����
�K�K�M�M�M�
�I�I�K�K�K��)�)�+�+���������s�)A2�2B�B�r.r<)r!r�s` r�test_cancel_process_waitz(SubprocessMixin.test_cancel_process_wait�s@���	�	�	�	�	�$	
�	�$�$�[�[�]�]�3�3�3�3�3rc����fd�}tj��5�j�|����ddd��dS#1swxYwYdS)Nc����K�tjt�}�j�|��}�j�|j��	|�d{V��dS#tj$rYdSwxYwr)rr`r�r.r�r�r�r��r�rnr!s  �r�cancel_make_transportzYSubprocessMixin.test_cancel_make_subprocess_transport_exec.<locals>.cancel_make_transport�s�������1�?�C�D��9�(�(��.�.�D��I�����,�,�,�
��
�
�
�
�
�
�
�
�
���)�
�
�
����
���s�A�A.�-A.)r�r�r.r<�r!r�s` r�*test_cancel_make_subprocess_transport_execz:SubprocessMixin.test_cancel_make_subprocess_transport_exec�s����	�	�	�	�	��
&�
(�
(�	B�	B��I�(�(�)>�)>�)@�)@�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	Bs�#A
�
A�Ac�����fd�}tj��5�j�|����tj�j��ddd��dS#1swxYwYdS)Nc���K��jjtjgt�R�}�j�|��}�j�|j��	|�d{V��dS#tj$rYdSwxYwr)	r.�subprocess_execr�SubprocessProtocolr�r�r�r�r�r�s  �rr�zDSubprocessMixin.test_cancel_post_init.<locals>.cancel_make_transport�s������,�4�9�,�W�-G�?�.=�?�?�?�D��9�(�(��.�.�D��I�����,�,�,�
��
�
�
�
�
�
�
�
�
���)�
�
�
����
���s� A*�*A=�<A=)r�r�r.r<�run_brieflyr�s` r�test_cancel_post_initz%SubprocessMixin.test_cancel_post_init�s����		�		�		�		�		��
&�
(�
(�	.�	.��I�(�(�)>�)>�)@�)@�A�A�A��"�4�9�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.s�<A#�#A'�*A'c����fd�}tj��5	�j�|����\}}n*#tj$r��d��YnwxYwddd��n#1swxYwY��|����|��tj	�j��dS)Nc��n���K��jjtjgt�R�}|�d{V��\}}d���fd�}|�d��}|j�||_|���}|���tj	|�
��d���d{V��|�fS)NFc� ��d����dS)NTr)�kill_called�	orig_kills��rrPzKSubprocessMixin.test_close_kill_running.<locals>.kill_running.<locals>.kill�s���"���	�����rr�)r.r�rr�r��get_extra_inforPr>rQrl�_wait)	�creater6r5rPrgrsr�rr!s	      @@�r�kill_runningz=SubprocessMixin.test_close_kill_running.<locals>.kill_running�s��������.�T�Y�.�w�/I�A�0?�A�A�A�F�(.�,�,�,�,�,�,��I�x��K�
�
�
�
�
�
�
�+�+�L�9�9�D��	�I��D�I�"�1�1�3�3�J��O�O�����"�9�?�?�#4�#4�a�8�8�8�8�8�8�8�8�8���,�,rz2Timeout failure on waiting for subprocess stopping)
r�r�r.r<r�TimeoutError�skipTestrGr?r�)r!rrs�killeds`   r�test_close_kill_runningz'SubprocessMixin.test_close_kill_running�s4���	-�	-�	-�	-�	-�(�
&�
(�
(�	�	�
�%)�Y�%A�%A� �L�N�N�&�&�"�
�F�F���'�
�
�
��
�
�H������
����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
���*�%�%�%�	
���������t�y�)�)�)�)�)s4�A8�%A�A8�$A)�&A8�(A)�)A8�8A<�?A<c����fd�}tj��5�j�|����}tj�j��ddd��n#1swxYwY|\}}}��|����|����|��tj	dkrAt�t��r.tj
��j���dSdSdS)Nc���K��jjtjgt�R�}|�d{V��\}}|�d��}|���|���tj	��|_|�
��}|���}|���|||jj
fS)Nr)r.r�rr�r�rrPrerr�pollr>rQrA)rr6r5rg�proc_returncode�transport_returncoder!s      �rrzCSubprocessMixin.test_close_dont_kill_finished.<locals>.kill_running�s������.�T�Y�.�w�/I�A�0?�A�A�A�F�(.�,�,�,�,�,�,��I�x��+�+�L�9�9�D�
�I�I�K�K�K��I�I�K�K�K��	���D�I�"�i�i�k�k�O�#,�#;�#;�#=�#=� ��O�O����#�%9�4�9�;K�L�Lrr	)r�r�r.r<r��assertIsNotNonerGrEr�r��
isinstance�SubprocessFastWatcherTestsr�get_child_watcher�
_callbacks�clear)r!r�resultr
�transport_return_coders`     r�test_close_dont_kill_finishedz-SubprocessMixin.test_close_dont_kill_finished�s`���	M�	M�	M�	M�	M�&�
&�
(�
(�	.�	.��Y�1�1�,�,�.�.�A�A�F��"�4�9�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�:@�6��.�����_�-�-�-����/�0�0�0�	
���� � � �

�L�G�#�	;��4�!;�<�<�	;��%�'�'�2�8�8�:�:�:�:�:�	;�	;�	;�	;s�<A"�"A&�)A&c	���K�tjdkrd}nd}tj|��5}t}||_t
jd���5}|�|��5tj
tjdd|����d{V��ddd��n#1swxYwY|�|g��ddd��n#1swxYwYddd��dS#1swxYwYdS)	Nr	zasyncio.windows_utils.Popenzsubprocess.PopenT)�recordrr�r�)
r�r�r�patch�ZeroDivisionError�side_effect�warnings�catch_warningsrJrr`r�r=)r!r�target�popen�exc�warnss      r�_test_popen_errorz!SubprocessMixin._test_popen_errors������<�7�"�	(�2�F�F�'�F�
�Z��
�
�	,�5�#�C� #�E���(��5�5�5�
,���&�&�s�+�+���!�8�����#�	����������������������������� � ���+�+�+�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,�		,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,sY�$C �C�&)B�C�B�C�"B�#C�<C �C	�C �C	�C � C$�'C$c�b�|j�|�d�����dS�Nr�)r.r<r#�r!s r�test_popen_errorz SubprocessMixin.test_popen_error1s1��	
�	�$�$�T�%;�%;�$�%;�%G�%G�H�H�H�H�Hrc�v�|j�|�tj�����dSr%)r.r<r#rrar&s r� test_popen_error_with_stdin_pipez0SubprocessMixin.test_popen_error_with_stdin_pipe6s>��	
�	�$�$��"�"���"�9�9�	;�	;�	;�	;�	;rc�P�d�}|j�|����dS)Nc��$K�d�gd���}tjtjd|tjj����d{V��}	|j�d���d{V��}|rtj	d���d{V��ndS�@)Nr�)rzfor _ in range(64):z     sys.stdout.write("x" * 4096)r�zsys.exit(1)r)rTig333333�?)
r�rr`r�r�rrarrdr�)r��processrfs   r�executezDSubprocessMixin.test_read_stdout_after_process_exit.<locals>.execute>s������9�9�-�-�-�.�.�D�$�:����d��)�.����������G�

�$�^�0�0��7�7�7�7�7�7�7�7����!�-��,�,�,�,�,�,�,�,�,�,��E�
rr��r!r-s  r�#test_read_stdout_after_process_exitz3SubprocessMixin.test_read_stdout_after_process_exit<s5��	�	�	�&	
�	�$�$�W�W�Y�Y�/�/�/�/�/rc�V���fd�}�j�|����dS)Nc���K���t��5tjtjd����d{V��ddd��n#1swxYwY��t��5tjtjd����d{V��ddd��n#1swxYwY��t��5tjtjd����d{V��ddd��dS#1swxYwYdS�NT)�textzutf-8)�encoding�strict)�errors)rJ�
ValueErrorrr`r�r�r&s�rr-zLSubprocessMixin.test_create_subprocess_exec_text_mode_fails.<locals>.executeTsf������"�"�:�.�.�
C�
C� �7���=A�C�C�C�C�C�C�C�C�C�C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C����
C�
C�
C�
C��"�"�:�.�.�
J�
J� �7���AH�J�J�J�J�J�J�J�J�J�J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J����
J�
J�
J�
J��"�"�:�.�.�
I�
I� �7���?G�I�I�I�I�I�I�I�I�I�I�
I�
I�
I�
I�
I�
I�
I�
I�
I�
I�
I�
I����
I�
I�
I�
I�
I�
I�5�'A�A�A�6'B)�)B-�0B-�'D�D�	Dr�r.s` r�+test_create_subprocess_exec_text_mode_failsz;SubprocessMixin.test_create_subprocess_exec_text_mode_failsSsE���	I�	I�	I�	I�	I�	
�	�$�$�W�W�Y�Y�/�/�/�/�/rc�V���fd�}�j�|����dS)Nc���K���t��5tjtjd����d{V��ddd��n#1swxYwY��t��5tjtjd����d{V��ddd��n#1swxYwY��t��5tjtjd����d{V��ddd��dS#1swxYwYdSr2)rJr7rryr�r�r&s�rr-zMSubprocessMixin.test_create_subprocess_shell_text_mode_fails.<locals>.executeesf������"�"�:�.�.�
D�
D� �8���>B�D�D�D�D�D�D�D�D�D�D�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D����
D�
D�
D�
D��"�"�:�.�.�
K�
K� �8���BI�K�K�K�K�K�K�K�K�K�K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K��"�"�:�.�.�
J�
J� �8���@H�J�J�J�J�J�J�J�J�J�J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J����
J�
J�
J�
J�
J�
Jr8r�r.s` r�,test_create_subprocess_shell_text_mode_failsz<SubprocessMixin.test_create_subprocess_shell_text_mode_failscsE���	J�	J�	J�	J�	J�	
�	�$�$�W�W�Y�Y�/�/�/�/�/rc�v�d�}|�|j�|������dS)Nc��TK�tjtjtj��dd���d{V��}|����d{V��tjtjddtjd�����d{V��}|����d{V��dS)Nrr��.)rr`r�FakePathr�r�re)�ps rr-zFSubprocessMixin.test_create_subprocess_exec_with_path.<locals>.executeus����� �7��"�3�>�2�2�D�&�B�B�B�B�B�B�B�B�A��&�&�(�(�N�N�N�N�N�N�N� �7����f�i�.@��.E�.E�G�G�G�G�G�G�G�G�A��&�&�(�(�N�N�N�N�N�N�N�N�Nr)rGr.r<r.s  r�%test_create_subprocess_exec_with_pathz5SubprocessMixin.test_create_subprocess_exec_with_pathtsC��	�	�	�	
���$�)�6�6�w�w�y�y�A�A�B�B�B�B�BrN)#r%r&r'rorur{rr�r��unittest�skipIfr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r	rr#r'r)r/r9r<rBrrrr\r\ls�������/�/�/�4/�/�/�$&�&�&�	&�	&�	&�:�:�:�:�:�:��X�_�S�\�W�,�.A�B�B�6�6�C�B�6�:"�"�"�
2�
2�
2�2�2�2�*9�*9�*9�X&�&�&�(&�&�&�&&�&�&�&&�&�&�&&�&�&�&4�4�4�.B�B�B�".�.�.�&#*�#*�#*�J';�';�';�R,�,�,�&I�I�I�
;�;�;�0�0�0�.0�0�0� 0�0�0�"	C�	C�	C�	C�	Crr\c�,��eZdZdZ�fd�Z�fd�Z�xZS)�SubprocessWatcherMixinNc�Z��t�����tj��}|���|_|�|j��|���}|�|j��|�	|��dSr)
r+r,r�get_event_loop_policy�new_event_loopr.r/�Watcher�attach_loop�set_child_watcher�r!�policy�watcherr1s   �rr,zSubprocessWatcherMixin.setUp�s�����G�G�M�M�O�O�O��2�4�4�F��-�-�/�/�D�I�����	�*�*�*��l�l�n�n�G�����	�*�*�*��$�$�W�-�-�-�-�-rc���t�����tj��}|���}|�d��|�d��|���dSr)r+�tearDownrrHrrLrKrQrMs   �rrQzSubprocessWatcherMixin.tearDown�sq����G�G�������2�4�4�F��.�.�0�0�G��$�$�T�*�*�*�����%�%�%��M�M�O�O�O�O�Or)r%r&r'rJr,rQrYrZs@rrFrF�sV���������	.�	.�	.�	.�	.�	�	�	�	�	�	�	�	�	rrFc��eZdZejZdS)�SubprocessThreadedWatcherTestsN)r%r&r'r
�ThreadedChildWatcherrJrrrrSrS�s�������2���rrSzqbpo-38323: MultiLoopChildWatcher has a race condition                     and these tests can hang the test suitec��eZdZejZdS)�SubprocessMultiLoopWatcherTestsN)r%r&r'r
�MultiLoopChildWatcherrJrrrrVrV�s������
�3���rrVc��eZdZejZdS)�SubprocessSafeWatcherTestsN)r%r&r'r
�SafeChildWatcherrJrrrrYrY���������.���rrYc��eZdZejZdS)rN)r%r&r'r
�FastChildWatcherrJrrrrr�r[rrc���ttd��sdS	tjtjtj������n#t
$rYdSwxYwdS)N�
pidfd_openFT)�hasattr�osrQr_�getpid�OSErrorrrr�has_pidfd_supportrd�sh���r�<�(�(�	��5�	��H�R�]�2�9�;�;�/�/�0�0�0�0���	�	�	��5�5�	�����ts�7A�
A�Az(operating system does not support pidfdsc��eZdZejZdS)�SubprocessPidfdWatcherTestsN)r%r&r'r
�PidfdChildWatcherrJrrrrfrf�s�������/���rrfc��eZdZd�ZdS)�GenericWatcherTestsc
�`���tjtjfiddi�����fd�}tjtj���5}��|�|������ddd��n#1swxYwY���j	tj
���tj
������tj
�
ttjtj��g��dS)Nz-__enter__.return_value.is_active.return_valueFc��:�K�tj�����t��5t	jt
jtj	��dd���d{V��ddd��n#1swxYwY�j
���dS)Nrr�)rrLrJ�RuntimeErrorrr`rr@r�r��add_child_handler�assert_not_called)r!rOs��rr-zWGenericWatcherTests.test_create_subprocess_fails_with_inactive_watcher.<locals>.execute�s�������)�'�2�2�2��&�&�|�4�4�J�J�$�;�!�*�3�>�:�:�D�&�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J�J����J�J�J�J��)�;�;�=�=�=�=�=s�9A7�7A;�>A;)�loop_factory)r�create_autospecr�AbstractChildWatcher�RunnerrIrGri�assertListEqual�
mock_calls�call�	__enter__�	is_active�__exit__rl�ANY)r!r-�runnerrOs`  @r�2test_create_subprocess_fails_with_inactive_watcherzFGenericWatcherTests.test_create_subprocess_fails_with_inactive_watcher�sQ�����*��,���B�E�J���G�

>�
>�
>�
>�
>�
>���W�-C�D�D�D�
9���!�!�&�*�*�W�W�Y�Y�"7�"7�8�8�8�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9����
9�
9�
9�
9�� � ��!3��	�#�#�%�%��	�#�#�%�%�/�/�1�1��	�"�"�<���4�8�D�D�6�
�
�
�
�
s�1B�B�
BN)r%r&r'r{rrrriri�s#������	�	�	�	�	rric���eZdZ�fd�Z�xZS)�SubprocessProactorTestsc���t�����tj��|_|�|j��dSr)r+r,r�ProactorEventLoopr.r/r0s �rr,zSubprocessProactorTests.setUp�s@����G�G�M�M�O�O�O��1�3�3�D�I�����	�*�*�*�*�*r)r%r&r'r,rYrZs@rr}r}�s8�������	+�	+�	+�	+�	+�	+�	+�	+�	+rr}�__main__)+rarMr�rCrrrrr�test.test_asynciorr�r3r�test.supportrr�r
�check_sanitizer�SkipTestr�r�r�rkr�BaseSubprocessTransportr�TestCaser)r\rFrS�skiprVrYrrd�
skipUnlessrfrir}r%�mainrrr�<module>r�s���	�	�	�	�
�
�
�
�
�
�
�
�������������������#�#�#�#�#�#�������1�1�1�1�1�1�������"�"�"�"�"�"��<�7��$�#�#�#�#�#�#��7��4�(�(�(�C�
�(�
�A�
B�
B�B��>�4�)H�I���N�D��H�H�/�0�0�1��(�(�(������o�E����<�<�<�<�<�z�2�<�<�<�~QC�QC�QC�QC�QC�QC�QC�QC�h�<�7��`+����������,3�3�3�3�3�)?�)3�)<�3�3�3�
�X�]�=�>�>�4�4�4�4�4�*@�*4�*=�4�4�>�>�4�
/�/�/�/�/�%;�%/�%8�/�/�/�
/�/�/�/�/�%;�%/�%8�/�/�/�
����X������2���0�0�0�0�0�&<�&0�&9�0�0�	��0�
�����j�1�����6+�+�+�+�+�/�:�3F�+�+�+��z����H�M�O�O�O�O�O��r