Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.11/test/libregrtest/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.11/test/libregrtest/__pycache__/run_workers.cpython-311.opt-2.pyc

�

SԚg\W��~�ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZmZmZddlmZddlmZmZddlmZddlmZmZddlmZdd	lmZmZm Z m!Z!dd
l"m#Z#ddl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ddl,m-Z-m.Z.erddl/Z/ddl0Z0d
Z1dZ2d
Z3dZ4Gd�d��Z5ej6dd���Gd�d����Z7e8Z9e:ede7fe:ede9fzZ;Gd�de<��Z=Gd�de<��Z>Gd�de
j?��Z@deAe@de8dzfd�ZBGd �d!��ZCdS)"�N)�Any�Literal�TextIO)�support)�	os_helper�
MS_WINDOWS�)�Logger)�
TestResult�State)�TestResults)�RunTests�WorkerRunTests�JsonFile�JsonFileType)�PROGRESS_MIN_TIME)�StrPath�TestName�format_duration�
print_warning�count�plural�get_signal_name)�create_worker_process�USE_PROCESS_GROUPg>@g�r@gN@c�(�eZdZ	d�Zd�Zd�Zd�ZdS)�MultiprocessIteratorc�D�tj��|_||_dS�N)�	threading�Lock�lock�
tests_iter)�selfr#s  �9/usr/local/lib/python3.11/test/libregrtest/run_workers.py�__init__zMultiprocessIterator.__init__8s���N�$�$��	�$�����c��|Sr��r$s r%�__iter__zMultiprocessIterator.__iter__<s���r'c��|j5|j�t�t|j��cddd��S#1swxYwYdSr)r"r#�
StopIteration�nextr*s r%�__next__zMultiprocessIterator.__next__?s���
�Y�	)�	)���&�#�#����(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�"7�;�;c�T�|j5d|_ddd��dS#1swxYwYdSr)r"r#r*s r%�stopzMultiprocessIterator.stopEsu��
�Y�	#�	#�"�D�O�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s��!�!N)�__name__�
__module__�__qualname__r&r+r/r1r)r'r%rr4sS������B�%�%�%����)�)�)�#�#�#�#�#r'rT)�slots�frozenc�B�eZdZUeed<dZedzed<dZedzed<dS)�MultiprocessResult�resultN�
worker_stdout�err_msg)r2r3r4r�__annotations__r:�strr;r)r'r%r8r8JsF����������� $�M�3��:�$�$�$��G�S�4�Z�����r'r8Fc��eZdZdS)�
ExitThreadN)r2r3r4r)r'r%r?r?Vs�������Dr'r?c�<��eZdZdededzdedzdef�fd�Z�xZS)�WorkerError�	test_namer;N�stdout�statec���t||���}t|||��|_t�����dS)N�rD)rr8�	mp_result�superr&)r$rBr;rCrDr9�	__class__s      �r%r&zWorkerError.__init__[sF���
�I�U�3�3�3��+�F�F�G�D�D���
���������r')r2r3r4rr=r&�
__classcell__�rIs@r%rArAZsi��������$����*���t����	���������r'rAc
�r��eZdZdeddddf�fd�Zdefd�Zd!d�Zd!d	�Z	d"d
e	dede
dzdedzfd
�Zdej
defd�Zdej
deeedzffd�Zdedede	fd�Zde	dedeedzee
ffd�Zdedefd�Zdededzdedeeeffd�Zdedefd�Zd!d�Zd!d�Zdeddfd �Z�xZ S)#�WorkerThread�	worker_id�runner�
RunWorkers�returnNc���t�����||_|j|_|j|_|j|_|j|_|j|_d|_	d|_
d|_d|_d|_
dS)NF)rHr&rN�runtests�pending�output�worker_timeout�timeout�logrB�
start_time�_popen�_killed�_stopped)r$rNrOrIs   �r%r&zWorkerThread.__init__fsu���
��������"������
��~����m����,����:���*.���(,���48��������
�
�
r'c��d|j��g}|���r|�d��n|�d��|j}|r|�d|����|j}|�Otj��|jz
}|�d|jj	��dt|����f��dd�|��zS)	NzWorkerThread #�running�stoppedztest=zpid=ztime=z<%s>� )rN�is_alive�appendrBrZ�time�	monotonicrY�extend�pidr�join)r$�info�test�popen�dts     r%�__repr__zWorkerThread.__repr__ts���1���1�1�2���=�=�?�?�	#��K�K�	�"�"�"�"��K�K�	�"�"�"��~���	(��K�K�����'�'�'��������!�!�D�O�3�B��K�K�1����1�1�6���!4�!4�6�6�8�
9�
9�
9��������&�&r'c��|j}|�dS|jrdSd|_tr|�d�}n|�d�}td|��tjd���	tr&t
j|jtj
��dS|���dS#t$rYdSt$r }td|�d|����Yd}~dSd}~wwxYw)NTz process groupz processzKill )�file�flushzFailed to kill z: )rZr[r�print�sys�stderr�os�killpgrf�signal�SIGKILL�kill�ProcessLookupError�OSErrorr)r$rj�what�excs    r%�_killzWorkerThread._kill�s������=��F��<�	��F�����	%��*�*�*�D�D��$�$�$�D�
�n�d�n�n�3�:�T�:�:�:�:�	=� �
��	�%�)�V�^�4�4�4�4�4��
�
�������!�	�	�	�
�D�D��	=�	=�	=��;�D�;�;�C�;�;�<�<�<�<�<�<�<�<�<�����	=���s$�+B�;B�
C�	C�'C�Cc�<�d|_|���dS)NT)r\r|r*s r%r1zWorkerThread.stop�s����
��
�
�����r'rS�	output_fd�tmp_dirc�L�t|||��}||_d|_	|jr|���t
�	|�|j���}||���d|_S#tj
$r'|jrt
�|���d}Ynt$r|jrt
��wxYwn#|����xYw	|���d|_dS#|���d|_wxYw)NF�rW)rrZr[r\r|r?�waitrW�_wait_completed�
subprocess�TimeoutExpiredry)r$rSr~rrj�retcodes      r%�_run_processzWorkerThread._run_process�s^��%�h�	�7�C�C��������&	��}�
!��
�
���� � �
��*�*�T�\�*�:�:���2
� � �"�"�"��D�K�K��3�,�

