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__/test_regrtest.cpython-38.pyc
U

>��gq��@sPdZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlmZddlmZddlmZee
d�Zej�ej�e�dd�Zej�ej�e��ZdZe
�d	�ZGd
d�dej �Z!Gdd
�d
ej �Z"Gdd�de"�Z#Gdd�de"�Z$Gdd�de"�Z%Gdd�dej �Z&e'dk�rLe�(�dS)zM
Tests of regrtest.py.

Note: test_regrtest cannot be run twice in parallel.
�N)�libregrtest)�support)�utilsZgettotalrefcountz..z5[0-9]+:[0-9]+:[0-9]+ (?:load avg: [0-9]+\.[0-9]{2} )?z�
    from signal import SIGINT, raise_signal
    try:
        raise_signal(SIGINT)
    except ImportError:
        import os
        os.kill(os.getpid(), SIGINT)
    c@sbeZdZdZdd�Zdd�Ze�ee	d�d�dd	��Z
d
d�Zdd
�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Z d6d7�Z!d8d9�Z"d:d;�Z#d<d=�Z$d>d?�Z%d@dA�Z&dBdC�Z'dDdE�Z(dFdG�Z)dHdI�Z*dJdK�Z+dLdM�Z,dNdO�Z-dPdQ�Z.dRdS�Z/dTS)U�ParseArgsTestCasezC
    Test regrtest's argument parsing, function _parse_args().
    c
CsHt���&}|�t��t�|�W5QRXW5QRX|�||���dS�N)rZcaptured_stderr�assertRaises�
SystemExitr�_parse_args�assertIn�getvalue)�self�args�msg�err�r�1/opt/cppython/lib/python3.8/test/test_regrtest.py�
checkError-szParseArgsTestCase.checkErrorcCsldD]b}|j|d��Lt���(}|�t��t�|g�W5QRXW5QRX|�d|���W5QRXqdS)N)z-hz--help��optzRun Python regression tests.)	�subTestrZcaptured_stdoutrrrr	r
r)rr�outrrr�	test_help2s
� zParseArgsTestCase.test_help�dump_traceback_laterz,faulthandler.dump_traceback_later() requiredcCs>t�ddg�}|�|jd�|�dgd�|�ddgd�dS)N�	--timeoutz4.2g������@�expected one argument�foozinvalid float value)rr	�assertEqual�timeoutr�r�nsrrr�test_timeout:szParseArgsTestCase.test_timeoutcCst�dg�}|�|j�dS)N�--wait)rr	�
assertTrue�waitrrrr�	test_waitBszParseArgsTestCase.test_waitcCs.t�ddg�}|�|jd�|�dgd�dS)Nz
--worker-argsz[[], {}]r)rr	rZworker_argsrrrrr�test_worker_argsFsz"ParseArgsTestCase.test_worker_argsc
CsPdD]F}|j|d��0t�|dg�}|�|jd�|�|gd�W5QRXqdS)N)z-S�--startrrr)rrr	r�startr�rrrrrr�
test_startKs
zParseArgsTestCase.test_startcCs�t�dg�}|�|jd�t�dg�}|�|jd�t�dg�}|�|jd�t�dgd�}|�|jd�t�g�}|�|jd�dS)N�-v�z-vvv��	--verboser)rr	r�verboserrrr�test_verboseRs
zParseArgsTestCase.test_verbosec
Cs>dD]4}|j|d��t�|g�}|�|j�W5QRXqdS)N)�-wz
--verbose2r)rrr	r"Zverbose2r(rrr�
test_verbose2^szParseArgsTestCase.test_verbose2c
Cs>dD]4}|j|d��t�|g�}|�|j�W5QRXqdS)N)�-Wz
--verbose3r)rrr	r"Zverbose3r(rrr�
test_verbose3dszParseArgsTestCase.test_verbose3c
CsLdD]B}|j|d��,t�|g�}|�|j�|�|jd�W5QRXqdS)N)�-q�--quietrr)rrr	r"�quietrr.r(rrr�
test_quietjs
zParseArgsTestCase.test_quietc
Cs>dD]4}|j|d��t�|g�}|�|j�W5QRXqdS)N)z-o�	--slowestr)rrr	r"Z
print_slowr(rrr�test_slowestqszParseArgsTestCase.test_slowestcCs4t�dg�}|�|j�t�dg�}|�|j�dS)Nz--headerr-)rr	r"�headerrrrr�test_headerwszParseArgsTestCase.test_headerc
Cs>dD]4}|j|d��t�|g�}|�|j�W5QRXqdS)N)�-rz--randomizer)rrr	r"�	randomizer(rrr�test_randomize~sz ParseArgsTestCase.test_randomizecCsJt�ddg�}|�|jd�|�|j�|�dgd�|�ddgd�dS)Nz
--randseedZ12345i90rr�invalid int value)rr	rZrandom_seedr"r=rrrrr�
test_randseed�s
zParseArgsTestCase.test_randseedc
CsbdD]X}|j|d��Bt�|dg�}|�|jd�|�|gd�|�|ddgd�W5QRXqdS)N)�-f�
--fromfilerrr�-s�don't go together)rrr	r�fromfilerr(rrr�
test_fromfile�szParseArgsTestCase.test_fromfilec
Cs>dD]4}|j|d��t�|g�}|�|j�W5QRXqdS)N)z-x�	--excluder)rrr	r"�excluder(rrr�test_exclude�szParseArgsTestCase.test_excludec
CsPdD]F}|j|d��0t�|g�}|�|j�|�|ddgd�W5QRXqdS)N)rCz--singlerrArrD)rrr	r"Zsinglerr(rrr�test_single�s
zParseArgsTestCase.test_singlec
Cs�dD]H}|j|d��2t�|dg�}|�|jdg�|�|gd�W5QRXq|�tjtj	�t
tj	d��}td|d�td|d�W5QRXtj
�tj	�}t�d	d
d|g�}|�|jddg�dS)N)z-iz--ignorer�patternr�w�
matchfile1��file�
matchfile2�-m�match�--ignorefile)rrr	rZignore_testsr�
addCleanupr�unlink�TESTFN�open�print�os�path�abspath�rrr�fp�filenamerrr�test_ignore�s"��zParseArgsTestCase.test_ignorec
Cs�dD]H}|j|d��2t�|dg�}|�|jdg�|�|gd�W5QRXqt�ddddg�}|�|jddg�|�tjtj	�t
tj	d��}td	|d
�td|d
�W5QRXtj
�tj	�}t�ddd
|g�}|�|jdd	dg�dS)N)rQz--matchrrKrrQZpattern1Zpattern2rLrMrNrPrR�--matchfile)rrr	rZmatch_testsrrTrrUrVrWrXrYrZr[r\rrr�
test_match�s,���zParseArgsTestCase.test_matchc
CshdD]^}|j|d��Ht�|dg�}|�|j�t�|dg�}|�|j�|�|gd�W5QRXqdS)N)z-Gz
--failfastrr*r2z#-G/--failfast needs either -v or -W)rrr	r"Zfailfastrr(rrr�
test_failfast�szParseArgsTestCase.test_failfastc
Cs�dD]�}|j|d���t�|dg�}|�|jddg�t�|dg�}|�|jdg�ttj�}|�d�t�|dg�}|�|j|�|�|gd�|�|d	gd
�t�|dg�}|�|jttj�dg�t�|d
g�}|�|jd
g�W5QRXqdS)N)�-uz--userzgui,networkZgui�networkzgui,none,networkzall,-guirrzinvalid resourcez
all,tzdataZtzdataZextralargefile)	rrr	rZ
use_resources�listZ
ALL_RESOURCES�remover)rrrZexpectedrrr�test_use�s$

