Ë
    òT•j"  ã                   ó(  — d dl Z d dlZd dlmZ ddlmZmZmZmZm	Z	m
Z
  e j                  d¬«       G d„ d«      «       Z G d	„ d
«      Z e j                  d¬«       G d„ d«      «       Z G d„ dej                  «      Zdeeef   deeeef   z  fd„Zy)é    N)ÚAnyé   )ÚStrJSONÚTestNameÚFilterTupleÚformat_durationÚnormalize_test_nameÚprint_warningT)Úslotsc                   ó^   — e Zd ZU dZeed<   dZeed<   dZeed<   ed„ «       Z	ed„ «       Z
d„ Zy)	Ú	TestStatsr   Ú	tests_runÚfailuresÚskippedc                 ó|   — t        | j                  t        | j                  «      t        | j                  «      «      S ©N)r   ÚtestsRunÚlenr   r   )Úresults    ú./usr/lib/python3.12/test/libregrtest/result.pyÚfrom_unittestzTestStats.from_unittest   s-   € ä˜Ÿ™Ü˜VŸ_™_Ó-Ü˜VŸ^™^Ó,ó.ð 	.ó    c                 óX   — t        | j                  | j                  | j                  «      S r   )r   Ú	attemptedÚfailedr   )Úresultss    r   Úfrom_doctestzTestStats.from_doctest   s%   € ä˜×*Ñ*Ø Ÿ™Ø Ÿ™ó*ð 	*r   c                 ó¾   — | xj                   |j                   z  c_         | xj                  |j                  z  c_        | xj                  |j                  z  c_        y r   )r   r   r   )ÚselfÚstatss     r   Ú
accumulatezTestStats.accumulate   s8   € Ø�Š˜%Ÿ/™/Ñ)�Ø�Š˜Ÿ™Ñ'�Ø�Š˜Ÿ™Ñ%Žr   N)Ú__name__Ú
__module__Ú__qualname__r   ÚintÚ__annotations__r   r   Ústaticmethodr   r   r!   © r   r   r   r   
   sK   … à€IˆsÓØ€HˆcÓØ€GˆSÓàñ.ó ð.ð
 ñ*ó ð*ó
&r   r   c                   ól   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZed„ «       Zed„ «       Zed„ «       Zy)ÚStateÚPASSEDÚFAILEDÚSKIPPEDÚUNCAUGHT_EXCÚREFLEAKÚENV_CHANGEDÚRESOURCE_DENIEDÚINTERRUPTEDÚWORKER_FAILEDÚ
WORKER_BUGÚDID_NOT_RUNÚTIMEOUTc                 ó¾   — | t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  hv S r   )r*   r,   r.   r/   r3   r4   r6   ©Ústates    r   Ú	is_failedzState.is_failed1   sD   € àÜ�L‰LÜ×ÑÜ�M‰MÜ×ÑÜ×ÑÜ�M‰Mðð ð 	r   c                 ó¾   — | t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  hvS r   )r*   r-   r1   r2   r3   r4   r5   r8   s    r   Úhas_meaningful_durationzState.has_meaningful_duration;   sJ   € ð Ü�M‰MÜ×!Ñ!Ü×ÑÜ×ÑÜ×ÑÜ×Ñðð ð 	r   c                 óF   — | t         j                  t         j                  hv S r   )r*   r2   r4   r8   s    r   Ú	must_stopzState.must_stopI   s&   € àÜ×ÑÜ×Ñð
ð 
ð 	
r   N)r"   r#   r$   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r'   r:   r<   r>   r(   r   r   r*   r*   #   sx   „ Ø€FØ€FØ€GØ!€LØ€GØ€KØ'€OØ€KØ#€MØ€JØ€KØ€Gàñó ðð ñó ðð ñ
ó ñ
r   r*   c                   ó,  — e Zd ZU eed<   dZedz  ed<   dZedz  ed<   dZ	e
e   dz  ed<   dZedz  ed<   dZe
eeef      dz  ed<   dZe
eeef      dz  ed<   d	ed
efd„Zd„ Zd
efd„Zd„ Zd„ Zded	ed
efd„Zd
edz  fd„Zdd„Zeded
d fd„«       Zy)Ú
TestResultÚ	test_nameNr9   ÚdurationÚxml_datar    Úerrorsr   Úfail_env_changedÚreturnc                 ó~   — | j                   t        j                  k(  r|S t        j                  | j                   «      S r   )r9   r*   r0   r:   )r   rE   s     r   r:   zTestResult.is_failed^   s-   € Ø�:‰:œ×*Ñ*Ò*Ø#Ð#Ü�‰˜tŸz™zÓ*Ð*r   c           
      ó  — | j                   ri| j                  r]t        | j                   «      }t        | j                  «      }d|dkD  rdndz   }d|dkD  rdndz   }| j                  › d|› d|› d|› d|› d	�
