ó
    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�   ø€ Ü‰Ñ Þ(1¡1°qð 	ñ 	:àˆŒØ�<�<Ý3ß.ØŒIØŸ:š: kÓ2ˆDŒLØ�L‰L×Ñ˜WØ%Ÿ\™\¨#Ó.ß&-¡g°T gÐ&:ß&/¡i°£nô6ð ˆDŒHØ ˆÕó    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   € ð	Ø—g‘gˆGð	 Ù“9Ðøô ó 	Ü�t“9Òð	ûô ó 	 Ü�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   ø€ Ü‰Ñ˜$ÔØ�<�<ØŸ9™9×/Ñ/°·±¸jÓIÐIˆDŒH�qÜ ×-Ò-Ó/ˆÕ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  p‰U(       a  U	(       d  M  UR                  " XH5      n
[#        U	S
5      (       aa  U	R!                  5        HK  u  p¼U(       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¹  € Ø�|�|ØØ�H‰HˆØˆŒØ‰9ØØ�Y‰Yˆà	�‰ˆf�d—h‘h˜v t§|¡|°DÓ'9Ó:Ô;Ø	�‰ˆh˜Ÿ™ ¨5Ó1Ô2Ø	�‰ˆh˜Ÿ™ ¨;Ó7Ô8Ø××Ø�E‰E�&œT×.Ò.Ó0°4×3DÑ3DÑDÀTÐJÔLæØ×"Ñ"Ñ.Ø×,Ñ,×5Ñ5Ó7×>Ñ>Ó@�Ü6BÀ6Ó6J�—’˜a Ó.Ô3Ø×"Ñ"Ñ.Ø×,Ñ,×5Ñ5Ó7×>Ñ>Ó@�Ü6BÀ6Ó6J�—’˜a Ó.Ô3à—J‘J–L‰DˆAÞžAÙà—’˜qÓ$ˆBÜ�q˜'×"Ñ"ØŸg™gži‘F�BÞØŸ™˜r¤<´°B³Ó#8Ö9ä".¬s°2«wÓ"7˜žó	 (ô '¤s¨1£vÓ.�–ò !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°!°H×4EÑ4EÐ3FÐG‘ä˜H“~ˆHä×(Ò(¨¸dÓCˆÜ×'Ò'¨¸VÓDˆð Ø—w‘w˜s“|Ø—‘˜“ñ
ð 	
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   ø€ Ø×Ñ˜˜t¨4×+?Ò+?ÀÐ+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   ø€ Ø×Ñ˜˜t¨D×,@Ò,@À#Ð,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   ø€ Ø×Ñ˜˜t¨T×-AÒ-AÀ3Ð-GÐÑHÜ‰Ñ˜4Ô%Ü××Ø�I‰I�Kð 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Ø�L‰LˆØ	�‰ˆg”s˜4Ÿ=™=Ó)Ô*Ø	�‰ˆ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   € Ü*¨6°4¸Ó;ˆŒØ#�‰Õ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ô ×ÒÔ6¸vÑ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   € Ü�JŠJ�s�Or'   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+   € Ü�(¤§¡Ò,Ü�(¤§¡Ò,Ø�I‰IÐ'Õ(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   é € Ð*Gºh¸°®9ºhùs   ‚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Ôß&Ð&Ø#'ÐÔ ô0�H×%Ñ%ô 0ð" ×ÒÓ €EØ	‡M�M�(×%Ò%Ó'×=Ñ=¸iÓHÔIØ�[Š[‹]€FÙ&¡sÑ*G¸c¿hºhÓ*GÓ'GÓH€JÙ˜Ÿ
™
Ó#€FØ�Z‰Z˜Ó€FÙ	ˆ)�V—_‘_Ó&Ô'Ù	ˆ'�rÒØ�_Š_˜V×3Ñ3Ó5Ö6ˆÙˆa�h‰h‹j˜bÔ!ñ 7á	…Gð? r'   