
    8bh                        	 d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	  G d dej                        Z G d d      ZddZdd	Zed
k(  rd dlmc mZ de_         G d dej*                        Z ej.                         Zej3                   ej4                         j7                  e              ej8                         Z e ed ej>                  D                    Z  e ejB                        Z"e"jG                  e      Z$ e%dejM                                 e%dd        ejN                  e$jQ                               D ]  Z) e%e)jU                         d         e%        yy)    N)support)sanitize_xmlc                        e Zd ZdZ fdZed        Z fdZddZed        Z	 fdZ
 fdZ fd	Z fd
Z fdZ fdZd Z xZS )RegressionTestResultFc                 `   t         |   |||rdnd       d| _        | j                  r}ddlm} ddlm}m} || _         |j                  d      | _
        | j                  j                  d|j                  |      j                  d 	      j                  d
             d | _        d | _        y )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          E/opt/python-3.12.12/usr/lib/python3.12/test/libregrtest/testresult.pyr   zRegressionTestResult.__init__   s    \(11q 	 	:<<3.DI%2::k2DLLLW%\\#.&-gTg&:&/in6 DH     c                     	 |j                   }	  |       S # t        $ r t        |      cY S w xY w# t        $ r t        |      cY S w xY wN)idAttributeErrorstr	TypeErrorrepr)clstesttest_ids      r$   __getIdzRegressionTestResult.__getId!   sR    	ggG	 9  	t9	  	 w<	 s    0 --AAc                     t         |   |       | j                  r-| j                  j	                  | j
                  d      x| _        }t        j                         | _	        y )Ntestcase)
r   	startTestr   r   
SubElementr   r   timeperf_counterr    )r!   r.   er#   s      r$   r3   zRegressionTestResult.startTest-   sI    $<<99//jIIDHq --/r%   c           
      ~   | j                   sy | j                  }d | _        |y | j                  }|j                  d|j	                  d| j                  |                   |j                  d|j	                  dd             |j                  d|j	                  dd             | j                  r3|j                  dt        j                         | j                  z
  d       |r| j                  I| j                  j                         j                         }t        |       |j                  |d      _        | j                  I| j                  j                         j                         }t        |       |j                  |d	      _        |j!                         D ]  \  }}	|r|	s |j                  ||      }
t#        |	d
      rY|	j!                         D ]E  \  }}|r%|
j                  |t        t%        |                   -t        t%        |            |
_        G t        t%        |	            |
_         y )Nnamestatusrunresult	completedr5   z0.6fz
system-outz
system-erritems)r   r   r   r   pop_RegressionTestResult__getIdr    r5   r6   _stdout_buffergetvaluerstripr   r4   text_stderr_bufferr>   hasattrr*   )r!   r.   captureargsr7   r"   stdoutstderrkve2k2v2s                r$   _add_resultz 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JJLDAqAq!$Bq'"ggiFBr<B#89".s2w"7	 ( 's1v. !r%   c                 L   t        |t              r8|j                  dk(  r|j                  }n'|j                   d|j                   }nt	        |      }t        j                  ||d       }t        j                  |||      }|dj                  |      dj                  |      dS )Nbuiltins. )typemessagerT   )
isinstancerU   
__module____name__r,   	tracebackformat_exceptionjoin)r-   err_type	err_valueerr_tbtypenamemsgtbs          r$   __makeErrorDictz$RegressionTestResult.__makeErrorDictX   s    h%""j0#,,&112!H4E4E3FGH~H((9dC'')VD wws|
 	
r%   c                 h    | j                  |d | j                  |        t        |   ||       y )NT)error)rP   $_RegressionTestResult__makeErrorDictr   addErrorr!   r.   errr#   s      r$   rg   zRegressionTestResult.addErrork   s5    t+?4+?+?+EFs#r%   c                 h    | j                  |d | j                  |        t        |   ||       y )NT)output)rP   rf   r   addExpectedFailurerh   s      r$   rl   z'RegressionTestResult.addExpectedFailureo   s5    t,@D,@,@#,FG"4-r%   c                     | j                  |d | j                  |        t        |   ||       t        j
                  r| j                          y y )NT)failure)rP   rf   r   
addFailurer   failfaststoprh   s      r$   ro   zRegressionTestResult.addFailures   sL    t-AT-A-A3-GH4%IIK r%   c                 L    | j                  ||       t        | 	  ||       y )N)skipped)rP   r   addSkip)r!   r.   reasonr#   s      r$   rt   zRegressionTestResult.addSkipy   s$    v.f%r%   c                 F    | j                  |       t        | 	  |       y r'   )rP   r   
addSuccessr!   r.   r#   s     r$   rw   zRegressionTestResult.addSuccess}   s    4 r%   c                 J    | j                  |d       t        | 	  |       y )NUNEXPECTED_SUCCESS)outcome)rP   r   addUnexpectedSuccessrx   s     r$   r|   z)RegressionTestResult.addUnexpectedSuccess   s$    ';<$T*r%   c                 N   | j                   st        d      | j                  }|j                  dt	        | j
                               |j                  dt	        t        | j                                     |j                  dt	        t        | j                                     |S )NzUSE_XML is falsetestserrorsfailures)	r   
ValueErrorr   r   r*   testsRunlenr   r   )r!   r7   s     r$   get_xml_elementz$RegressionTestResult.get_xml_element   sr    ||/00LL	gs4==)*	hC,-.	j#c$--012r%   F)rY   rX   __qualname__r   r   classmethodr@   r3   rP   rf   rg   rl   ro   rt   rw   r|   r   __classcell__)r#   s   @r$   r   r      sc    G!  	 	0#/J 
 
$$.&!+r%   r   c                       e Zd ZddZd Zy)QuietRegressionTestRunnerc                 J    t        |d d      | _        || j                  _        y )Nr   )r   r<   r   )r!   r	   r   s      r$   r   z"QuietRegressionTestRunner.__init__   s    *64;#r%   c                 >     || j                          | j                   S r'   )r<   )r!   r.   s     r$   r;   zQuietRegressionTestRunner.run   s    T[[{{r%   Nr   )rY   rX   r   r   r;    r%   r$   r   r      s    $r%   r   c                     | r+t        j                  t        j                  t        ||       S t        j                  t
        |      S )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                 &     t        ||      |       S r'   )r   )r	   r   capture_outputs      r$   get_test_runnerr      s    ; N;FCCr%   __main__Tc                   $    e Zd Zd Zd Zd Zd Zy)	TestTestsc                      y r'   r   r!   s    r$   	test_passzTestTests.test_pass   s    r%   c                 .    t        j                  d       y )Ng      ?)r5   sleepr   s    r$   test_pass_slowzTestTests.test_pass_slow   s    JJsOr%   c                     t        dt        j                         t        dt        j                         | j	                  d       y )NrI   filerJ   zfailure message)printsysrI   rJ   failr   s    r$   	test_failzTestTests.test_fail   s+    (,(,II'(r%   c                     t        dt        j                         t        dt        j                         t	        d      )NrI   r   rJ   zerror message)r   r   rI   rJ   RuntimeErrorr   s    r$   
test_errorzTestTests.test_error   s)    (,(,//r%   N)rY   rX   r   r   r   r   r   r   r%   r$   r   r      s    			)
	0r%   r   c              #   &   K   | ]	  }|d k(    yw)z-vNr   ).0as     r$   	<genexpr>r      s     *Gh19hs   zOutput:zXML: rT   )endr   )+r   ior   r5   rZ   r   r.   r   test.libregrtest.utilsr   TextTestResultr   r   r   r   rY   xml.etree.ElementTreeetreer   r"   r   TestCaser   	TestSuitesuiteaddTest
TestLoaderloadTestsFromTestCaseStringIOr	   sumargv
runner_clsrI   runnerr;   r<   r   rB   tostringlistr   sdecoder   r%   r$   <module>r      sD    	 
     /~822 ~@ GD z&&#' 0H%% 0" H E	MM%(%%'==iHIR[[]F&s*Gchh*G'GHJ

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