�zParseArgsTestCase.test_usec
CsPdD]F}|j|d��0t�|dg�}|�|jd�|�|gd�W5QRXqdS)N)z-Mz
--memlimitrZ4Gr)rrr	r�memlimitrr(rrr�
test_memlimit�s
zParseArgsTestCase.test_memlimitcCs:t�ddg�}|�|jtj�tjd��|�	dgd�dS)Nz	--testdirrr)
rr	r�testdirrYrZ�joinr�SAVEDCWDrrrrr�test_testdir�szParseArgsTestCase.test_testdirc
Cs>dD]4}|j|d��t�|g�}|�|j�W5QRXqdS)N)z-Lz
--runleaksr)rrr	r"Zrunleaksr(rrr�
test_runleaks�szParseArgsTestCase.test_runleaksc
Cs�dD]�}|j|d���t�|dg�}|�|jd�t�|dg�}|�|jd�t�|dg�}|�|jd�t�|d	g�}|�|jd
�|�|gd�|�|dgd
�|�|dgd�|�|dgd�W5QRXqdS)N)z-R�--huntrleaksr�:)���
reflog.txtz6:)�rrrsz:3)rqr,rsz
6:3:leaks.log)rtr,z	leaks.logr�6z&needs 2 or 3 colon-separated argumentszfoo:zinvalid huntrleaks valuez6:foo)rrr	r�
huntrleaksrr(rrr�test_huntrleaks�s 
�z!ParseArgsTestCase.test_huntrleaksc
Cs�dD]z}|j|d��dt�|dg�}|�|jd�|�|gd�|�|dgd�|�|ddgd	�|�|d
dgd	�W5QRXqdS)N)z-jz--multiprocessr�2�rrr?�-TrD�0)rrr	rZuse_mprr(rrr�test_multiprocess
sz#ParseArgsTestCase.test_multiprocessc
Cs>dD]4}|j|d��t�|g�}|�|j�W5QRXqdS)N)rz�
--coverager)rrr	r"Ztracer(rrr�
test_coverageszParseArgsTestCase.test_coveragec
Cs\dD]R}|j|d��<t�|dg�}|�|jtj�tj	d��|�
|gd�W5QRXqdS)N)z-Dz
--coverdirrrr)rrr	r�coverdirrYrZrkrrlrr(rrr�
test_coverdirs�zParseArgsTestCase.test_coverdirc
Cs>dD]4}|j|d��t�|g�}|�|j�W5QRXqdS)N)z-Nz--nocoverdirr)rrr	ZassertIsNonerr(rrr�test_nocoverdir%sz!ParseArgsTestCase.test_nocoverdirc
Cs`dD]V}|j|d��@t�|dg�}|�|jd�|�|gd�|�|dgd�W5QRXqdS)N)z-tz--thresholdrZ1000i�rrr?)rrr	rZ	thresholdrr(rrr�test_threshold+sz ParseArgsTestCase.test_thresholdcCsldD]b}|j|d��Lt�t����}t�|g�}W5QRX|�|j�|�	�}|�
d|�W5QRXqdS)N)�-nz--nowindowsrz)the --nowindows (-n) option is deprecated)r�
contextlib�redirect_stderr�io�StringIOrr	r"Z	nowindowsrr
)rr�stderrrrrrr�test_nowindows3sz ParseArgsTestCase.test_nowindowsc
Cs>dD]4}|j|d��t�|g�}|�|j�W5QRXqdS)N)z-F�	--foreverr)rrr	r"�foreverr(rrr�test_forever<szParseArgsTestCase.test_forevercCs|�dgd�dS)Nz--xxxzusage:�r�rrrr�test_unrecognized_argumentBsz,ParseArgsTestCase.test_unrecognized_argumentcCs*t�dg�}|�|j�|�|jd�dS)Nz--quir)rr	r"r6rr.rrrr�test_long_option__partialEsz+ParseArgsTestCase.test_long_option__partialcCs8t�ddg�}|�|j�|�|jd�|�|j�dS)Nr5rGr)rr	r"r6rr.rHrrrr�test_two_optionsJsz"ParseArgsTestCase.test_two_optionscCs t�ddg�}|�|jd�dS)Nr&�)rr	rr'rrrr�#test_option_with_empty_string_valuePsz5ParseArgsTestCase.test_option_with_empty_string_valuecCs t�dg�}|�|jdg�dS)Nr)rr	rr
rrrr�test_argTszParseArgsTestCase.test_argcCs<t�ddg�}|�|j�|�|jd�|�|jdg�dS)Nr5rr)rr	r"r6rr.r
rrrr�test_option_and_argXsz%ParseArgsTestCase.test_option_and_argcCs4t�dddg�}|�|jd�|�|jddg�dS)NZtest_unaryopr*Z
test_binopr+)rr	rr.r
rrrr�test_arg_option_arg^sz%ParseArgsTestCase.test_arg_option_argcCs|�dgd�dS)Nz--unknown-optionz(unrecognized arguments: --unknown-optionr�r�rrr�test_unknown_optioncs�z%ParseArgsTestCase.test_unknown_optionN)0�__name__�
__module__�__qualname__�__doc__rr�unittest�
skipUnless�hasattr�faulthandlerr r$r%r)r/r1r3r7r9r;r>r@rFrIrJr_rarbrgrirmrnrwr|r~r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr(sX�
	
	rc	@sfeZdZdZdZdZdd�Zddd�Zd	d
�Zdd�Z	d
d�Z
ddd�Zdd�Zddd�Z
dd�ZdS)�BaseTestCaser+Ztest_regrtest_ztest_[a-zA-Z0-9_]+cCs4tj�tj�t��|_t��|_|�	t
j|j�dSr)rYrZ�realpath�dirname�__file__rj�tempfile�mkdtemp�
tmptestdirrTr�rmtreer�rrr�setUpms
zBaseTestCase.setUpNc
Cs�|sdtj}tjd7_|dkr.t�d�}|j|}tj�|j|d�}|�	t
j|�z(t|ddd��}|�
|�W5QRXWn>tk
r�}z t��s�|�d||f��W5d}~XYnX|S)	Nznoop%sr+z�
                    import unittest

                    class Tests(unittest.TestCase):
                        def test_empty_test(self):
                            pass
                z.py�xzutf-8)�encodingzcannot write %s: %s)r��TEST_UNIQUE_ID�textwrap�dedent�TESTNAME_PREFIXrYrZrkr�rTrrUrW�write�PermissionError�	sysconfig�is_python_build�skipTest)r�name�coderZr]�excrrr�create_testss 



zBaseTestCase.create_testcCs*t�||tj�}|s&|�d||f�|S)Nz%r not found in %r)�re�search�	MULTILINE�fail)r�regex�outputrRrrr�regex_search�szBaseTestCase.regex_searchcCs"t�d|tj�}|�||�dS)N�^)r��compiler��assertRegex�rr�r�rrr�
check_line�szBaseTestCase.check_linecCs0dt|jf}t�||tj�}tdd�|D��S)Nz"^%s\[ *[0-9]+(?:/ *[0-9]+)*\] (%s)css|]}|�d�VqdS)r+N��group��.0rRrrr�	<genexpr>�sz4BaseTestCase.parse_executed_tests.<locals>.<genexpr>)�
LOG_PREFIX�TESTNAME_REGEXr��finditerr�re)rr�r��parserrrr�parse_executed_tests�s
�z!BaseTestCase.parse_executed_testsrFcs�t|t�r|g}t|t�r |g}t|t�r0|g}t|t�r@|g}t|t�rP|g}t|t�r`|g}t|t�rp|g}|�|�}|	r�|�t|�t|�|�n|�|||�dd���fdd�}
|r�|
d|�}|�||�|r�|
d|�}|�||�|�r|
d|�}|�||�|�r$|
d|�}|�||�|�r||
d	|�}|�||�td
}|�||�|D]"}td|�d�}|�||��qX|�r�|
d
|�}|�||�t|�t|�t|�t|�t|�t|�}|�rd|�|�f}|�s�|�s�|dk�r�d|}|�||�|
�r|�|d�g}|�r0|�d�n|�rF|�rF|�d�|
�rV|�d�t	||||
|||f��sz|�d�n|�s�|�d�d�
|�}|�r�|�|d�d|}|�|d|�dS)NcSs|dkrdSdS)Nr+�sr�r)�countrrr�plural�sz1BaseTestCase.check_executed_tests.<locals>.pluralcs6t|�}d�t|��}||�|�f}d||f}|S)N� z%s:\n    %s$)�lenrk�sorted)Zline_format�testsr��namesr��r�rr�
list_regex�s
z5BaseTestCase.check_executed_tests.<locals>.list_regexz%s test%s skippedz%s test%s failedz+%s test%s altered the execution environmentz%s test%s omittedz%s re-run test%sz'Re-running failed tests in verbose modezRe-running z in verbose modez%s test%s run no testsz%s test%s OK\.$r+zAll %sz(Test suite interrupted by signal SIGINT.�FAILUREzENV CHANGEDZINTERRUPTEDzNO TEST RUN�SUCCESS�, zTests result: FAILUREzFAILURE then %szTests result: %s)�
isinstance�strr�r�setr�r�r��append�anyrk)rr�r��skipped�failed�env_changed�omitted�rerun�no_test_ranr=�interrupted�fail_env_changedZexecutedr�r�Z	test_nameZgood�resultrr�r�check_executed_tests�s�









