§
    ç·j‡  ã                   ó
  — 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 G d„ dej        ¦  «        Z G d„ d¦  «        Z	dd„Z
dd	„Zed
k    �r9ddlmc mZ de_         G d„ dej        ¦  «        Z ej        ¦   «         Ze                      ej        ¦   «                              e¦  «        ¦  «          ej        ¦   «         Z e
 ed„ ej        D ¦   «         ¦  «        ¦  «        Z eej        ¦  «        Ze                      e¦  «        Z! e"de #                    ¦   «         ¦  «          e"dd¬¦  «          ej$        e! %                    ¦   «         ¦  «        D ]!Z& e"e& '                    ¦   «         d¬¦  «         Œ" e"¦   «          dS dS )z=Test runner and result class for the regression test suite.

é    Nc                   ó¢   ‡ — 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        roddlm} ddlm} || _         |j        d¦  «        | _	        | j	         
                    d|                     ¦   «                              d	¦  «        ¦  «         d | _        d | _        d S )
Né   r   )ÚstreamÚdescriptionsÚ	verbosityT)ÚElementTree)ÚdatetimeÚ	testsuiteÚstartú )ÚsuperÚ__init__ÚbufferÚUSE_XMLÚ	xml.etreer
   r   Ú_RegressionTestResult__ETÚElementÚ_RegressionTestResult__suiteÚsetÚutcnowÚ	isoformatÚ_RegressionTestResult__eÚ!_RegressionTestResult__start_time)Úselfr   r   r	   ÚETr   Ú	__class__s         €ú./usr/lib/python3.11/test/support/testresult.pyr   zRegressionTestResult.__init__   sÈ   ø€ Ý‰Œ×Ò °\Ø(1Ð#8 1 1°qð 	ñ 	:ô 	:ð 	:àˆŒØŒ<ð 	Ø3Ð3Ð3Ð3Ð3Ð3Ø)Ð)Ð)Ð)Ð)Ð)ØˆDŒIØ%˜2œ: kÑ2Ô2ˆDŒLØŒL×Ò˜W h§o¢oÑ&7Ô&7×&AÒ&AÀ#Ñ&FÔ&FÑGÔGÐGØˆDŒHØ ˆÔÐÐó    c                 ó¦   — 	 |j         }n# t          $ r t          |¦  «        cY S w xY w	  |¦   «         S # t          $ r t          |¦  «        cY S w xY w©N)ÚidÚAttributeErrorÚstrÚ	TypeErrorÚrepr)ÚclsÚtestÚtest_ids      r   Ú__getIdzRegressionTestResult.__getId   s{   € ð	Ø”gˆGˆGøÝð 	ð 	ð 	Ý�t‘9”9ÐÐÐð	øøøð	 Ø�7‘9”9ÐøÝð 	 ð 	 ð 	 Ý�w‘<”<ÐÐÐð	 øøøs   ‚
 Š&¥&ª	4 ´AÁAc                 óÖ   •— t          ¦   «                              |¦  «         | j        r'| j                             | j        d¦  «        x| _        }t          j        ¦   «         | _	        d S )NÚtestcase)
r   Ú	startTestr   r   Ú
SubElementr   r   ÚtimeÚperf_counterr   )r   r)   Úer   s      €r   r.   zRegressionTestResult.startTest(   s]   ø€ Ý‰Œ×Ò˜$ÑÔÐØŒ<ð 	JØœ9×/Ò/°´¸jÑIÔIÐIˆDŒH�qÝ Ô-Ñ/Ô/ˆÔÐÐr    c           	      óR  — | j         sd S | j        }d | _        |€d S | j        }|                     d|                     d|                      |¦  «        ¦  «        ¦  «         |                     d|                     dd¦  «        ¦  «         |                     d|                     dd¦  «        ¦  «         | j        r1|                     dt          j        ¦   «         | j        z
  d›¦  «         |r�| j	        �A| j	         
                    ¦   «                              ¦   «         }| |j        |d¦  «        _        | j        �A| j         
                    ¦   «                              ¦   «         }| |j        |d	¦  «        _        |                     ¦   «         D ]”\  }}	|r|	sŒ
 |j        ||¦  «        }
t!          |	d
¦  «        rU|	                     ¦   «         D ]?\  }}|r$|
                     |t#          |¦  «        ¦  «         Œ+t#          |¦  «        |
