D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
lib
/
python3.8
/
test
/
libregrtest
/
__pycache__
/
Filename :
main.cpython-38.pyc
back
Copy
U �������gK`����������������������@���s��d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dl Z d�dl Z d�dlZd�dlm Z �d�dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ�d�dl m!Z!�d�dl"m#Z#�d�dl$m%Z%m&Z&m'Z'm(Z(�d�dl)m*Z*�dZ+G�d d ��d �Z,d dd�Z-dS�)�����N)�_parse_args)� findtests�runtest�get_abs_module�STDTESTS�NOTTESTS�PASSED�FAILED�ENV_CHANGED�SKIPPED�RESOURCE_DENIED�INTERRUPTED�CHILD_ERROR�TEST_DID_NOT_RUN�TIMEOUT�PROGRESS_MIN_TIME�format_test_result� is_failed)�setup_tests)�setup_pgo_tests)�removepy�count�format_duration� printlist)�supportg������^@c�������������������@���s����e�Zd�ZdZdd��Zdd��Zd7dd�Zd8d d�Zdd ��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��Zd d!��Zd"d#��Zd$d%��Zd&d'��Zd(d)��Zd*d+��Zd,d-��Zd.d/��Zd9d1d2�Zd3d4��Zd5d6��Zd0S�):�Regrtestal��Execute a test suite. This also parses command-line options and modifies its behavior accordingly. tests -- a list of strings containing test names (optional) testdir -- the directory in which to look for tests (optional) Users other than the Python test suite will certainly want to specify testdir; if it's omitted, the directory containing the Python test suite is searched for. If the tests argument is omitted, the tests listed on the command-line will be used. If that's empty, too, then all *.py files beginning with test_ will be used. The other default arguments (verbose, quiet, exclude, single, randomize, findleaks, use_resources, trace, coverdir, print_slow, and random_seed) allow programmers calling main() directly to set the values that would normally be set by flags on the command line. c�����������������C���s����d�|�_�g�|�_g�|�_g�|�_g�|�_g�|�_g�|�_g�|�_g�|�_g�|�_ d�|�_ d|�_g�|�_d�|�_ t���|�_d|�_d|�_d�|�_d�|�_d�|�_d�|�_d�|�_d�|�_d�S�)NF������)�ns�tests�selected�good�bad�skipped�resource_denieds�environment_changed�run_no_tests�rerun�first_result�interrupted� test_times�tracer�time� monotonic� start_time� test_count�test_count_width�next_single_test�next_single_filename� testsuite_xml�win_load_tracker�tmp_dir�worker_test_name��self��r9����+/usr/lib/python3.8/test/libregrtest/main.py�__init__6���s.���� zRegrtest.__init__c�����������������C���s<���t�|�j�t�|�j�B�t�|�j�B�t�|�j�B�t�|�j�B�t�|�j�B�S��N)�setr!���r"���r#���r$���r%���r&���r7���r9���r9���r:����get_executed`���s�������zRegrtest.get_executedFc�������������� ���C���s���|j�}|j}|ttfkr.|s.|�j�|j|f��|tkrD|�j�|��n�|t tfkrb|s�|�j �|��n�|tkrx|�j�|��n�|t kr�|�j�|��nj|tkr�|�j�|��|�j�|��nH|tkr�|�j�|��n2|tkr�d|�_n"|tkr�|�j �|��ntd|���|�r|t tthk�r|�j �|��|j}|�r�dd�lm��m}�|D�]F}z|�j�|�|���W�n(�|jk �r~���t|tj d����Y�nX��q<d�S�)NTzinvalid test result: %rr�����file)!� test_name�resultr���r ���r*����append� test_timer���r!���r ���r"���r ���r%���r���r#���r���r$���r���r&���r)���r���� ValueError�remove�xml_data�xml.etree.ElementTree�etree�ElementTreer3���Z fromstringZ ParseError�print�sys� __stderr__)r8���rB���r'���rA����okrG����ET�er9���r9���r:����accumulate_resulte���sD����zRegrtest.accumulate_resultr���c�����������������C���st���|�}|�����}|d�k r(d|d�d|���}t���|�j�}tjt|�d�}|��d|���}|rd|d�d��}t|dd��d�S�)Nz load avg: z.2f� )Zseconds���T)�flush)� getloadavgr,���r-���r.����datetimeZ timedelta�intrK���)r8����line�emptyZload_avgrD���r9���r9���r:����log����s����zRegrtest.logc�����������������C���sh���|�j�jrd�S�||�j���|�j���}t|�j�t|�j��}|rN|�j�jsN|��d|���}|��d|��d|�����d�S�)N�/�[z] ) r����quietr0���r/����lenr"���r%����pgorZ���)r8���� test_index�textrX���Zfailsr9���r9���r:����display_progress����s����zRegrtest.display_progressc����������� ������C���s����t�tjdd���f|�}|jr(g��t_|�_|j}|d�k r\ddlm }�||j�\}}||_||�_ t|j��|j r�|j \}}}|dk�s�|dk�r�d} t| tjdd��t�d��|jr�tj�|j�|_||�_d�S�)Nr���r���)�parse_worker_argszwInvalid values for the --huntrleaks/-R parameters. The number of warmups and repetitions must be at least 1 each (1:1).T�r@���rT�������)r���rL����argv�xmlpathr���Zjunit_xml_listr3����worker_args�test.libregrtest.runtest_mprc���r6���r����args� huntrleaksrK����stderr�exit�tempdir�os�path� expanduserr���) r8����kwargsr���rh���rc���rA����warmup�repetitions�_�msgr9���r9���r:���� parse_args����s&���� zRegrtest.parse_argsc�������������� ���C���s���||�_�|�jjrftj�|�jd�|�_z0t|�jd��}|� ��� ��}|g|�_�W�5�Q�R�X�W�n�tk rd���Y�nX�|�jjr�g�|�_�t �d�}ttj�tj|�jj���J}|D�]>}|�dd�d�}|� ��}|�|�}|d�k r�|�j��|�����q�W�5�Q�R�X�t|�j���|�jj�rt|�j��td�d���}t���}|�jj�rX|�jjD�]$} | |k�rB|�| ��|�| ���q*g�|�j_|�jj�rxt |�jjt!��t"���} nt |�jj||�} |�jj�s�|�j��p�|�jj�p�| |�_#n|�j�|�_#|�jj�r|�j#d�d��|�_#z"| �$|�j#d��}| |d��|�_%W�n�t&k �r���Y�nX�|�jj'�r\z|�j#d�|�j#�$|�jj'��=�W�n,�t(k �rZ���t)d|�jj'�t*j+d��Y�nX�|�jj,�r�|�jj-d�k�r�t.�/d �|�j_-t.�0|�jj-��t.�1|�j#��d�S�) NZ pynexttest�rz\btest_[a-zA-Z0-9_]+\b�#r���r���z1Couldn't find starting test (%s), using all testsr?���i����)2r���r����singlero���rp����joinr5���r2����open�read�strip�OSErrorZfromfile�re�compiler����SAVEDCWD�split�searchrC����groupr���r_���r���r���r����copyZexcluderj���rF����addZtestdirr����listr=���r ����indexr1���� IndexError�startrE���rK���rL���rl���� randomize�random_seed�randomZ randrangeZseedZshuffle)r8���r����fpZ next_testZregexrX����matchZstdtestsZnottests�argZalltests�posr9���r9���r:���� find_tests����sr���� �� zRegrtest.find_testsc�����������������C���s���|�j�D�]}t|��qd�S�r<���)r ���rK���)r8����namer9���r9���r:���� list_tests��s���� zRegrtest.list_testsc�����������������C���sX���|D�]N}t�|tjj�rqt�|tj�r0|��|��qt�|tj�rt�|�rt |� ����qd�S�r<���)� isinstance�unittest�loaderZ_FailedTestZ TestSuite�_list_casesZTestCaser���Z match_testrK����id)r8����suite�testr9���r9���r:���r������s���� zRegrtest._list_casesc�������������� ���C���s����dt�_t��|�jj|�jj��|�jD�]N}t|�j|�}ztj � |�}|��|��W�q �tjk rl���|�j �|��Y�q X�q |�j r�ttjd��ttt|�j �d�dtjd��t|�j tjd��d�S�)NFr?���r�����skipped:)r����verboseZset_match_testsr���Zmatch_testsZignore_testsr ���r���r����ZdefaultTestLoaderZloadTestsFromNamer����ZSkipTestr#���rC���rK���rL���rl���r���r^���r���)r8���rA���Zabstestr����r9���r9���r:���� list_cases ��s���� zRegrtest.list_casesc�����������������C���s����d|�j�_d|�j�_d|�j�_|����|�_|�����|��d��|�jd�d���|�_|�jD�]F}|��d|��d���d|�j�_t |�j�|�}|�j |dd��|jtkrJ�q�qJ|�jr�t tt|�j�d�d��t|�j��|�����d�S�) NTFz'Re-running failed tests in verbose modezRe-running z in verbose mode)r'���r����z failed again:)r���r�����failfastZverbose3�get_tests_resultr(���rZ���r"���r'���r���rQ���rB���r ���rK���r���r^���r����display_result)r8���rA���rB���r9���r9���r:����rerun_failed_tests1��s$���� zRegrtest.rerun_failed_testsc�����������������C���s ��|�j�jrd�S�t���td|�������|�jr0td��t|�j�|�����}|rht���ttt |�d�d��t |��|�jr�|�j�js�t���|�j s�|�js�|�js�t |�j�dkr�tddd��ttt |�j�d�d ��|�j�j�r|�jjd d��t���td��|�jd�d ��D�]\}}td|t|�f���q�|�j �r>t���ttt |�j �d�d��t |�j ��|�j�rpt���td�tt |�j�d����t |�j��|�j�r�|�j�j�s�t���ttt |�j�d�d��t |�j��|�j�r�t���tdtt |�j�d����t |�j��|�j�rt���ttt |�j�d�d��t |�j��d�S�)Nz== Tests result: %s ==z(Test suite interrupted by signal SIGINT.r����zomitted:r���ZAllrR���)�endzOK.T)�reversez10 slowest tests:� ���z- %s: %szfailed:z%{} altered the execution environment:r����z%s:zre-run testz run no tests:)r���r_���rK���r����r)���r=���r ���r>���r���r^���r���r!���r]���r"���r#���Z print_slowr*����sortr���r%����formatr'���r&���)r8���ZomittedrD���r����r9���r9���r:���r����K��sd������� � zRegrtest.display_resultc�����������������C���s���|�j�jr dd�l}|jddd�|�_tj���}d}|�j�jrJ|dt|�j�j��7�}|�� |��d�}t |�jd�D��]\}}t� ��}|}|r�d||f�}|��||��|�jr�d } tt���} |�jj| t��| d ��| d�}nt|�j�|�}|��|��|jtkr���q|t|�}t� ��|�}|tk�rd|t|�f�}n|jtk�r.d�}tj���D�]&} | |k�r8| �d ��r8t�| ���q8|�j�jrdt||�j��rd��q|qd|�r�t|��d�S�)Nr���FT)�tracer���zRun tests sequentiallyz (timeout: %s)r���z%s -- %szDresult = runtest(self.ns, test_name); self.accumulate_result(result))�globals�localsrB���z%s in %sztest.) r���r����ZTracer+���rL����modules�keysZtimeoutr���rZ���� enumerater���r,���r-���rb����dictr����Zrunctxr����r���rQ���rB���r ���r���r���r���� startswithr���Zunloadr����r���rK���)r8���r����Zsave_modulesrv���Z previous_testr`���rA���r.���ra����cmdr���rB���rD����moduler9���r9���r:����run_tests_sequential���sJ���� zRegrtest.run_tests_sequentialc�����������������c���s6���|D�]*}|V��|�j�r�d�S�|�jjr|�jr�d�S�qq�d�S�r<���)r"���r����fail_env_changedr%���)r8���r���rA���r9���r9���r:���� _test_forever���s����zRegrtest._test_foreverc�����������������C���sv���t�dt���ftj�������t�dtjdd�dtj���t�dt�����t� ��}|rXt�d|��t�dt �d�t���f���d�S�) Nz==T)Zaliasedz %s-endianz== cwd:z == CPU count:z== encodings: locale=%s, FS=%sF) rK����platformZpython_implementationrL����versionr����� byteorderro����getcwd� cpu_count�localeZgetpreferredencoding�getfilesystemencoding)r8���r����r9���r9���r:����display_header���s����� ��zRegrtest.display_headerc�����������������C���s����g�}|�j�r|�d��n@|�jjr0|�jr0|�d��n&t|�j|�j�|�j|�j|�jf�sV|�d��|�jrf|�d��|st|�d��d� |�}|�j r�d|�j |f�}|S�)N�FAILUREzENV CHANGEDzNO TEST RUNr ����SUCCESSz, z %s then %s)r"���rC���r���r����r%����anyr!���r#���r)���r{���r(���)r8���rB���r9���r9���r:���r�������s"����� zRegrtest.get_tests_resultc�����������������C���s����|�j�js.|�j�js6|�j�js6|�j�js6|�js6|�j�js6|�����|�j�jrh|�j�j\}}}|dk�rhd}t |t jdd��|�j�jr~t d|�j�j ��|�j�jr�|��t|�j��|�_d|�_d|�_n.t|�j�|�_d�t|�j��|�_t|�j�d�|�_|�j�jr�d d lm}�||���n|�����d�S�)N����zhWARNING: Running tests with --huntrleaks/-R and less than 3 warmup repetitions can give false positives!Trd���zUsing random seedr���z/{}r���r���)�run_tests_multiprocess)r����headerr_���r]���rz���r���rj���r����rk���rK���rL����stdoutr����r����Zforeverr����r����r ���r/���r0����iterr����r^���Zuse_mpri���r����r����)r8���rs���rt���ru���rv���r����r9���r9���r:���� run_tests���s<��������� zRegrtest.run_testsc�������������� ���C���s����|�j�rB|�jr6t|�j�d��}|�|�jd���W�5�Q�R�X�nt�|�j���|�jrf|�j���}|jdd|�j j d��t���t� ��|�j�}tdt|����td|�������|�j jr�t�dt������d�S�)N�w� T)Zshow_missingZsummary�coverdirzTotal duration: %szTests result: %szleaks %d)r2���r1���r|����writero����unlinkr+���ZresultsZ write_resultsr���r����rK���r,���r-���r.���r���r����Zrunleaks�system�getpid)r8���r����rx���Zdurationr9���r9���r:����finalize��s ���� �zRegrtest.finalizec����������� ��� ���C���s����|�j�js|�jsd�S�dd�lm��m}�|�d�}dddd�}|�jD�]N}|�|��|D�]:}z ||��t|� |d��7��<�W�qR�t k r����Y�qRX�qRq@|���D�]\}}|�|t |���q�tj�tj|�j�j�}t|d�� }|�|�D�]} |�| ��q�W�5�Q�R�X�d�S�)Nr���Z testsuites)r����errorsZfailures�wb)r���rg���r3���rH���rI���rJ���ZElementrC���rW����getrE����itemsr=����strro���rp���r{���r���r����r|���Ztostringlistr����) r8���rO����rootZtotalsr�����k�vrg����f�sr9���r9���r:����save_xml_result��s$���� zRegrtest.save_xml_resultc�����������������C���st���|�j�jr|�j�j|�_|�js`t���rVt�d�|�_|�jd�krBt�d�|�_tj�|�jd�|�_n t � ��|�_tj�|�j�|�_d�S�)NZabs_builddirZsrcdirZbuild)r���rn���r5���� sysconfigZis_python_buildZget_config_varro���rp���r{����tempfileZ gettempdir�abspathr7���r9���r9���r:����set_temp_dir6��s���� zRegrtest.set_temp_dirc�����������������C���sL���t�j|�jdd��t����}|�jd�k r.d�|�}n d�|�}t�j�|�j|�}|S�)NT)�exist_okztest_python_worker_{}ztest_python_{})ro����makedirsr5���r����r6���r����rp���r{���)r8����pid�test_cwdr9���r9���r:����create_temp_dirL��s���� zRegrtest.create_temp_dirc�����������������C���sz���dd�l�}tj�|�|�j�d�}td|�j���|��|�D�]>}tj�|�r^td|���t� |��q6td|���t� |��q6d�S�)Nr���z test_python_*zCleanup %s directoryzRemove directory: %szRemove file: %s)�globro���rp���r{����escaper5���rK����isdirr���Zrmtreer����)r8���r����rp���r����r9���r9���r:����cleanupZ��s����zRegrtest.cleanupNc�������������� ���K���s����|���|��|�����|�jjr,|�����t�d��|����}z2tj|dd���||�j_ |�� ||��W�5�Q�R�X�W�n<�tk r��}�ztj tdd��t�|j��W�5�d�}~X�Y�nX�d�S�)Nr���T)r]���)rm���)rw���r����r���r����rL���rm���r����r���Ztemp_cwdrn����_main� SystemExit�faulthandlerZdump_traceback_later�EXIT_TIMEOUT�code)r8���r���rr���r�����excr9���r9���r:����maing��s���� z Regrtest.mainc�����������������C���s.���|�j�d�k r|�j����S�ttd�r*t���d�S�d�S�)NrU���r���)r4���rU����hasattrro���r7���r9���r9���r:���rU������s ���� zRegrtest.getloadavgc�������������� ���C���s���|�j�d�k r$ddlm}�||�j|�j���|�jjr4td��|�jjt_|�jj t_ t|�j��|��|��|�jj rv|�� ���t�d��|�jjr�|�����t�d��tjdkr�|�j�d�kr�ddlm}�z|��|�_W�n0�tk r��}�ztd|�����W�5�d�}~X�Y�nX�z.|�����|�����|�jj�r|�j�r|�����W�5�|�jd�k �r:|�j����d�|�_X�|�����|�����|�j�r^t�d��|�j�rpt�d��|�jj �r�|�j!�r�t�d ��t�d��d�S�) Nr���)�run_tests_workerzPress any key to continue...Zwin32)�WindowsLoadTrackerz%Failed to create WindowsLoadTracker: re�������r����)"r6���ri���r����r����wait�inputr_���r���ZPGOZpgo_extendedZPGO_EXTENDEDr���r����r����rL���rm���r����r����Ztest.libregrtest.win_utilsr����r4����FileNotFoundErrorrK����closer����r����Zverbose2r"���r����r����r����r)���r����r%���)r8���r���rr���r����r�����errorr9���r9���r:���r�������sL���� zRegrtest._main)F)r���)N)�__name__� __module__�__qualname__�__doc__r;���r>���rQ���rZ���rb���rw���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����rU���r����r9���r9���r9���r:���r������s4���* ) I ;7 r���c�����������������K���s���t���jf�d|�i|���dS�)zRun the Python suite.r���N)r���r����)r���rr���r9���r9���r:���r�������s����r����)N).rV���r����r����ro���r����r����r����rL���r����r����r,���r����Ztest.libregrtest.cmdliner���Ztest.libregrtest.runtestr���r���r���r���r���r���r ���r ���r���r���r ���r���r���r���r���r���r���Ztest.libregrtest.setupr���Ztest.libregrtest.pgor���Ztest.libregrtest.utilsr���r���r���r���r����r���r����r���r����r9���r9���r9���r:����<module>���s2���L�����/