�


���

�

z!BaseTestCase.check_executed_testscCs>|�d|�}t|�d��}|�d|ko0dkn|�|S)NzUsing random seed ([0-9]+)r+ri���)r��intr�r")rr�rR�randseedrrr�parse_random_seeds zBaseTestCase.parse_random_seedrcKsx|sd}d|krtj|d<tj|fd|tjd�|��}|j|krtdt|�|j|jf}|jrj|d|j7}|�|�|S)Nr�r�T)�universal_newlines�input�stdoutz8Command %s failed with exit code %s

stdout:
---
%s
---
z
stderr:
---
%s---
)�
subprocess�PIPE�run�
returncoder�r�r�r�)rr
r��exitcode�kw�procrrrr�run_commands*
��
��
zBaseTestCase.run_commandcKs&tjdddf|�}|j|f|�}|jS)Nz-Xr�z-I)�sys�
executabler�r�)rr
r�r�rrr�
run_python#szBaseTestCase.run_python)NN)	rrrrrrFFF)Nr)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr�hs(
�
`
r�c@seZdZdZdd�ZdS)�CheckActualTestszH
    Check that regrtest appears to find the expected set of tests.
    cCs|ddddddg}|�|�}t|���}tj�t�tj�t	��d�}tt�|��}|j
||dd	d
d�|�����d�dS)
N�-Wd�-E�-bbrQ�
test.regrtest�--list-testsztest*.py�	�
z+Unexpectedly low number of tests found in:
r�)r)r�r��
splitlinesrYrZrk�glob�escaper�r�Z
assertGreater)rr
r�Zrough_number_of_tests_foundZactual_testsuite_globZrough_counted_test_py_filesrrr�#test_finds_expected_number_of_tests.s
�
�z4CheckActualTests.test_finds_expected_number_of_testsN)r�r�r�r�rrrrrr�)sr�cs�eZdZdZdZ�fdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
e�e��d�dd��Zdd�Ze�e��d�e�ejdkd�dd���Ze�ejdkd�dd ��Z�ZS)!�ProgramsTestCasezp
    Test various ways to run the Python test suite. Use options close
    to options used on the buildbot.
    rrcsrt����fdd�t�j�D��_dddg�_ddd�jg�_tt	d	�rX�j�
d
�tjdkrn�j�
d�dS)
Ncsg|]}����qSr�r��r��indexr�rr�
<listcomp>Nsz*ProgramsTestCase.setUp.<locals>.<listcomp>r�r�r�z-uallz-rwW�--testdir=%sr)rZ3600z-j4�win32r�)�superr��range�NTESTr��python_argsr��
regrtest_argsr�r��extendr��platformr�r���	__class__r�rr�Js
�

zProgramsTestCase.setUpcCs |�|�|j||jdd�dS)NT)r=)r�r�r�)rr�rrr�check_outputXs
zProgramsTestCase.check_outputcCs|�|�}|�|�dSr)r�r)rr
r�rrr�	run_tests\s
zProgramsTestCase.run_testscCs2tj�|jd�}|j|f|j|j�}|�|�dS)Nzregrtest.py�rYrZrkrjrrr�r�r�scriptr
rrr�test_script_regrtest`sz%ProgramsTestCase.test_script_regrtestcCs |jd|j|j�}|�|�dS)NrQ�test)rQr�rrr�r�rr
rrr�test_module_testgs
�z!ProgramsTestCase.test_module_testcCs |jd|j|j�}|�|�dS)NrQr�)rQr�rrrrr�test_module_regrtestms
�z%ProgramsTestCase.test_module_regrtestcCs |jd|j|j�}|�|�dS)NrQ�
test.autotest)rQr"rrrrr�test_module_autotestss
�z%ProgramsTestCase.test_module_autotestcCs(d}|jd|f|j|j�}|�|�dS)Nzfrom test import autotestz-cr)rr�r
rrr�test_module_from_test_autotestys
�z/ProgramsTestCase.test_module_from_test_autotestcCs2tj�|jd�}|j|f|j|j�}|�|�dS)Nzautotest.pyrrrrr�test_script_autotest�sz%ProgramsTestCase.test_script_autotestz$run_tests.py script is not installedcCs0tj�tddd�}|f|j|j�}|�|�dS)N�ToolsZscriptszrun_tests.py)rYrZrk�ROOT_DIRrr�rrrrr�test_tools_script_run_tests�sz,ProgramsTestCase.test_tools_script_run_testscGs|�|�}|�|j�dSr)r�rr�)rr
r�rrr�	run_batch�s
zProgramsTestCase.run_batchz test.bat script is not installedr
zWindows onlycCsvtj�tddd�}d|jg}t��dkr6|�d�nt��ddkrP|�d	�t	s^|�d
�|j
|f||j��dS)Nr&Zbuildbotztest.batr�ARM64�-arm64r�64bit�-x64z+d)rYrZrkr'r�r�machiner��architecture�Py_DEBUGr)r�)rrZ	test_argsrrr�test_tools_buildbot_test�s

