
    F\h                        S 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\R                  5      r " S S5      rSS	 jrSS
 jr\S:X  Ga  SSKJs  Jr  S\l         " S S\R,                  5      r\R0                  " 5       r\R5                  \R6                  " 5       R9                  \5      5        \R:                  " 5       r\" \" S \R@                   5       5      5      r!\!" \RD                  5      r#\#RI                  \5      r%\&" S\RO                  5       5        \&" SSS9  \RP                  " \%RS                  5       5       H  r*\&" \*RW                  5       SS9  M     \&" 5         gg)z=Test runner and result class for the regression test suite.

    N)support)sanitize_xmlc                      ^  \ rS rSrSrU 4S jr\S 5       rU 4S jrSS jr	\S 5       r
U 4S jrU 4S	 jrU 4S
 jrU 4S jrU 4S jrU 4S jrS rSrU =r$ )RegressionTestResult   Fc                 d  > [         TU ]  XU(       a  SOSS9  SU l        U R                  (       ay  SSKJn  SSKJnJn  X@l        UR                  " S5      U l
        U R                  R                  SUR                  U5      R                  S S	9R                  S
5      5        S U l        S U l        g )N   r   )streamdescriptions	verbosityT)ElementTree)datetimeUTC	testsuitestart)tzinfo )super__init__bufferUSE_XML	xml.etreer   r   r   _RegressionTestResult__ETElement_RegressionTestResult__suitesetnowreplace	isoformat_RegressionTestResult__e!_RegressionTestResult__start_time)selfr
   r   r   ETr   r   	__class__s          2/usr/lib/python3.13/test/libregrtest/testresult.pyr   RegressionTestResult.__init__   s    (11q 	 	:<<3.I::k2DLLLW%\\#.&-gTg&:&/in6 DH     c                      UR                   n U" 5       $ ! [         a    [        U5      s $ f = f! [         a    [        U5      s $ f = fN)idAttributeErrorstr	TypeErrorrepr)clstesttest_ids      r%   __getIdRegressionTestResult.__getId!   sR    	ggG	 9  	t9	  	 w<	 s    1 ..A	A	c                    > [         TU ]  U5        U R                  (       a-  U R                  R	                  U R
                  S5      =U l        n[        R                  " 5       U l	        g )Ntestcase)
r   	startTestr   r   
SubElementr   r    timeperf_counterr!   )r"   r0   er$   s      r%   r6   RegressionTestResult.startTest-   sI    $<<99//jIIDHq --/r'   c           
         U R                   (       d  g U R                  nS U l        Uc  g U R                  nUR                  SUR	                  SU R                  U5      5      5        UR                  SUR	                  SS5      5        UR                  SUR	                  SS5      5        U R                  (       a4  UR                  S[        R                  " 5       U R                  -
  S 5        U(       a  U R                  bI  U R                  R                  5       R                  5       n[        U5      UR                  " US5      l        U R                  bI  U R                  R                  5       R                  5       n[        U5      UR                  " US	5      l        UR!                  5        H  u  pU(       a  U	(       d  M  UR                  " XH5      n
[#        U	S
5      (       aa  U	R!                  5        HK  u  pU(       a&  U
R                  U[        [%        U5      5      5        M2  [        [%        U5      5      U
l        MM     M  [        [%        U	5      5      U
l        M     g )Nnamestatusrunresult	completedr8   z0.6fz
system-outz
system-erritems)r   r    r   r   pop_RegressionTestResult__getIdr!   r8   r9   _stdout_buffergetvaluerstripr   r7   text_stderr_bufferrB   hasattrr,   )r"   r0   captureargsr:   r#   stdoutstderrkve2k2v2s                r%   _add_result RegressionTestResult._add_result3   s   ||HH9YY	fdhhvt||D'9:;	h512	h;78EE&T..043D3DDTJL"".,,557>>@6B66Ja.3"".,,557>>@6B66Ja.3JJLDAAq$Bq'""ggiFBr<B#89".s2w"7	 ( 's1v. !r'   c                 X   [        U[        5      (       a9  UR                  S:X  a  UR                  nO'UR                   SUR                   3nO[	        U5      n[
        R                  " XS 5      n[
        R                  " XU5      nUSR                  U5      SR                  U5      S.$ )Nbuiltins. )typemessagerY   )
isinstancerZ   
__module____name__r.   	tracebackformat_exceptionjoin)r/   err_type	err_valueerr_tbtypenamemsgtbs          r%   __makeErrorDict$RegressionTestResult.__makeErrorDictX   s    h%%""j0#,,&112!H4E4E3FGH~H((dC''VD wws|
 	
r'   c                 `   > U R                  USU R                  " U6 S9  [        TU ]  X5        g )NT)error)rT   $_RegressionTestResult__makeErrorDictr   addErrorr"   r0   errr$   s      r%   rm   RegressionTestResult.addErrork   s0    t4+?+?+EF#r'   c                 `   > U R                  USU R                  " U6 S9  [        TU ]  X5        g )NT)output)rT   rl   r   addExpectedFailurern   s      r%   rs   'RegressionTestResult.addExpectedFailureo   s0    tD,@,@#,FG"4-r'   c                    > U R                  USU R                  " U6 S9  [        TU ]  X5        [        R
                  (       a  U R                  5         g g )NT)failure)rT   rl   r   
addFailurer   failfaststoprn   s      r%   rw   RegressionTestResult.addFailures   sG    tT-A-A3-GH4%IIK r'   c                 B   > U R                  XS9  [        TU ]	  X5        g )N)skipped)rT   r   addSkip)r"   r0   reasonr$   s      r%   r}   RegressionTestResult.addSkipy   s     .%r'   c                 F   > U R                  U5        [        TU ]	  U5        g r)   )rT   r   
addSuccessr"   r0   r$   s     r%   r   RegressionTestResult.addSuccess}   s    4 r'   c                 D   > U R                  USS9  [        TU ]	  U5        g )NUNEXPECTED_SUCCESS)outcome)rT   r   addUnexpectedSuccessr   s     r%   r   )RegressionTestResult.addUnexpectedSuccess   s$    ';<$T*r'   c                 X   U R                   (       d  [        S5      eU R                  nUR                  S[	        U R
                  5      5        UR                  S[	        [        U R                  5      5      5        UR                  S[	        [        U R                  5      5      5        U$ )NzUSE_XML is falsetestserrorsfailures)	r   
ValueErrorr   r   r,   testsRunlenr   r   )r"   r:   s     r%   get_xml_element$RegressionTestResult.get_xml_element   sr    ||/00LL	gs4==)*	hC,-.	j#c$--012r'   )__ET__e__start_time__suiter   F)r^   r]   __qualname____firstlineno__r   r   classmethodrD   r6   rT   rl   rm   rs   rw   r}   r   r   r   __static_attributes____classcell__)r$   s   @r%   r   r      sh    G!  	 	0#/J 
 
$$.&!+ r'   r   c                   $    \ rS rSrSS jrS rSrg)QuietRegressionTestRunner   c                 H    [        US S5      U l        X R                  l        g )Nr   )r   r@   r   )r"   r
   r   s      r%   r   "QuietRegressionTestRunner.__init__   s    *64;#r'   c                 >    U" U R                   5        U R                   $ r)   r@   )r"   r0   s     r%   r?   QuietRegressionTestRunner.run   s    T[[{{r'   r   Nr   )r^   r]   r   r   r   r?   r    r'   r%   r   r      s    $r'   r   c                     U (       a)  [         R                  " [        R                  [        UU S9$ [         R                  " [
        US9$ )N)resultclassr   r   )r   )	functoolspartialunittestTextTestRunnerr   r   )r   r   s     r%   get_test_runner_classr      s?      !8!8-A(.+46 	6 6vFFr'   c                 $    [        X5      " U 5      $ r)   )r   )r
   r   capture_outputs      r%   get_test_runnerr      s     ;FCCr'   __main__Tc                   ,    \ rS rSrS rS rS rS rSrg)	TestTests   c                     g r)   r   r"   s    r%   	test_passTestTests.test_pass   s    r'   c                 0    [         R                  " S5        g )Ng      ?)r8   sleepr   s    r%   test_pass_slowTestTests.test_pass_slow   s    JJsOr'   c                     [        S[        R                  S9  [        S[        R                  S9  U R	                  S5        g )NrM   filerN   zfailure message)printsysrM   rN   failr   s    r%   	test_failTestTests.test_fail   s+    (,(,II'(r'   c                 x    [        S[        R                  S9  [        S[        R                  S9  [	        S5      e)NrM   r   rN   zerror message)r   r   rM   rN   RuntimeErrorr   s    r%   
test_errorTestTests.test_error   s)    (,(,//r'   r   N)	r^   r]   r   r   r   r   r   r   r   r   r'   r%   r   r      s    			)
	0r'   r   c              #   *   #    U  H	  oS :H  v   M     g7f)z-vNr   ).0as     r%   	<genexpr>r      s     *Gh9hs   zOutput:zXML: rY   )endr   ),__doc__r   ior   r8   r_   r   r0   r   test.libregrtest.utilsr   TextTestResultr   r   r   r   r^   xml.etree.ElementTreeetreer   r#   r   TestCaser   	TestSuitesuiteaddTest
TestLoaderloadTestsFromTestCaseStringIOr
   sumargv
runner_clsrM   runnerr?   r@   r   rF   tostringlistr   sdecoder   r'   r%   <module>r      s;    	 
     /~822 ~@ GD z&&#' 0H%% 0"  E	MM(%%'==iHI[[]F&s*Gchh*G'GHJ

#FZZF	)V__&'	'r__V3356ahhjb! 7	G? r'   