File: //proc/276314/root/usr/lib/python3.9/test/libregrtest/__pycache__/runtest.cpython-39.pyc
a
kx�g+) � @ sf d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlmZ d dl
mZmZ d dlmZ d dlmZmZ dZd ZdZdZd Zd
ZdZdZd
Zedededededededededi ZdZg d�Z e!� Z"g Z#dd� Z$dd� Z%d2dd�Z&de e"fdd �Z'd!d"� Z(e �)d#d$�Z*d%d&� Z+d'd(� Z,d)d*� Z-d+d,� Z.d3d.d/�Z/d0d1� Z0dS )4� N)�support)�dash_R�clear_caches)�saved_test_environment)�format_duration�
print_warning� ���������������i����i����z %s passedz %s failedz%s failed (env changed)z
%s skippedz%s skipped (resource denied)z%s interruptedz
%s crashedz%s run no testsz%s timed outg >@)
Ztest_grammarZtest_opcodesZ test_dictZtest_builtinZtest_exceptionsZ
test_typesZ
test_unittestZtest_doctestZ
test_doctest2Ztest_supportc C s, | j }|ttttfv rdS |tkr(|jS dS )NFT)�result�PASSED�RESOURCE_DENIED�SKIPPED�TEST_DID_NOT_RUN�ENV_CHANGEDZfail_env_changed)r �ns�ok� r �./usr/lib/python3.9/test/libregrtest/runtest.py� is_failedE s r c C s8 t �| jd�}|| j }| jtkr4d|t| j�f }|S )Nz%sz%s (%s))�_FORMAT_TEST_RESULT�getr � test_name�TIMEOUTr � test_time)r Zfmt�textr r r �format_test_resultN s
r c C s | pt j�t j�t��pt jS )N)�os�path�dirname�__file__�curdir)r! r r r �findtestdirV s r% c C sr t | �} t�| �}g }t|�|B }|D ]>}tj�|�\}}|dd� dkr&|dv r&||vr&|�|� q&|t|� S )z-Return a list of all applicable test modules.N� Ztest_)z.py� )r% r �listdir�setr! �splitext�append�sorted) �testdirZstdtestsZnottests�names�testsZothers�name�modZextr r r � findtestsZ s
r2 c C s |� d�s| jr|S d| S d S )Nztest.)�
startswithr- )r r r r r �get_abs_moduleg s r4 �
TestResultz#test_name result test_time xml_datac
sx | j }| jd u}|r$tj| jdd� t�� }�z.t�| j| j � | j
rJg nd t_}| jr`dt_|r�dt_
t�� }tj}tj}zL|t_|t_t| |dd�} | tkr�|�� }
|�|
� |�� W |t_|t_q�|t_|t_0 n| j
t_
t| || j
d�} |�r"dd lm m� � fdd�|D �}nd }t�� | }t|| ||�W |�rNt�� d t_S d t_n|�rlt�� d t_0 d S )NT)�exitF)�display_failurer c s g | ]}� � |��d ��qS )zus-ascii)Ztostring�decode)�.0�x�ZETr r �
<listcomp>� � z_runtest.<locals>.<listcomp>)Zverbose3Ztimeout�faulthandlerZdump_traceback_later�time�perf_counterr Zset_match_testsZmatch_testsZignore_testsZxmlpathZjunit_xml_listZfailfast�verbose�io�StringIO�sys�stdout�stderr�_runtest_innerr �getvalue�write�flushZxml.etree.ElementTreeZetreeZElementTreer5 Zcancel_dump_traceback_later)
r r Zoutput_on_failureZuse_timeoutZ
start_timeZxml_list�streamZorig_stdoutZorig_stderrr �outputZxml_datar r r; r �_runtestr sb
�
�
�� �rM c C sV zt | |�W S | js>t�� }td|� d|� �tjdd� t|tdd� Y S 0 dS )a� Run a single test.
ns -- regrtest namespace of options
test_name -- the name of the test
Returns the tuple (result, test_time, xml_data), where result is one
of the constants:
INTERRUPTED KeyboardInterrupt
RESOURCE_DENIED test skipped because resource denied
SKIPPED test skipped for some other reason
ENV_CHANGED test failed because it changed the execution environment
FAILED test failed
PASSED test passed
EMPTY_TEST_SUITE test ran no subtests.
TIMEOUT test timed out.
If ns.xmlpath is not None, xml_data is a list containing each
generated testsuite element.
�test � crashed -- T��filerJ g N) rM �pgo� traceback�
format_exc�printrD rF r5 �FAILED)r r �msgr r r �runtest� s �rX c C sH t �� }|�| �}|jD ]}t|tjd� q|jr:td��t� |� d S )N)rQ zerrors while loading tests)
�unittestZ
TestLoaderZloadTestsFromModule�errorsrU rD rF � Exceptionr Zrun_unittest)�
the_module�loaderr/ �errorr r r �_test_module� s
r_ c C s� t | |�}t�|� t�|�}t|dd �}|d u r>t�t|�}z.| j rTt
| ||�}n
|� d}W t|| j� nt|| j� 0 t�
� tjr�dt_t|� dttj�� d�� t�tj� tj�� t�� |S )NZ test_mainFTz created z uncollectable object(s).)r4 r Zunload� importlib�
import_module�getattr� functools�partialr_ Z
huntrleaksr �cleanup_test_droppingsrA �
gc_collect�gcZgarbage�environment_alteredr �len�
FOUND_GARBAGE�extend�clearZ
reap_children)r r Zabstestr\ Ztest_runner�refleakr r r �_runtest_inner2� s(
rn Tc
C s� dt _| jrd}zLt� t|| j| j| jd��}t| |�}W d � n1 sN0 Y W �n` t jy� } z2| js�| js�t |� d|� �dd� t
W Y d }~S d }~0 tj� y� } z2| js�| js�t |� d|� �dd� t
W Y d }~S d }~0 t j�yN } z@d|� d�}|�r&|� d|� �}t |tjdd � tW Y d }~S d }~0 t j�yf t Y S t�y� t � t Y S | j�s�t�� }t d|� d
|� �tjdd � t Y S 0 |�r�tS |j�r�tS tS )NF)rR z skipped -- T)rJ rN z failedz -- rP rO )r rh rR r r rA �quietrn ZResourceDeniedrU r rY ZSkipTestr Z
TestFailedrD rF rV Z
TestDidNotRunr �KeyboardInterrupt�INTERRUPTEDrS rT Zchangedr r )r r r7 Zenvironmentrm rW �excr r r rG sL .�
rG c C s
t �� t jfD ]�}tj�|�s"qtj�|�rDdd l}d|j }}n*tj� |�r^dtj
}}ntd|�d���|r�t| � d|� d|��� dt _
z.dd l}t�||j|jB |jB � ||� W q t�y } z*t| � d|� d|�d |� �� W Y d }~qd }~0 0 qd S )
Nr Z directoryrQ z
os.path says z) exists but is neither directory nor filez
left behind � Tz and it couldn't be removed: )r rf ZTESTFNr r! �exists�isdir�shutilZrmtree�isfile�unlink�RuntimeErrorr rh �stat�chmod�S_IRWXU�S_IRWXG�S_IRWXOr[ )r rA r0 rv �kindZnukerrz rr r r r re 0 s* �re )N)T)1�collectionsr>