z)ProgramsTestCase.test_tools_buildbot_testcCs�tj�td�}tj�|�s,|�d|�d��dg}t��dkrJ|�d�nt�	�ddkrd|�d	�t
rr|�d
�|j|f||j|j
��dS)NzPCbuild\rt.batzFile "z" does not existr4r*r+rr,r-z-d)rYrZrkr'�isfiler�rr.r�r/r0r)rr�)rrZrt_argsrrr�test_pcbuild_rt�s

z ProgramsTestCase.test_pcbuild_rt)r�r�r�r�rr�rrrr r!r#r$r%r�r�r�r�r(r)r�rr1r3�
__classcell__rrrrrBs.
�

�rc@s$eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Ze�ed�dd��Ze�ed�dd��Zdd �Zd!d"�Zejd#d$��Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Z d3d4�Z!d5d6�Z"d7d8�Z#ejd9d:��Z$d;d<�Z%d=d>�Z&d?S)@�ArgsTestCasez2
    Test arguments of the Python test suite.
    cOs"ddd|jf|�}|j|f|�S)NrQrr)r�r�)rZtestargsr��cmdargsrrrr�szArgsTestCase.run_testscCsNt�d�}|�d�}|jd|d�}||g}|j|ddi�}|j|||d�dS)Nz�
            import unittest

            class FailingTest(unittest.TestCase):
                def test_failing(self):
                    self.fail("bug")
        �okZfailing�r�r�ry�r��r�r�r�rr�)rr�Ztest_okZtest_failingr�r�rrr�test_failing_test�s

