%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core20/2599/usr/lib/python3.8/test/libregrtest/__pycache__/
Upload File :
Create Path :
Current File : //snap/core20/2599/usr/lib/python3.8/test/libregrtest/__pycache__/runtest_mp.cpython-38.pyc

U

���g=�@sfddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZmZmZmZmZmZmZmZddlmZddlmZmZdZeeks�t�dZeeks�t�dZe ed�o�e ed	�Z!d
d�Z"dd
�Z#dd�Z$dd�Z%Gdd�d�Z&e�'dd�Z(Gdd�de)�Z*Gdd�dej+�Z,dd�Z-Gdd�d�Z.dd�Z/dS) �N)�support)�runtest�INTERRUPTED�CHILD_ERROR�PROGRESS_MIN_TIME�format_test_result�
TestResult�	is_failed�TIMEOUT)�setup_tests)�format_duration�
print_warningg>@g�r@�setsid�killpgcCs&|jtkrdS|jr"t||�r"dSdS)NTF)�resultrZfailfastr	)r�ns�r�1/usr/lib/python3.8/test/libregrtest/runtest_mp.py�	must_stop&s

rcCs"t�|�\}}tjf|�}||fS�N)�json�loads�types�SimpleNamespace)�worker_args�ns_dict�	test_namerrrr�parse_worker_args.srcCspt|�}||f}t�|�}tjft��dddd|f�}i}trFd|d<tj	|ftj
tj
dtjdktj
d�|��S)	Nz-uz-mz
test.regrtestz
--worker-argsTZstart_new_session�nt)�stdout�stderrZuniversal_newlinesZ	close_fds�cwd)�varsr�dumps�sys�
executablerZargs_from_interpreter_flags�USE_PROCESS_GROUP�
subprocess�Popen�PIPE�os�nameZSAVEDCWD)Ztestnamerrr�cmd�kwrrr�run_test_in_subprocess4s,
���r.cCs<t|�t||�}t�tt�t|��dd�t�d�dS)NT��flushr)rr�printrr#�listr$�exit)rrrrrr�run_tests_workerMs