�

�

��=�%�%�$��
�
���������
�
�
��=�%�%�$��
����	��	��J�J�L�L�L������
� � �"�"�"��D�K�K�K��
� � �"�"�"��D�K����s;�"C�A<�<3C
�/C�1C
�
C�
D�C%�%D�D#�stackc��	trtj��}ntjj}t
jd|d���}|�|��|S)N�w+�backslashreplace)�encoding�errors)	r�locale�getencodingrqrCr��tempfile�
TemporaryFile�
enter_context)r$r�r��stdout_files    r%�
create_stdoutzWorkerThread.create_stdout�si��=��	+��)�+�+�H�H��z�*�H��,�T�6>�4F�H�H�H��	���K�(�(�(��r'c��	|j���}|rtdtj��}d}n�tjdd���}|�|��|���}tr/tj|��}t|tj��}nt|tj
��}||fS)Nr��utf8�r�)rS�json_file_use_stdoutrr�STDOUTr�r�r��filenor�msvcrt�
get_osfhandle�WINDOWS_HANDLE�UNIX_FD)r$r�r��	json_file�json_tmpfile�json_fd�json_handles       r%�create_json_filezWorkerThread.create_json_file�s����#�}�A�A�C�C���	D� ��|�':�;�;�I��L�L�#�1�$��H�H�H�L�����-�-�-�"�)�)�+�+�G��
D�$*�#7��#@�#@��$�[�%1�%@�B�B�	�	�%�W�l�.B�C�C�	��<�(�(r'rBr�c���|f}|jjr|j�|��}nd}i}|rd�|D��|d<|jjr
d|d<d|d<|jjd||d�|��S)	Nc��g|]}|df��S)Tr))�.0ris  r%�
<listcomp>z7WorkerThread.create_worker_runtests.<locals>.<listcomp>s��$J�$J�$J�d�d�D�\�$J�$J�$Jr'�match_testsT�verboseF�output_on_failure)�testsr�r))rS�rerun�get_match_testsr��create_worker_runtests)r$rBr�r�r��kwargss      r%r�z#WorkerThread.create_worker_runtests�s�������=��	��-�7�7�	�B�B�K�K��K�!#���	K�$J�$J�k�$J�$J�$J�F�=�!��=�*�	0� $�F�9��*/�F�&�'�3�t�}�3���������	r'�worker_runtests�	stdout_fdc��tjs�tjd���}tj�|��}	|�|||��}t	j|��}tj
|��nE#t	j|��}tj
|��wxYw|�||��}g}||fS)N�test_python_)�prefix)r�is_wasir��mkdtemprs�path�abspathr��listdirr�rmtree)r$r�r�rr��	tmp_filess      r%�
run_tmp_fileszWorkerThread.run_tmp_filess���
��	��&�n�=�=�=�G��g�o�o�g�.�.�G�
*��+�+�O�,5�w�@�@���J�w�/�/�	�� ��)�)�)�)���J�w�/�/�	�� ��)�)�)�)�����'�'���C�C�G��I���#�#s�B�*B,r�c���|�d��	|������S#t$r*}t	|jd|��dtj����d}~wwxYw)NrzCannot read process stdout: )rCrD)�seek�read�strip�	ExceptionrArBr�
WORKER_BUG)r$r�r{s   r%�read_stdoutzWorkerThread.read_stdout(s����������	6��#�#�%�%�+�+�-�-�-���	6�	6�	6��d�n�B�S�B�B�%)�$)�$4�6�6�6�
6�����	6���s�%=�
A1�%A,�,A1r�rCc���	|�*|�d��|���}n�|jtjkr.|�d��\}}}|���}nB|�d���5}|���}ddd��n#1swxYwYn9#t$r,}d|��}t|j
||tj����d}~wwxYw|s"t|j
d|tj����	tj|��}	n9#t$r,}d|��}t|j
||tj����d}~wwxYw|	|fS)	Nr�
r�r�z$Failed to read worker process JSON: rFz
empty JSONz%Failed to parse worker process JSON: )r�r��	file_typerr��
rpartition�rstrip�openr�rArBrr�r�	from_json)
r$r�r�rC�worker_json�_�json_fpr{r;r9s
          r%�	read_jsonzWorkerThread.read_json4s���	6��'��!�!�!�$�$�$�*�/�/�1�1����$��(;�;�;�)/�):�):�4�)@�)@�&���;���������^�^�V�^�4�4�1��")�,�,�.�.�K�1�1�1�1�1�1�1�1�1�1�1����1�1�1�1����	6�	6�	6�C�S�B�B�G��d�n�g�v�$)�$4�6�6�6�
6�����		6�����	6��d�n�l�F�$)�$4�6�6�6�
6�	6��)�+�6�6�F�F���	6�	6�	6�D�c�C�C�G��d�n�g�v�$)�$4�6�6�6�
6�����		6�������sT�BB4�B(�B4�(B,�,B4�/B,�0B4�4
C*�>'C%�%C*�D'�'
E�1'E�Ec
�(�tj��5}|�|��}|�|��\}}|�||��}|�||�����\}}|�|��}	|�"t|j	|	dtj����|dkr>t|��}
|
r|�d|
�d�}t|j	d|��|	tj
����|�|||	��\}}	ddd��n#1swxYwY|rQd|�dt|���d	d
�t#|������}|	|z
}	|���t'||	��S)N)rCr;rDr� (�)z
Exit code rFz

