%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core18/current/usr/lib/python3.6/test/libregrtest/__pycache__/
Upload File :
Create Path :
Current File : //snap/core18/current/usr/lib/python3.6/test/libregrtest/__pycache__/runtest_mp.cpython-36.pyc

3

/�$hg�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	yddl
Z
Wn&ek
r~ed�ej
d�YnXddlmZmZmZmZmZddlmZddlmZdZd	Zd
d�Zdd
�ZGdd�d�ZGdd�de
j�Zdd�ZdS)�N)�supportz+Multiprocess option requires thread support�)�runtest�INTERRUPTED�CHILD_ERROR�PROGRESS_MIN_TIME�format_test_result)�setup_tests)�format_durationg>@g@c
Cs�ddlm}m}t|�}||f}tj|�}tjftj	�dddd|f�}|j
rV|dg7}||||dtjd	ktj
d
�}|�|j�\}}	|j�}
WdQRX|
||	fS)a)Run the given test in a subprocess with --worker-args.

    ns is the option Namespace parsed from command-line arguments. regrtest
    is invoked in a subprocess with the --worker-args argument; when the
    subprocess exits, its return code, stdout and stderr are returned as a
    3-tuple.
    r)�Popen�PIPEz-uz-mz
test.regrtestz
--worker-argsz--pgoT�nt)�stdout�stderrZuniversal_newlinesZ	close_fds�cwdN)�
subprocessrr�vars�json�dumps�sys�
executablerZargs_from_interpreter_flags�pgo�os�nameZSAVEDCWDZcommunicate�wait)�testname�nsrr�ns_dict�worker_args�cmd�popenrr�retcode�r"�1/usr/lib/python3.6/test/libregrtest/runtest_mp.py�run_test_in_subprocesss&



r$cCs�tj|�\}}tjf|�}t|�yt||�}WnRtk
rNtddf}Yn6tk
r�}zt	j
�tt|�f}WYdd}~XnXt
�t
tj|�dd�tjd�dS)N�T)�flushr)r�loads�types�SimpleNamespacer	r�KeyboardInterruptr�
BaseException�	traceback�	print_excr�str�printrr�exit)rrrr�result�er"r"r#�run_tests_workerAsr3c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�MultiprocessIteratorz8A thread-safe iterator over tests for multiprocess mode.cCsd|_tj�|_||_dS)NF)�interrupted�	threadingZLock�lock�tests)�selfr8r"r"r#�__init__Ys
zMultiprocessIterator.__init__cCs|S)Nr")r9r"r"r#�__iter__^szMultiprocessIterator.__iter__c	Cs*|j�|jrtd��t|j�SQRXdS)Nztests interrupted)r7r5�
StopIteration�nextr8)r9r"r"r#�__next__aszMultiprocessIterator.__next__N)�__name__�
__module__�__qualname__�__doc__r:r;r>r"r"r"r#r4Usr4cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)�MultiprocessThreadcs,t�j�||_||_||_d|_d|_dS)N)�superr:�pending�outputr�current_test�
start_time)r9rErFr)�	__class__r"r#r:is
zMultiprocessThread.__init__cCsyt|j�}Wn tk
r.|jjd�dSXz&tj�|_||_t	||j
�\}}}Wdd|_X|dkr�td|df}|jj||j�|j�|f�dS|j
�jd�\}}}|s�|jjd	�dStj|�}t|�dks�td|����|jj||j�|j�|f�dS)
NTrzExit code %sF�
�zInvalid result tuple: )NNNN)NNNN)r=rEr<rF�put�time�	monotonicrHrGr$rr�rstrip�strip�
rpartitionrr'�len�AssertionError)r9�testr!rrr1�_r"r"r#�_runtestqs0

zMultiprocessThread._runtestcCsByd}x|s|j�}qWWn"tk
r<|jjd��YnXdS)NF)NNNN)rVr+rFrL)r9�stopr"r"r#�run�szMultiprocessThread.run)r?r@rAr:rVrX�
__classcell__r"r")rIr#rChs rCcs�tj��t�j���jj}|dk	}���fdd�t�jj�D�}tdt	|��x|D]}|j
�qVWdd�}d}d}ttt
�}�zƐy��x�|�jjk�r|r�tj|dd	�y�j|d
�}	WnFtjk
�r||�}
|
r��jjr�tddj|
�dd
�w�YnX|	\}}}
}|dk�r$|d7}q��j||�|\}}}t||�}|ttfk�rz|t
k�rz�jj�rz|dt|�7}n|tk�r�d||f}||�}
|
�r��jj�r�|ddj|
�7}�j||�|�r�t|dd
�|
�r��jj�r�t|
tjdd�|dtk�rt�|d7}q�WWn(tk
�rDd�_d�_t�YnXWd|�rXtj�Xtj �}x�dd�|D�}
t!t"t#|
��}
|
�s�Ptj �|}ddj|
�t	|
�f}|t$k�r�d||f}t|dd
�x|D]}|jt$��q�W�qdWdS)Ncsg|]}t���j��qSr")rCr)�.0�i)rFrE�regrtestr"r#�
<listcomp>�sz*run_tests_multiprocess.<locals>.<listcomp>z.Run tests in parallel using %s child processescSsRg}xH|D]@}|j}|sq
tj�|j}|tkr
d|t|�f}|j|�q
W|S)Nz%s (%s))rGrMrNrHrr
�append)�workers�running�workerrG�dt�textr"r"r#�get_running�s
z+run_tests_multiprocess.<locals>.get_runningr�T)r0)�timeoutzrunning: %sz, )r&z (%s)z%s (%s)z -- running: %s)�filer&cSsg|]
}|j�qSr")rG)rZrar"r"r#r]�szWaiting for %s (%s tests)z%s since %.0f sec)%�queueZQueuer4r8rrf�rangeZuse_mpr/rR�start�max�PROGRESS_UPDATEr�faulthandlerZdump_traceback_later�getZEmptyr�joinZaccumulate_resultrrrr
Zdisplay_progressrrr*r5Zcancel_dump_traceback_laterrMrN�list�filter�bool�
WAIT_PROGRESS)r\Ztest_timeoutZuse_timeoutr_rardZfinishedZ
test_indexZget_timeout�itemr`rTrrr1�okZ	test_timeZxml_datarcZ
wait_startrb�liner")rFrEr\r#�run_tests_multiprocess�s�










rw) rmrrrhrrMr,r(rTrr6�ImportErrorr/r0Ztest.libregrtest.runtestrrrrrZtest.libregrtest.setupr	Ztest.libregrtest.utilsr
rlrsr$r3r4ZThreadrCrwr"r"r"r#�<module>s.#3

Zerion Mini Shell 1.0