CasperSecurity

Current Path : /lib/python3.10/test/libregrtest/__pycache__/
Upload File :
Current File : //lib/python3.10/test/libregrtest/__pycache__/runtest_mp.cpython-310.pyc

o

p̦isD�@sbddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZm
Z
mZmZddlmZddlmZddlmZddlmZddlmZmZmZmZmZmZmZddl m!Z!dd	l"m#Z#m$Z$d
Z%e%eksxJ�dZ&e&e%ks�J�d
Z'e(ed�o�e(ed
�Z)dedede*fdd�Z+de,ee-ffdd�Z.de-dedej/fdd�Z0dede-de
fdd�Z1Gdd�d�Z2Gdd�de�Z3e-Z4e,ede3fe,ed e4fBZ5Gd!d"�d"e6�Z7Gd#d$�d$ej8�Z9d%e:e9de:e9fd&d'�Z;Gd(d)�d)�Z<d*eddfd+d,�Z=Gd-d.�d.ej>�Z?d/e@e-efdee@e-efBfd0d1�ZAdeBeCefd2d3�ZDdS)4�N)�
NamedTuple�NoReturn�Literal�Any)�support)�	os_helper)�	Namespace)�Regrtest)�runtest�	is_failed�
TestResult�Interrupted�Timeout�
ChildError�PROGRESS_MIN_TIME)�setup_tests)�format_duration�
print_warningg>@g�r@�setsid�killpg�result�ns�returncCs&t|t�rdS|jrt||�rdSdS)NTF)�
isinstancer
�failfastr)rr�r�2/usr/lib/python3.10/test/libregrtest/runtest_mp.py�	must_stop)s

rcCs$t�|�\}}tdi|��}||fS)Nr)�json�loadsr)�worker_args�ns_dict�	test_namerrrr�parse_worker_args1sr#�testnamecCsxt|�}||f}t�|�}tjgt���d�d�d�d�|�}i}tr'd|d<tj	|ftj
tj
dtjdkt
jd�|��S)	Nz-uz-mz
test.regrtestz
--worker-argsT�start_new_session�nt)�stdout�stderr�universal_newlines�	close_fds�cwd)�varsr�dumps�sys�
executabler�args_from_interpreter_flags�USE_PROCESS_GROUP�
subprocess�Popen�PIPE�os�namer�SAVEDCWD)r$rr!r �cmd�kwrrr�run_test_in_subprocess7s4
�������r:r"cCs<t|�t||�}t�ttj|td�dd�t�d�dS)N)�clsT��flushr)rr
�printrr-�EncodeTestResultr.�exit)rr"rrrr�run_tests_workerPs

rAc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�MultiprocessIteratorz8A thread-safe iterator over tests for multiprocess mode.cCst��|_||_dS�N)�	threading�Lock�lock�
tests_iter)�selfrGrrr�__init__as

zMultiprocessIterator.__init__cCs|SrCr�rHrrr�__iter__eszMultiprocessIterator.__iter__cCsB|j�|jdurt�t|j�Wd�S1swYdSrC)rFrG�
StopIteration�nextrJrrr�__next__hs

$�zMultiprocessIterator.__next__cCs2|j�d|_Wd�dS1swYdSrC)rFrGrJrrr�stopns"�zMultiprocessIterator.stopN)�__name__�
__module__�__qualname__�__doc__rIrKrNrOrrrrrB]srBc@s.eZdZUeed<eed<eed<eed<dS)�MultiprocessResultrr'r(�	error_msgN)rPrQrRr�__annotations__�strrrrrrTss

