Ë
    òT•jX  ã                   óÚ  — d Z 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  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j1                   ej2                  «       j5                  e«      «        ej6                  «       Z e ed„ ej<                  D «       «      «      Z eej@                  «      Z!e!jE                  e«      Z# e$dejK                  «       «        e$dd¬«        ejL                  e#jO                  «       «      D ]  Z( e$e(jS                  «       d¬«       Œ  e$«        yy)z=Test runner and result class for the regression test suite.

é    N)Úsupportc                   ó–   ‡ — 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          €ú2/usr/lib/python3.12/test/libregrtest/testresult.pyr   zRegressionTestResult.__init__   s“   ø€ Ü‰Ñ °\Ù(1¡1°qð 	ô 	:àˆŒØ�<Š<Ý3ß.ØˆDŒIØ%˜2Ÿ:™: kÓ2ˆDŒLØ�L‰L×Ñ˜WØ%Ÿ\™\¨#Ó.ß&-¡g°T gÓ&:ß&/¡i°£nô6ð ˆDŒHØ ˆÕó    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   € ð	Ø—g‘gˆGð	 Ù“9Ðøô ò 	Ü�t“9Òð	ûô ò 	 Ü�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#   r2   zRegressionTestResult.startTest,   sI   ø€ Ü‰Ñ˜$ÔØ�<Š<ØŸ9™9×/Ñ/°·±¸jÓIÐIˆDŒH�qÜ ×-Ñ-Ó/ˆÕ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                  �@| j                  j                  «       j                  «       }| |j                  |d«      _        | j                  �@| j                  j                  «       j                  «       }| |j                  |d	«      _        |j                  «       D ]€  \  }}	|r|	sŒ |j                  ||«      }
t!        |	d
«      rG|	j                  «       D ]3  \  }}|r|
j                  |t#        |«      «       Œ$t#        |«      |
_        Œ5 Œqt#        |	«      |
_        Œ‚ y )NÚnameÚstatusÚrunÚresultÚ	completedr4   z0.6fz
system-outz
system-errÚitems)r   r   r   r   ÚpopÚ_RegressionTestResult__getIdr   r4   r5   Ú_stdout_bufferÚgetvalueÚrstripr3   ÚtextÚ_stderr_bufferr=   Úhasattrr)   )r    r-   ÚcaptureÚargsr6   r!   ÚstdoutÚstderrÚkÚvÚe2Úk2Úv2s                r#   Ú_add_resultz RegressionTestResult._add_result2   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×>Ñ>Ó@�Ø6<��—‘˜a Ó.Ô3Ø×"Ñ"Ð.Ø×,Ñ,×5Ñ5Ó7×>Ñ>Ó@�Ø6<��—‘˜a Ó.Ô3à—J‘J“Lò 	!‰DˆAˆqÙ™AØØ�—‘˜q !Ó$ˆBÜ�q˜'Ô"ØŸg™g›iò *‘F�B˜ÙØŸ™˜r¤3 r£7Õ+ä"% b£'˜�ñ	*ô ˜a›&�•ñ	!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ÚmessagerS   )Ú
isinstancerT   Ú
__module__Ú__name__r+   Ú	tracebackÚformat_exceptionÚjoin)r,   Úerr_typeÚ	err_valueÚerr_tbÚtypenameÚmsgÚtbs          r#   Ú__makeErrorDictz$RegressionTestResult.__makeErrorDictV   s™   € ä�h¤Ô%Ø×"Ñ" jÒ0Ø#×,Ñ,‘à&×1Ñ1Ð2°!°H×4EÑ4EÐ3FÐG‘ä˜H“~ˆHä×(Ñ(¨°9¸dÓCˆÜ×'Ñ'¨°)¸VÓDˆð Ø—w‘w˜s“|Ø—‘˜“ñ
ð 	
r$   c                 óh   •— | j                  |d | j                  |Ž ¬«       t        ‰| �  ||«       y )NT)Úerror)rO   Ú$_RegressionTestResult__makeErrorDictr   ÚaddError©r    r-   Úerrr"   s      €r#   rf   zRegressionTestResult.addErrori   s5   ø€ Ø×Ñ˜˜tÐ+?¨4×+?Ñ+?ÀÐ+EÐÔFÜ‰Ñ˜˜sÕ#r$   c                 óh   •— | j                  |d | j                  |Ž ¬«       t        ‰| �  ||«       y )NT)Úoutput)rO   re   r   ÚaddExpectedFailurerg   s      €r#   rk   z'RegressionTestResult.addExpectedFailurem   s5   ø€ Ø×Ñ˜˜tÐ,@¨D×,@Ñ,@À#Ð,FÐÔGÜ‰Ñ" 4¨Õ-r$   c                 óª   •— | j                  |d | j                  |Ž ¬«       t        ‰| �  ||«       t        j
                  r| j                  «        y y )NT)Úfailure)rO   re   r   Ú