Warning -- z leaked temporary files (�): �, )�
contextlib�	ExitStackr�r�r�r�r�r�rArBr�TIMEOUTr�
WORKER_FAILEDr��lenrg�sorted�set_env_changedr8)
r$rBr�r�r�r�r�r�r�rC�namer9�msgs
             r%�_runtestzWorkerThread._runtestVs&��
�
!�
#�
#�	M�u��,�,�U�3�3�K�&*�&;�&;�E�&B�&B�#�I�|�"�9�9�)�Y�O�O�O�"&�!3�!3�O�4?�4F�4F�4H�4H�"J�"J��G�Y��%�%�k�2�2�F���!�$�.��*.�(-�
�7�7�7�7��!�|�|�&�w�/�/���4�!(�3�3�D�3�3�3�G�!�$�.�2H�w�2H�2H�&�(-�(;�=�=�=�=�"�^�^�I�|�V�L�L�N�F�F�-	M�	M�	M�	M�	M�	M�	M�	M�	M�	M�	M����	M�	M�	M�	M�0�	%�I�!*�I�I��9�~�~�I�I�*.�)�)�F�9�4E�4E�*F�*F�I�I�C�
�c�M�F��"�"�$�$�$�!�&�&�1�1�1s�DD&�&D*�-D*c���|jj}|jj}|j�sC		t	|j��}n#t$rYdSwxYwtj��|_	||_
	|�|��}n#t$r}|j
}Yd}~nd}~wwxYwd|_
n#d|_
wxYwtj��|j	z
|j_|j�d|f��|j�||��rdSnJ#t&$rYdSt($r1|j�dt+j��f��YdSwxYw|j��AdSdS)NFT)rS�	fail_fast�fail_env_changedr\r.rTr-rcrdrYrBr�rArGr9�durationrU�put�	must_stopr?�
BaseException�	traceback�
format_exc)r$r�r�rBrGr{s      r%�runzWorkerThread.runxs����M�+�	��=�9���-�	�
�� $�T�\� 2� 2�I�I��$�����E�E�����#'�.�"2�"2���!*���*� $�
�
�i� 8� 8�I�I��"�.�.�.� #�
�I�I�I�I�I�I�����.����&*�D�N�N��T�D�N�)�)�)�)�,0�N�,<�,<�t��,N�	� �)������	� 2�3�3�3��#�-�-�i�9I�J�J���E����
�
�
���� �
�
�
������y�';�'=�'=� >�?�?�?����
����-�-�	�	�	�	�	so�8�D�
A�D�A�"D�)A?�>B%�?
B�	B�B%�B�B%�D�%	B.�.AD�
E�6E�Ec	���|j}	|�t��dS#tjt
f$r5}t
d|�dtt���d|����Yd}~dSd}~wwxYw)NzFailed to wait for z completion (timeout=r�)rZr��WAIT_COMPLETED_TIMEOUTr�r�ryrr)r$rjr{s   r%r�zWorkerThread._wait_completed�s������	&��J�J�-�.�.�.�.�.���)�7�3�	&�	&�	&��%��%�%�&5�6L�&M�&M�%�%� �%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�����	&���s�%�A0�*A+�+A0rYc�6�	|�d��|���sdStj��|z
}|�d|�dt|������|tkr$td|�dt|������dS��)NTg�?zWaiting for z thread for zFailed to join z in )rgrarcrdrXr�WAIT_KILLED_TIMEOUTr)r$rYrks   r%�wait_stoppedzWorkerThread.wait_stopped�s���		��I�I�c�N�N�N��=�=�?�?�
�����!�!�J�.�B��H�H�K�D�K�K�o�b�6I�6I�K�K�L�L�L��'�'�'��O��O�O�/�"�:M�:M�O�O�P�P�P���		r'�rQNr)!r2r3r4�intr&r=rlr|r1rrr�r�r�rr��tuplerr�rr��listr�r�rr�r8r�r�r��floatr�rJrKs@r%rMrMesj��������#��|���������'�#�'�'�'�'� =�=�=�=�8����04�,�,�^�,��,�%��n�,�8;�d�
�,�,�,�,�\�:�#7��F�����,)�j�&:�)�u�X�v�X\�}�E\�?]�)�)�)�)�,���X��R`�����$$�^�$�!$�$�).�s�T�z�4��=�/H�)I�$�$�$�$�.
6�v�
6�#�
6�
6�
6�
6�  �8�  �6�D�=�  ��  �"'�
�C��"8�  �  �  �  �D 2�(� 2�/A� 2� 2� 2� 2�D����:&�&�&�&��u����������r'rM�workersrQc��g}|D]\}|j}|s�tj��|jz
}|tkr*|�dt|���d�}|�|���]|sdSdt|���dd�|����S)Nr�r�z	running (r�r�)	rBrcrdrYrrrbr�rg)r�r^�workerrBrk�texts      r%�get_runningr��s����G��!�!���$�	��	��
�^�
�
�� 1�
1��
�"�"�"��9�9�?�2�#6�#6�9�9�9�D��N�N�4� � � �����t�<�s�7�|�|�<�<��	�	�'�(:�(:�<�<�<r'c
�t�eZdZdededededdf
d�Zdd�Zdd	�Z	de
dzfd
�Zdeddfd�Z
d
e
defd�Zdd�ZdS)rP�num_workersrS�logger�resultsrQNc���||_||_|j|_|j|_||_tj��|_|���}t|��|_
|j|_|j�&t|jdz|jdz��|_
nd|_
d|_|j���}|�t|j|��|_dSdS)Ng�?i,)r�rSrX�display_progressr��queue�QueuerU�
iter_testsrrTrW�minrVr��get_jobs)r$r�rSr�r�r#�jobss       r%r&zRunWorkers.__init__�s���&��� ��
��:��� &� 7���$+���05��
�
����(�(�*�*�
�+�J�7�7����'����<�#�14�D�L�3�4F���W]�H]�0^�0^�D���"&�D��26����}�%�%�'�'���� #�4�#3�T�:�:�D�����r'c�����fd�td�jdz��D���_�j���}|�t|d��}nd}t
�j��}t|dd��}d|�d|�d	|��}�jr0|d
t�j���dt�j
���d�z
}��|���jD]}|����dS)
Nc�0��g|]}t|�����Sr))rM)r��indexr$s  �r%r�z,RunWorkers.start_workers.<locals>.<listcomp>�s9���E�E�E�!�%�U�D�1�1�E�E�Er'r	rir��process�	processeszRun z in parallel using z worker z (timeout: z, worker timeout: r�)
�ranger�r�rSrrr�rrWrrVrX�start)r$rr��nworkersrr�r�s`      r%�
start_workerszRunWorkers.start_workers�s?���E�E�E�E�%*�1�d�.>��.B�%C�%C�E�E�E����}�%�%�'�'�����$��'�'�E�E��E��t�|�$�$���8�Y��<�<�	�0�e�0�0��0�0�$-�0�0���<�	>��C�&�t�|�4�4�4�4�&�t�':�;�;�;�;�=�
>�C�	
����
�
�
��l�	�	�F��L�L�N�N�N�N�	�	r'c��tj��}|jD]}|����|jD]}|�|���dSr)rcrdr�r1r�)r$rYr�s   r%�stop_workerszRunWorkers.stop_workers�sa���^�%�%�
��l�	�	�F��K�K�M�M�M�M��l�	,�	,�F����
�+�+�+�+�	,�	,r'c��|jj}|jdu}td�|jD����r�|rtjtd���	|j�	t���S#tj$rYnwxYw|s+t|j��}|r|�|��td�|jD������	|j�	d���S#tj$rYdSwxYw)Nc3�>K�|]}|���V��dSr)ra)r�r�s  r%�	<genexpr>z)RunWorkers._get_result.<locals>.<genexpr>s,����?�?��&�/�/�#�#�?�?�?�?�?�?r'T)�exitr�r)rS�pgorW�anyr��faulthandler�dump_traceback_later�MAIN_PROCESS_TIMEOUTrU�get�PROGRESS_UPDATEr��Emptyr�rX)r$r�use_faulthandlerr^s    r%�_get_resultzRunWorkers._get_result�s6���m��� �L��4���?�?�$�,�?�?�?�?�?�	&��
=��1�2F�7;�=�=�=�=�
��{�����?�?�?���;�
�
�
���
�����
&�%�d�l�3�3���&��H�H�W�%�%�%��?�?�$�,�?�?�?�?�?�	&�$	��;�?�?�1�?�-�-�-���{�	�	�	��4�4�	���s$�A2�2B�B�C.�.D�DrGc�B�|j}|jj}t|��}|jr|d|jzz
}n,|jtkr|s|dt|j��zz
}|st|j	��}|r|d|��z
}|�
|j|��dS)Nz (%s)z -- )r9rSrr=r;r�rrr�r�r��
test_index)r$rGr9rr�r^s      r%�display_resultzRunWorkers.display_results����!���m����6�{�{����	?��G�i�/�/�/�D�D��o�!2�2�2�3�2��G�o�f�o�>�>�>�>�D��	)�!�$�,�/�/�G��
)��(�w�(�(�(�����d�o�t�4�4�4�4�4r'�itemc���	|drW|d}td|����tdtj���}|j�||j��|S|xjdz
c_|d}|j}|j�||j��|�	|��|jj
sd}n|jtjk}|r|j
}|rt|d���|S)Nrr	zregrtest worker thread failed: z<regrtest worker>rFT)ro)rrrr�r��accumulate_resultrSrr9rr�rD�PASSEDr:rp)r$rr�r9rG�show_stdoutrCs       r%�_process_resultzRunWorkers._process_result)s��4���7�	��a��J��H�J�H�H�I�I�I�� 3�5�;K�L�L�L�F��L�*�*�6�4�=�A�A�A��M����1������G�	��!����&�&�v�t�}�=�=�=����I�&�&�&��}�.�	9��K�K�"�<�5�<�7�K��	*��,�F��
*��f�D�)�)�)�)��
r'c�t�|jj}|jj}|���d|_		|���}|�n-|�|��}|�||��rn�Dn*#t$rt��d|j
_YnwxYw|j�tj��|j���|���dS#|j�tj��|j���|���wxYw)NrT)rSr�r�rrrr$r��KeyboardInterruptrpr��interruptedrWr�cancel_dump_traceback_laterrTr1r
)r$r�r�rr9s     r%r�zRunWorkers.runFsM���M�+�	��=�9�����������	 �
��'�'�)�)���<���-�-�d�3�3���#�#�I�/?�@�@���
���!�	,�	,�	,��G�G�G�'+�D�L�$�$�$�	,�����|�'��8�:�:�:�
�L���������������
�|�'��8�:�:�:�
�L���������������s+�AA;�:C.�;$B"�C.�!B"�"C.�.A	D7r�)r2r3r4r�rr
r
r&rr
�QueueOutputrr8rrr$r�r)r'r%rPrP�s�������;�C�;�8�;��;�*5�;�:>�;�;�;�;�6����(,�,�,�,��[�4�/�����:5�(:�5�t�5�5�5�5� �K��J�����: � � � � � r'rP)Dr��dataclassesr�os.pathrsr�rur�rqr�r rcr��typingrrrrir�test.supportrrr�r
r9rrr�r
rSrrrr�singler�utilsrrrrrrrr�rrr�r�rrr�r�r�	dataclassr8r=�ExcStrr�r)r�r?rA�ThreadrMr�r�rPr)r'r%�<module>r3s�����������������������
�
�
�
�����
�
�
�
�����������������'�'�'�'�'�'�'�'�'�'�������.�.�.�.�.�.�.�.�������%�%�%�%�%�%�%�%� � � � � � �F�F�F�F�F�F�F�F�F�F�F�F�%�%�%�%�%�%�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�=�<�<�<�<�<�<�<�
���M�M�M��M�M�M�
�� ������#�#�#�#�#�#�#�#�,���T�$�/�/�/��������0�/��

���G�E�N�$6�6�7�%���
�v�@U�:V�V��	�	�	�	�	��	�	�	������)����N�N�N�N�N�9�#�N�N�N�b
=��l�+�=��d�
�=�=�=�=�[ �[ �[ �[ �[ �[ �[ �[ �[ �[ r'

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