_        Œ@Œ€t#          |	¦  «        |
_        Œ•d S )NÚnameÚstatusÚrunÚresultÚ	completedr0   z0.6fz
system-outz
system-errÚitems)r   r   r   r   ÚpopÚ_RegressionTestResult__getIdr   r0   r1   Ú_stdout_bufferÚgetvalueÚrstripr/   ÚtextÚ_stderr_bufferr9   Úhasattrr%   )r   r)   ÚcaptureÚargsr2   r   ÚstdoutÚstderrÚkÚvÚe2Úk2Úv2s                r   Ú_add_resultz RegressionTestResult._add_result.   s   € ØŒ|ð 	ØˆFØŒHˆØˆŒØˆ9ØˆFØŒYˆà	�Šˆf�d—h’h˜v t§|¢|°DÑ'9Ô'9Ñ:Ô:Ñ;Ô;Ð;Ø	�Šˆh˜Ÿš ¨5Ñ1Ô1Ñ2Ô2Ð2Ø	�Šˆh˜Ÿš ¨;Ñ7Ô7Ñ8Ô8Ð8ØÔð 	MØ�EŠE�&�TÔ.Ñ0Ô0°4Ô3DÑDÐKÐKÑLÔLÐLàð 	=ØÔ"Ð.ØÔ,×5Ò5Ñ7Ô7×>Ò>Ñ@Ô@�Ø6<��”˜a Ñ.Ô.Ô3ØÔ"Ð.ØÔ,×5Ò5Ñ7Ô7×>Ò>Ñ@Ô@�Ø6<��”˜a Ñ.Ô.Ô3à—J’J‘L”Lð 	!ð 	!‰DˆAˆqØð ˜Að ØØ�”˜q !Ñ$Ô$ˆBÝ�q˜'Ñ"Ô"ð !ØŸgšg™iœið *ð *‘F�B˜Øð *ØŸš˜r¥3 r¡7¤7Ñ+Ô+Ð+Ð+å"% b¡'¤'˜œ˜ð	*õ ˜a™&œ&�”�ð	!ð 	!r    c                 óD  — t          |t          ¦  «        r%|j        dk    r|j        }n!|j        › d|j        › �}nt	          |¦  «        }t          j        ||d ¦  «        }t          j        |||¦  «        }|d                     |¦  «        d                     |¦  «        dœS )NÚbuiltinsú.Ú )ÚtypeÚmessagerO   )Ú
isinstancerP   Ú
__module__Ú__name__r'   Ú	tracebackÚformat_exceptionÚjoin)r(   Úerr_typeÚ	err_valueÚerr_tbÚtypenameÚmsgÚtbs          r   Ú__makeErrorDictz$RegressionTestResult.__makeErrorDictR   s¨   € å�h¥Ñ%Ô%ð 	&ØÔ" jÒ0Ð0Ø#Ô,��à&Ô1ÐGÐG°HÔ4EÐGÐG��å˜H‘~”~ˆHåÔ(¨°9¸dÑCÔCˆÝÔ'¨°)¸VÑDÔDˆð Ø—w’w˜s‘|”|Ø—’˜‘”ð
ð 
ð 	
r    c                 óŒ   •— |                       |d | j        |Ž ¬¦  «         t          ¦   «                              ||¦  «         d S )NT)Úerror)rK   Ú$_RegressionTestResult__makeErrorDictr   ÚaddError©r   r)   Úerrr   s      €r   rb   zRegressionTestResult.addErrore   sI   ø€ Ø×Ò˜˜tÐ+?¨4Ô+?ÀÐ+EÐÑFÔFÐFÝ‰Œ×Ò˜˜sÑ#Ô#Ð#Ð#Ð#r    c                 óŒ   •— |                       |d | j        |Ž ¬¦  «         t          ¦   «                              ||¦  «         d S )NT)Úoutput)rK   ra   r   ÚaddExpectedFailurerc   s      €r   rg   z'RegressionTestResult.addExpectedFailurei   sI   ø€ Ø×Ò˜˜tÐ,@¨DÔ,@À#Ð,FÐÑGÔGÐGÝ‰Œ×"Ò" 4¨Ñ-Ô-Ð-Ð-Ð-r    c                 óŒ   •— |                       |d | j        |Ž ¬¦  «         t          ¦   «                              ||¦  «         d S )NT)Úfailure)rK   ra   r   Ú
addFailurerc   s      €r   rj   zRegressionTestResult.addFailurem   sI   ø€ Ø×Ò˜˜tÐ-A¨TÔ-AÀ3Ð-GÐÑHÔHÐHÝ‰Œ×Ò˜4 Ñ%Ô%Ð%Ð%Ð%r    c                 óz   •— |                       ||¬¦  «         t          ¦   «                              ||¦  «         d S )N)Úskipped)rK   r   ÚaddSkip)r   r)   Úreasonr   s      €r   rm   zRegressionTestResult.addSkipq   s:   ø€ Ø×Ò˜ vÐÑ.Ô.Ð.Ý‰Œ�Š˜˜fÑ%Ô%Ð%Ð%Ð%r    c                 ót   •— |                       |¦  «         t          ¦   «                              |¦  «         d S r"   )rK   r   Ú
addSuccess©r   r)   r   s     €r   rp   zRegressionTestResult.addSuccessu   s5   ø€ Ø×Ò˜ÑÔÐÝ‰Œ×Ò˜4Ñ Ô Ð Ð Ð r    c                 óx   •— |                       |d¬¦  «         t          ¦   «                              |¦  «         d S )NÚUNEXPECTED_SUCCESS)Úoutcome)rK   r   ÚaddUnexpectedSuccessrq   s     €r   ru   z)RegressionTestResult.addUnexpectedSuccessy   s;   ø€ Ø×Ò˜Ð';ÐÑ<Ô<Ð<Ý‰Œ×$Ò$ TÑ*Ô*Ð*Ð*Ð*r    c                 ód  — | j         st          d¦  «        ‚| j        }|                     dt	          | j        ¦  «        ¦  «         |                     dt	          t          | j        ¦  «        ¦  «        ¦  «         |                     dt	          t          | j        ¦  «        ¦  «        ¦  «         |S )NzUSE_XML is falseÚtestsÚerrorsÚfailures)	r   Ú
ValueErrorr   r   r%   ÚtestsRunÚlenrx   ry   )r   r2   s     r   Úget_xml_elementz$RegressionTestResult.get_xml_element}   s‘   € ØŒ|ð 	1ÝÐ/Ñ0Ô0Ð0ØŒLˆØ	�Šˆg•s˜4œ=Ñ)Ô)Ñ*Ô*Ð*Ø	�Šˆh��C ¤Ñ,Ô,Ñ-Ô-Ñ.Ô.Ð.Ø	�Šˆj�#�c $¤-Ñ0Ô0Ñ1Ô1Ñ2Ô2Ð2Øˆr    ©F)rT   rS   Ú__qualname__r   r   Úclassmethodr;   r.   rK   ra   rb   rg   rj   rm   rp   ru   r}   Ú__classcell__)r   s   @r   r   r      sF  ø€ € € € € Ø€Gð!ð !ð !ð !ð !ð ð	ð 	ñ „[ð	ð0ð 0ð 0ð 0ð 0ð"!ð "!ð "!ð "!ðH ð
ð 
ñ „[ð
ð$$ð $ð $ð $ð $ð.ð .ð .ð .ð .ð&ð &ð &ð &ð &ð&ð &ð &ð &ð &ð!ð !ð !ð !ð !ð+ð +ð +ð +ð +ðð ð ð ð ð ð r    r   c                   ó   — e Zd Zdd„Zd„ ZdS )ÚQuietRegressionTestRunnerFc                 óJ   — t          |d d¦  «        | _        || j        _        d S )Nr   )r   r7   r   )r   r   r   s      r   r   z"QuietRegressionTestRunner.__init__‡   s%   € Ý*¨6°4¸Ñ;Ô;ˆŒØ#ˆŒÔÐÐr    c                 ó0   —  || j         ¦  «         | j         S r"   )r7   )r   r)   s     r   r6   zQuietRegressionTestRunner.run‹   s   € ØˆˆTŒ[ÑÔÐØŒ{Ðr    Nr~   )rT   rS   r   r   r6   © r    r   rƒ   rƒ   †   s7   € € € € € ð$ð $ð $ð $ðð ð ð ð r    rƒ   Fc                 óŠ   — | 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�   �   sK   € Øð 6ÝÔ ¥Ô!8Ý-AØ(.Ø+4ð6ñ 6ô 6ð 	6õ ÔÕ6¸vÐFÑFÔFÐFr    c                 ó4   —  t          ||¦  «        | ¦  «        S r"   )r�   )r   r	   Úcapture_outputs      r   Úget_test_runnerr�   —   s   € Ø;Õ  ¨NÑ;Ô;¸FÑCÔCÐCr    Ú__main__Tc                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )Ú	TestTestsc                 ó   — d S r"   r†   ©r   s    r   Ú	test_passzTestTests.test_passŸ   s   € ØˆDr    c                 ó.   — t          j        d¦  «         d S )Ng      ð?)r0   Úsleepr•   s    r   Útest_pass_slowzTestTests.test_pass_slow¢   s   € ÝŒJ�s‰OŒOˆOˆOˆOr    c                 óœ   — t          dt          j        ¬¦  «         t          dt          j        ¬¦  «         |                      d¦  «         d S )NrD   ©ÚfilerE   zfailure message)ÚprintÚsysrD   rE   Úfailr•   s    r   Ú	test_failzTestTests.test_fail¥   sE   € Ý�(¥¤Ð,Ñ,Ô,Ð,Ý�(¥¤Ð,Ñ,Ô,Ð,Ø�IŠIÐ'Ñ(Ô(Ð(Ð(Ð(r    c                 óŒ   — t          dt          j        ¬¦  «         t          dt          j        ¬¦  «         t	          d¦  «        ‚)NrD   r›   rE   zerror message)r�   rž   rD   rE   ÚRuntimeErrorr•   s    r   Ú
test_errorzTestTests.test_errorª   s:   € Ý�(¥¤Ð,Ñ,Ô,Ð,Ý�(¥¤Ð,Ñ,Ô,Ð,Ý˜Ñ/Ô/Ð/r    N)rT   rS   r   r–   r™   r    r£   r†   r    r   r“   r“   ž   sP   € € € € € ð	ð 	ð 	ð	ð 	ð 	ð	)ð 	)ð 	)ð
	0ð 	0ð 	0ð 	0ð 	0r    r“   c              #   ó"   K  — | ]
}|d k    V — ŒdS )z-vNr†   )Ú.0Úas     r   ú	<genexpr>r§   ²   s&   è è € Ð*GÐ*G¸¨1°ª9Ð*GÐ*GÐ*GÐ*GÐ*GÐ*Gr    zOutput:zXML: rO   )Úendr~   )(Ú__doc__r‰   Úiorž   r0   rU   r‹   ÚTextTestResultr   rƒ   r�   r�   rT   Úxml.etree.ElementTreeÚetreer
   r   r   ÚTestCaser“   Ú	TestSuiteÚsuiteÚaddTestÚ
TestLoaderÚloadTestsFromTestCaseÚStringIOr   ÚsumÚargvÚ
runner_clsrD   Úrunnerr6   r7   r�   r=   Útostringlistr}   ÚsÚdecoder†   r    r   ú<module>r¼      s`  ððð ð Ð Ð Ð Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€ðxð xð xð xð x˜8Ô2ñ xô xð xðtð ð ð ð ñ ô ð ðGð Gð Gð GðDð Dð Dð Dð ˆzÒÑØ&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø#'ÐÔ ð0ð 0ð 0ð 0ð 0�HÔ%ñ 0ô 0ð 0ð" ˆHÔÑ Ô €EØ	‡M‚MÐ%�(Ô%Ñ'Ô'×=Ò=¸iÑHÔHÑIÔIÐIØˆRŒ[‰]Œ]€FØ&Ð& s sÐ*GÐ*G¸c¼hÐ*GÑ*GÔ*GÑ'GÔ'GÑHÔH€JØˆZ˜œ
Ñ#Ô#€FØ�ZŠZ˜ÑÔ€FØ	€Eˆ)�V—_’_Ñ&Ô&Ñ'Ô'Ð'Ø	€Eˆ'�rÐÑÔÐØˆRŒ_˜V×3Ò3Ñ5Ô5Ñ6Ô6ð "ð "ˆØˆˆa�hŠh‰jŒj˜bÐ!Ñ!Ô!Ð!Ð!Ø	€E�G„G€G€G€Gð? Ðr    