rTFTc@seZdZdS)�
ExitThreadN)rPrQrRrrrrrX~srXc	s�eZdZdeddddf�fdd�Zdefdd	�Zd d
d�Zd dd
�Z			d!de	dedede
fdd�Zdedeeeeffdd�Z
dede
fdd�Zd dd�Zd dd�Zdeddfdd�Z�ZS)"�TestWorkerProcess�	worker_id�runner�MultiprocessTestRunnerrNcsZt���||_|j|_|j|_|j|_|j|_|j|_d|_	d|_
d|_d|_d|_
dS)NF)�superrIrZ�pending�outputr�worker_timeout�timeout�regrtest�current_test_name�
start_time�_popen�_killed�_stopped)rHrZr[��	__class__rrrI�s

zTestWorkerProcess.__init__cCs�d|j��g}|��r|�d�n|�d�|j}|r#|�d|���|j}|durBt��|j}|�d|jj	��dt
|���f�dd�|�S)	NzTestWorkerProcess #�running�stoppedztest=zpid=ztime=z<%s>� )rZ�is_alive�appendrcre�time�	monotonicrd�extend�pidr�join)rH�info�test�popen�dtrrr�__repr__�s
�zTestWorkerProcess.__repr__c
Cs�|j}|dur	dS|jrdSd|_tr|�d�}n|�}td|��tjdd�ztr5t�|jt	j
�WdS|��WdStyEYdSt
ya}ztd|�d|���WYd}~dSd}~ww)NTz process groupzKill ��filer=zFailed to kill z: )rerfr1r>r.r(r5rrr�signal�SIGKILL�kill�ProcessLookupError�OSErrorr)rHrv�what�excrrr�_kill�s("��zTestWorkerProcess._killcCsd|_|��dS)NT)rgr�rJrrrrO�szTestWorkerProcess.stop��test_resultr'r(cCst��|j|_t||||�SrC)rorprd�duration_secrT)rHr�r'r(�err_msgrrr�mp_result_error�sz!TestWorkerProcess.mp_result_errorr"cCst��|_||_zt||j�}d|_||_Wnd|_�zez\|jr)|�	�t
�z|j|jd�\}}|j
}|dus<J�Wn%tjyV|jrJt
�|�	�d}d}}Yntyb|jrat
��w|��}|��}|||fWW|��d|_d|_S|�	��|��d|_d|_w)NF�rar�)rorprdrcr:rrfrergr�rX�communicatera�
returncoder2�TimeoutExpiredr�strip�rstrip�_wait_completed)rHr"rvr'r(�retcoderrr�_run_process�sP

��zTestWorkerProcess._run_processc	
Cs�|�|�\}}}|dur|�t|�||�Sd}|dkr d|}n1|�d�\}}}|��}|s1d}n z	tj|td�}WntyP}z
d|}WYd}~nd}~ww|dur_|�t	|�|||�St
||||�S)NrzExit code %s�
zFailed to parse worker stdout)�object_hookzFailed to parse worker JSON: %s)r�r�r�
rpartitionr�rr�decode_test_result�	ExceptionrrT)	rHr"r�r'r(r��_rr�rrr�_runtests*
��
�zTestWorkerProcess._runtestcCs�|jsRz,zt|j�}WntyYWdSw|�|�}|j�d|f�t|j|j	�r.WdSWnt
y9YdStyL|j�dt�
�f�YdSw|jrdSdS)NFT)rgrMr^rLr�r_�putrrrrX�
BaseException�	traceback�
format_exc)rHr"�	mp_resultrrr�run"s&�
���zTestWorkerProcess.runc
Csv|j}|j��|j��z|�t�WdStjtfy:}zt	d|�dt
t��d|���WYd}~dSd}~ww)NzFailed to wait for z completion (timeout=z): )rer'�closer(�wait�JOIN_TIMEOUTr2r�rrr)rHrvr�rrrr�5s


����z!TestWorkerProcess._wait_completedrdcCsf	|�d�|��sdSt��|}|j�d|�dt|����|tkr2td|�dt|����dSq)NTg�?zWaiting for z thread for zFailed to join z in )	rsrmrorprb�logrr�r)rHrdrwrrr�wait_stoppedDs
��zTestWorkerProcess.wait_stopped�rN)r�r�N)rPrQrR�intrIrWrxr�rOrrTr��tupler�r�r�r��floatr��
__classcell__rrrhrrY�s,

����
�
;

rY�workerscCsNg}|D] }|j}|sqt��|j}|tkr$d|t|�f}|�|�q|S)Nz%s (%s))rcrorprdrrrn)r�rj�workerrcrw�textrrr�get_running\s
�r�c@sreZdZdeddfdd�Zddd�Zddd	�ZdedBfd
d�Zde	ddfd
d�Z
dedefdd�Zddd�Z
dS)r\rbrNcCsj||_|jj|_|j|_t��|_t|jj�|_|jj	dur-t
|jj	d|jj	d�|_nd|_d|_dS)Ng�?i,)
rbr�r�queue�Queuer_rB�testsr^ra�minr`r�)rHrbrrrrIjs


�
zMultiprocessTestRunner.__init__cs|�fdd�td�jjd�D��_dt�j��d�}�jjr-|dt�jj�t�j�f7}��|��jD]}|�	�q5dS)Ncsg|]}t|���qSr)rY)�.0�indexrJrr�
<listcomp>{s�z8MultiprocessTestRunner.start_workers.<locals>.<listcomp>�zRun tests in parallel using z child processesz" (timeout: %s, worker timeout: %s))
�ranger�use_mpr��lenrarr`r��start)rH�msgr�rrJr�
start_workerszs
�
��


�z$MultiprocessTestRunner.start_workerscCs6t��}|jD]}|��q|jD]}|�|�qdSrC)rorpr�rOr�)rHrdr�rrr�stop_workers�s


�z#MultiprocessTestRunner.stop_workerscCs�|jjdu}t}tdd�|jD��rM|rtjtdd�z|jj	|d�WSt
jy-Ynwt|j�}|rC|jj
sC|�dd�|��tdd�|jD��sz|jj	dd�WSt
jy`YdSw)	Ncss�|]}|��VqdSrC)rm)r�r�rrr�	<genexpr>�s�z5MultiprocessTestRunner._get_result.<locals>.<genexpr>T)r@r�zrunning: %s�, r)rra�PROGRESS_UPDATE�anyr��faulthandler�dump_traceback_later�MAIN_PROCESS_TIMEOUTr_�getr��Emptyr��pgor�rs)rH�use_faulthandlerrarjrrr�_get_result�s*��
��z"MultiprocessTestRunner._get_resultr�cCs�|j}t|�}|jdur|d|j7}n|jtkr&|jjs&|dt|j�7}t|j	�}|r:|jjs:|dd�
|�7}|j�|j
|�dS)Nz (%s)z -- running: %sr�)rrWrUr�rrr�rr�r�rsrb�display_progress�
test_index)rHr�rr�rjrrr�display_result�s

z%MultiprocessTestRunner.display_result�itemcCs�|dr|d}td|���dS|jd7_|d}|j�|j�|�|�|jr2t|jdd�|jrB|j	j
sBt|jtjdd�t|j|j	�rKdSdS)z&Returns True if test runner must stop.rr�zregrtest worker thread failed: Tr<ryF)
rr�rb�accumulate_resultrr�r'r>r(rr�r.r)rHr�r�r�rrr�_process_result�s
z&MultiprocessTestRunner._process_resultcCs�|��d|_z<z	|��}|durn	|�|�}|rnq
Wnty-t�d|j_YnwW|jj	dur9t
��|j�
�|��dS|jj	durNt
��|j�
�|��w)NrT)r�r�r�r��KeyboardInterruptr>rb�interruptedrrar��cancel_dump_traceback_laterr^rOr�)rHr�rOrrr�	run_tests�s2
����
�

z MultiprocessTestRunner.run_testsr�)rPrQrRr	rIr�r��QueueOutputr�rTr��boolr�r�rrrrr\is

r\rbcCst|���dSrC)r\r�)rbrrr�run_tests_multiprocess�sr�cs2eZdZdZdedeeeff�fdd�Z�ZS)r?z7Encode a TestResult (sub)class object into a JSON dict.�orcs.t|t�rt|�}|jj|d<|St��|�S)N�__test_result__)rrr,rirPr]�default)rHr�rrhrrr��s

zEncodeTestResult.default)	rPrQrRrSr�dictrWr�r�rrrhrr?�s&r?�dcCsBd|vr|S|�d�}t�D]}|j|kr|di|��SqdS)z7Decode a TestResult (sub)class object from a JSON dict.r�Nr)�pop�get_all_test_result_classesrP)r��cls_namer;rrrr��s


��r�cCsTd}th}t|�|kr(t|�}g}|D]	}|�|���q|�|�t|�|ks|S)Nr)rr�rq�__subclasses__�update)�
prev_count�classes�to_addr;rrrr�s
�r�)E�collectionsr�rr5r�r{r2r.rDror��typingrrrrrur�test.supportr�test.libregrtest.cmdliner�test.libregrtest.mainr	�test.libregrtest.runtestr
rrr
rrr�test.libregrtest.setupr�test.libregrtest.utilsrrr�r�r��hasattrr1r�rr�rWr#r3r:rArBrT�ExcStrr�r�rX�ThreadrY�listr�r\r��JSONEncoderr?r�r��set�typer�rrrr�<module>sT$
 [
&
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY