
    0hh]                       S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKJr  S SKJr  S SKJrJr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJrJ r J!r!  S S
K"J#r#  S SK$J%r%  \RL                  (       d  \RN                  " S5      e\RP                  RS                  \RP                  RU                  \+5      SS5      r,\RP                  R[                  \RP                  R]                  \,5      5      r,Sr/Sr0SSRS                  \05       S3r0Sr1Sr2Sr3Sr4Sr5\Rl                  " S5      r7 " S S\Rp                  5      r9\Rt                  " SS9 " S S5      5       r; " S S \Rp                  5      r< " S! S"\<5      r=\R|                   " S# S$\<5      5       r?\R|                   " S% S&\<5      5       r@ " S' S(\Rp                  5      rA\BS):X  a  \R6                  " 5         gg)*    N)ElementTree)support)	os_helperwithout_optimizer)cmdline)main)setup)utils)get_match_testsset_match_tests
match_test)	TestStats)normalize_test_nameztest module requires subprocessz..z5[0-9]+:[0-9]+:[0-9]+ (?:load avg: [0-9]+\.[0-9]{2} )?)passedfailedskippedinterruptedzenv changedz	timed outzran no testszworker non-zero exit codez(?:|)               z
    from signal import SIGINT, raise_signal
    try:
        raise_signal(SIGINT)
    except ImportError:
        import os
        os.kill(os.getpid(), SIGINT)
    c                      \ rS rSr\S 5       rS rS rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\ RB                  " \"RF                  S5      S 5       r$S r%S  r&S! r'S" r(S# r)S$ r*S% r+S& r,S' r-S( r.S) r/S* r0S+ r1S, r2S-S-S-S..S/ jr3S0 r4S1 r5S2 r6S3 r7S4 r8S5 r9S6 r:S7 r;S8 r<S9 r=S:r>g;)<ParseArgsTestCaseF   c                 .    [         R                  " U 5      $ N)r   _parse_args)argss    ;/opt/python-3.13.8/usr/lib/python3.13/test/test_regrtest.py
parse_argsParseArgsTestCase.parse_argsK   s    ""4((    c                     [         R                  " 5        o0R                  [        5         U R	                  U5        S S S 5        S S S 5        U R                  UWR                  5       5        g ! , (       d  f       N7= f! , (       d  f       N@= fr   )r   captured_stderrassertRaises
SystemExitr#   assertIngetvalue)selfr!   msgerrs       r"   
checkErrorParseArgsTestCase.checkErrorO   sU    $$&#/@/@/LOOD! 0M&c3<<>* 0M/L&&s!   A?A.A?.
A<	8A??
Bc           	         S H  nU R                  US9   [        R                  " 5        nU R                  [        5         U R                  U/5        S S S 5        S S S 5        U R                  SWR                  5       5        S S S 5        M     g ! , (       d  f       NC= f! , (       d  f       NL= f! , (       d  f       M  = f)N)z-hz--helpoptzRun Python regression tests.)subTestr   captured_stdoutr(   r)   r#   r*   r+   )r,   r3   outs      r"   	test_helpParseArgsTestCase.test_helpT   s    !C#&,,.#&&z2OOSE* 3 / <cllnM	 '& " 32 /. '&s:   B3B"B	B"(B3
BB""
B0,B33
C	c                 x   U R                  SS/5      nU R                  UR                  S5        S HL  nU R                  US9   U R                  SU 3/5      nU R                  UR                  S 5        S S S 5        MN     U R	                  S/S5        U R	                  SS/S	5        g ! , (       d  f       M  = f)
N	--timeoutz4.2g@)z-10 )valuez
--timeout=expected one argumentfoozinvalid timeout value:)r#   assertEqualtimeoutr4   r/   )r,   nsr=   s      r"   test_timeoutParseArgsTestCase.test_timeout\   s    __k512S) %EE*__
5'&:%;<  T2 +* %
 	'>?e,.FG +*s   2B**
B9	c                 ^    U R                  S/5      nU R                  UR                  5        g )N--wait)r#   
assertTruewaitr,   rB   s     r"   	test_waitParseArgsTestCase.test_waiti   s"    __hZ( r%   c                     S H]  nU R                  US9   U R                  US/5      nU R                  UR                  S5        U R	                  U/S5        S S S 5        M_     g ! , (       d  f       Mq  = f)N)z-S--startr2   r?   r>   )r4   r#   r@   startr/   r,   r3   rB   s      r"   
test_startParseArgsTestCase.test_startm   s`    "C#&__c5\2  51'>? '& #&&   AA%%
A4	c                    U R                  S/5      nU R                  UR                  S5        U R                  S/5      nU R                  UR                  S5        U R                  S/5      nU R                  UR                  S5        U R                  S/S-  5      nU R                  UR                  S5        U R                  / 5      nU R                  UR                  S5        g )N-v   z-vvvr   	--verboser   )r#   r@   verboserI   s     r"   test_verboseParseArgsTestCase.test_verboset   s    __dV$Q'__fX&Q'__k]+Q'__k]Q./Q'__R Q'r%   c                     S HH  nU R                  US9   U R                  U/5      nU R                  UR                  5        S S S 5        MJ     g ! , (       d  f       M\  = f)N)z-w--rerunz
--verbose2r2   )r4   r#   rG   rerunrO   s      r"   
test_rerunParseArgsTestCase.test_rerun   sI    0C#&__cU+) '& 1&&   .A
A	c                     S HH  nU R                  US9   U R                  U/5      nU R                  UR                  5        S S S 5        MJ     g ! , (       d  f       M\  = f)N)-W
--verbose3r2   )r4   r#   rG   verbose3rO   s      r"   test_verbose3ParseArgsTestCase.test_verbose3   I    %C#&__cU+, '& &&&r_   c                     S Hd  nU R                  US9   U R                  U/5      nU R                  UR                  5        U R	                  UR
                  S5        S S S 5        Mf     g ! , (       d  f       Mx  = f)N)-q--quietr2   r   )r4   r#   rG   quietr@   rW   rO   s      r"   
test_quietParseArgsTestCase.test_quiet   s]    "C#&__cU+)  Q/ '& #&&s   A
A,,
A;	c                     S HH  nU R                  US9   U R                  U/5      nU R                  UR                  5        S S S 5        MJ     g ! , (       d  f       M\  = f)N)z-o	--slowestr2   )r4   r#   rG   
print_slowrO   s      r"   test_slowestParseArgsTestCase.test_slowest   sI    $C#&__cU+. '& %&&r_   c                     U R                  S/5      nU R                  UR                  5        U R                  S/5      nU R                  UR                  5        g )Nz--headerrV   )r#   rG   headerrI   s     r"   test_headerParseArgsTestCase.test_header   sB    __j\*		"__k]+		"r%   c                    S HH  nU R                  US9   U R                  U/5      nU R                  UR                  5        S S S 5        MJ     [        R
                  " 5        nSUS'   U R                  S/5      n[        R                  " U5      nU R                  UR                  5        U R                  UR                  [        5        U R                  UR                  S5        US	 U R                  S/5      n[        R                  " U5      nU R                  UR                  5        U R                  UR                  [        5        S S S 5        g ! , (       d  f       GMe  = f! , (       d  f       g = f)N)-r--randomizer2   
1697839080SOURCE_DATE_EPOCHrx   )r4   r#   rG   	randomizer   EnvironmentVarGuardr   RegrtestassertFalseassertIsInstancerandom_seedstrr@   int)r,   r3   rB   envregrtests        r"   test_randomize ParseArgsTestCase.test_randomize   s&   (C#&__cU+- '& )
 **,'3C#$-1B}}R(HX//0!!("6"6<X11<@ '(-1B}}R(HOOH../!!("6"6< -,	 '& -,s   .E$C+E+
E(	+
E9c                    U R                  / 5      nU R                  UR                  S5        U R                  S/5      nU R                  UR                  S5        U R                  S/5      nU R                  UR                  S5        U R                  SS/5      nU R                  UR                  S5        U R                  SS/5      nU R                  UR                  S5        g )NFrx   T--no-randomize)r#   assertIsr{   rI   s     r"   test_no_randomize#ParseArgsTestCase.test_no_randomize   s    __R bllE*__m_-bllD)__./0bllE*__m-=>?bllE*__.>?bllE*r%   c                 z   U R                  SS/5      nU R                  UR                  S5        U R                  UR                  5        U R                  S/S5        U R                  SS/S5        U R                  / SQ5      nU R                  UR                  S5        U R                  UR                  5        g )N
--randseed12345i90  r>   r?   invalid int value)r   r   r   )r#   r@   r   rG   r{   r/   r~   rI   s     r"   test_randseedParseArgsTestCase.test_randseed   s    __lG45/%(?@u-/BC__FG/&r%   c                    S Hr  nU R                  US9   U R                  US/5      nU R                  UR                  S5        U R	                  U/S5        U R	                  USS/S5        S S S 5        Mt     g ! , (       d  f       M  = f)N)-f
--fromfiler2   r?   r>   -sdon't go together)r4   r#   r@   fromfiler/   rO   s      r"   test_fromfileParseArgsTestCase.test_fromfile   sv    %C#&__c5\2  e4'>?eT 24GH	 '& &&&s   AA::
B		c                     S HH  nU R                  US9   U R                  U/5      nU R                  UR                  5        S S S 5        MJ     g ! , (       d  f       M\  = f)N)-x	--excluder2   )r4   r#   rG   excluderO   s      r"   test_excludeParseArgsTestCase.test_exclude   I    $C#&__cU+

+ '& %&&r_   c                     S H]  nU R                  US9   U R                  U/5      nU R                  UR                  5        U R	                  USS/S5        S S S 5        M_     g ! , (       d  f       Mq  = f)N)r   z--singler2   r   r?   r   )r4   r#   rG   singler/   rO   s      r"   test_singleParseArgsTestCase.test_single   s_    #C#&__cU+		*dE 24GH '& $&&rR   c                    S H^  nU R                  US9   U R                  US/5      nU R                  UR                  S/5        U R	                  U/S5        S S S 5        M`     S H^  nU R                  US9   U R                  US/5      nU R                  UR                  S/5        U R	                  U/S5        S S S 5        M`     U R                  / SQ5      nU R                  UR                  S	S
/5        U R                  / SQ5      nU R                  UR                  S	S/5        U R                  / SQ5      nU R                  UR                  SS
/5        U R                  [        R                  [        R                  5        [        [        R                  S5       n[        SUS9  [        SUS9  S S S 5        [        R                  R                  [        R                  5      nU R                  SSSU/5      nU R                  UR                  / SQ5        U R                  SSSU/5      nU R                  UR                  / SQ5        g ! , (       d  f       GMb  = f! , (       d  f       GM  = f! , (       d  f       N= f)N)-mz--matchr2   pattern)r   Tr>   )-iz--ignore)r   F)r   pattern1r   pattern2)r   T)r   T)r   r   r   r   )r   F)r   r   r   r   )r   Fw
matchfile1file
matchfile2r   match--matchfile))r   T)r   T)r   Tr   --ignorefile))r   F)r   F)r   F)r4   r#   r@   match_testsr/   
addCleanupr   unlinkTESTFNopenprintospathabspath)r,   r3   rB   fpfilenames        r"   
test_matchParseArgsTestCase.test_match   s   "C#&__c9%56  2C1DE'>? '& # $C#&__c9%56  2D1EF'>? '& $ __AB*<>P)QR__AB*<>Q)RS__AB*=?Q)RS	(()*:*:;)""C(B,R(,R( ) 77??9#3#34__dG]HEFV	X __dG^XFGY	[? '& '& )(s%   AI9AI($I;
I%	(
I8	;
J	c                 H   S H  nU R                  US9   U R                  US/5      nU R                  UR                  5        U R                  US/5      nU R                  UR                  5        U R	                  U/S5        S S S 5        M     g ! , (       d  f       M  = f)N)z-Gz
--failfastr2   rT   ra   z#-G/--failfast needs either -v or -W)r4   r#   rG   failfastr/   rO   s      r"   test_failfastParseArgsTestCase.test_failfast
  s~    %C#&__c4[1,__c4[1,'LM '& &&&s   A0B
B!	c                 &   S GHw  nU R                  US9   U R                  US/5      nU R                  UR                  SS/5        U R                  US/5      nU R                  UR                  S/5        [	        [
        R                  5      nUR                  S5        U R                  US/5      nU R                  UR                  U5        U R                  U/S5        U R                  US	/S
5        U R                  US/5      nU R                  UR                  [	        [
        R                  5      S/-   5        U R                  US/5      nU R                  UR                  S/5        S S S 5        GMz     g ! , (       d  f       GM  = f)N)-uz--user2   zgui,networkguinetworkzgui,none,networkzall,-guir>   r?   zinvalid resourcez
all,tzdatatzdataextralargefile)	r4   r#   r@   use_resourceslistr   ALL_RESOURCESremover/   )r,   r3   rB   expecteds       r"   test_useParseArgsTestCase.test_use  s]    C#&__c=%9:  !1!1E93EF__c+=%>?  !1!1I;? 5 56&__c:%67  !1!18<'>?e.@A __c<%89  !1!1!%g&;&;!<z!IK __c+;%<=  !1!14D3EF+ '& !&&s   EF  
F	c                     S H]  nU R                  US9   U R                  US/5      nU R                  UR                  S5        U R	                  U/S5        S S S 5        M_     g ! , (       d  f       Mq  = f)N)z-Mz
--memlimitr2   4Gr>   )r4   r#   r@   memlimitr/   rO   s      r"   test_memlimitParseArgsTestCase.test_memlimit,  s`    %C#&__c4[1  d3'>? '& &&&rR   c                     U R                  SS/5      nU R                  UR                  [        R                  R                  [        R                  S5      5        U R                  S/S5        g )Nz	--testdirr?   r>   )	r#   r@   testdirr   r   joinr   SAVEDCWDr/   rI   s     r"   test_testdirParseArgsTestCase.test_testdir3  sO    __k512RWW\\)2D2De%LM'>?r%   c                     S HH  nU R                  US9   U R                  U/5      nU R                  UR                  5        S S S 5        MJ     g ! , (       d  f       M\  = f)N)z-Lz
--runleaksr2   )r4   r#   rG   runleaksrO   s      r"   test_runleaksParseArgsTestCase.test_runleaks8  rf   r_   c                    S GH'  nU R                  US9   U R                  US/5      nU R                  UR                  S5        U R                  US/5      nU R                  UR                  S5        U R                  US/5      nU R                  UR                  S5        U R                  US	/5      nU R                  UR                  S
5        U R	                  U/S5        U R	                  US/S5        U R	                  US/S5        U R	                  US/S5        S S S 5        GM*     g ! , (       d  f       GM=  = f)N)-R--huntrleaksr2   :)r   r   
reflog.txtz6:)   r   r   z:3)r   r   r   z6:3:leaks.log)r   r   z	leaks.logr>   6z&needs 2 or 3 colon-separated argumentszfoo:zinvalid huntrleaks valuez6:foo)r4   r#   r@   
huntrleaksr/   rO   s      r"   test_huntrleaks!ParseArgsTestCase.test_huntrleaks>  s   'C#&__c3Z0  0DE__c4[1  0DE__c4[1  0DE__c?%;<  0CD'>?c
 HJf/IJg0JK '& (&&s   DD00
E 	c                    S Hq  nU R                  US9   U R                  US/5      nU R                  UR                  S5        U R	                  U/S5        U R	                  US/S5        S S S 5        Ms     g ! , (       d  f       M  = f)N)-jz--multiprocessr2   2r   r>   r?   r   )r4   r#   r@   use_mpr/   rO   s      r"   test_multiprocess#ParseArgsTestCase.test_multiprocessO  ss    )C#&__c3Z0  A.'>?e.AB	 '& *&&   AA99
B	c                 b   S H  nU R                  US9   [        R                  " 5        nU R                  U/5      nS S S 5        U R	                  WR
                  5        U R                  SWR                  5       5        S S S 5        M     g ! , (       d  f       NV= f! , (       d  f       M  = f)Nz-T
--coverager2   z+collecting coverage without -j is imprecise)r4   r   r'   r#   rG   tracer*   r+   )r,   r3   stderrrB   s       r"   test_coverage_sequential*ParseArgsTestCase.test_coverage_sequentialW  s~    %C#&,,.&#/B /)AOO%	 '& &.. '&s"   BBAB
BB
B.	need a debug buildc                     S HI  nU R                  US9   U R                  US/5      nU R                  UR                  5        S S S 5        MK     g ! , (       d  f       M]  = f)Nr   r2   -j1)r4   r#   rG   r   rO   s      r"   test_coverage_mp"ParseArgsTestCase.test_coverage_mpb  sK    %C#&__c5\2) '& &&&s   /A
A 	c           	      F   S H  nU R                  US9   U R                  US/5      nU R                  UR                  [        R
                  R                  [        R                  S5      5        U R                  U/S5        S S S 5        M     g ! , (       d  f       M  = f)N)z-Dz
--coverdirr2   r?   r>   )
r4   r#   r@   coverdirr   r   r   r   r   r/   rO   s      r"   test_coverdirParseArgsTestCase.test_coverdiri  sy    %C#&__c5\2  !#i.@.@%!HJ'>?	 '& &&&s   A/B
B 	c                     S HH  nU R                  US9   U R                  U/5      nU R                  UR                  5        S S S 5        MJ     g ! , (       d  f       M\  = f)N)z-Nz--nocoverdirr2   )r4   r#   assertIsNoner   rO   s      r"   test_nocoverdir!ParseArgsTestCase.test_nocoverdirq  sK    'C#&__cU+!!"++. '& (&&r_   c                    S Hq  nU R                  US9   U R                  US/5      nU R                  UR                  S5        U R	                  U/S5        U R	                  US/S5        S S S 5        Ms     g ! , (       d  f       M  = f)N)z-tz--thresholdr2   1000  r>   r?   r   )r4   r#   r@   	thresholdr/   rO   s      r"   test_threshold ParseArgsTestCase.test_thresholdw  ss    &C#&__c6]3  t4'>?e.AB	 '& '&&r   c                    S H  nU R                  US9   [        R                  " [        R                  " 5       5       nU R                  U/5      nS S S 5        U R                  WR                  5        WR                  5       nU R                  SU5        S S S 5        M     g ! , (       d  f       NX= f! , (       d  f       M  = f)N)-nz--nowindowsr2   z)the --nowindows (-n) option is deprecated)
r4   
contextlibredirect_stderrioStringIOr#   rG   	nowindowsr+   r*   )r,   r3   r   rB   r.   s        r"   test_nowindows ParseArgsTestCase.test_nowindows  s    &C#&//>&#/B ?-oo'I3O '& '>> '&s#   *B5B$AB5$
B2.B55
C	c                     S HH  nU R                  US9   U R                  U/5      nU R                  UR                  5        S S S 5        MJ     g ! , (       d  f       M\  = f)N)z-F	--foreverr2   )r4   r#   rG   foreverrO   s      r"   test_foreverParseArgsTestCase.test_forever  r   r_   c                 *    U R                  S/S5        g )Nz--xxxzusage:r/   r,   s    r"   test_unrecognized_argument,ParseArgsTestCase.test_unrecognized_argument  s    	8,r%   c                     U R                  S/5      nU R                  UR                  5        U R                  UR                  S5        g )Nz--quir   )r#   rG   rj   r@   rW   rI   s     r"   test_long_option__partial+ParseArgsTestCase.test_long_option__partial  s6    __gY'!Q'r%   c                     U R                  SS/5      nU R                  UR                  5        U R                  UR                  S5        U R                  UR
                  5        g )Nri   r   r   )r#   rG   rj   r@   rW   r   rI   s     r"   test_two_options"ParseArgsTestCase.test_two_options  sI    __i56!Q'

#r%   c                 b    U R                  SS/5      nU R                  UR                  S5        g )NrM   r<   )r#   r@   rN   rI   s     r"   #test_option_with_empty_string_value5ParseArgsTestCase.test_option_with_empty_string_value  s(    __i_-2&r%   c                 b    U R                  S/5      nU R                  UR                  S/5        g )Nr?   )r#   r@   r!   rI   s     r"   test_argParseArgsTestCase.test_arg  s(    __eW%5'*r%   c                     U R                  SS/5      nU R                  UR                  5        U R                  UR                  S5        U R                  UR
                  S/5        g )Nri   r?   r   )r#   rG   rj   r@   rW   r!   rI   s     r"   test_option_and_arg%ParseArgsTestCase.test_option_and_arg  sO    __i/0!Q'5'*r%   c                     U R                  / SQ5      nU R                  UR                  S5        U R                  UR                  SS/5        g )N)test_unaryoprT   
test_binoprU   r.  r/  )r#   r@   rW   r!   rI   s     r"   test_arg_option_arg%ParseArgsTestCase.test_arg_option_arg  s>    __ABQ'><"@Ar%   c                 *    U R                  S/S5        g )Nz--unknown-optionz(unrecognized arguments: --unknown-optionr  r  s    r"   test_unknown_option%ParseArgsTestCase.test_unknown_option  s    +,B	Dr%   c                     [         R                  " U5      n[        R                  " 5        nUS	 [        R
                  " U5      nS S S 5        U$ ! , (       d  f       W$ = f)Nrz   )r   r    r   r|   r   r}   )r,   r!   rB   r   r   s        r"   create_regrtest!ParseArgsTestCase.create_regrtest  sU      & **,'(}}R(H	 -  -, s   A
AT)r\   r{   output_on_failurec                H   U R                  U5      nU R                  UR                  S5        U R                  UR                  U5        U R                  UR                  S5        U R                  UR
                  U5        U R                  UR                  [        5        U R                  UR                  5        U R                  UR                  5        U R                  UR                  U5        U R                  [        UR                  5      [        U5      5        U$ )NF)r6  r@   num_workers
want_rerun
fail_rerunr{   r   r   r   rG   fail_env_changedprint_slowestr8  sortedr   )r,   r!   r   r\   r{   r8  r   s          r"   check_ci_modeParseArgsTestCase.check_ci_mode  s    ''---r2,,e4,,e4++Y7h22C8112../335FG 6 679NOr%   c                     S/n[        [        R                  5      nUR                  S5        U R	                  X5      nU R                  UR                  S5        g )N	--fast-cicpuX  )r@  r   r   r   rA  r@   rA   r,   r!   r   r   s       r"   test_fast_ciParseArgsTestCase.test_fast_ci  sM    }w445U#%%d:))73r%   c                     / SQn[        [        R                  5      nUR                  S5        U R	                  XSS9nU R                  UR                  S5        U R                  UR                  S5        g )N)rD  --pythonzpython -X devrE  F)r\   rF  )python-Xdev)r@  r   r   r   rA  r@   rA   
python_cmdrG  s       r"   test_fast_ci_python_cmd)ParseArgsTestCase.test_fast_ci_python_cmd  sg    9w445U#%%d%G))73,,.EFr%   c                     SS/n[        [        R                  5      nUR                  S5        UR                  S5        U R	                  X5        g )NrD  z
-u-networkrE  r   )r@  r   r   r   rA  )r,   r!   r   s      r"   test_fast_ci_resource'ParseArgsTestCase.test_fast_ci_resource  sF    \*w445U#Y'4/r%   c                     SS/n[        [        R                  5      nUR                  S5        U R	                  XSS9nU R                  UR                  S5        g )NrD  rV   rE  F)r8  T)r@  r   r   r   rA  r@   rW   rG  s       r"   test_fast_ci_verbose&ParseArgsTestCase.test_fast_ci_verbose  sZ    [)w445U#%%d8= & ?))40r%   c                     S/n[        [        R                  5      nU R                  X5      nU R	                  UR
                  S5        g )N	--slow-cii  )r@  r   r   rA  r@   rA   rG  s       r"   test_slow_ciParseArgsTestCase.test_slow_ci  s?    }w445%%d:))73r%   c                     [        [        R                  5      nU R                  SS/USS9  U R                  SS/US1-
  SS9  g )NrY  r   F)r{   rD  rE  )setr   r   rA  )r,   all_resourcess     r"   test_ci_no_randomize&ParseArgsTestCase.test_ci_no_randomize  s\    G112*+]e 	 	
 	*+]eW-DPU 	 	