r4c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�MultiprocessIteratorz8A thread-safe iterator over tests for multiprocess mode.cCst��|_||_dSr)�	threadingZLock�lock�
tests_iter)�selfr8rrr�__init__^s
zMultiprocessIterator.__init__cCs|Srr�r9rrr�__iter__bszMultiprocessIterator.__iter__c
Cs6|j�&|jdkrt�t|j�W5QR�SQRXdSr)r7r8�
StopIteration�nextr;rrr�__next__es
zMultiprocessIterator.__next__c	Cs|j�d|_W5QRXdSr)r7r8r;rrr�stopkszMultiprocessIterator.stopN)�__name__�
__module__�__qualname__�__doc__r:r<r?r@rrrrr5Zs
r5�MultiprocessResultzresult stdout stderr error_msgc@seZdZdS)�
ExitThreadN)rArBrCrrrrrFssrFcsfeZdZ�fdd�Zdd�Zdd�Zdd�Zddd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Z�Z
S)�TestWorkerProcesscsZt���||_|j|_|j|_|j|_|j|_|j|_d|_	d|_
d|_d|_d|_
dS)NF)�superr:�	worker_id�pending�outputr�worker_timeout�timeout�regrtest�current_test_name�
start_time�_popen�_killed�_stopped)r9rIZrunner��	__class__rrr:xs
zTestWorkerProcess.__init__cCs�d|j��g}|��r"|�d�n
|�d�|j}|rF|�d|���|j}|dk	r�t��|j}|�d|jj	��dt
|���f�dd�|�S)	NzTestWorkerProcess #�runningZstoppedztest=zpid=ztime=z<%s>� )rI�is_alive�appendrOrQ�time�	monotonicrP�extend�pidr�join)r9�info�test�popen�dtrrr�__repr__�s
�zTestWorkerProcess.__repr__c
Cs�|j}|dkrdS|jrdSd|_tr2|�d�}n|�}td|��tjdd�z"trft�|jt	j
�n|��WnHtk
r�Yn6t
k
r�}ztd|�d|���W5d}~XYnXdS)NTz process groupzKill ��filer0zFailed to kill z: )rQrRr&r1r$r r*rr]�signal�SIGKILL�kill�ProcessLookupError�OSErrorr
)r9raZwhat�excrrr�_kill�s$zTestWorkerProcess._killcCsd|_|��dS)NT)rSrlr;rrrr@�szTestWorkerProcess.stop�NcCs*t��|j}t|||d�}t||||�Sr)rZr[rPrrE)r9rZ
error_typerr �err_msg�	test_timerrrr�mp_result_error�sz!TestWorkerProcess.mp_result_errorcCs(t��|_||_zt||j�}d|_||_Wnd|_�YnXz�z�|j	rX|�
�t�z(|j|j
d�\}}|j}|dk	s~t�WnRtjk
r�|j	r�t�|�
�d}d}}Yn0tk
r�|j	r�t��YnX|��}|��}|||fWW�S|�
��YnXW5|��d|_d|_XdS)NF�rMrm)rZr[rPrOr.rrRrQ�_wait_completedrSrlrFZcommunicaterM�
returncode�AssertionErrorr'�TimeoutExpiredrj�strip�rstrip)r9rrarr �retcoderrr�_run_process�sH

zTestWorkerProcess._run_processc	
Cs�|�|�\}}}|dkr(|�|t||�Sd}|dkr>d|}nd|�d�\}}}|��}|s`d}nBzt�|�}t|�}Wn*tk
r�}zd|}W5d}~XYnX|dk	r�|�|t	|||�St
||||�S)NrzExit code %s�
zFailed to parse worker stdoutzFailed to parse worker JSON: %s)ryrpr
�
rpartitionrwrrr�	ExceptionrrE)	r9rrxrr rn�_rrkrrr�_runtest�s,

�zTestWorkerProcess._runtestcCs�|js�zZzt|j�}Wntk
r0YWq�YnX|�|�}|j�d|f�t|j|j	�r^Wq�Wqt
k
rxYq�Yqtk
r�|j�dt�
�f�Yq�YqXqdS)NFT)rSr>rJr=r~rKZputrrrrF�
BaseException�	traceback�
format_exc)r9r�	mp_resultrrr�runs
zTestWorkerProcess.runc
Cst|j}|j��|j��z|�t�WnFtjtfk
rn}z"t	d|�dt
t��d|���W5d}~XYnXdS)NzFailed to wait for z completion (timeout=z): )rQr�closer �wait�JOIN_TIMEOUTr'rurjr
r)r9rarkrrrrr's

z!TestWorkerProcess._wait_completedcCsd|�d�|��sq`t��|}|j�d|�dt|����|tkrtd|�dt|����q`qdS)Ng�?zWaiting for z thread for zFailed to join z in )	r^rXrZr[rN�logrr�r
)r9rPrbrrr�wait_stopped6s
zTestWorkerProcess.wait_stopped)rmrmN)rArBrCr:rcrlr@rpryr~r�rrr��
__classcell__rrrTrrGws�
;rGcCsNg}|D]@}|j}|sqt��|j}|tkrd|t|�f}|�|�q|S)Nz%s (%s))rOrZr[rPrrrY)�workersrV�workerrOrb�textrrr�get_runningNsr�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�MultiprocessTestRunnercCsj||_|jj|_|j|_t��|_t|jj�|_|jj	dk	rZt
|jj	d|jj	d�|_nd|_d|_dS)Ng�?i,)
rNr�r�queueZQueuerKr5ZtestsrJrM�minrLr�)r9rNrrrr:\s


�zMultiprocessTestRunner.__init__cs|�fdd�td�jjd�D��_dt�j��d�}�jjrZ|dt�jj�t�j�f7}��|��jD]}|�	�qjdS)Ncsg|]}t|���qSr)rG)�.0�indexr;rr�
<listcomp>ms�z8MultiprocessTestRunner.start_workers.<locals>.<listcomp>�zRun tests in parallel using z child processesz" (timeout: %s, worker timeout: %s))
�rangerZuse_mpr��lenrMrrLr��start)r9�msgr�rr;r�
start_workersls
�
��

z$MultiprocessTestRunner.start_workerscCs6t��}|jD]}|��q|jD]}|�|�q"dSr)rZr[r�r@r�)r9rPr�rrr�stop_workersxs



z#MultiprocessTestRunner.stop_workerscCs�tdd�|jD��s>z|jjdd�WStjk
r<YdSX|jjdk	}t}|r`t	j
tdd�z|jj|d�WStjk
r�YnXt|j�}|rN|jj
sN|�dd�|��qNdS)	Ncss|]}|��VqdSr)rX)r�r�rrr�	<genexpr>�sz5MultiprocessTestRunner._get_result.<locals>.<genexpr>rrqT)r3zrunning: %s�, )�anyr�rK�getr�ZEmptyrrM�PROGRESS_UPDATE�faulthandlerZdump_traceback_later�MAIN_PROCESS_TIMEOUTr��pgor�r^)r9Zuse_faulthandlerrMrVrrr�_get_results$�
z"MultiprocessTestRunner._get_resultcCs�|j}t|�}|jdk	r(|d|j7}n$|jtkrL|jjsL|dt|j�7}t|j	�}|rt|jjst|dd�
|�7}|j�|j
|�dS)Nz (%s)z -- running: %sr�)rrZ	error_msgrorrr�rr�r�r^rNZdisplay_progress�
test_index)r9r�rr�rVrrr�display_result�s

z%MultiprocessTestRunner.display_resultcCs�|dr"|d}td|���dS|jd7_|d}|j�|j�|�|�|jrdt|jdd�|jr�|j	j
s�t|jtjdd�t|j|j	�r�dSdS)Nrr�zregrtest worker thread failed: Tr/rdF)
r
r�rNZaccumulate_resultrr�rr1r rr�r$r)r9�itemr�r�rrr�_process_result�s
z&MultiprocessTestRunner._process_resultcCs�|��d|_zPz(|�	�}|dkr$q6|�
|�}|rq6qWn"tk
rZt�d|j
_YnXW5|jjdk	rtt��|j��|��XdS)NrT)r�r�rrMr�Zcancel_dump_traceback_laterrJr@r�r�r��KeyboardInterruptr1rNZinterrupted)r9r�r@rrr�	run_tests�s 

z MultiprocessTestRunner.run_testsN)
rArBrCr:r�r�r�r�r�r�rrrrr�[sr�cCst|���dSr)r�r�)rNrrr�run_tests_multiprocess�sr�)0�collectionsr�rr*r�rfr'r$r6rZr�rr`rZtest.libregrtest.runtestrrrrrrr	r
Ztest.libregrtest.setuprZtest.libregrtest.utilsrr
r�rtr�r��hasattrr&rrr.r4r5�
namedtuplerEr|rFZThreadrGr�r�r�rrrr�<module>sF(
�X
|

Zerion Mini Shell 1.0