Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/libregrtest/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/libregrtest/__pycache__/runtest_mp.cpython-38.opt-1.pyc
U

?��g=�@sNddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZmZmZmZmZmZmZmZddlmZddlmZmZdZdZdZeed�o�eed	�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�:/opt/cppython/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-argsT�start_new_session�nt)�stdout�stderr�universal_newlines�	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,
���r1cCs<t|�t||�}t�tt�t|��dd�t�d�dS)NT��flushr)rr�printrr&�listr'�exit)rrrrrr�run_tests_workerMs

r7c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�MultiprocessIteratorz8A thread-safe iterator over tests for multiprocess mode.cCst��|_||_dSr)�	threading�Lock�lock�
tests_iter)�selfr<rrr�__init__^s
zMultiprocessIterator.__init__cCs|Srr�r=rrr�__iter__bszMultiprocessIterator.__iter__c
Cs6|j�&|jdkrt�t|j�W5QR�SQRXdSr)r;r<�
StopIteration�nextr?rrr�__next__es
zMultiprocessIterator.__next__c	Cs|j�d|_W5QRXdSr)r;r<r?rrr�stopkszMultiprocessIterator.stopN)�__name__�
__module__�__qualname__�__doc__r>r@rCrDrrrrr8Zs
r8�MultiprocessResultzresult stdout stderr error_msgc@seZdZdS)�
ExitThreadN)rErFrGrrrrrJssrJcsfeZdZ�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)r=rMZrunner��	__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 #�running�stoppedztest=zpid=ztime=z<%s>� )rM�is_alive�appendrSrU�time�	monotonicrT�extend�pidr�join)r=�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 ��filer3zFailed to kill z: )rUrVr)r4r'r!r-rrb�signal�SIGKILL�kill�ProcessLookupError�OSErrorr
)r=rfZwhat�excrrr�_kill�s$zTestWorkerProcess._killcCsd|_|��dS)NT)rWrqr?rrrrD�szTestWorkerProcess.stop�NcCs*t��|j}t|||d�}t||||�Sr)r_r`rTrrI)r=rZ
error_typer r!�err_msg�	test_timerrrr�mp_result_error�sz!TestWorkerProcess.mp_result_errorcCst��|_||_zt||j�}d|_||_Wnd|_�YnXz�z�|j	rX|�
�t�z|j|j
d�\}}|j}WnRtjk
r�|j	r�t�|�
�d}d}}Yn0tk
r�|j	r�t��YnX|��}|��}|||fWW�S|�
��YnXW5|��d|_d|_XdS)NF�rQrr)r_r`rTrSr1rrVrU�_wait_completedrWrqrJ�communicaterQ�
returncoder*�TimeoutExpiredro�strip�rstrip)r=rrfr r!�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)r~rur
�
rpartitionr|rrr�	ExceptionrrI)	r=rr}r r!rs�_rrprrr�_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)rWrBrNrAr�rO�putrrrrJ�
BaseException�	traceback�
format_exc)r=r�	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): )rUr �closer!�wait�JOIN_TIMEOUTr*rzror
r)r=rfrprrrrw'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 )	rcr]r_r`rR�logrr�r
)r=rTrgrrr�wait_stopped6s
zTestWorkerProcess.wait_stopped)rrrrN)rErFrGr>rhrqrDrur~r�r�rwr��
__classcell__rrrXrrKws�
;rKcCsNg}|D]@}|j}|sqt��|j}|tkrd|t|�f}|�|�q|S)Nz%s (%s))rSr_r`rTrrr^)�workersrZ�workerrSrg�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,)
rRr�r�queue�QueuerOr8ZtestsrNrQ�minrPr�)r=rRrrrr>\s


�zMultiprocessTestRunner.__init__cs|�fdd�td�jjd�D��_dt�j��d�}�jjrZ|dt�jj�t�j�f7}��|��jD]}|�	�qjdS)Ncsg|]}t|���qSr)rK)�.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��lenrQrrPr��start)r=�msgr�rr?r�
start_workersls
�
��

z$MultiprocessTestRunner.start_workerscCs6t��}|jD]}|��q|jD]}|�|�q"dSr)r_r`r�rDr�)r=rTr�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)r])r�r�rrr�	<genexpr>�sz5MultiprocessTestRunner._get_result.<locals>.<genexpr>rrvT)r6zrunning: %s�, )�anyr�rO�getr��EmptyrrQ�PROGRESS_UPDATE�faulthandlerZdump_traceback_later�MAIN_PROCESS_TIMEOUTr��pgor�rc)r=Zuse_faulthandlerrQrZrrr�_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_msgrtrrr�rr�r�rcrRZdisplay_progress�
test_index)r=r�rr�rZrrr�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: Tr2riF)
r
r�rRZaccumulate_resultrr�r r4r!rr�r'r)r=�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�rrQr�Zcancel_dump_traceback_laterrNrDr�r�r��KeyboardInterruptr4rRZinterrupted)r=r�rDrrr�	run_tests�s 

z MultiprocessTestRunner.run_testsN)
rErFrGr>r�r�r�r�r�r�rrrrr�[sr�cCst|���dSr)r�r�)rRrrr�run_tests_multiprocess�sr�)/�collectionsr�rr-r�rkr*r'r9r_r�rrerZtest.libregrtest.runtestrrrrrrr	r
Ztest.libregrtest.setuprZtest.libregrtest.utilsrr
r�r�r��hasattrr)rrr1r7r8�
namedtuplerIr�rJ�ThreadrKr�r�r�rrrr�<module>sB(
�X
|

F1le Man4ger