r%   c                 l    S/n[         R                  " U5      nU R                  UR                  5        g )Nz--dont-add-python-opts)r   r    r~   _add_python_opts)r,   r!   rB   s      r"   test_dont_add_python_opts+ParseArgsTestCase.test_dont_add_python_opts  s.    ()  &,,-r%   c                 b    S/nU R                  U5      nU R                  UR                  5        g )N--bisect)r6  rG   want_bisectr,   r!   r   s      r"   test_bisectParseArgsTestCase.test_bisect  s+    |''-,,-r%   c                    / SQn[         R                  " 5          U R                  U5      nS S S 5        U R                  WR                  5        U R                  UR                  R                  S5        U R                  UR                  R                  S5        U R                  UR                  5        g ! , (       d  f       N= f)N)r   z3:10rb   r   
   )
r   r'   r6  assertIsNotNonehunt_refleakr@   warmupsrunsr~   r8  rh  s      r"   test_verbose3_huntrleaks*ParseArgsTestCase.test_verbose3_huntrleaks  s    +$$&++D1H 'X223..66:..33R8334 '&s   B77
Cc                    SS/n[         R                  " 5          U R                  U5      nS S S 5        U R                  WR                  S5        U R                  UR                  5        SS/n[         R                  " 5          U R                  U5      nS S S 5        U R                  UR                  S5        U R                  UR                  5        g ! , (       d  f       N= f! , (       d  f       NW= f)N-j2z--single-processr   rD  )r   r'   r6  r@   r;  rG   single_processrh  s      r"   test_single_process%ParseArgsTestCase.test_single_process  s    )*$$&++D1H '--q1//0/0$$&++D1H '--q1//0 '& '&s   CC'
C$'
C5 N)?__name__
__module____qualname____firstlineno__staticmethodr#   r/   r7   rC   rJ   rP   rX   r]   rd   rk   rp   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   unittest
skipUnlessr   Py_DEBUGr   r   r  r	  r  r  r  r  r"  r%  r(  r+  r0  r3  r6  rA  rH  rP  rS  rV  rZ  r_  rc  ri  rq  rv  __static_attributes__rx  r%   r"   r   r   F   sZ   
 ) )+
NH!@
(*-0/#=,+ 	'I,I"[HNG2@@
-L"C	 ))+?@* A*@/CP,-(
$'++B
D  $tt4G014
.
.
51r%   r   T)slotsc                   :    \ rS rSr% \\S'   \S-  \S'   \\S'   Srg)Reruni  nameNr   successrx  )ry  rz  r{  r|  r   __annotations__boolr  rx  r%   r"   r  r    s    
I:Mr%   r  c                       \ rS rSrSrSrSrS rSS jrS r	SS
 jr
