Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/bisect_cmd.cpython-38.opt-1.pyc
U

>��gg�@s�dZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
dd�Zdd�Zdd�Z
d	d
�Zddd�Zd
d�Zdd�Zedkr�e�dS)a�
Command line tool to bisect failing CPython tests.

Find the test_os test method which alters the environment:

    ./python -m test.bisect_cmd --fail-env-changed test_os

Find a reference leak in "test_os", write the list of failing tests into the
"bisect" file:

    ./python -m test.bisect_cmd -o bisect -R 3:3 test_os

Load an existing list of tests from a file using -i option:

    ./python -m test --list-cases -m FileTests test_os > tests
    ./python -m test.bisect_cmd -i tests test_os
�Nc	Cs8t|d��$}|D]}t||d�q|��W5QRXdS)N�w)�file)�open�print�flush)�filename�tests�fp�name�r�./opt/cppython/lib/python3.8/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.srcCsftjdddg}|�|j�tj|tjdd�}|j}|rXt|�}t	d||f�t�
|�|j��}|S)N�-m�testz--list-casesT)�stdout�universal_newlinesz1Failed to list tests: %s failed with exit code %s)
�sys�
executable�extend�	test_args�
subprocess�run�PIPE�
returncoderr�exitr�
splitlines)r�cmd�proc�exitcoderrrr�
list_cases2s��

r%c	Cspt��}zJt||�tjddd|g}|�	|j
�tdt|��t
�|�}|jW�Stj�|�rjt�|�XdS)Nrrz--matchfilez+ %s)�tempfile�mktemp�os�path�exists�unlinkr
rrrrrrrrr)rrZ
huntrleaks�tmpr"r#rrr�	run_testsBs


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�int�parse_known_argsr)�parserrrrrr�
parse_argsQs ����r9c	Cst�}|jr2t|j��}dd�|D�}W5QRXnt|�}tdt|��tdt|j��td|j|j	f�t
|j|�}t�t�
�}d}z�t|�|jk�rN||j	k�rNt|�}t|dd�}t�||�}td|t|�t|�f�t�t||�}td	|t|�f�td
|�|�r6td�|}t
|j|�}ntd�t�|d7}q�Wn*tk
�rzt�td
�t�YnXtdt|��|D]}	td|	��q�t�|�r�td|�t�t�
�|�}
t|�|jk�rtd|tj|
d�f�t�d�ntd|tj|
d�f�dS)NcSsg|]}|���qSr)�strip)�.0�linerrr�
<listcomp>jszmain.<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)r9�inputrr%rrrrZ	max_testsZmax_iterr�output�time�	monotonic�max�random�sampler-�KeyboardInterrupt�math�ceil�datetimeZ	timedeltarr )rr	rr@Z
start_timeZ	iterationZntestZsubtestsr$rZdtrrr�mainesh
��

��rJ�__main__)N)�__doc__r3rIZos.pathr(rGrDrrr&rAr
rrr%r-r9rJ�__name__rrrr�<module>s$
A

F1le Man4ger