Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/bisect_cmd.cpython-310.opt-2.pyc

o

0�i��@s�	ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	dd�Z
dd�Zdd�Zdd	�Z
d
d�Zddd
�Zdd�Zdd�ZedkrOe�dSdS)�NcCsNt|d��}|D]}t||d�q|��Wd�dS1s wYdS)N�w)�file)�open�print�flush)�filename�tests�fp�name�r�6/opt/alt/python310/lib64/python3.10/test/bisect_cmd.py�write_testss

"�r
cCs*|sdStdt|�|f�t||�|S)NzWriting %s tests into %s)r�lenr
)rrrrr�write_output&s

rcCs
d�|�S)N� )�join)�argsrrr�format_shell_args.s
rcCs(tjg}|�t���|�t���|S�N)�sys�
executable�extend�
subprocessZ_args_from_interpreter_flagsZ"_optim_args_from_interpreter_flags)�cmdrrr�
python_cmd2srcCslt�}|�gd��|�|j�tj|tjdd�}|j}|r/t|�}td||f�t	�
|�|j��}|S)N)�-m�testz--list-casesT)�stdoutZuniversal_newlinesz1Failed to list tests: %s failed with exit code %s)
rr�	test_argsr�run�PIPE�
returncoderrr�exitr�
splitlines)rr�proc�exitcoderrrr�
list_cases9s ��

r&c	Cs�t��}z4t||�t�}|�ddd|g�|�|j�tdt|��t�	|�}|j
Wtj�
|�r8t�|�SStj�
|�rEt�|�ww)Nrrz--matchfilez+ %s)�tempfileZmktempr
rrrrrrrr!�os�path�exists�unlink)rrZ
huntrleaks�tmprr$rrr�	run_testsJs

��r-cCsft��}|jdddd�|jdddd�|jdd	td
dd�|jd
dtddd�|��\}}||_|S)Nz-iz--inputzUTest names produced by --list-tests written into a file. If not set, run --list-tests)�helpz-oz--outputzResult of the bisectionz-nz--max-tests�z:Maximum number of tests to stop the bisection (default: 1))�type�defaultr.z-Nz
--max-iter�dz5Maximum number of bisection iterations (default: 100))�argparse�ArgumentParser�add_argument�intZparse_known_argsr)�parserrrrrr�
parse_argsZs ����r8cCs^t�}d|jvs
d|jvrtd�t�|jr4t|j��}dd�|D�}Wd�n1s.wYnt|�}tdt|��tdt|j��td|j|j	f�t
|j|�}t�t�
�}d	}zit|�|jkr�||j	kr�t|�}t|d
d	�}t�||�}td|t|�t|�f�t�t||�}td|t|�f�td
|�|r�td�|}t
|j|�}ntd�t�|d	7}t|�|jkr�||j	ksoWnty�t�td�t�Ynwtdt|��|D]}	td|	�q�t�|r�td|�t�t�
�|�}
t|�|jk�r!td|tj|
d�f�t�d	�dStd|tj|
d�f�dS)Nz-wz
--verbose2z;WARNING: -w/--verbose2 option should not be used to bisect!cSsg|]}|���qSr)�strip)�.0�linerrr�
<listcomp>vszmain.<locals>.<listcomp>zStart bisection with %s testszTest arguments: %szxBisection will stop when getting %s or less tests (-n/--max-tests option), or after %s iterations (-N/--max-iter option)r/�z![+] Iteration %s: run %s tests/%szran %s tests/%sr"z*Tests failed: continuing with this subtestz;Tests succeeded: skipping this subtest, trying a new subsetzBisection interrupted!zTests (%s):z* %szOutput written into %sz+Bisection completed in %s iterations and %s)Zsecondsz+Bisection failed after %s iterations and %s)r8rr�inputrr&rrZ	max_testsZmax_iterr�output�time�	monotonic�max�randomZsampler-�KeyboardInterrupt�mathZceil�datetimeZ	timedeltarr")rr	rr?Z
start_timeZ	iterationZntestZsubtestsr%rZdtrrr�mainnsx��
��

��
��
�rG�__main__r)r3rFZos.pathr(rErCrrr'r@r
rrrr&r-r8rG�__name__rrrr�<module>s*
D