S rSSSSSSSS	S	S	S	S	S	S.S jrS\S\4S jrSS jrSS jrSrg)BaseTestCasei$  rU   test_regrtest_ztest_[a-zA-Z0-9_]+c                    [         R                  R                  [         R                  R                  [        5      5      U l        [        R                  " 5       U l        U R                  [        R                  U R                  5        g r   )r   r   realpathdirname__file__r   tempfilemkdtemp
tmptestdirr   r   rmtreer  s    r"   setUpBaseTestCase.setUp)  sM    ww''(AB"**,	(($//:r%   Nc                 R   U(       d,  S[         R                  -  n[         =R                  S-  sl        Uc  [        R                  " S5      nU R                  U-   n[
        R                  R                  U R                  US-   5      nU R                  [        R                  U5         [        USSS9 nUR                  U5        S S S 5        U$ ! , (       d  f       U$ = f! [         a9  n[        R                   " 5       (       d  U R#                  SU< S	U< 35        e S nAff = f)
Nznoop%srU   z
                    import unittest

                    class Tests(unittest.TestCase):
                        def test_empty_test(self):
                            pass
                z.pyxzutf-8encodingzcannot write z: )r  TEST_UNIQUE_IDtextwrapdedentTESTNAME_PREFIXr   r   r   r  r   r   r   r   writePermissionError	sysconfigis_python_buildskipTest)r,   r  coder   r   excs         r"   create_testBaseTestCase.create_test/  s    l999D''1,'<?? $ D ##d*ww||DOOTE\:	(($/	dC'2b 3  32 	  	,,..tSAB	s6   *C# 5CC# 
C C#  C# #
D&-4D!!D&c                     [         R                  " X[         R                  5      nU(       d  U R                  U< SU< 35        U$ )Nz not found in )research	MULTILINEfail)r,   regexoutputr   s       r"   regex_searchBaseTestCase.regex_searchM  s/    		%6IIeV<=r%   Fc                     U(       d  [         R                  " U5      nU(       a  US-  n[         R                  " SU-   [         R                  5      nU R	                  X5        g )N
^)r  escapecompiler  assertRegex)r,   r  r   fullr  s        r"   
check_lineBaseTestCase.check_lineS  sE    ii(GtOG

4'>2<<8'r%   c                     S[          SU R                   S[         3n[        R                  " X![        R
                  5      n[        S U 5       5      $ )Nr  z\[ *[0-9]+(?:/ *[0-9]+)*\] (z) c              3   B   #    U  H  oR                  S 5      v   M     g7f)rU   N)group).0r   s     r"   	<genexpr>4BaseTestCase.parse_executed_tests.<locals>.<genexpr>_  s     7uKKNNs   )
LOG_PREFIXTESTNAME_REGEXRESULT_REGEXr  finditerr  r   )r,   r  r  parsers       r"   parse_executed_tests!BaseTestCase.parse_executed_tests[  sL    j\ "))*"\N<UBLL97777r%   rx  )r   r   env_changedomittedr\   run_no_testsresource_deniedr{   parallelr   r>  r  filteredc          	      2  ^" [        U[        5      (       a  U/n[        U[        5      (       a  U/n[        U
[        5      (       a  U
/n
[        U[        5      (       a  U/n[        U[        5      (       a  U/n[        U[        5      (       a  U/n[        U	[        5      (       a  U	/n	[        U[        5      (       a  [        U5      nU(       a  Sn/ nUb@  U(       d9  UR                  /nUR
                  (       d  UR                  UR                  5        U R                  U5      n[        U5      nUb  UR                  UR                  5        U(       a&  U R                  [        U5      [        U5      U5        OU R                  UUU5        S m"U"4S jnU(       a  U" SU5      nU R                  UU5        U
(       a  U" SU
5      nU R                  UU5        U(       a  U" SU5      nU R                  UU5        U(       a  U" SU5      nU R                  UU5        U(       a  U" SU5      nU R                  UU5        Ub  U" S	UR                  /5      nU R                  UU5        [        S
-   nU R                  UU5        SUR                   S3nUR                  (       a  U SUR                   S3nU R                  UU5        U	(       a  U" SU	5      nU R                  UU5        [        U5      [        U5      -
  [        U
5      -
  [        U5      -
  [        U5      -
  [        U5      -
  [        U	5      -
  nU(       aN  U< ST"" U5      < S3nU(       d&  U(       d  Ub  UR
                  (       a  US:  a  SU-  nU R                  UUSS9  U(       a  U R                  US5        SUR                  S 3nU(       a  U S3nU/nUR                   (       a  UR                  SUR                   S 35        UR"                  (       a  UR                  SUR"                  S 35        SSR%                  U5       3nU R                  UUSS9  [        U5      [        U
5      -
  nUb  [        U5      nSnO[        U5      nSnU(       a  SnSU 3nU(       d  U S[        U5       3nU(       a  U S3nU/nSU4S [        U5      4S![        U5      4S"[        U
5      4S#U4S$[        U	5      44 H%  u  nnU(       d  M  UR                  U S%U 35        M'     S&SR%                  U5       3nU R                  UUSS9  / n U(       a  U R                  S'5        OU(       a  U(       a  U R                  S(5        U(       a  U R                  S)5        ['        UX]UXn45      (       d  U R                  S*5        OU (       d  U R                  S+5        S,R%                  U 5      n Ub  UR
                  (       a  S+OS'n!U  S-U! 3n U R                  US.U  3SS9  g )/NTc                     U S:w  a  S$ S$ )NrU   sr<   rx  )counts    r"   plural1BaseTestCase.check_executed_tests.<locals>.plural  s    1*3,",r%   c                 ~   > [        U5      nSR                  [        U5      5      nXT" U5      4-  nU< SU< S3nU$ )N z:\n    $)lenr   r@  )line_formattestsr  namesr  r  s        r"   
list_regex5BaseTestCase.check_executed_tests.<locals>.list_regex  s>    JEHHVE]+E&-"88E',e4ELr%   z%s test%s skippedz%%s test%s skipped \(resource denied\)z%s test%s failedz;%s test%s altered the execution environment \(env changed\)z%s test%s omittedz%s re-run test%sz)Re-running 1 failed tests in verbose modezRe-running z in verbose modez \(matching: z\)z%s test%s run no testsz testz OK\.rU   zAll %s)r  z(Test suite interrupted by signal SIGINT.zrun=,z \(filtered\)z	failures=zskipped=zTotal tests: r  r   /r   r  r   r  r\   r  =zTotal test files: FAILUREzENV CHANGEDINTERRUPTEDzNO TESTS RANSUCCESS, z then zResult: )
isinstancer   r   r   r  r  appendr  r   r@   r]  r  r  r   r  	tests_runfailuresr   r   any)#r,   r  r  statsr   r   r  r  r\   r  r  r{   r  r   r>  r  r  rerun_failedexecutedtotal_testsr  r  goodtextpartslineruntotal_failedtotal_rerunreportr  nteststate	new_stater  s#                                     @r"   check_executed_tests!BaseTestCase.check_executed_testsa  s    eS!!GEgs##iGos++./Ofc""XFk3''&-Kgs##iGlC(((>LeS!!e$EI[jj\F==##EJJ/,,V45kuzz*S]C,<fEX{F;	-	 2G<EOOFE*GYEOOFE*16:EOOFE*  2*,E OOFE*2G<EOOFE*1EJJ<@EOOFE*!MMEOOFE*"5::,.>?E{{!7-}B?OOFE*7FEOOFE*E
S\)C,@@3v;Ng,!$[!12474EF)-vd|<E6u}SWZ[S[ 5(OOFEO5OOF$NO eooa()fM*D>>LL9U^^A$678==LL8EMM!#4560140 +_!55|,LKv;LKCcU|V1SZL)DfM*D|$C,-G%O 45k"S./
KD% uaw/0
 %SXXf%5$6740 LL#+LL'LL'D&w3 4 4LL(LL#		% %*]]		IgVI;/E(5' 2>r%   r  returnc                 H    U R                  SU5      nUR                  S5      $ )NzUsing random seed: (.*)rU   )r  r  )r,   r  r   s      r"   parse_random_seedBaseTestCase.parse_random_seed   s#    !!"<fE{{1~r%   c           	         U(       d  SnSU;  a  [         R                  US'   UR                  SS 5      nUc+  [        [        R
                  5      nUR                  SS 5        [         R                  " U4SU[         R                  US.UD6nUR                  U:w  ad  S[        U5      < SUR                  < S	U< S
UR                  < S3	nUR                  (       a  USUR                  -  -  nU R                  U5        U$ )Nr<   r   r   rz   T)r  inputstdoutr   zCommand z failed with exit code z, but exit code z expected!

stdout:
---
z
---
z
stderr:
---
%s---
)
subprocessSTDOUTpopdictr   environr  PIPE
returncoder   r  r   r  )r,   r!   r  exitcodekwr   procr-   s           r"   run_commandBaseTestCase.run_command  s    E2%,,BxLffUD!;rzz"CGG'.~~d $#'$)%/__"%	$
 !#$ ??h& $i(DKKIC {{  
 ++& ' IIcNr%   c                    / nS[         R                  ;   a  UR                  SS/5        [         R                  /UQSPSPnU(       a  UR	                  S5        UR                  U5        U R
                  " U40 UD6nUR                  $ )NuopsrM  faulthandlerz-I)sys	_xoptionsextend
executabler  r	  r  )r,   r!   isolatedr  	extraargscmdr  s          r"   
run_pythonBaseTestCase.run_python'  sz    	S]]"dF^,~~@	@4@@JJt

4*r*{{r%   )r   r  )NNFT)Nr   )T)ry  rz  r{  r|  r  r  r  r  r  r  r  r  r  r   r  r	  r  r  rx  r%   r"   r  r  $  sr    N&O*N;<(8 &()+R#'b-/',u%.3%*U]?~  !F
r%   r  c                       \ rS rSrS rSrg)CheckActualTestsi4  c           	         / SQnU R                  U5      n[        UR                  5       5      n[        R                  R                  [        R                  " [        R                  R                  [        5      5      S5      n[        [        R                  " U5      5      nU R                  UUS-  S-  SSR                  UR                  5       5       3S9  g )N)-Wd-E-bbr   test.regrtest--list-testsztest*.py	   rl  z+Unexpectedly low number of tests found in:
r  )r-   )r  r  
splitlinesr   r   r   globr  r  r  assertGreater)r,   r!   r  rough_number_of_tests_foundactual_testsuite_globrough_counted_test_py_filess         r"   #test_finds_expected_number_of_tests4CheckActualTests.test_finds_expected_number_of_tests5  s     K&&)&*;*;*=&># "T[[9R-S-7!9&)$))4I*J&K# 	66q8"<M"ii(9(9(;<= ? 	 	@r%   rx  N)ry  rz  r{  r|  r'  r  rx  r%   r"   r  r  4  s    @r%   r  c                   H  ^  \ rS rSrSrU 4S jrS rSS jrS rS r	S r
S	 rS
 rS rS r\R                   " \R$                  " 5       S5      \R                   " \R(                  S:H  S5      S 5       5       r\R                   " \R(                  S:H  S5      S 5       rSrU =r$ )ProgramsTestCaseiL  r   c                 r  > [         TU ]  5         [        U R                  5       Vs/ s H  oR	                  5       PM     snU l        / SQU l        SSSU R                  -  /U l        U R                  R                  S5        [        R                  S:X  a  U R                  R                  S5        g g s  snf )N)r  r  r  z-uallz-rwW--testdir=%s)r:   3600z-j4win32r  )superr  rangeNTESTr  r  python_argsr  regrtest_argsr  r  platformr  )r,   index	__class__s     r"   r  ProgramsTestCase.setUpU  s     7<DJJ6GH6GU&&(6GH
/%v,t>@!!">?<<7"%%d+ # Is   B4c                     U R                  U5      nU R                  UR                  5       U5        U R                  XR                  S[        U R                  5      S9  g )NT)r{   r  )r  rG   isdigitr  r  r  )r,   r  randseeds      r"   check_outputProgramsTestCase.check_outputb  sP    ))&1((*H5!!&**,0DJJ 	" 	Ir%   c                 F    U R                  XUS9nU R                  U5        g )Nr   r  )r  r;  )r,   r!   r   r  r  s        r"   	run_testsProgramsTestCase.run_testsi  s"    B&!r%   c                     [         R                  R                  U R                  S5      n/ U R                  QUPU R
                  QU R                  QnU R                  U5        g )Nzregrtest.pyr   r   r   r   r2  r3  r  r?  r,   scriptr!   s      r"   test_script_regrtest%ProgramsTestCase.test_script_regrtestm  sO    dllM:L!!L6LD,>,>LLtr%   c                 z    / U R                   QSPSPU R                  QU R                  QnU R                  U5        g )Nr   testr2  r3  r  r?  r,   r!   s     r"   test_module_test!ProgramsTestCase.test_module_testt  sJ    2!! 24 2 2##2&*jj2tr%   c                 z    / U R                   QSPSPU R                  QU R                  QnU R                  U5        g )Nr   r  rI  rJ  s     r"   test_module_regrtest%ProgramsTestCase.test_module_regrtestz  J    2!! 24 2 2##2&*jj2tr%   c                 z    / U R                   QSPSPU R                  QU R                  QnU R                  U5        g )Nr   ztest.autotestrI  rJ  s     r"   test_module_autotest%ProgramsTestCase.test_module_autotest  rP  r%   c                 ~    Sn/ U R                   QSPUPU R                  QU R                  QnU R                  U5        g )Nzfrom test import autotestz-crI  )r,   r  r!   s      r"   test_module_from_test_autotest/ProgramsTestCase.test_module_from_test_autotest  sO    *2!! 24 2 2##2&*jj2tr%   c                     [         R                  R                  U R                  S5      n/ U R                  QUPU R
                  QU R                  QnU R                  U5        g )Nzautotest.pyrB  rC  s      r"   test_script_autotest%ProgramsTestCase.test_script_autotest  sO    dllM:L!!L6LD,>,>LLtr%   c                 Z    U R                  USS9nU R                  UR                  5        g )Nbackslashreplace)errors)r	  r;  r  )r,   r!   r  s      r"   	run_batchProgramsTestCase.run_batch  s2     (:   ; 	$++&r%   z test.bat script is not installedr.  zWindows onlyc                 X   [         R                  R                  [        SSS5      nSU R                  -  /n[
        R                  " 5       S:X  a  UR                  S5        OX[
        R                  " 5       S:X  a  UR                  S5        O-[
        R                  " 5       S	   S
:X  a  UR                  S5        [        R                  (       d  UR                  S5        [        R                  " S5      (       a  UR                  S5        U R                  " U/UQU R                  Q76   g )NToolsbuildbotztest.batr,  ARM64-arm64ARM-arm32r   64bit-x64z+dPy_GIL_DISABLED--disable-gil)r   r   r   ROOT_DIRr  r4  machiner  architecturer   r  r  get_config_varr]  r  )r,   rD  	test_argss      r"   test_tools_buildbot_test)ProgramsTestCase.test_tools_buildbot_test  s    
 hZH#doo56	(X&5(X&""$Q'72V$T"##$566_-v7	7DJJ7r%   c                    [         R                  R                  [        S5      n[         R                  R	                  U5      (       d  U R                  SU S35        S/n[        R                  " 5       S:X  a  UR                  S5        OX[        R                  " 5       S:X  a  UR                  S5        O-[        R                  " 5       S	   S
:X  a  UR                  S5        [        R                  (       a  UR                  S5        [        R                  " S5      (       a  UR                  S5        U R                  " U/UQU R                  QU R                   Q76   g )NzPCbuild\rt.batzFile "z" does not existrh   rb  rc  rd  re  r   rf  rg  z-drh  ri  )r   r   r   rj  isfiler  r4  rk  r  rl  r   r  r  rm  r]  r3  r  )r,   rD  rt_argss      r"   test_pcbuild_rt ProgramsTestCase.test_pcbuild_rt  s     h(9:ww~~f%%MMF6(*:;<&(NN8$5(NN8$""$Q'72NN6"NN4 ##$566NN?+vJJ$*<*<JtzzJr%   )r2  r3  r  )NT)ry  rz  r{  r|  r1  r  r;  r?  rE  rK  rN  rR  rU  rX  r]  r~  r  r  r  r  r4  ro  rt  r  __classcell__)r6  s   @r"   r*  r*  L  s     E,I"' 224;=0.A8 B=8  0.AK BKr%   r*  c                   &   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS r\SS.S j5       r\R(                  " \R,                  S5      S\4S j5       rS rS r\R(                  " \R,                  S5      S 5       r\R(                  " \R,                  S5      S 5       rS rS r\R>                  S 5       r S r!S r"S r#S r$S  r%S! r&S" r'S# r(S$ r)S% r*S& r+S' r,S( r-S) r.S* r/S+ r0S, r1S- r2\R>                  S. 5       r3S/ r4S0 r5S1 r6S2 r7S3 r8S4 r9\Rt                  " \Rv                  S55      S6 5       r<S7 r=S8 r>S\4S9 jr?S: r@S; rAS< rBS= rCS> rDS? rE\Rt                  " \R                  S@5      SA 5       rGSB rHSC rISD rJSE rKSFrLgG)HArgsTestCasei  c                 P    SSSU R                   -  /UQnU R                  " U40 UD6$ )Nr   rH  r,  )r  r  )r,   testargsr  cmdargss       r"   r?  ArgsTestCase.run_tests  s0    $//!AMHMw-"--r%   c                     [         R                  " S5      n[        SS5       Vs/ s H  o R                  SU 3US9PM     nnU R                  " U6 nU R                  XCS[        U5      -  S9  g s  snf )Na  
            import unittest

            class PassingTests(unittest.TestCase):
                def test_test1(self):
                    pass

                def test_test2(self):
                    pass

                def test_test3(self):
                    pass
        rU   r   okr  r   r  )r  r  r0  r  r?  r  r  )r,   r  ir  r  s        r"   test_successArgsTestCase.test_success  s{        AFaL1!!Bqc(!6L'!!&()CJ 	" 	8 Ms   A/c                     [         R                  " S5      nU R                  S5      nU R                  SUS9nX#/nU R                  " U6 nU R	                  XTU/SS9  g )NzQ
            import unittest
            raise unittest.SkipTest("nope")
        r~  skipr  rU   )r   r  r  r  r  r?  r  )r,   r  test_ok	test_skipr  r  s         r"   r  ArgsTestCase.test_skip  so        ""4($$V$$7	$'!!&+4+() 	" 	+r%   c           	          [         R                  " S5      nU R                  S5      nU R                  SUS9nX#/nU R                  " US[        06nU R                  XTU[        SS5      S9  g )	Nz
            import unittest

            class FailingTest(unittest.TestCase):
                def test_failing(self):
                    self.fail("bug")
        r~  failingr  r  r   rU   r   r  r  r  r  r?  EXITCODE_BAD_TESTr  r   )r,   r  r  test_failingr  r  s         r"   test_failing_testArgsTestCase.test_failing_test  sx        ""4(''	'='C1BC!!&(1!Q 	" 	9r%   c                    0 nS H/  n[         R                  " SU-  5      nU R                  X#5      X'   M1     [        UR	                  5       5      nU R
                  " SS/UQ76 nU R                  XTSS9  U R
                  " S/UQ76 nU R                  XTUS   S	S
9  U R
                  " US[        06nU R                  XTUSS
9  g )N)audior   a  
                        from test import support; support.requires(%r)
                        import unittest
                        class PassingTest(unittest.TestCase):
                            def test_pass(self):
                                pass
                    r   allr   r  z-uaudior   rU   )r  r  r  r   )r  r  r  r@  valuesr?  r  EXITCODE_NO_TESTS_RAN)r,   r  resourcer  
test_namesr  s         r"   test_resourcesArgsTestCase.test_resources  s    ,H?? $ #$# $D #..x>EO - ELLN+
 e9j9!!&A!> 	7J7!!&27	2B() 	" 	+
 L6KL!!&2<() 	" 	+r%   c                    [         R                  " S5      nU R                  SU5      nU R                  SU[        S9nU R                  U5      nU R                  SU5      n[        UR                  S5      5      nU R                  SSU 3U[        S9nU R                  U5      nU R                  Xt5        U R                  SU5      n[        UR                  S5      5      nU R                  X5        U R                  U[        S9nU R                  U5      nU R                  UR                  5       U5        Sn	[        [        R                  U	S	9n
U R                  SU[        U
S
9nU R                  U5      nU R                  XI5        U R                  US5        [        [        R                  SS	9n
U R                  SU[        U
S
9nU R                  U5      nU R                  US5        U R                  US5        [        [        R                  SS	9n
U R                  SU[        U
S
9nU R                  U5      nU R                  UR                  5       U5        g )Nza
            import random
            print("TESTRANDOM: %s" % random.randint(1, 1000))
        randomrw   r  zTESTRANDOM: ([0-9]+)rU   --randseed=ry   )rz   r  r   zTESTRANDOM: 520XYZzTESTRANDOM: 22r<   )r  r  r  r?  r  r  r  r   r  r@   rG   r9  r  r   r  r  )r,   r  rH  r  r:  r   test_random	randseed2test_random2	timestampr   s              r"   r  ArgsTestCase.test_random  s=       $/ d5JK))&1!!"96B%++a.) H:&>)>   @**62	-!!"96B5;;q>*3 /DE))&1((*H5 !	2::;d5J$'   )))&1- 12 2::7d5J$'   )))&15) 01 2::4d5J$'   )))&1((*H5r%   c           
      R   [        S5       Vs/ s H  oR                  5       PM     nn[        R                  nU R	                  [        R
                  U5        [        US5       nS n[        US5       H0  u  pSX[        U5      U4-  nU(       a  USU-  -  n[        XtS9  UnM2     S S S 5        U R                  SU5      n[        U5      n	U R                  XU	S9  [        US5       n[        US5       H$  u  p[        S	U< S
[        U5      < SU< 3US9  M&     S S S 5        U R                  SU5      nU R                  XU	S9  [        US5       nU H  n[        XdS9  M     S S S 5        U R                  SU5      nU R                  XU	S9  [        US5       nU H  n[        SU-  US9  M     S S S 5        U R                  SU5      nU R                  XU	S9  g s  snf ! , (       d  f       GNC= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nj= f)Nr   r   rU   z00:00:%02i [%s/%s] %sz -- %s took 0 secr   r   r  [r  z] zLib/test/%s.py)r0  r  r   r   r   r   r   	enumerater  r   r?  r  )
r,   r5  r  r   r   previousr  r  r  r  s
             r"   r   ArgsTestCase.test_fromfileR  s   16q:!!#:
 ##	(((3 (C BH(2/ UT:;/(::Dd$  3 ! h7E
!!&u!= (C B(2eSZ>RH  3 ! h7!!&u!= (C Bd$  ! h7!!&u!= (C B&-B7  ! h7!!&u!=[ ; !  !  !  ! s6   G%AG$)5G6HH$
G36
H
H
H&c                 |    [         nU R                  SUS9nU R                  U[        S9nU R	                  X2USSS9  g )Nsigintr  r  Tr   r  r   r  )TEST_INTERRUPTEDr  r?  EXITCODE_INTERRUPTEDr  r,   r  rH  r  s       r"   test_interruptedArgsTestCase.test_interrupted  sK    t4/CD!!&.2! 	" 	=r%   c                    [        S5       Vs/ s H  oR                  5       PM     nnU R                  " S/UQ76 nU R                  X2[	        U5      S9  SU R
                  < S[	        U5      < S3nU R                  X45        g s  snf )Nr   rn   r  z10 slowest tests:
(?:- z: .*
){})r0  r  r?  r  r  r  r  )r,   r5  r  r  r  s        r"   rp   ArgsTestCase.test_slowest  sv    16q:!!#:4e4!!&s5z!B ''U5 	& ;s   Bc           
      .   [         nU R                  SUS9nS Hg  nU R                  US9   U(       a  SSU4nOSU4nU R                  " US[        06nU R                  XRUSS	S
9  SnU R                  XV5        S S S 5        Mi     g ! , (       d  f       M{  = f)Nr  r  r  )multiprocessingrn   rt  r  Tr   r  z10 slowest tests:
)r  r  r4   r?  r  r  r  )r,   r  rH  r  r!   r  r  s          r"   test_slowest_interrupted%ArgsTestCase.test_slowest_interrupted  s    t4,Oo>"'5D'.DM8LM))&26D01 * 3 /. ?>  ->>s   AB
B	c                     U R                  S5      nU R                  SU5      nU R                  X!/SS9  SnU R                  X#5        g )Ncoverager   rU   r  zLlines +cov% +module +\(path\)\n(?: *[0-9]+ *[0-9]{1,2}% *[^ ]+ +\([^)]+\)+)+)r  r?  r  r  )r,   rH  r  r  s       r"   test_coverageArgsTestCase.test_coverage  sK    
+d3!!&&!:B&r%   c                 l    U R                  S5      nU R                  SUSS9nU R                  US5        g )NrH   rF   key)r  zPress any key to continue)r  r?  r  )r,   rH  r  s      r"   rJ   ArgsTestCase.test_wait  s5    '$e< ;<r%   c           
      0   [         R                  " S5      nU R                  SUS9nU R                  SU[        S9nU R                  X2/S-  U[        SS5      SS	9  U R                  SS
USS9nU R                  X2/S-  [        USSS9[        SS5      SS9  g )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  r  r  r  r   rU   T)r   r  r  r[   r   test_runr   r  r   )r\   r  r  )r  r  r  r?  r  r  r   r  r  s       r"   r  ArgsTestCase.test_forever  s        	5 T<MN!!&&(4(1!Q*. 	" 	0
 YqI!!&&((-d4>6:)< )2!Q*. 	" 	0r%   Frun_workersc                   U R                  SUS9nSnU R                  [        R                  U5        SS/nU(       a  UR	                  S5        UR	                  U5        U R
                  " U[        [        R                  S.6nU R                  Xt/USS	9  S
nU R                  Xx5        U< SU< S3n	U R                  X5        [        U5       n
U
R                  5       nU R                  X5        S S S 5        g ! , (       d  f       g = f)Nr   r  r   r   3:3:r   r  r   rU   r  z6beginning 6 repetitions. .*\n123:456\n[.0-9X]{3} 111\nz leaked [1, 1, 1] z, sum=3
)r  r   r   r   r  r?  r  r  r   r  r  r*   r   read)r,   r  whatr  rH  r   r  r  r  line2r   reflogs               r"   
check_leakArgsTestCase.check_leak  s    48	(((3v&JJu

4):'1'8'8: 	!!&&Q!GH%594@e$(^rWWYFMM%( ^^s   "C;;
D	r   r  c                R    [         R                  " S5      nU R                  USUS9  g )Nz
            import unittest

            GLOBAL_LIST = []

            class RefLeakTest(unittest.TestCase):
                def test_leak(self):
                    GLOBAL_LIST.append(object())
        
referencesr  r  r  r  )r,   r  r  s      r"   check_huntrleaksArgsTestCase.check_huntrleaks  s+         	lDr%   c                 "    U R                  SS9  g NFr  r  r  s    r"   r   ArgsTestCase.test_huntrleaks  s    %0r%   c                 "    U R                  SS9  g NTr  r  r  s    r"   test_huntrleaks_mpArgsTestCase.test_huntrleaks_mp  s    $/r%   c                    [         R                  " S5      nU R                  SUS9nSnU R                  [        R
                  U5        SSSU/nU R                  " U[        [        R                  S.6nU R                  S	U 3U5        U R                  S	U S
3U5        U R                  SU5        U R                  SU S3U5        g )Nay  
            import unittest

            GLOBAL_LIST = []

            class RefLeakTest(unittest.TestCase):
                def test1(self):
                    pass

                def test2(self):
                    pass

                def test3(self):
                    GLOBAL_LIST.append(object())

                def test4(self):
                    pass
        r   r  r   r   r  rf  r  zBisect z: exit code 0zBisection completed inzTests (1):
* z.RefLeakTest.test3
)r  r  r  r   r   r   r?  r  r  r   r*   )r,   r  rH  r   r  r  s         r"   test_huntrleaks_bisect#ArgsTestCase.test_huntrleaks_bisect  s        & 48	(((3vz48):'1'8'8: 	v&/v]3V< 	.7*,	r%   c                 T    [         R                  " S5      nU R                  US5        g )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
        zfile descriptorsr  )r,   r  s     r"   test_huntrleaks_fd_leak$ArgsTestCase.test_huntrleaks_fd_leak.  s(         	01r%   c                     [        S5       Vs/ s H  oR                  5       PM     nnU R                  " S/UQ76 nU R                  UR	                  5       R                  5       U5        g s  snf )Nr   r  )r0  r  r?  r@   rstripr!  )r,   r  r  r  s       r"   test_list_testsArgsTestCase.test_list_tests<  s[    -21X6X!!#X677335	  7s   A+c                 :   [         R                  " S5      nU R                  US9nSU-  SU-  /nU R                  SU5      nU R	                  UR                  5       U5        SU-  /nU R                  SSSU5      nU R	                  UR                  5       U5        g )Nz
            import unittest

            class Tests(unittest.TestCase):
                def test_method1(self):
                    pass
                def test_method2(self):
                    pass
        r  z%s.Tests.test_method1z%s.Tests.test_method2z--list-casesr   test_method1)r  r  r  r?  r@   r!  )r,   r  testnameall_methodsr  s        r"   test_list_casesArgsTestCase.test_list_casesC  s        ###. /9.9;9**,k: /9: $n (* 	**,k:r%   c                     SnU R                  SUS9nU/nU R                  " S/UQ7S[        06nU R                  XCUSSS9  g )	Nz,import faulthandler; faulthandler._sigsegv()crashr  r  rt  r  Tr   r   r  r  )r  r?  r  r  )r,   r  
crash_testr  r  s        r"   test_crashedArgsTestCase.test_crashed]  sZ     >%%7%>
JJ8IJ!!&
+/q 	" 	:r%   c                     [         R                  " S[         R                  S9nUR                  U5       Vs/ s H  o3R	                  S5      PM     sn$ s  snf )Nz^(test[^ ]+).*ok$flagsrU   )r  r  r  r  r  )r,   r  r  r   s       r"   parse_methodsArgsTestCase.parse_methodsh  s@    

.bllC,1NN6,BC,B5A,BCCCs   Ac                    [         R                  " S5      nU R                  US9n[        R                  nU R                  [        R                  U5        SSU-  /n[        US5       nU H  n[        XeS9  M     S S S 5        U R                  SSX25      nU R                  U5      nS	S
/nU R                  X5        g ! , (       d  f       NH= f)NV  
            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
        r  r  %s.Tests.test_method3r   r   rT   r   test_method2test_method4)r  r  r  r   r   r   r   r   r   r?  r  r@   )	r,   r  r  r   subsetr   r  r  methodss	            r"   test_ignorefileArgsTestCase.test_ignorefilel  s        ###. ##	(((3 #h.	0
 (C Bd$  ! nhI$$V, .1) ! s   )B>>
Cc                    [         R                  " S5      n/ SQnU R                  US9nU R                  SU5      nU R	                  U5      nU R                  XR5        [        R                  nU R                  [        R                  U5        SSU-  /n[        US5       nU H  n	[        XS9  M     S S S 5        U R                  SS	Xc5      nU R	                  U5      nSS
/nU R                  XW5        g ! , (       d  f       NH= f)Nr  )r  r  test_method3r  r  rT   r  r  r   r   r   r  )r  r  r  r?  r  r@   r   r   r   r   r   r   )
r,   r  r  r  r  r  r   r  r   r  s
             r"   test_matchfileArgsTestCase.test_matchfile  s       7###. h/$$V,. ##	(((3 #h.	0
 (C Bd$  ! mXH$$V, .1) ! s   !C66
Dc                 @   [         R                  " S5      nU R                  US9nU R                  U5      nU R	                  X2/USS9  U R                  SU[
        S9nU R	                  X2/USSS9  U R                  S	U5      nU R	                  X2/U[        US SS
9SS9  g )Nz
            import unittest

            class Tests(unittest.TestCase):
                def test_env_changed(self):
                    open("env_changed", "w").close()
        r  rU   )r  r  --fail-env-changedr  Tr  r>  r  r[   r  r   )r  r\   r  )r  r  r  r?  r  EXITCODE_ENV_CHANGEDr  r,   r  r  r  s       r"   test_env_changedArgsTestCase.test_env_changed  s        ###. )!!&*.6a 	" 	A  4h)=   ?!!&*(37q 	" 	B 	84!!&*.6(-h486:)< )* 	" 	+r%   c           
          [         R                  " S5      nU R                  US9nU R                  SU[        S9nU R                  X2/[        USSS9[        SS	5      S
9  g )Na  
            import unittest

            class Tests(unittest.TestCase):
                def test_succeed(self):
                    return

                def test_fail_always(self):
                    # test that always fails
                    self.fail("bug")
        r  r[   r  test_fail_alwaysF)r  r   r   r\   r  )r  r  r  r?  r  r  r  r   r
  s       r"   test_rerun_failArgsTestCase.test_rerun_fail  sq     
  
 ###.	8>OP!!&*(-h.@6;)= )2!Q	 	" 	9r%   c           
      l   [         R                  R                  S5      nU R                  [        R
                  U5        U R                  [         R                  R                  U5      5        [        R                  " SU< S35      nU R                  US9nU R                  SUSS9nU R                  XC/[        USS	S
9[        SS5      S9  [        R
                  " U5        U R                  SSU[        S9nU R                  XC/[        USS	S
9[        SS5      S9  [        R
                  " U5        g )Nregrtest_marker_filenamezW
            import os.path
            import unittest

            marker_filename = aD  

            class Tests(unittest.TestCase):
                def test_succeed(self):
                    return

                def test_fail_once(self):
                    if not os.path.exists(marker_filename):
                        open(marker_filename, "w").close()
                        self.fail("bug")
        r  r[   r   r  test_fail_onceTr  r   rU   r  z--fail-rerun)r   r   r   r   r   r   r~   existsr  r  r  r?  r  r  r   EXITCODE_RERUN_FAIL)r,   marker_filenamer  r  r  s        r"   test_rerun_successArgsTestCase.test_rerun_success  s6   ''//*DE	((/:89 $  /1 
2		   ###. 	8a@!!&*(-h4D6:)< )2!Q	 	" 	9
 	) 	>8)<   >!!&*(-h4D6:)< )2!Q	 	" 	9
 	)r%   c                     [         R                  " S5      nU R                  US9nU R                  SU[        S9nU R                  X2U/[        USSS9SS	9  g )
Na  
            import unittest

            class ExampleTests(unittest.TestCase):
                @classmethod
                def setUpClass(self):
                    raise RuntimeError('Fail')

                def test_success(self):
                    return
        r  r[   r  ExampleTestsFr  r   r   r\   r  r  r  r  r?  r  r  r  r
  s       r"   #test_rerun_setup_class_hook_failure0ArgsTestCase.test_rerun_setup_class_hook_failure  n     
  
 ###.	8>OP!!&*2(-h4B6;)= )* 	" 	+r%   c                     [         R                  " S5      nU R                  US9nU R                  SU[        S9nU R                  X2U/[        USSS9SS	9  g )
Na  
            import unittest

            class ExampleTests(unittest.TestCase):
                @classmethod
                def tearDownClass(self):
                    raise RuntimeError('Fail')

                def test_success(self):
                    return
        r  r[   r  r  Fr  r   r  r  r
  s       r"   &test_rerun_teardown_class_hook_failure3ArgsTestCase.test_rerun_teardown_class_hook_failure-  r   r%   c                     [         R                  " S5      nU R                  US9nU R                  SU[        S9nU R                  X2U/[        US SS9SS9  g )	Nz
            import unittest

            def setUpModule():
                raise RuntimeError('Fail')

            class ExampleTests(unittest.TestCase):
                def test_success(self):
                    return
        r  r[   r  Fr  r   r  r  r
  s       r"   $test_rerun_setup_module_hook_failure1ArgsTestCase.test_rerun_setup_module_hook_failureD  sn     	  	 ###.	8>OP!!&*2(-h486;)= )* 	" 	+r%   c                     [         R                  " S5      nU R                  US9nU R                  SU[        S9nU R                  X2/U/[        US SS9SS9  g )	Nz
            import unittest

            def tearDownModule():
                raise RuntimeError('Fail')

            class ExampleTests(unittest.TestCase):
                def test_success(self):
                    return
        r  r[   r  Fr  r   r  r  r
  s       r"   'test_rerun_teardown_module_hook_failure4ArgsTestCase.test_rerun_teardown_module_hook_failureZ  sp     	  	 ###.	8>OP!!&**2(-h486;)= )* 	" 	+r%   c                     [         R                  " S5      nU R                  US9nU R                  SU[        S9nU R                  X2U/[        USSS9SS	9  g )
Nz
            import unittest

            class ExampleTests(unittest.TestCase):
                def setUp(self):
                    raise RuntimeError('Fail')

                def test_success(self):
                    return
        r  r[   r  r  Fr  r   r  r  r
  s       r"   test_rerun_setup_hook_failure*ArgsTestCase.test_rerun_setup_hook_failurep  n     	  	 ###.	8>OP!!&*2(-h4B6;)= )* 	" 	+r%   c                     [         R                  " S5      nU R                  US9nU R                  SU[        S9nU R                  X2U/[        USSS9SS	9  g )
Nz
            import unittest

            class ExampleTests(unittest.TestCase):
                def tearDown(self):
                    raise RuntimeError('Fail')

                def test_success(self):
                    return
        r  r[   r  r  Fr  r   r  r  r
  s       r"    test_rerun_teardown_hook_failure-ArgsTestCase.test_rerun_teardown_hook_failure  r-  r%   c           
          [         R                  " S5      nU R                  US9nU R                  SU[        S9nU R                  X2[        USSS9SS	9  g )
Na  
            import unittest

            class ExampleTests(unittest.IsolatedAsyncioTestCase):
                async def asyncSetUp(self):
                    raise RuntimeError('Fail')

                async def test_success(self):
                    return
        r  r[   r  r  Fr  r   r  r  r
  s       r"   #test_rerun_async_setup_hook_failure0ArgsTestCase.test_rerun_async_setup_hook_failure  si     	  	 ###.	8>OP!!&(-h4B6;)= )*	 	" 	+r%   c                     [         R                  " S5      nU R                  US9nU R                  SU[        S9nU R                  X2U/[        USSS9SS	9  g )
Na  
            import unittest

            class ExampleTests(unittest.IsolatedAsyncioTestCase):
                async def asyncTearDown(self):
                    raise RuntimeError('Fail')

                async def test_success(self):
                    return
        r  r[   r  r  Fr  r   r  r  r
  s       r"   &test_rerun_async_teardown_hook_failure3ArgsTestCase.test_rerun_async_teardown_hook_failure  r-  r%   c                     [         R                  " S5      nU R                  US9nU R                  USS[        S9nU R                  X2/USSS9  g 	N
            import unittest

            class Tests(unittest.TestCase):
                def test_bug(self):
                    pass
        r  r   
nosuchtestr  r   Tr  r  r  r  r  r  r?  r  r  r
  s       r"   test_no_tests_ranArgsTestCase.test_no_tests_ran  sf        ###.$)>   @!!&*/7()D 	" 	:r%   c           	          [         R                  " S5      nU R                  US9nU R                  U5      nU R	                  X2/[        SSS9S9  g )Nz
            import unittest

            class Tests(unittest.TestCase):
                def test_skipped(self):
                    self.skipTest("because")
        r  rU   )r   r  )r  r  r  r?  r  r   r
  s       r"   test_no_tests_ran_skip#ArgsTestCase.test_no_tests_ran_skip  sZ        ###.)!!&*(1!Q(? 	" 	Ar%   c                     [         R                  " S5      nU R                  US9nU R                  US9nU R                  X#SS[        S9nU R                  XBU/X#/SSS9  g r8  r<  )r,   r  r  	testname2r  s        r"   ,test_no_tests_ran_multiple_tests_nonexistent9ArgsTestCase.test_no_tests_ran_multiple_tests_nonexistent  s        ###.$$$$/	T<)>   @!!&Y*?08/D()D 	" 	:r%   c           
          [         R                  " S5      nU R                  US9n[         R                  " S5      nU R                  US9nU R                  X$SSSSSS9nU R	                  XRU/U/S	S
S9  g )Nr9  r  z
            import unittest

            class Tests(unittest.TestCase):
                def test_other_bug(self):
                    pass
        r   r:  test_other_bugr   r  rU   Tr;  r  )r,   r  r  
other_coderC  r  s         r"   )test_no_test_ran_some_test_exist_some_not6ArgsTestCase.test_no_test_ran_some_test_exist_some_not  s        ###.__ & 
 $$*$5	T< $&6   D!!&Y*?08z()D 	" 	:r%   c                      SS K n[        R
                  " S5      nU R                  US9nU R                  SU[        S9nU R                  XC/U/SSS	9  g ! [         a    [        R                  " S5      ef = f)
Nr   zrequires _testcapia  
            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
        r  r  r  TrU   r  )
	_testcapiImportErrorr~  SkipTestr  r  r  r?  r	  r  )r,   rL  r  r  r  s        r"   test_uncollectableArgsTestCase.test_uncollectable  s    	:    " ###. 4h)=   ?!!&*/7j37() 	" 	+/  	:##$899	:s   A !A6c                    [         R                  " S5      nU R                  US9nU R                  SSU[        S9nU R                  X2/USS9  U R                  U[        R                  " SU-  [        R                  5      5        g )	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)
        r  rt  z--timeout=1.0r  r   r  z%s timed out)
r  r  r  r?  r  r  r  r  r  r  r
  s       r"   test_multiprocessing_timeout)ArgsTestCase.test_multiprocessing_timeout.  s       $ ###.):   <!!&*)1 	" 	<NX$=r||L	Nr%   c                     [         R                  " S5      nU R                  US9nU R                  SSU[        S9nU R                  X2/U/SSS9  U R                  S	U5        U R                  S
U5        g )Na  
            import unittest
            import weakref
            from test.support import captured_stderr

            class MyObject:
                pass

            def weakref_callback(obj):
                raise Exception("weakref callback bug")

            class Tests(unittest.TestCase):
                def test_unraisable_exc(self):
                    obj = MyObject()
                    ref = weakref.ref(obj, weakref_callback)
                    with captured_stderr() as stderr:
                        # call weakref_callback() which logs
                        # an unraisable exception
                        obj = None
                    self.assertEqual(stderr.getvalue(), '')
        r  r  rT   r  TrU   r  zWarning -- Unraisable exceptionzException: weakref callback bugr  r  r  r?  r	  r  r*   r
  s       r"   test_unraisable_exc ArgsTestCase.test_unraisable_excJ  s        * ###. 4dH)=   ?!!&*/7j37() 	" 	+ 	7@7@r%   c                     [         R                  " S5      nU R                  US9nU R                  SSU[        S9nU R                  X2/U/SSS9  U R                  S	U5        U R                  S
U5        g )Na[  
            import threading
            import unittest
            from test.support import captured_stderr

            class MyObject:
                pass

            def func_bug():
                raise Exception("bug in thread")

            class Tests(unittest.TestCase):
                def test_threading_excepthook(self):
                    with captured_stderr() as stderr:
                        thread = threading.Thread(target=func_bug)
                        thread.start()
                        thread.join()
                    self.assertEqual(stderr.getvalue(), '')
        r  r  rT   r  TrU   r  z$Warning -- Uncaught thread exceptionzException: bug in threadrU  r
  s       r"   test_threading_excepthook&ArgsTestCase.test_threading_excepthookm  s        & ###. 4dH)=   ?!!&*/7j37() 	" 	+ 	<fE0&9r%   c           
      6   [         R                  " S5      nU R                  US9nSnS HZ  nU R                  US9   SXB/nU R                  " US[
        06nU R                  Xb/U/SS	S
9  U R                  Xc5        S S S 5        M\     g ! , (       d  f       Mn  = f)Na%  
            import sys
            import unittest
            from test import support

            class MyObject:
                pass

            def func_bug():
                raise Exception("bug in thread")

            class Tests(unittest.TestCase):
                def test_print_warning(self):
                    print("msg1: stdout")
                    support.print_warning("msg2: print_warning")
                    # Fail with ENV CHANGED to see print_warning() log
                    support.environment_altered = True
        r  zFtest_print_warning.*msg1: stdout\nWarning -- msg2: print_warning\nok\n)rT   ra   )optionr  r  TrU   r  )r  r  r  r4   r?  r	  r  r  )r,   r  r  r  r\  r  r  s          r"   test_print_warningArgsTestCase.test_print_warning  s        $ ###. #FV,+V>L7KL))&*7?j;?01 * 3   / -, #,,s   A B		
B	c                     [         R                  R                  [        R                  5      nU R                  U[        R                   S35        UR                  5       (       a  U R                  S5        g g )Nz not setzModified guard)r   r  getr	   UNICODE_GUARD_ENVrm  isasciir  )r,   guards     r"   test_unicode_guard_env#ArgsTestCase.test_unicode_guard_env  sW    

u667Uu'>'>&?x$HI==?? MM*+ r%   c                    [         R                  R                  U R                  S5      n[         R                  " U5        [         R                  R                  U R                  S5      n[        US5      R                  5         X/nSSSU R                  -  S/nU R                  U5        U H2  nU R                  [         R                  R                  U5      U5        M4     g )Ntest_python_123test_python_456wbr   rH  z--tempdir=%sz	--cleanup)
r   r   r   r  mkdirr   closer  r~   r  )r,   r  r   r  r{  r  s         r"   test_cleanupArgsTestCase.test_cleanup  s    '',,t0AB
77<<1BCXt""$#!DOO3  	 DRWW^^D148 r%   z.checking temp files is not implemented on WASIc           
      6   [         R                  " S5      n[        S5       Vs/ s H  o R                  US9PM     nnU R                  " SSS/UQ7S[
        06nU R                  XCUSS[        U5      S	9  U H  nU R                  S
U S3U5        M     g s  snf )Nam  
            import os.path
            import tempfile
            import unittest

            class FileTests(unittest.TestCase):
                def test_leak_tmp_file(self):
                    filename = os.path.join(tempfile.gettempdir(), 'mytmpfile')
                    with open(filename, "wb") as fp:
                        fp.write(b'content')
        r   r  r  rT   rt  r  T)r  r>  r  r  zWarning -- z& leaked temporary files (1): mytmpfile)	r  r  r0  r  r?  r	  r  r  r*   )r,   r  _	testnamesr  r  s         r"   test_leak_tmp_fileArgsTestCase.test_leak_tmp_file  s      
  
 ;@(C(Q%%4%0(	C 4dE ?I ?)=?!!&.737+/(+I	 	" 	8
 "HMMKz 21 2 " " Ds   Bc                    [         R                  S:X  a  [        R                  " 5       nOK[         R                  R
                  nUc.  [         R                  R
                  nUc  U R                  S5        [        S [        SS5       5       5      nSU4-  nSnX4R                  S5      -  n UR                  U5        U R                  U S	35        UR                  US
5      n[        R                  " SU< S35      nU R                  US9nU R!                  SSSU5      nU R#                  X/SSS9  U R%                  XSS9  g ! [         a     Nf = f)Nr.  z#cannot get regrtest worker encodingc              3   $   #    U  H  ov   M     g 7fr   rx  )r  chs     r"   r  8ArgsTestCase.test_worker_decode_error.<locals>.<genexpr>  s     6oos         s   nonascii:%s
z*Assertion failed: tstate_is_alive(tstate)
z	utf-16-lez can decode non-ASCII bytesr[  z
            import sys
            import unittest

            class Tests(unittest.TestCase):
                def test_pass(self):
                    pass

            # bytes which cannot be decoded from UTF-8
            corrupted_output = ze
            sys.stdout.buffer.write(corrupted_output)
            sys.stdout.buffer.flush()
        r  r  rT   r   TrU   )r  r  F)r  )r  r4  localegetencodingr  r  
__stdout__r  bytesr0  encodedecodeUnicodeDecodeErrorr  r  r  r?  r  r  )	r,   r  nonasciicorrupted_outputassertion_failedexpected_liner  r  r  s	            r"   test_worker_decode_error%ArgsTestCase.test_worker_decode_error  sb   <<7"))+Hzz**H>>22#MM"GH6eCo66+xk9 I33K@@	D##H- MMXJ&ABC(//:LM 	%  !13 4	   ###. 4dE8L!!&*+/() 	" 	+ 	U;5 " 		s   .E 
EEc                     [         R                  " S5      nU R                  US9nU R                  SSSU[        S9nU R                  X2/U/S[        SSS	5      S
9  g )NaX  
            import doctest
            import sys
            from test import support

            def my_function():
                """
                Pass:

                >>> 1 + 1
                2

                Failure:

                >>> 2 + 3
                23
                >>> 1 + 1
                11

                Skipped test (ignored):

                >>> id(1.0)  # doctest: +SKIP
                7948648
                """

            def load_tests(loader, tests, pattern):
                tests.addTest(doctest.DocTestSuite())
                return tests
        r  r  rT   r   r  TrU   r   r  r  r
  s       r"   test_doctestArgsTestCase.test_doctest  st       : ###. 4dE8):   <!!&**2+/(1!Q(: 	" 	<r%   c                 T   [         R                  " S5      n[        SS5       Vs/ s H  nU R                  SU 3US9PM     nnSnSSU 3/nU(       a  UR	                  S	[        U5       35        UR                  U5        U R                  " U6 n[        R                  " U5        [        S
5       Vs/ s H  n[        R                  " SS5      PM     n	nSU	 3n
Sn[        R                  " X[        R                  S9nU R                  X/[        U5      -  5        g s  snf s  snf )Na   
            import random
            import unittest

            class RandomSeedTest(unittest.TestCase):
                def test_randint(self):
                    numbers = [random.randint(0, 1000) for _ in range(10)]
                    print(f"Random numbers: {numbers}")
        rU   r   r  r  iJ3rx   r  r   rl  r   r  zRandom numbers: z^Random numbers: .*$r  )r  r  r0  r  r  r  r  r?  r  seedrandintr  findallr  r@   )r,   r  r  r  r  r   r  r  ro  numbersr   r  matchess                r"   _check_random_seedArgsTestCase._check_random_seed@  s         3-)'Q !!QC'8t!D' 	 ) "K=9:JJCJ<()

5%K  5:"I>Iq6>>!T*I>%gY/'**U",,?*s5z"9:)) ?s   D 4!D%c                 "    U R                  SS9  g r  r  r  s    r"   test_random_seedArgsTestCase.test_random_seedb  s    E2r%   c                 "    U R                  SS9  g r  r  r  s    r"   test_random_seed_workers%ArgsTestCase.test_random_seed_workerse  s    D1r%   c                 8   [         R                  " S5      n[        S5       Vs/ s H  o R                  US9PM     nn[        R
                  SS/n[        R                  " U5      nU R                  " SUS/UQ76 nU R                  XS[        U5      SS	9  g s  snf )
Nz
            import sys
            import unittest

            class WorkerTests(unittest.TestCase):
                def test_dev_mode(self):
                    self.assertTrue(sys.flags.dev_mode)
        r   r  rM  rN  rK  z-j0Tr  r  )r  r  r0  r  r  r  shlexr   r?  r  r  )r,   r  ro  r  rO  r  s         r"   test_python_command ArgsTestCase.test_python_commandh  s        7<Ah?h!!t!,h? nndE2
 ZZ
+

JFF!!&(+E
T 	" 	C @s   Bc                    [         R                  R                  [         R                  R                  [        5      SS5      nS Vs/ s H  nSU 3PM
     nnSSSSS	S
U-  /UQnU R                  U5      nU R                  XSSS9  g s  snf )Nregrtestdataimport_from_tests)abcr  r  r  r  r   rH  r,  r   r  )r   r   r   r  r  r  r  )r,   r   r  r  r!   r  s         r"   test_unload_testsArgsTestCase.test_unload_tests}  s     '',,rwwx8-/BD5DE_T>$(_EtUD&.72JSUS&!!&q!9 Fs   Bc                     SS K n[        R
                  " S5      nU R                  US9n[        R                  SSUSU R                   3U/n[        R                  " U[        R                  [        R                  SS	9nU R                  UR                  SU5        g ! [         a    [        R                  " S5      ef = f)
Nr   zrequires _testinternalcapia)  
            import sys
            import unittest
            from test import support
            try:
                from _testinternalcapi import get_config
            except ImportError:
                get_config = None

            # WASI/WASM buildbots don't use -E option
            use_environment = (support.is_emscripten or support.is_wasi)

            class WorkerTests(unittest.TestCase):
                @unittest.skipUnless(get_config is None, 'need get_config()')
                def test_config(self):
                    config = get_config()['config']
                    # -u option
                    self.assertEqual(config['buffered_stdio'], 0)
                    # -W default option
                    self.assertTrue(config['warnoptions'], ['default'])
                    # -bb option
                    self.assertTrue(config['bytes_warning'], 2)
                    # -E option
                    self.assertTrue(config['use_environment'], use_environment)

                def test_python_opts(self):
                    # -u option
                    self.assertTrue(sys.__stdout__.write_through)
                    self.assertTrue(sys.__stderr__.write_through)

                    # -W default option
                    self.assertTrue(sys.warnoptions, ['default'])

                    # -bb option
                    self.assertEqual(sys.flags.bytes_warning, 2)

                    # -E option
                    self.assertEqual(not sys.flags.ignore_environment,
                                     use_environment)
        r  r   rH  z
--testdir=T)r  r   r  )_testinternalcapirM  r~  rN  r  r  r  r  r  r  r  r  r  r   r@   r  )r,   r\  r  r  r  r  r  s          r"   check_add_python_opts"ArgsTestCase.check_add_python_opts  s    	B$  '  'P ###. ~~VVDOO,- ~~c%/__%/%6%6#') 	!T2k  	B##$@AA	Bs   B !C c                     S H,  nU R                  US9   U R                  U5        S S S 5        M.     g ! , (       d  f       M@  = f)N)rD  rY  r2   )r4   r  )r,   r3   s     r"   test_add_python_opts!ArgsTestCase.test_add_python_opts  s7    -C#&**3/ '& .&&s	   4
A	z(raising SIGSEGV on Android is unreliablec                      SSK Jn  [        R
                  " S5      nU R                  US9n[        [        R                  5      nSn[        R                  " XE5        U R                  SU[        US9nU R                  XcU/SS	S
9  [        R                  (       d0  [!        ["        R$                  5      * nU R'                  SU S3U5        U R)                  USS	SS9  g ! [         a    U R                  S5         Nf = f)Nr   )_sigsegvzneed faulthandler._sigsegvak  
            import faulthandler
            import unittest
            from test import support

            class CrashTests(unittest.TestCase):
                def test_crash(self):
                    print("just before crash!", flush=True)

                    with support.SuppressCrashReport():
                        faulthandler._sigsegv(True)
        r  zhandle_segv=0r   r  T)r   r  r  z
Exit code z
 (SIGSEGV)zjust before crash!F)r  r  )r  r  rM  r  r  r  r  r  r   r  r   set_sanitizer_env_varr?  r  r  
MS_WINDOWSr   signalSIGSEGVr*   r  )r,   r  r  r  r   r\  r  r  s           r"   test_worker_output_on_failure*ArgsTestCase.test_worker_output_on_failure  s    	8-     ###. 2:: %%c2x):$'   ) 	!!&*2()D 	" 	: !!FNN++HMMJxj
;VD 44uM?  	8MM67	8s   C C=<C=c                 R   [         R                  " S5      nU R                  US9nU R                  SU5      nU R	                  X2SS9  U R                  SU5        [        R                  (       a9  U R                  SSS	SU5      nU R	                  X2SS
S9  U R                  SU5        g g )Nz
            import unittest
            from test import support

            class VerboseTests(unittest.TestCase):
                def test_pass(self):
                    print("SPAM SPAM SPAM")
        r  rb   rU   r  zSPAM SPAM SPAMr   z3:3r   Tr  )r  r  r  r?  r  assertNotInr   r  r
  s       r"   rd   ArgsTestCase.test_verbose3  s        ###. h7!!&!!<)62 ^^D%hOF%%fa$%O-v6	 r%   c           
         [         R                  " S5      nU R                  US9n[        R                  nU R                  [        R                  U5        U R                  USU[        S9nU R                  XBU[        SSS5      S9  [        USS	9 nUR                  5       nS S S 5        [        R                  " W5      nU R                  [!        UR#                  S
5      5      S5        U R                  [!        UR#                  S5      5      S5        U R                  [!        UR#                  S5      5      S5        US   S   nU R                  UR#                  S5      S5        U R                  UR#                  S5      S5        U R%                  ['        UR#                  S5      5      S5        UR)                  S5       H  n	U R                  U	R*                  S5        M!     g ! , (       d  f       GNL= f)Nz
            import unittest

            class VerboseTests(unittest.TestCase):
                def test_failed(self):
                    print("abc \x1b def")
                    self.fail()
        r  z--junit-xmlr  rU   r   r  utf8r  r  r\  r  statusr  result	completedtimez
system-outzabc \x1b def)r  r  r  r   r   r   r   r?  r  r  r   r   r  r   
fromstringr@   r   r`  r#  floatiterr  )
r,   r  r  r   r  r   content	testsuitetestcaser6   s
             r"   test_xmlArgsTestCase.test_xml	  s       ###. ##	(((3-):   <!!&)1(1!Q(: 	" 	<
 (V,ggiG -  **73	Y]]734a8Y]]845q9Y]]:67;Q<?h/7h/=5f!56:==.CSXX7 / -,s   G((
G7c                   ^ ^ [         R                  " S5      nT R                  US9m[        [        R
                  5      nSUS'   U U4S jnT R                  STUSS9nU" U5        T R                  S	STUSS9nU" U5        g )
Na  
            import unittest

            class NonASCIITests(unittest.TestCase):
                def test_docstring(self):
                    '''docstring:\u20ac'''

                def test_subtest(self):
                    with self.subTest(param='subtest:\u20ac'):
                        pass

                def test_skip(self):
                    self.skipTest('skipped:\u20ac')
        r  asciiPYTHONIOENCODINGc           	         > TR                  U T[        SSS5      S9  TR                  SU 5        TR                  SU 5        g )Nr   r   rU   r  zdocstring:\u20aczskipped:\u20ac)r  r   r*   )r  r,   r  s    r"   check)ArgsTestCase.test_nonascii.<locals>.checkG	  s?    %%fhi1a>P%QMM-v6MM+V4r%   rT   Fr>  r   )r  r  r  r  r   r  r?  )r,   r  r   r  r  r  s   `    @r"   test_nonasciiArgsTestCase.test_nonascii3	  s        ###.2::")	5 hC%Hf tX3Ofr%   c                 :   U R                  SS5      nUR                  5       R                  5       nU R                  SSSS5      nUR                  5       R                  5       nU R                  SU5        U R	                  [        U5      [        U5      S-
  5        g )Nz--pgor  r   test_rerU   )r?  stripsplitr  r@   r  )r,   r  	pgo_testsr  s       r"   test_pgo_excludeArgsTestCase.test_pgo_excludeT	  s}    8LLN((*	 yI$$&E*US^a%78r%   rx  N)Mry  rz  r{  r|  r?  r  r  r  r  r  r   r  rp   r  r  rJ   r  r   r  r~  r  r   r  r  r  r   r  r  r  r  r  cpython_onlyr  r  r   r  r  r  r  r  r"  r%  r(  r+  r/  r2  r5  r=  r@  rD  rI  rO  rR  rV  rY  r]  rd  rl  skipIfis_wasirq  r  r  r  r  r  r  r  r  r  
is_androidr  rd   r  r  r  r  rx  r%   r"   rx  rx    sQ   .8(+9"+>36j/>b='/&'= 0D 49 ) )0 ))+?@Et E AE10 ))+?@& A&P ))+?@2 A2 ;4 : :D *D'*R+<9,)*V+.+.+,+,+,+,+*+,: A:":0 + +>N8!AF:B'0R,9 __W__EG"G"4-<^%<N ;d  ;D32C*:&93v0 __W''?A"NA"NH7.#8JB	9r%   rx  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
	TestUtilsi`	  c                    U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S	5      S
5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        g )Nr   z0 msg&.>z1 msg{Gz?z10 msg      ?z1.5 secrU   z1.0 secx   z2 miny   z2 min 1 seci0*  z3 houri*  z3 hour 2 mini1*  z3 hour 1 sec)r@   r
   format_durationr  s    r"   test_format_durationTestUtils.test_format_durationa	  s/   ..q1	!..t4	!..u5 	"..s3"	$..q1"	$..v6 	"..z:&	(..x8!	#../EF'	)..|<'	)r%   c                     [         nU R                  U" S5      S5        U R                  U" SSS9S5        U R                  U" SSS9S5        U R                  U" S	SS95        U R                  U" S
SS95        g )Nz0test_access (test.test_os.FileTests.test_access)test_accessz(setUpClass (test.test_os.ChownFileTests)T)is_errorChownFileTestsz6test_success (test.test_bug.ExampleTests.test_success)r  zsetUpModule (test.test_x)z!tearDownModule (test.test_module))r   r@   r  )r,   	normalizes     r"   test_normalize_test_name"TestUtils.test_normalize_test_namew	  s    '	#UV&	(#MX\])	+#[fjk'	))$?$OP)$GRVWXr%   c                    [        [        R                  5      * S4[        [        R                  5      * S4S[        [        R                  5      -   S4SS4 H+  u  pU R                  [        R                  " U5      X!5        M-     g )NSIGINTr  rw  SIGABRT)l       STATUS_ACCESS_VIOLATION)l       STATUS_STACK_OVERFLOW)r   r  r  r  r  r@   r
   get_signal_name)r,   r  r   s      r"   test_get_signal_nameTestUtils.test_get_signal_name	  sr    &--  (+&..!!9-3v~~&&	231#
H U228<hQ#
r%   c                 ^   [         R                  n[         R                  nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" U5      S5        U R                  U" [	        S U 5       5      5      S5        U R                  U" / UQSP75      S	5        g )
N)r   zresources (1): network)r  decimalr   z$resources (3): audio,decimal,networkzresources: allc              3   6   #    U  H  nUS :w  d  M  Uv   M     g7f)rE  Nrx  )r  r  s     r"   r  2TestUtils.test_format_resources.<locals>.<genexpr>	  s      #5MD&*em $(4Ms   
	zresources: all,-cpur   zresources: all,tzdata)r
   format_resourcesr   r@   tuple)r,   r  r   s      r"   test_format_resourcesTestUtils.test_format_resources	  s     11++\*$	& 	<=2	4 	]+	 	U #5M #5 5 6!	# 	7}7h78#	%r%   c                 f    " S S5      n[        5       nU R                  [        U5        U" S5      nU" S5      nU" S5      n[        R                  " [        SS5         [        / 5        U R                  [        U5      5        U R                  [        U5      5        [        S 5        U R                  [        U5      5        U R                  [        U5      5        [        UR                  5       S4/5        U R                  [        U5      5        U R                  [        U5      5        [        S	/5        U R                  [        U5      5        U R                  [        U5      5        U R                  [        U5      5        [        S
/5        U R                  [        U5      5        U R                  [        U5      5        [        S/5        U R                  [        U5      5        [        S/5        U R                  [        U5      5        [        S/5        U R                  [        U5      5        U R                  [        U5      5        U R                  [        U5      5        [        UR                  5       S4UR                  5       S4/5        U R                  [        U5      5        U R                  [        U5      5        U R                  [        U5      5        [        SS/5        U R                  [        U5      5        U R                  [        U5      5        S S S 5        [        R                  " [        SS5         [        UR                  5       S4/5        U R                  [        U5      5        U R                  [        U5      5        [        S/5        U R                  [        U5      5        U R                  [        U5      5        U R                  [        U5      5        [        S/5        U R                  [        U5      5        U R                  [        U5      5        [        S/5        U R                  [        U5      5        [        S/5        U R                  [        U5      5        [        S/5        U R                  [        U5      5        U R                  [        U5      5        U R                  [        U5      5        [        UR                  5       S4UR                  5       S4/5        U R                  [        U5      5        U R                  [        U5      5        U R                  [        U5      5        [        SS/5        U R                  [        U5      5        U R                  [        U5      5        S S S 5        [        R                  " [        SS5         [        SS/5        U R                  [        U5      5        U R                  [        U5      5        U R                  [        U5      5        [        SS/5        U R                  [        U5      5        U R                  [        U5      5        U R                  [        U5      5        S S S 5        g ! , (       d  f       GN\= f! , (       d  f       N= f! , (       d  f       g = f)Nc                        \ rS rSrS rS rSrg)'TestUtils.test_match_test.<locals>.Testi	  c                     Xl         g r   test_id)r,   r  s     r"   __init__0TestUtils.test_match_test.<locals>.Test.__init__	  s    &r%   c                     U R                   $ r   r  r  s    r"   id*TestUtils.test_match_test.<locals>.Test.id	  s    ||#r%   r  N)ry  rz  r{  r|  r  r   r  rx  r%   r"   Testr  	  s    '$r%   r  z"test.test_os.FileTests.test_accessz'test.test_os.Win32ErrorTests.test_chdirz#test.test_shutil.TestCopy.test_copy_test_matchersrx  T)test_osT)test_*T)	filetestsT)	FileTestsT)*test_os.*.test_*T)r  T)	DONTMATCHTF)r  F)r  F)r  F)r  F)r  F)r  F)r	  F)*test_osF)r
  T)	r   r   r   r   	swap_attrrG   r   r   r~   )r,   r  patternsr  
test_chdir	test_copys         r"   test_match_testTestUtils.test_match_test	  s   	$ 	$ #$2?@CD
>?	 w(8"=BOOJ{34OOJz23 D!OOJ{34OOJz23 knn.567OOJ{34Z
34 ./0OOJ{34OOJz23Z	23 -./OOJ{34OOJz23 012Z45012OOJ{34 89:OOJ{34OOJz23Z	23 knn.5
7NOPOOJ{34OOJz23Z	2324GHIOOJ{34Z
34_ >d w(8"=knn.678Z45OOJz23 /01Z45Z
34OOJy12 ./0Z45Z
34 123OOJ{34123Z45 9:;Z45Z
34OOJy12 knn.6%8PQRZ45Z
34OOJy1235IJKZ45OOJz23K >P w(8"=02GHIOOJ{34Z
34OOJy12/1GHIZ45OOJz23Z	23 >=u >=d >=P >=s'   KY?IZ?B7Z"?
Z
Z"
Z0c                 D   [         R                  nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S	5      S	5        U R                  U" S
5      S
5        g )Nz
abc  defzabc \x1b\x1f defznul: , bell:znul:\x00, bell:\x07u   surrogate:zsurrogate:\udc80u   illegal ￾ and ￿zillegal \ufffe and \uffffza
	bu   valid téxt €)r
   sanitize_xmlr@   )r,   r  s     r"   test_sanitize_xmlTestUtils.test_sanitize_xml
  s    )) 	&89,	.&;</	1&89,	.&AB5	7 	h/!	#&<=/	1r%   rx  N)ry  rz  r{  r|  r  r  r  r  r  r  r  rx  r%   r"   r  r  `	  s$    ),	YR%(t4l1r%   r  __main__)Cr  dataclassesr"  r  ry  os.pathr   r4  r  r  r  r  r  r  r  r  r  r~  	xml.etreer   rH  r   test.supportr   r   test.libregrtestr   r   r	   r
   test.libregrtest.filterr   r   r   test.libregrtest.resultr   test.libregrtest.utilsr   has_subprocess_supportrN  r   r   r  r  rj  r   normpathr  r  r  r	  r  r  r  r  r  TestCaser   	dataclassr  r  r  force_not_colorized_test_classr*  rx  r  ry  rx  r%   r"   <module>r#     s      	     	    
     !  5 $ ! " " P P - 6%%


=
>>77<<14>77??277++H56E
	 chh|,-Q/     ?? $ 	 T1)) T1n T"  #M8$$ M`@| @0 	''qK| qK (qKh 	''[9< [9 ([9|,G1!! G1T zMMO r%   