zArgsTestCase.test_failing_testcCs�i}dD]"}t�d|�}|�||�||<qt|���}|jd|��}|�||�|jd	|��}|j|||dd�|j|�}|j|||d�dS)
N)Zaudiorda
                        from test import support; support.requires(%r)
                        import unittest
                        class PassingTest(unittest.TestCase):
                            def test_pass(self):
                                pass
                    rc�all�-uaudiord)r�)rcr<)r=)r�r�r�r��valuesrr�)rr��resourcer�Z
test_namesr�rrr�test_resources�s"��
�zArgsTestCase.test_resourcesc	Cs�t�d�}|�d|�}|�d|�}|�|�}|�d|�}t|�d��}|�dd||�}|�|�}|�||�|�d|�}t|�d��}|�||�dS)Nza
            import random
            print("TESTRANDOM: %s" % random.randint(1, 1000))
        �randomr<zTESTRANDOM: ([0-9]+)r+z
--randseed=%s)	r�r�r�rr�r�r�r�r)	rr�rr�r�rR�test_randomZ	randseed2Ztest_random2rrrrB�s


zArgsTestCase.test_randomc		s��fdd�td�D�}tj}��tj|�t|d��R}d}t|d�D]<\}}d||t|�|f}|rp|d|7}t||d�|}qDW5QRX��	d	|�}��
||�t|d��4}t|d�D]"\}}td
|t|�|f|d�q�W5QRX��	d	|�}��
||�t|d��}|D]}t||d��qW5QRX��	d	|�}��
||�t|d��"}|D]}td||d��qVW5QRX��	d	|�}��
||�dS)Ncsg|]}����qSrrr	r�rrrsz.ArgsTestCase.test_fromfile.<locals>.<listcomp>rqrLr+z00:00:%02i [%s/%s] %sz -- %s took 0 secrNrBz
[%s/%s] %szLib/test/%s.py)rrrVrTrUrW�	enumerater�rXrr�)	rr�r^r]Zpreviousr
r��liner�rr�rrF�s<�&zArgsTestCase.test_fromfilecCs6t}|jd|d�}|j|dd�}|j|||dd�dS)N�sigintr8��r�T�r�r�)�TEST_INTERRUPTEDr�rr��rr�rr�rrr�test_interrupted.s
�zArgsTestCase.test_interruptedcsR�fdd�td�D�}�jd|��}��||�d�jt|�f}��||�dS)Ncsg|]}����qSrrr	r�rrr7sz-ArgsTestCase.test_slowest.<locals>.<listcomp>r,r8z#10 slowest tests:
(?:- %s: .*
){%s})r8)rrr�r�r�r�)rr�r�r�rr�rr95s�zArgsTestCase.test_slowestc
Cs�t}|jd|d�}dD]f}|j|d��P|r8dd|f}nd|f}|j|ddi�}|j|||d	d
�d}|�||�W5QRXqdS)NrEr8)FT)�multiprocessingr8�-j2r�rFTrHz10 slowest tests:
)rIr�rrr�r�)rr�rrLr
r�r�rrr�test_slowest_interrupted?s�z%ArgsTestCase.test_slowest_interruptedcCs8|�d�}|�d|�}|�||g�d}|�||�dS)NZcoverager}zLlines +cov% +module +\(path\)\n(?: *[0-9]+ *[0-9]{1,2}% *[^ ]+ +\([^)]+\)+)+)r�rr�r�)rrr�r�rrrr~Qs

