ó
    F\hP&  ã                   ó®   • S SK r S SKrS SKJr  SSKJr  SSKJrJrJ	r	J
r
  SSKJrJrJrJrJrJrJrJr  \(       a  S SKJr  SrS	rS
rSrSr " S S5      rg)é    N)ÚTYPE_CHECKINGé   )ÚRunTests)ÚStateÚ
TestResultÚ	TestStatsÚLocation)ÚStrPathÚTestNameÚ	TestTupleÚTestListÚ
FilterDictÚ	printlistÚcountÚformat_duration)ÚElementé   é   é   é   é‚   c                   ó:  • \ rS rSrS!S jrS\4S jrS\\   4S jr	S\4S jr
S\S\4S	 jrS\S
\S\4S jrS\S\SS4S jrS\R&                  4S jrS\4S jrSS.S\S\\\4   4S jjrS\\   SS4S jrS\SS4S jrS\S\S\SS4S jrS\S\SS4S jrS r g)"ÚTestResultsé   ÚreturnNc                 óö   • / U l         / U l        / U l        / U l        / U l        / U l        / U l        / U l        / U l        SU l	        SU l
        / U l        [        5       U l        / U l        [        5       U l        g )NF)ÚbadÚgoodÚ	rerun_badÚskippedÚresource_deniedÚenv_changedÚrun_no_testsÚrerunÚrerun_resultsÚinterruptedÚ