S | j                   r6t        | j                   «      }d|dkD  rdndz   }| j                  › d|› d|› d	�S | j                  r6t        | j                  «      }d|dkD  rdndz   }| j                  › d|› d|› d	�S | j                  › d
�S )NÚerrorr   ÚsÚ Úfailurez	 failed (ú z, ú)z failed)rD   r   r   rA   )r   ÚleÚlfÚerror_sÚ	failure_ss        r   Ú_format_failedzTestResult._format_failedc   s  € Ø�;Š;˜4Ÿ=š=Ü�T—[‘[Ó!ˆBÜ�T—]‘]Ó#ˆBØ¨¨Qª¡°BÑ7ˆGØ!¨B°ªF¡S¸Ñ;ˆIØ—n‘nÐ% Y¨r¨d°!°G°9¸B¸r¸dÀ!ÀIÀ;ÈaÐPÐPà�;Š;Ü�T—[‘[Ó!ˆBØ¨¨Qª¡°BÑ7ˆGØ—n‘nÐ% Y¨r¨d°!°G°9¸AÐ>Ð>à�=Š=Ü�T—]‘]Ó#ˆBØ!¨B°ªF¡S¸Ñ;ˆIØ—n‘nÐ% Y¨r¨d°!°I°;¸aÐ@Ð@à—.‘.Ð! Ð)Ð)r   c                 ó¢  — | j                   xt        j                  k(  r | j                  › d�S xt        j                  k(  r | j                  «       S xt        j                  k(  r | j                  › d�S xt        j                  k(  r | j                  › d�S xt        j                  k(  r | j                  › d�S xt        j                  k(  r | j                  › d�S xt        j                  k(  r | j                  › d�S xt        j                  k(  r | j                  › d�S xt        j                  k(  r | j                  › d�S xt        j                  k(  r | j                  › d	�S xt        j                  k(  r | j                  › d
�S t        j                  k(  r%| j                  › dt!        | j"                  «      › d�S 	 t%        d«      ‚)Nz passedz skippedz failed (uncaught exception)z failed (reference leak)z failed (env changed)z skipped (resource denied)z interruptedz worker non-zero exit codez worker bugz ran no testsz timed out (rN   zunknown result state: {state!r})r9   r*   r+   rA   r,   rS   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r   rB   Ú
ValueError©r   s    r   Ú__str__zTestResult.__str__w   s{  € Ø�j‰jØ”—•ØŸ.™.Ð)¨Ð1Ð1Ø”—•Ø×*Ñ*Ó,Ð,Ø”—•ØŸ.™.Ð)¨Ð2Ð2Ø#”×#Õ#ØŸ.™.Ð)Ð)EÐFÐFØ”—•ØŸ.™.Ð)Ð)AÐBÐBØ"”×"Õ"ØŸ.™.Ð)Ð)>Ð?Ð?Ø&”×&Õ&ØŸ.™.Ð)Ð)CÐDÐDØ"”×"Õ"ØŸ.™.Ð)¨Ð6Ð6Ø$”×$Õ$ØŸ.™.Ð)Ð)CÐDÐDØ!”×!Õ!ØŸ.™.Ð)¨Ð5Ð5Ø"”×"Õ"ØŸ.™.Ð)¨Ð7Ð7Ü—”ØŸ.™.Ð)¨´oÀdÇmÁmÓ6TÐ5UÐUVÐWÐWØÜ Ð!BÓCÐCr   c                 ó@   — t         j                  | j                  «      S r   )r*   r<   r9   rV   s    r   r<   z"TestResult.has_meaningful_duration”   s   € Ü×,Ñ,¨T¯Z©ZÓ8Ð8r   c                 ó‚   — | j                   �| j                   t        j                  k(  rt        j                  | _         y y r   )r9   r*   r+   r0   rV   s    r   Úset_env_changedzTestResult.set_env_changed—   s-   € Ø�:‰:Ð §¡¬u¯|©|Ò!;Ü×*Ñ*ˆD�Jð "<r   Ú	fail_fastc                 ól   — t         j                  | j                  «      ry|r| j                  |«      ryy)NTF)r*   r>   r9   r:   )r   r[   rE   s      r   r>   zTestResult.must_stop›   s*   € Ü�?‰?˜4Ÿ:™:Ô&ØÙ˜Ÿ™Ð(8Ô9ØØr   c           	      ó  — g }| j                   xs g }| j                  xs g }|df|dffD ]N  \  }}|D ]D  ^}}t        ||¬«      }|€  y |s|rdnd}	t        d|	› d|›d�«         y |j	                  |«       ŒF ŒP |sy t        |«      S )	NTF)Úis_errorÚERRORÚFAILzrerun failed to parse z test name: z: don't filter tests)rD   r   r	   r
   ÚappendÚtuple)
