Your IP : 216.73.216.218


Current Path : /lib/python3.9/test/libregrtest/__pycache__/
Upload File :
Current File : //lib/python3.9/test/libregrtest/__pycache__/runtest.cpython-39.pyc

a

ؒd<0�@sddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZmZddlmZddlmZddlmZmZGdd	�d	�ZGd
d�de�ZGdd
�d
e�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd�de�Z"Gdd�de�Z#d Z$gd!�Z%e&�Z'gZ(d	d"d#d$�d%d&�Z)d@d'd(�Z*de%e'fd)d*�Z+d"d+d+d,�d-d.�Z,d"d+d	d,�d/d0�Z-d"d+d	d,�d1d2�Z.d3d4�Z/d"d+d#d,�d5d6�Z0dAd"d+d#d	d8�d9d:�Z1d+d;d<d=�d>d?�Z2dS)B�)�annotationsN)�support)�dash_R�clear_caches)�	Namespace)�saved_test_environment)�format_duration�
print_warningc@s0eZdZd
ddddd�dd	�Zdd
�dd�ZdS)�
TestResult�N�str�float�list[str] | None�None)�name�duration_sec�xml_data�returncCs||_||_||_dS�N)rrr)�selfrrr�r�./usr/lib/python3.9/test/libregrtest/runtest.py�__init__szTestResult.__init__�rcCs|j�d�S)Nz	 finished�r�rrrr�__str__ szTestResult.__str__)rN)�__name__�
__module__�__qualname__rrrrrrr
s�
r
c@seZdZdd�dd�ZdS)�PassedrrcCs|j�d�S)Nz passedrrrrrr%szPassed.__str__N�rrrrrrrrr $sr cs<eZdZdddddddd��fd	d
�
Zdd�dd
�Z�ZS)�FailedrNrr
rzlist[tuple[str, str]] | Noner)rrr�errors�failuresrcs"t�j|||d�||_||_dS)N)rr)�superrr#r$)rrrrr#r$��	__class__rrr*szFailed.__init__rc
Cs�|jrl|jrlt|j�}t|j�}d|dkr.dnd}d|dkrBdnd}|j�d|�d|�d|�d|�d	�
S|jr�t|j�}d|dkr�dnd}|j�d|�d|�d	�S|jr�t|j�}d|dkr�dnd}|j�d|�d|�d	�S|j�d
�S)N�error��s�Zfailurez	 failed (� z, �)� failed)r#r$�lenr)r�leZlfZerror_sZ	failure_srrrr6s

$

zFailed.__str__)rNNN)rrrrr�
__classcell__rrr&rr")s�r"c@seZdZdd�dd�ZdS)�UncaughtExceptionrrcCs|j�d�S)Nz failed (uncaught exception)rrrrrrLszUncaughtException.__str__Nr!rrrrr2Ksr2c@seZdZdd�dd�ZdS)�
EnvChangedrrcCs|j�d�S)Nz failed (env changed)rrrrrrQszEnvChanged.__str__Nr!rrrrr3Psr3c@seZdZdd�dd�ZdS)�RefLeakrrcCs|j�d�S)Nz failed (reference leak)rrrrrrVszRefLeak.__str__Nr!rrrrr4Usr4c@seZdZdd�dd�ZdS)�SkippedrrcCs|j�d�S)Nz skippedrrrrrr[szSkipped.__str__Nr!rrrrr5Zsr5c@seZdZdd�dd�ZdS)�ResourceDeniedrrcCs|j�d�S)Nz skipped (resource denied)rrrrrr`szResourceDenied.__str__Nr!rrrrr6_sr6c@seZdZdd�dd�ZdS)�InterruptedrrcCs|j�d�S)Nz interruptedrrrrrreszInterrupted.__str__Nr!rrrrr7dsr7c@seZdZdd�dd�ZdS)�
ChildErrorrrcCs|j�d�S)Nz crashedrrrrrrjszChildError.__str__Nr!rrrrr8isr8c@seZdZdd�dd�ZdS)�	DidNotRunrrcCs|j�d�S)Nz
 ran no testsrrrrrroszDidNotRun.__str__Nr!rrrrr9nsr9c@seZdZdd�dd�ZdS)�TimeoutrrcCs|j�dt|j��d�S)Nz timed out (r-)rrrrrrrrtszTimeout.__str__Nr!rrrrr:ssr:g>@)
Ztest_grammarZtest_opcodesZ	test_dictZtest_builtinZtest_exceptionsZ
test_typesZ
test_unittestZtest_doctestZ
test_doctest2Ztest_supportr�bool)�result�nsrcCst|t�r|jSt|t�Sr)�
isinstancer3Zfail_env_changedr")r<r=rrr�	is_failed�s
r?cCs|ptj�tj�t��ptjSr)�os�path�dirname�__file__�curdir)rArrr�findtestdir�srEc	Csrt|�}t�|�}g}t|�|B}|D]>}tj�|�\}}|dd�dkr&|dvr&||vr&|�|�q&|t|�S)z-Return a list of all applicable test modules.N�Ztest_)z.pyr+)rEr@�listdir�setrA�splitext�append�sorted)	�testdirZstdtestsZnottests�names�testsZothersr�modZextrrr�	findtests�s
 rPr)r=�	test_namercCs |�d�s|jr|Sd|SdS)Nztest.)�
startswithrL)r=rQrrr�get_abs_module�srScsn|j}|jdu}|r$tj|jdd�t��}�z$t�|j|j	�|j
rJgndt_}|jr`dt_|r�dt_
t��}tj}tj}zN|t_|t_t||dd�}	t|	t�s�|��}
|�|
�|��W|t_|t_q�|t_|t_0n|j
t_
t|||j
d�}	|�r$ddlmm��fdd�|D�|	_t��||	_|	W|�rDt��dt_Sdt_n|�rbt��dt_0dS)NT)�exitF)�display_failurercsg|]}��|��d��qS)zus-ascii)Ztostring�decode)�.0�x�ZETrr�
<listcomp>�s�z_runtest.<locals>.<listcomp>)Zverbose3Ztimeout�faulthandlerZdump_traceback_later�time�perf_counterrZset_match_testsZmatch_testsZignore_testsZxmlpathZjunit_xml_listZfailfast�verbose�io�StringIO�sys�stdout�stderr�_runtest_innerr>r �getvalue�write�flushZxml.etree.ElementTreeZetreeZElementTreerrZcancel_dump_traceback_later)r=rQZoutput_on_failureZuse_timeoutZ
start_timeZxml_list�streamZorig_stdoutZorig_stderrr<�outputrrYr�_runtest�sd
�


�
�
���rjcCsPzt||�WS|js>t��}td|�d|��tjdd�t|�YS0dS)aRun a single test.

    ns -- regrtest namespace of options
    test_name -- the name of the test

    Returns a TestResult sub-class depending on the kind of result received.

    If ns.xmlpath is not None, xml_data is a list containing each
    generated testsuite element.
    �test � crashed -- T��filergN)rj�pgo�	traceback�
format_exc�printrarcr")r=rQ�msgrrr�runtest�s�rtcCsHt��}|�|�}|jD]}t|tjd�q|jr:td��t�	|�dS)N)rnzerrors while loading tests)
�unittestZ
TestLoaderZloadTestsFromModuler#rrrarc�	ExceptionrZrun_unittest)�
the_module�loaderrNr(rrr�_test_modules

ryc	Cs�t||�}t�|�t�|�}t|dd�}|dur>t�t|�}z.|j	rTt
|||�}n
|�d}Wt||j�nt||j�0t�
�tjr�dt_t|�dttj��d��t�tj�tj��t��|S)NZ	test_mainFTz	 created z uncollectable object(s).)rSrZunload�	importlib�
import_module�getattr�	functools�partialryZ
huntrleaksr�cleanup_test_droppingsr^�
gc_collect�gcZgarbage�environment_alteredr	r/�
FOUND_GARBAGE�extend�clearZ
reap_children)r=rQZabstestrwZtest_runner�refleakrrr�_runtest_inner2
s(



r�T)r=rQrUrc
Csddt_|jrd}zLt�t||j|j|jd��}t||�}Wd�n1sN0YW�n�tjy�}z6|js�|js�t	|�d|��dd�t|�WYd}~Sd}~0t
j�y�}z6|js�|js�t	|�d|��dd�t|�WYd}~Sd}~0tj
�yd}zNd|�d�}|�r.|�d|��}t	|tjdd	�t||j|jd
�WYd}~Sd}~0tj�y�}zDd|�d�}|�r�|�d|��}t	|tjdd	�t|�WYd}~Sd}~0tj�y�t|�YSt�y�t	�t|�YS|j�s0t��}t	d|�d|��tjdd	�t|�YS0|�rLt|�S|j�r\t|�St|�S)NF)roz skipped -- T)rgrkr.z -- rm)r#r$rl)rr�rorrr^�quietr�r6rrruZSkipTestr5ZTestFailedWithDetailsrarcr"r#r$Z
TestFailedZ
TestDidNotRunr9�KeyboardInterruptr7rprqr2r4Zchangedr3r )r=rQrUZenvironmentr�rs�excrrrrd6sX.&�rd�intr)rQr^rcCs
t��tjfD]�}tj�|�s"qtj�|�rDddl}d|j}}n*tj�	|�r^dtj
}}ntd|�d���|r�t|�d|�d|���dt_
z.ddl}t�||j|jB|jB�||�Wqt�y}z*t|�d|�d|�d	|���WYd}~qd}~00qdS)
NrZ	directoryrnz
os.path says z) exists but is neither directory nor filez
 left behind r,Tz and it couldn't be removed: )rr�ZTESTFNr@rA�exists�isdir�shutilZrmtree�isfile�unlink�RuntimeErrorr	r��stat�chmod�S_IRWXU�S_IRWXG�S_IRWXOrv)rQr^rr��kindZnukerr�r�rrrrns*�r)N)T)3Z
__future__rr[r}r�rzr_r@rar\rpru�testrZtest.libregrtest.refleakrrZtest.libregrtest.cmdlinerZtest.libregrtest.save_envrZtest.libregrtest.utilsrr	r
r r"r2r3r4r5r6r7r8r9r:ZPROGRESS_MIN_TIMEZSTDTESTSrHZNOTTESTSr�r?rErPrSrjrtryr�rdrrrrr�<module>sT"

9
-�8