zArgsTestCase.test_coveragecCs*|�d�}|jd|dd�}|�|d�dS)Nr#r!�key)r�zPress any key to continue)r�rr�)rrr�rrrr$Zs
zArgsTestCase.test_waitcCsBt�d�}|jd|d�}|jd|dd�}|j||gd|d�dS)	NaL
            import builtins
            import unittest

            class ForeverTester(unittest.TestCase):
                def test_run(self):
                    # Store the state in the builtins module, because the test
                    # module is reload at each run
                    if 'RUN' in builtins.__dict__:
                        builtins.__dict__['RUN'] += 1
                        if builtins.__dict__['RUN'] >= 3:
                            self.fail("fail at the 3rd runs")
                    else:
                        builtins.__dict__['RUN'] = 1
        r�r8r�ryrGr,r9r:rJrrrr�`s
zArgsTestCase.test_foreverc
	Cs�|jd|d�}d}|�tj|�|jdd|dtjd�}|j||g|d�d	}|�|t	�
|��d
||f}|�||�t|��}|�
�}	|�||	�W5QRXdS)Nrvr8rsroz3:3:ry)r�r�r9z&beginning 6 repetitions
123456
......
z%s leaked [1, 1, 1] %s, sum=3
)r�rTrrUrr��STDOUTr�r�r�rr
rW�read)
rr�Zwhatrr^r�rDZline2r]Zreflogrrr�
check_leakus
�
zArgsTestCase.check_leakzneed a debug buildcCst�d�}|�|d�dS)Nz�
            import unittest

            GLOBAL_LIST = []

            class RefLeakTest(unittest.TestCase):
                def test_leak(self):
                    GLOBAL_LIST.append(object())
        Z
references�r�r�rR�rr�rrrrw�s
	zArgsTestCase.test_huntrleakscCst�d�}|�|d�dS)Na
            import os
            import unittest

            class FDLeakTest(unittest.TestCase):
                def test_leak(self):
                    fd = os.open(__file__, os.O_RDONLY)
                    # bug: never close the file descriptor
        zfile descriptorsrSrTrrr�test_huntrleaks_fd_leak�s
	z$ArgsTestCase.test_huntrleaks_fd_leakcs<�fdd�td�D�}�jd|��}��|����|�dS)Ncsg|]}����qSrr)r��ir�rrr�sz0ArgsTestCase.test_list_tests.<locals>.<listcomp>rqr)r)rrr�rstripr)rr�r�rr�r�test_list_tests�s
�zArgsTestCase.test_list_testscCspt�d�}|j|d�}d|d|g}|�d|�}|�|��|�d|g}|�ddd|�}|�|��|�dS)Nz�
            import unittest

            class Tests(unittest.TestCase):
                def test_method1(self):
                    pass
                def test_method2(self):
                    pass
        r8z%s.Tests.test_method1z%s.Tests.test_method2z--list-casesrQ�test_method1)r�r�r�rrr)rr��testname�all_methodsr�rrr�test_list_cases�s
	�
�zArgsTestCase.test_list_casescCsBd}|jd|d�}|g}|jd	|�ddi�}|j|||dd�dS)
Nz,import faulthandler; faulthandler._sigsegv()Zcrash)r�r�rMr�ryT)r�r=)rM)r�rr�)rr�Z
crash_testr�r�rrr�test_crashed�s
�zArgsTestCase.test_crashedcCs$tjdtjd�}dd�|�|�D�S)Nz^(test[^ ]+).*ok$)�flagscSsg|]}|�d��qS)r+r�r�rrrr�sz.ArgsTestCase.parse_methods.<locals>.<listcomp>)r�r�r�r�r�rrr�
parse_methods�szArgsTestCase.parse_methodsc
	Cs�t�d�}ddddg}|j|d�}tj}|�tj|�dd|g}t|d��}|D]}t||d	�qRW5QRX|�	d
d||�}|�
|�}	ddg}|�|	|�dS)N�V
            import unittest

            class Tests(unittest.TestCase):
                def test_method1(self):
                    pass
                def test_method2(self):
                    pass
                def test_method3(self):
                    pass
                def test_method4(self):
                    pass
        rY�test_method2�test_method3�test_method4r8�%s.Tests.test_method3rLrNr*rS)r�r�r�rrVrTrUrWrXrr_r)
rr�r[rZr^�subsetr]r�r��methodsrrr�test_ignorefile�s$

��
zArgsTestCase.test_ignorefilec
	Cs�t�d�}ddddg}|j|d�}|�d|�}|�|�}|�||�tj}|�tj	|�dd|g}t
|d	��}|D]}	t|	|d
�qtW5QRX|�dd||�}|�|�}ddg}|�||�dS)Nr`rYrarbrcr8r*rdrLrNr`)r�r�r�rr_rrrVrTrUrWrX)
rr�r[rZr�rfr^rer]r�rrr�test_matchfile�s*

�
�
zArgsTestCase.test_matchfilecCsZt�d�}|j|d�}|�|�}|j||g|d�|jd|dd�}|j||g|dd�dS)	Nz�
            import unittest

            class Tests(unittest.TestCase):
                def test_env_changed(self):
                    open("env_changed", "w").close()
        r8)r��--fail-env-changedr,rGT�r�r�r:�rr�rZr�rrr�test_env_changed"s

�zArgsTestCase.test_env_changedcCs>t�d�}|j|d�}|jd|dd�}|j||g||d�dS)Nz�
            import unittest

            class Tests(unittest.TestCase):
                def test_bug(self):
                    # test always fail
                    self.fail("bug")
        r8r0ryrG)r�r�r:rkrrr�test_rerun_fail5s

�zArgsTestCase.test_rerun_failcCs<t�d�}|j|d�}|jd|dd�}|j||g|d�dS)NaT
            import builtins
            import unittest

            class Tests(unittest.TestCase):
                failed = False

                def test_fail_once(self):
                    if not hasattr(builtins, '_test_failed'):
                        builtins._test_failed = True
                        self.fail("bug")
        r8r0rrG)r�r:rkrrr�test_rerun_successEs

�zArgsTestCase.test_rerun_successcCs>t�d�}|j|d�}|j|dddd�}|j||g|d�dS�N��
            import unittest

            class Tests(unittest.TestCase):
                def test_bug(self):
                    pass
        r8rQ�
nosuchtestrrG�r�r:rkrrr�test_no_tests_ranYs
zArgsTestCase.test_no_tests_rancCs6t�d�}|j|d�}|j|dd�}|�||g�dS)Nz�
            import unittest

            class Tests(unittest.TestCase):
                def test_skipped(self):
                    self.skipTest("because")
        r8rrGr:rkrrr�test_no_tests_ran_skipfs
z#ArgsTestCase.test_no_tests_ran_skipcCsRt�d�}|j|d�}|j|d�}|j||dddd�}|j|||g||gd�dSror:)rr�rZ�	testname2r�rrr�,test_no_tests_ran_multiple_tests_nonexistentss
�z9ArgsTestCase.test_no_tests_ran_multiple_tests_nonexistentc	Cs^t�d�}|j|d�}t�d�}|j|d�}|j||dddddd�}|j|||g|gd	�dS)
Nrpr8z�
            import unittest

            class Tests(unittest.TestCase):
                def test_other_bug(self):
                    pass
        rQrqZtest_other_bugrrGrrr:)rr�rZZ
other_coderur�rrr�)test_no_test_ran_some_test_exist_some_not�s

��z6ArgsTestCase.test_no_test_ran_some_test_exist_some_notcCsft�d�}|j|d�}|jd|dd�}|j||g|gdd�|jd|dd�}|j||g|gdd�dS)	Na�
            import _testcapi
            import gc
            import unittest

            @_testcapi.with_tp_del
            class Garbage:
                def __tp_del__(self):
                    pass

            class Tests(unittest.TestCase):
                def test_garbage(self):
                    # create an uncollectable object
                    obj = Garbage()
                    obj.ref_cycle = obj
                    obj = None
        r8rir,rGTrjz--findleaksr:rkrrr�test_findleaks�s

�
�zArgsTestCase.test_findleakscCsXt�d�}|j|d�}|jdd|dd�}|j||g|d�|�|t�d|tj��dS)	Naa
            import time
            import unittest
            try:
                import faulthandler
            except ImportError:
                faulthandler = None

            class Tests(unittest.TestCase):
                # test hangs and so should be stopped by the timeout
                def test_sleep(self):
                    # we want to test regrtest multiprocessing timeout,
                    # not faulthandler timeout
                    if faulthandler is not None:
                        faulthandler.cancel_dump_traceback_later()

                    time.sleep(60 * 5)
        r8rMz
--timeout=1.0ryrGr9z%s timed out)	r�r�r�rr�r�r�r�r�rkrrr�test_multiprocessing_timeout�s

��z)ArgsTestCase.test_multiprocessing_timeoutcCs~tj�|jd�}t�|�tj�|jd�}t|d���||g}ddd|jdg}|�|�|D]}|�tj�	|�|�q`dS)NZtest_python_123Ztest_python_456�wbrQrz--tempdir=%sz	--cleanup)
rYrZrkr��mkdirrW�closer�ZassertFalse�exists)rr�r^r�r6r�rrr�test_cleanup�s
�
zArgsTestCase.test_cleanupN)'r�r�r�r�rr;r@rBrFrKr9rNr~r$r�rRr�r�r0rwrUrXr\rZcpython_onlyr]r_rgrhrlrmrnrsrtrvrwrxryr~rrrrr5�sF0
	






$)


r5c@seZdZdd�ZdS)�	TestUtilscCs�|�t�d�d�|�t�d�d�|�t�d�d�|�t�d�d�|�t�d	�d
�|�t�d�d�|�t�d
�d�|�t�d�d�|�t�d�d�|�t�d�d�dS)Nrz0 msg��&�.>z1 msg{�G�z�?z10 msg�?z1.5 secr+z1.0 sec�xz2 min�yz2 min 1 seci0*z3 houri�*z3 hour 2 mini1*z3 hour 1 sec)rrZformat_durationr�rrr�test_format_duration�s<����������zTestUtils.test_format_durationN)r�r�r�r�rrrrr�sr�__main__))r�r�r�rr�Zos.pathrYrr�r�r�r�r�r�r�rrrZtest.libregrtestrr�r0rZrkr�r�r'r[�normpathr�r�rIZTestCaserr�r�rr5rr��mainrrrr�<module>sH


BBo7


F1le Man4ger