File: //usr/local/lib/python3.7/test/libregrtest/__pycache__/runtest.cpython-37.opt-2.pyc
B
��g1) � @ sv 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 ZdZddddddddd d!g
Z e!� Z"g Z#d"d#� Z$d$d%� Z%d;d&d'�Z&de e"fd(d)�Z'd*d+� Z(e �)d,d-�Z*d.d/� Z+d0d1� Z,d2d3� Z-d4d5� Z.d<d7d8�Z/d9d:� Z0dS )=� 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 }|ttttfkrdS |tkr(|jS dS )NFT)�result�PASSED�RESOURCE_DENIED�SKIPPED�TEST_DID_NOT_RUN�ENV_CHANGEDZfail_env_changed)r �ns�ok� r �4/usr/local/lib/python3.7/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 sv t | �} t�| �}g }t|�|B }xF|D ]>}tj�|�\}}|d d� dkr(|dkr(||kr(|�|� q(W |t|� S )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
sN | j }| jd k }|r$tj| jdd� t�� }�zt�| j| j � | j
rJg nd t_}| jr`dt_|r�dt_
t�� }tj}tj}z@|t_|t_t| |dd�} | tkr�|�� }
|�|
� |�� W d |t_|t_X n| j
t_
t| || j
d�} |�rdd lm m� � fdd�|D �}nd }t�� | }t|| ||�S |�rBt�� d t_X d S )NT)�exitF)�display_failurer c s g | ]}� � |��d ��qS )zus-ascii)Ztostring�decode)�.0�x)�ETr r �
<listcomp>� s z_runtest.<locals>.<listcomp>)Zverbose3Ztimeout�faulthandlerZdump_traceback_later�timeZperf_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 sL
rK c C sN y
t | |�S | js<t�� }td|� d|� �tjdd� t|tdd �S d S )Nztest z crashed -- T)�filerH g ) rK �pgo� traceback�
format_exc�printrB rD r5 �FAILED)r r �msgr r r �runtest� s
rS c C sL t �� }|�| �}x|jD ]}t|tjd� qW |jr>td��t� |� d S )N)rL zerrors while loading tests)
�unittestZ
TestLoaderZloadTestsFromModule�errorsrP rB rD � Exceptionr Zrun_unittest)�
the_module�loaderr/ �errorr r r �_test_module� s
rZ c C s� t | |�}t�|� t�|�}t|dd �}|d kr>t�t|�}z"| j rTt
| ||�}n
|� d}W d t|| j� X 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�partialrZ Z
huntrleaksr �cleanup_test_droppingsr? �
gc_collect�gcZgarbage�environment_alteredr �len�
FOUND_GARBAGE�extend�clearZ
reap_children)r r ZabstestrW Ztest_runner�refleakr r r �_runtest_inner2� s(
ri Tc
C s� dt _| jrd}y8t� t|| j| j| jd��}t| |�}W d Q R X W �nD t jk
r� } z&| js~| js~t |� d|� �dd� t
S d }~X Y � n� tjk
r� } z&| js�| js�t |� d|� �dd� t
S d }~X Y n� t jk
�r( } z4d|� d�}|�r|� d|� �}t |tjdd � tS d }~X Y nf t jk
�r> tS tk
�rX t � tS | j�s�t�� }t d|� d
|� �tjdd � tS |�r�tS |j�r�tS tS )NF)rM z skipped -- T)rH ztest z failedz -- )rL rH z crashed -- )r rc rM r r r? �quietri ZResourceDeniedrP r rT ZSkipTestr Z
TestFailedrB rD rQ Z
TestDidNotRunr �KeyboardInterrupt�INTERRUPTEDrN rO Zchangedr r )r r r7 Zenvironmentrh rR �excr r r rE sJ rE c C s t �� x�t jfD ]�}tj�|�s$qtj�|�rFdd l}d|j }}n*tj� |�r`dtj
}}ntd|�d���|r�td| ||f � dt _
y.dd l}t�||j|jB |jB � ||� W q tk
r� } z"t| � d|� d |�d
|� �� W d d }~X Y qX qW d S )Nr Z directoryrL z
os.path says z) exists but is neither directory nor filez%r left behind %s %rTz
left behind � z and it couldn't be removed: )r ra ZTESTFNr r! �exists�isdir�shutilZrmtree�isfile�unlink�RuntimeErrorr rc �stat�chmod�S_IRWXU�S_IRWXG�S_IRWXOrV )r r? r0 rq �kindZnukerru rm r r r r` 0 s&