r   Úmatch_testsrD   r   Ú
error_listr^   Ú	full_nameÚ_Ú
match_nameÚ
error_types
             r   Úget_rerun_match_testsz TestResult.get_rerun_match_tests¢   sÂ   € Øˆà—‘Ò" ˆØ—=‘=Ò& Bˆà�TˆNØ�uÐð%
ò 	/Ñ ˆJ˜ð ",ò 
/��	˜AÜ0°ÀXÔN�
ØÐ%âÙ!Ù,4¡¸&�JÜ!Ð$:¸:¸,ÀlØ%. MÐ1Eð#Gô HâØ×"Ñ" :Õ.ñ
/ð		/ñ  ØÜ�[Ó!Ð!r   c                 ó<   — t        j                  | |t        ¬«       y )N)Úcls)ÚjsonÚdumpÚ_EncodeTestResult)r   Úfiles     r   Úwrite_json_intozTestResult.write_json_into»   s   € Ü�	‰	�$˜Ô"3Ö4r   Úworker_jsonc                 ó8   — t        j                  | t        ¬«      S )N)Úobject_hook)rl   ÚloadsÚ_decode_test_result)rq   s    r   Ú	from_jsonzTestResult.from_json¾   s   € ä�z‰z˜+Ô3FÔGÐGr   )rF   N)r"   r#   r$   r   r&   r9   ÚstrrB   ÚfloatrC   Úlistr    r   rD   rb   r   Úboolr:   rS   rW   r<   rZ   r>   r   ri   rp   r'   r   rv   r(   r   r   r@   r@   Q   s  … àÓØ€Eˆ3�‰:Óà!€Hˆe�d‰lÓ!Ø!%€Hˆd�3‰i˜$ÑÓ%Ø"€Eˆ9�tÑÓ"ð ,0€FˆD��s˜C�x‘Ñ! DÑ(Ó/Ø-1€Hˆd�5˜˜c˜‘?Ñ# dÑ*Ó1ð+¨$ð +°4ó +ò
*ð(D˜ó Dò:9ò+ð 4ð ¸4ð ÀDó ð" {°TÑ'9ó "ó25ð ðH˜wð H¨<ò Hó ñHr   r@   c                   ó2   ‡ — e Zd Zdedeeef   fˆ fd„Zˆ xZS )rn   ÚorF   c                 ó¢   •— t        |t        «      r0t        j                  |«      }|j                  j
                  |d<   |S t        ‰| �  |«      S )NÚ__test_result__)Ú
isinstancer@   ÚdataclassesÚasdictÚ	__class__r"   ÚsuperÚdefault)r   r|   r   r‚   s      €r   r„   z_EncodeTestResult.defaultÄ   sF   ø€ Ü�aœÔ$Ü ×'Ñ'¨Ó*ˆFØ()¯©×(<Ñ(<ˆFÐ$Ñ%ØˆMä‘7‘? 1Ó%Ð%r   )r"   r#   r$   r   Údictrw   r„   Ú__classcell__)r‚   s   @r   rn   rn   Ã   s#   ø„ ð&˜ð &  c¨3 h¡÷ &ñ &r   rn   ÚdatarF   c                 ór   — d| v r2| j                  d«       | d   �t        di | d   ¤Ž| d<   t        di | ¤ŽS | S )Nr~   r    r(   )Úpopr   r@   )r‡   s    r   ru   ru   Í   sI   € Ø˜DÑ Ø�‰Ð"Ô#Ø�‰=Ð$Ü%Ñ6¨¨W©Ñ6ˆD�‰MÜÑ!˜DÑ!Ð!àˆr   )r€   rl   Útypingr   Úutilsr   r   r   r   r	   r
   Ú	dataclassr   r*   r@   ÚJSONEncoderrn   r…   rw   ru   r(   r   r   ú<module>rŽ      s°   ðÛ Û Ý ÷9÷ 9ð
 €×Ñ˜TÔ"÷&ð &ó #ð&÷0+
ñ +
ð\ €×Ñ˜TÔ"÷nHð nHó #ðnHôb&˜×(Ñ(ô &ð˜d 3¨ 8™nð °¸dÀ3ÈÀ8¹nÑ1Lô r   