worker_bugÚ
test_timesr   ÚstatsÚtestsuite_xmlÚsetÚcovered_lines©Úselfs    Ú//usr/lib/python3.13/test/libregrtest/results.pyÚ__init__ÚTestResults.__init__   sv   € ØˆŒØ ˆŒ	Ø#%ˆŒØ!#ˆŒØ)+ˆÔØ%'ˆÔØ&(ˆÔØ!ˆŒ
Ø/1ˆÔà!&ˆÔØ %ˆŒØ8:ˆŒÜ“[ˆŒ
à.0ˆÔä,/«EˆÕó    c                 ó´   • U R                   (       + =(       aA    U R                  (       + =(       a)    U R                  (       + =(       a    U R                  (       + $ ©N)r   r    r&   r'   r-   s    r/   Úis_all_goodÚTestResults.is_all_good-   sA   € Ø—H‘H”÷ (ØŸ™Ô$÷(à×(Ñ(Ô(÷(ð Ÿ™Ô'ð	)r2   c                 ó  • [        U R                  5      [        U R                  5      -  [        U R                  5      -  [        U R                  5      -  [        U R
                  5      -  [        U R                  5      -  $ r4   )r+   r   r   r    r!   r"   r#   r-   s    r/   Úget_executedÚTestResults.get_executed3   sg   € Ü�D—I‘I“¤ T§X¡X£Ñ.´°T·\±\Ó1BÑBÜ�d×*Ñ*Ó+ñ,Ü.1°$×2BÑ2BÓ.CñDä�d×'Ñ'Ó(ñ)ð 	*r2   c                 ó�   • [        U R                  U R                  U R                  U R                  U R
                  45      (       + $ r4   )Úanyr   r   r    r&   r"   r-   s    r/   Úno_tests_runÚTestResults.no_tests_run8   s<   € Ü˜Ÿ	™	 4§8¡8¨T¯\©\¸4×;KÑ;KØ×(Ñ(ð*ó +ô +ð 	+r2   Úfail_env_changedc                 óÆ  • / nU R                   (       a  UR                  S5        OPU(       a#  U R                  (       a  UR                  S5        O&U R                  5       (       a  UR                  S5        U R                  (       a  UR                  S5        U R
                  (       a  UR                  S5        U(       d  UR                  S5        SR                  U5      $ )NÚFAILUREzENV CHANGEDzNO TESTS RANÚINTERRUPTEDz
WORKER BUGÚSUCCESSz, )r   Úappendr"   r<   r&   r'   Újoin)r.   r>   Ústates      r/   Ú	get_stateÚTestResults.get_state<   s’   € ØˆØ�8�8Ø�L‰L˜Õ#Þ $×"2×"2Ø�L‰L˜Õ'Ø×Ñ× Ñ Ø�L‰L˜Ô(à××Ø�L‰L˜Ô'Ø�?�?Ø�L‰L˜Ô&ÞØ�L‰L˜Ô#à�y‰y˜ÓÐr2   Ú
fail_rerunc                 óV  • SnU R                   (       a  [        nU$ U R                  (       a  [        nU$ U(       a  U R                  (       a  [
        nU$ U R                  5       (       a  [        nU$ U(       a  U R                  (       a  [        nU$ U R                  (       a  [        nU$ )Nr   )r   ÚEXITCODE_BAD_TESTr&   ÚEXITCODE_INTERRUPTEDr"   ÚEXITCODE_ENV_CHANGEDr<   ÚEXITCODE_NO_TESTS_RANr$   ÚEXITCODE_RERUN_FAILr'   )r.   r>   rH   Úexitcodes       r/   Úget_exitcodeÚTestResults.get_exitcodeN   s‘   € ØˆØ�8�8Ü(ˆHð ˆð ××Ü+ˆHð ˆö  $×"2×"2Ü+ˆHð ˆð ×Ñ× Ñ Ü,ˆHð
 ˆö	 ˜DŸJŸJÜ*ˆHð ˆð �_�_Ü(ˆHØˆr2   ÚresultÚruntestsc                 óè  • UR                   nUR                  nUR                  nUR                  =[        R
                  :X  a    U R                  R                  U5        GOb=[        R                  :X  a9    U R                  R                  U5        U R                  R                  U5        GO=[        R                  :X  a    U R                  R                  U5        Oä=[        R                  :X  a    U R                  R                  U5        O³=[        R                  :X  a	    SU l        O–[        R"                  :X  a  U R$                  R                  U5        Og UR'                  U5      (       a7  U R(                  R                  U5        U R                  R                  U5        O[+        SUR                  < 35      eUR                  [        R,                  :X  a  SU l        UR1                  5       (       aF  U(       d?  UR2                  c  [+        S5      eU R4                  R                  UR2                  U45        UR6                  b%  U R6                  R9                  UR6                  5        U(       a  U R                  R                  U5        UR:                  (       a%  U R:                  R=                  UR:                  5        UR>                  nU(       a  U RA                  U5        g g )NTzinvalid test state: zresult.duration is None)!Ú	test_namer$   r>   rE   r   ÚPASSEDr   rC   ÚENV_CHANGEDr"   r%   ÚSKIPPEDr    ÚRESOURCE_DENIEDr!   rA   r&   ÚDID_NOT_RUNr#   Ú	is_failedr   Ú
ValueErrorÚ
WORKER_BUGr'   Úhas_meaningful_durationÚdurationr(   r)   Ú
accumulater,   ÚupdateÚxml_dataÚ	add_junit)r.   rR   rS   rU   r$   r>   rb   s          r/   Úaccumulate_resultÚTestResults.accumulate_result^   s  € Ø×$Ñ$ˆ	Ø—‘ˆØ#×4Ñ4Ðà�l‰lØ”—–Ø—	‘	× Ñ  Ö+Ø"”×"Ö"Ø× Ñ ×'Ñ'¨	Ô2Ø×"Ñ"×)Ñ)¨&Ö1Ø”—–Ø—‘×#Ñ# IÕ.Ø&”×&Ö&Ø×$Ñ$×+Ñ+¨IÕ6Ø"”×"Ö"Ø#'�Õ Ü×"Õ"Ø×!Ñ!×(Ñ(¨Õ3ØØ×#Ñ#Ð$4×5Ñ5Ø—H‘H—O‘O IÔ.Ø×&Ñ&×-Ñ-¨fÕ5ä$Ð';¸F¿L¹LÑ;KÐ%LÓMÐMà�<‰<œ5×+Ñ+Ó+Ø"ˆDŒOà×)Ñ)×+Ñ+¶EØ�‰Ñ&Ü Ð!:Ó;Ð;Ø�O‰O×"Ñ" F§O¡O°YÐ#?Ô@Ø�<‰<Ñ#Ø�J‰J×!Ñ! &§,¡,Ô/ÞØ�J‰J×Ñ˜iÔ(Ø××à×Ñ×%Ñ% f×&:Ñ&:Ô;Ø—?‘?ˆÞØ�N‰N˜8Õ$ð r2   c                 ól   • U R                    Vs0 s H  oS_M     nn[        R                  " US9$ s  snf )Nr   )Úcounts)r,   ÚtraceÚCoverageResults)r.   Úlocrg   s      r/   Úget_coverage_resultsÚ TestResults.get_coverage_resultsŠ   s6   € Ø$(×$6Ò$6Ó7Ò$6˜S�q’&Ñ$6ˆÐ7Ü×$Ò$¨FÑ3Ð3ùò 8s   �1c                 ó,   • [        U R                  5      $ r4   )Úboolr%   r-   s    r/   Ú
need_rerunÚTestResults.need_rerunŽ   s   € Ü�D×&Ñ&Ó'Ð'r2   T)Úclearrq   c                óÂ  • / n0 nU R                    HE  nUR                  UR                  5        UR                  5       nU(       d  M7  XSUR                  '   MG     U(       as  U R                  R                  U R                  5        U R                  R                  5         U R                  R                  5         U R                   R                  5         [        U5      U4$ r4   )
r%   rC   rU   Úget_rerun_match_testsr   Úextendr   rq   r"   Útuple)r.   rq   ÚtestsÚmatch_tests_dictrR   Úmatch_testss         r/   Úprepare_rerunÚTestResults.prepare_rerun‘   s­   € ØˆØÐØ×(Ô(ˆFØ�L‰L˜×)Ñ)Ô*à ×6Ñ6Ó8ˆKçˆ{Ø5@ ×!1Ñ!1Ó2ñ )ö à�N‰N×!Ñ! $§(¡(Ô+Ø�H‰H�N‰NÔØ×Ñ×"Ñ"Ô$Ø×Ñ×$Ñ$Ô&ä�e“Ð.Ð/Ð/r2   rb   c                 óØ   • SS K Js  Jn  U H.  n U R                  R	                  UR                  U5      5        M0     g ! UR                   a    [        U[        R                  S9  e f = f)Nr   )Úfile)
Úxml.etree.ElementTreeÚetreeÚElementTreer*   rC   Ú
fromstringÚ
ParseErrorÚprintÚsysÚ
__stderr__)r.   rb   ÚETÚes       r/   rc   ÚTestResults.add_junit¥   sZ   € ß*Ð*ÛˆAðØ×"Ñ"×)Ñ)¨"¯-©-¸Ó*:Ö;ò øð —=‘=ó Ü�h¤S§^¡^Ò4Øðús	   �*?¿*A)Úfilenamec                 ó6  • U R                   (       d  g SS KJs  Jn  UR	                  S5      nSSSS.nU R                    HC  nUR                  U5        U H)  n XF==   [        UR                  US5      5      -  ss'   M+     ME     UR                  5        H   u  pgUR                  U[        U5      5        M"     [        US5       nUR                  U5       H  n	UR                  U	5        M     S S S 5        g ! [         a     M±  f = f! , (       d  f       g = f)Nr   Ú
testsuites)rv   ÚerrorsÚfailuresÚwb)r*   r}   r~   r   r   rC   ÚintÚgetr\   Úitemsr+   ÚstrÚopenÚtostringlistÚwrite)
r.   rˆ   r…   ÚrootÚtotalsÚsuiteÚkÚvÚfÚss
             r/   Úwrite_junitÚTestResults.write_junit®   sí   € Ø×!×!àç*Ð*Ø�z‰z˜,Ó'ˆð ¨°qÑ9ˆØ×'Ô'ˆEØ�K‰K˜ÔÛ�ðØ“I¤ U§Y¡Y¨q°!£_Ó!5Ñ5•Ió ñ (ð —L‘L–N‰DˆAØ�H‰H�Qœ˜A›Öñ #ô �(˜DÔ! QØ—_‘_ TÖ*�Ø—‘˜–
ñ +÷ "Ð!øô "ó Úðú÷ "Õ!ús   Á%C9Ã*D
Ã9
DÄDÄ

Drv   ÚquietÚprint_slowestc           	      óÊ  • U(       ab  U R                   R                  SS9  [        5         [        S5        U R                   S S  H!  u  pE[        SU< S[        U5      < 35        M#     / n[	        U5      U R                  5       -
  nUR                  [        U5      SS45        U(       d<  UR                  U R                  SS	45        UR                  U R                  SS
45        UR                  U R                  SS45        UR                  U R                  SS45        UR                  U R                  SS45        UR                  U R                  SS45        U HS  u  p‰n
U(       d  M  [        5         [        [        U5      U	5      n	[        U
R!                  U	5      5        [#        U5        MU     U R$                  (       as  U(       dl  [        5         [        [        U R$                  5      S5      nU S3nU R'                  5       (       a  [        U R$                  5      S:”  a  SU 3n[        U5        U R(                  (       a  [        5         [        S5        g g )NT)Úreversez10 slowest tests:é
   z- z: Útestz{} omitted:z{} skipped:z{} skipped (resource denied):z{} run no tests:z3{} altered the execution environment (env changed):zre-run testz{}:z
{} failed:z OK.r   zAll z(Test suite interrupted by signal SIGINT.)r(   Úsortr‚   r   r+   r8   rC   Úsortedr    r!   r#   r"   r$   r   r   ÚlenÚformatr   r   r5   r&   )r.   rv   rž   rŸ   Ú	test_timer£   Ú	all_testsÚomittedÚ
tests_listÚ
count_textÚtitle_formatÚtexts               r/   Údisplay_resultÚTestResults.display_resultÇ   sí  € ÞØ�O‰O× Ñ ¨Ð Ñ.ÜŒGÜÐ%Ô&Ø#'§?¡?°3°BÓ#7‘�	Ý£D¬/¸)Õ*DÐEÖFñ $8ð ˆ	Ü�e“*˜t×0Ñ0Ó2Ñ2ˆð 	×Ñœ& ›/¨6°=ÐAÔBÞØ×Ñ˜dŸl™l¨F°MÐBÔCØ×Ñ˜d×2Ñ2°FÐ<[Ð\Ô]Ø×Ñ˜$×+Ñ+¨VÐ5GÐHÔIð 	×Ñ˜$×*Ñ*¨FÐ4iÐjÔkØ×Ñ˜$Ÿ*™* m°UÐ;Ô<Ø×Ñ˜$Ÿ(™( F¨LÐ9Ô:ã4=Ñ0ˆJ LßˆzÜ”Ü"¤3 z£?°JÓ?�
Ü�l×)Ñ)¨*Ó5Ô6Ü˜*Ö%ñ 5>ð �9�9žUÜŒGÜœ˜TŸY™Y›¨Ó0ˆDØ�V˜4�=ˆDØ× Ñ ×"Ñ"¤s¨4¯9©9£~¸Ó'9Ø˜d˜V�}�Ü�$ŒKà××ÜŒGÜÐ<Õ=ð r2   Úfirst_runtestsÚfilteredc                 óÌ  • U R                   nSUR                  S 3nU(       a  U S3nU/nUR                  (       a  UR                  SUR                  S 35        UR                  (       a  UR                  SUR                  S 35        [        SSR                  U5       35        U R                  U R                  U R                  U R                  U R                  U R                  /n[        [        [        U5      5      nSU 3nUR                  (       d  [        UR                   5      nU SU 3nU(       a  U S3nU/nS	U R                  4S
U R                  4SU R                  4SU R"                  4SU R                  4SU R                  44 H-  u  pšU
(       d  M  UR                  U	 S[        U
5       35        M/     [        SSR                  U5       35        g )Nzrun=Ú,z (filtered)z	failures=zskipped=zTotal tests: Ú Ú/Úfailedr"   r    r!   r$   r#   Ú=zTotal test files: )r)   Ú	tests_runrŒ   rC   r    r‚   rD   r   r   r$   r"   r#   ÚsumÚmapr¦   Úforeverrv   r!   )r.   r±   r²   r)   r®   Úreportr©   ÚrunÚntestÚnamerv   s              r/   Údisplay_summaryÚTestResults.display_summaryñ   sº  € à—
‘
ˆØ�e—o‘o aÐ(Ð)ˆÞØ�V˜;Ð'ˆDØ�ˆØ�>�>Ø�M‰M˜I e§n¡n°QÐ%7Ð8Ô9Ø�=�=Ø�M‰M˜H U§]¡]°1Ð$5Ð6Ô7Ü�˜cŸh™h vÓ.Ð/Ð0Ô1ð —Y‘Y §¡¨$¯*©*Ø—\‘\Ø×%Ñ% t×'8Ñ'8ð:ˆ	ô ”#”c˜9Ó%Ó&ˆØ�c�Uˆ|ˆØ×%×%Ü˜×,Ñ,Ó-ˆEØ�V˜1˜U˜GÐ$ˆDÞØ�V˜;Ð'ˆDØ�ˆà�t—x‘xÐ Ø˜D×,Ñ,Ð-Ø˜Ÿ™Ð%Ø × 4Ñ 4Ð5Ø�d—j‘jÐ!Ø˜T×.Ñ.Ð/ó
‰KˆD÷ ˆuØ—‘   a¬¨E«
 |Ð4Ö5ñ
ô 	Ð" 3§8¡8¨FÓ#3Ð"4Ð5Õ6r2   )r   r,   r"   r   r&   r$   r   r%   r!   r#   r    r)   r(   r*   r'   )r   N)!Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r0   rn   r5   r+   r   r8   r<   r‘   rF   rŽ   rP   r   r   rd   rh   ri   rk   ro   ru   r   r   ry   Úlistrc   r
   rœ   r¯   rÁ   Ú__static_attributes__© r2   r/   r   r      s  † ô2ð()˜Tô )ð*˜c (™mô *ð
+˜dô +ð ¨$ð  °3ô  ð$¨Tð ¸tð Èô ð *%¨
ð *%¸hð *%È4ô *%ðX4 e×&;Ñ&;ô 4ð(˜Dô (ð .2ò 0 dð 0°e¸IÀzÐ<QÑ6Rõ 0ð( $ s¡)ð °ô ð Gð °ô ð2(> Ið (>°dð (>È4ð (>ÐTXô (>ðT#7¨hð #7À$ð #7È4÷ #7r2   r   )rƒ   rh   Útypingr   rS   r   rR   r   r   r   r	   Úutilsr
   r   r   r   r   r   r   r   r}   r   rJ   rL   rM   rN   rK   r   rÉ   r2   r/   Ú<module>rÌ      sZ   ðÛ 
Û Ý  å ß :Ó :÷'÷ 'ó 'ö Ý-ð
 Ð ØÐ ØÐ ØÐ ØÐ ÷|7ò |7r2   