addFailurer   ÚfailfastÚstoprg   s      €r#   rn   zRegressionTestResult.addFailureq   sL   ø€ Ø×Ñ˜˜tÐ-A¨T×-AÑ-AÀ3Ð-GÐÔHÜ‰Ñ˜4 Ô%Ü×ÒØ�I‰I�Kð r$   c                 óL   •— | j                  ||¬«       t        ‰| �	  ||«       y )N)Úskipped)rO   r   ÚaddSkip)r    r-   Úreasonr"   s      €r#   rs   zRegressionTestResult.addSkipw   s$   ø€ Ø×Ñ˜ vÐÔ.Ü‰‰˜˜fÕ%r$   c                 óF   •— | j                  |«       t        ‰| �	  |«       y r&   )rO   r   Ú
addSuccess©r    r-   r"   s     €r#   rv   zRegressionTestResult.addSuccess{   s   ø€ Ø×Ñ˜ÔÜ‰Ñ˜4Õ r$   c                 óJ   •— | j                  |d¬«       t        ‰| �	  |«       y )NÚUNEXPECTED_SUCCESS)Úoutcome)rO   r   ÚaddUnexpectedSuccessrw   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    r6   s     r#   Úget_xml_elementz$RegressionTestResult.get_xml_elementƒ   sr   € Ø�|Š|ÜÐ/Ó0Ð0Ø�L‰LˆØ	�‰ˆg”s˜4Ÿ=™=Ó)Ô*Ø	�‰ˆhœœC §¡Ó,Ó-Ô.Ø	�‰ˆjœ#œc $§-¡-Ó0Ó1Ô2Øˆr$   ©F)rX   rW   Ú__qualname__r   r   Úclassmethodr?   r2   rO   re   rf   rk   rn   rs   rv   r{   rƒ   Ú__classcell__)r"   s   @r#   r   r      sc   ø„ Ø€Gô!ð  ñ	ó ð	ô0ó"!ðH ñ
ó ð
ô$$ô.ôô&ô!ô+ö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   € Ü*¨6°4¸Ó;ˆŒØ#ˆ�‰Õr$   c                 ó>   —  || j                   «       | j                   S r&   )r;   )r    r-   s     r#   r:   zQuietRegressionTestRunner.run‘   s   € ÙˆT�[‰[ÔØ�{‰{Ðr$   Nr„   )rX   rW   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ô ×ÑÔ6¸vÔ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      ð?)r4   Úsleepr›   s    r#   Útest_pass_slowzTestTests.test_pass_slow¨   s   € Ü�J‰J�s�Or$   c                 ó’   — t        dt        j                  ¬«       t        dt        j                  ¬«       | j	                  d«       y )NrH   ©ÚfilerI   zfailure message)ÚprintÚsysrH   rI   Úfailr›   s    r#   Ú	test_failzTestTests.test_fail«   s+   € Ü�(¤§¡Õ,Ü�(¤§¡Õ,Ø�I‰IÐ'Õ(r$   c                 ó„   — t        dt        j                  ¬«       t        dt        j                  ¬«       t	        d«      ‚)NrH   r¡   rI   zerror message)r£   r¤   rH   rI   ÚRuntimeErrorr›   s    r#   Ú
test_errorzTestTests.test_error°   s)   € Ü�(¤§¡Õ,Ü�(¤§¡Õ,Ü˜Ó/Ð/r$   N)rX   rW   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   è ø€ Ò*G¸¨1°­9Ñ*Gùs   ‚zOutput:zXML: rS   )Úendr„   )*Ú__doc__r�   Úior¤   r4   rY   r‘   r-   r   ÚTextTestResultr   r‰   r“   r–   rX   Úxml.etree.ElementTreeÚetreer   r!   r   ÚTestCaser™   Ú	TestSuiteÚsuiteÚaddTestÚ
TestLoaderÚloadTestsFromTestCaseÚStringIOr   ÚsumÚargvÚ
runner_clsrH   Úrunnerr:   r;   r£   rA   Útostringlistrƒ   ÚsÚdecoderŒ   r$   r#   ú<module>rÂ      sF  ðñó Û 	Û 
Û Û Û Ý ô}˜8×2Ñ2ô }÷~ñ óGóDð ˆzÓß&Ð&Ø#'ÐÔ ô0�H×%Ñ%ô 0ð" ˆH×ÑÓ €EØ	‡M�MÐ%�(×%Ñ%Ó'×=Ñ=¸iÓHÔIØˆR�[‰[‹]€FÙ&¡sÑ*G¸c¿h¹hÔ*GÓ'GÓH€JÙ˜Ÿ
™
Ó#€FØ�Z‰Z˜Ó€FÙ	ˆ)�V—_‘_Ó&Ô'Ù	ˆ'�rÕØˆR�_‰_˜V×3Ñ3Ó5Ó6ò "ˆÙˆa�h‰h‹j˜bÖ!ð"á	…Gð? r$   