ó
    F\ho*  ã            	       óZ  • 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rS SKrS SKJ	r	  S SK
Jr  SSKJr  SSKJrJrJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJrJrJrJrJr  Sr S r!S r"S r#S\S\SS4S jr$/ r%S\S\SS4S jr& SS\S\S\'SS4S jjr(S\S\SS4S jr)S\S\S\4S jr*g)é    N)Úsupport)Úthreading_helperé   )Ú
match_test)ÚStateÚ
TestResultÚ	TestStats)ÚRunTests)Úsaved_test_environment)Úsetup_tests)Úget_test_runner)ÚTestNameÚclear_cachesÚremove_testfnÚabs_module_nameÚprint_warningg      >@c                 ó  • [         R                  " 5       nUR                  U 5      nUR                   H  n[	        U[
        R                  S9  M     UR                  (       a  [        S5      e[        U[        5        [        U5      $ )N)Úfilezerrors while loading tests)ÚunittestÚ
TestLoaderÚloadTestsFromModuleÚerrorsÚprintÚsysÚstderrÚ	ExceptionÚ_filter_suiter   Ú
_run_suite)Útest_modÚloaderÚtestsÚerrors       Ú./usr/lib/python3.13/test/libregrtest/single.pyÚrun_unittestr$      sd   € Ü× Ò Ó"€FØ×&Ñ& xÓ0€EØ—”ˆÜˆeœ#Ÿ*™*Ô%ñ à‡}‡}ÜÐ4Ó5Ð5Ü�%œÔ$Ü�eÓÐó    c                 óô   • / nU R                    H`  n[        U[        R                  5      (       a  [	        X15        UR                  U5        M@  U" U5      (       d  MO  UR                  U5        Mb     X l         g)z>Recursively filter test cases in a suite based on a predicate.N)Ú_testsÚ
isinstancer   Ú	TestSuiter   Úappend)ÚsuiteÚpredÚnewtestsÚtests       r#   r   r   '   sX   € à€HØ—”ˆÜ�dœH×.Ñ.×/Ñ/Ü˜$Ô%Ø�O‰O˜DÖ!á�D�z‹zØ—‘ Ö%ñ ð …Lr%   c                 ó`  • [        [        R                  [        R                  [        R
                  SLS9nUR                  U 5      n[        R
                  bX  SSKJs  J	n  UR                  5       nUR                  U5      R                  S5      n[        R
                  R                  U5        UR                  (       d2  UR                  (       d!  UR                   (       d  [        R"                  eUR%                  5       (       Gd  [&        R(                  " U5      n[+        UR                   5      S:X  a$  UR,                  (       d  UR                   S   S   nOY[+        UR,                  5      S:X  a$  UR                   (       d  UR,                  S   S   nOSn[        R                  (       d  US-  nUR                    VV	s/ s H  u  p‰[/        U5      U	4PM     n
nn	UR,                   VV	s/ s H  u  p‰[/        U5      U	4PM     nnn	[        R0                  " XzX¶S9eU$ s  sn	nf s  sn	nf )	z2Run tests from a unittest.TestSuite-derived class.N)Ú	verbosityÚcapture_outputr   Úasciir   zmultiple errors occurredz!; run in verbose mode for details)Ústats)r   r   Ústdoutr   ÚverboseÚjunit_xml_listÚrunÚxml.etree.ElementTreeÚetreeÚElementTreeÚget_xml_elementÚtostringÚdecoder*   ÚtestsRunÚskippedr   ÚTestDidNotRunÚwasSuccessfulr	   Úfrom_unittestÚlenÚfailuresÚstrÚTestFailedWithDetails)r+   ÚrunnerÚresultÚETÚxml_elemÚxml_strr3   ÚerrÚtcÚexc_strr   rD   s               r#   r   r   3   s”  € äœSŸZ™ZÜ'.§¡Ü-4×-CÑ-CÈ4Ð-OñR€Fð �Z‰Z˜Ó€Fä×ÑÑ)ß*Ð*Ø×)Ñ)Ó+ˆØ—+‘+˜hÓ'×.Ñ.¨wÓ7ˆÜ×Ñ×%Ñ% gÔ.à�?�? 6§>§>¸&¿-¿-Ü×#Ñ#Ð#Ø×Ñ×!Ò!Ü×'Ò'¨Ó/ˆÜˆv�}‰}Ó Ó"¨6¯?¯?Ø—-‘- Ñ" 1Ñ%‰CÜ�—‘Ó! QÓ&¨v¯}¯}Ø—/‘/ !Ñ$ QÑ'‰Cà,ˆCÜ—?—? CÐ+NÑ$N CØ8>¿ºÔFº©¨”3�r“7˜GÓ$¹ˆÑFØ:@¿/º/ÔJº/©;¨2”S˜“W˜gÓ&¹/ˆÑJÜ×+Ò+¨C¸ÑOÐOØ€Mùó GùÛJs   ÇH$Ç1H*rH   ÚruntestsÚreturnc                 óB  • UR                   (       a2  SSKJn  U" U R                  UUR                   UR                  5      u  pEO	U" 5       nSnU(       a  [
        R                  U l        U=[        S` =b  u     UnOŸ  =[        R                  S` =b  u     [        R                  " U5      nOo  c  [        U R                   SU 35        S nOO SS Kn[        XWR                  5      (       a  [        R                   " U5      nO[        S[#        U5       35        S nX`l        g )Nr   )Úruntest_refleakF© z test runner returned None: r   zUnknown test result type: )Úhunt_refleakÚrefleakrR   Ú	test_nameÚquietr   ÚREFLEAKÚstater	   r   r   rB   r   Údoctestr(   ÚTestResultsÚfrom_doctestÚtyper3   )rH   Ú	test_funcrO   rR   rU   Útest_resultr3   rZ   s           r#   Úregrtest_runnerr`   R   sú   € ð ××Ý,Ù.¨v×/?Ñ/?ÀØ/7×/DÑ/DØ/7¯~©~ó ?Ñˆ�ñ  “kˆØˆæÜ—}‘}ˆŒð ØŒY�[Ø‰Eð à"ŒX× Ñ ×"Ü×+Ò+¨KÓ8‰Eð #áÜ˜V×-Ñ-Ð.Ð.JÈ9È+ÐVÔWØ‰EØó Ü˜+×':Ñ':×;Ñ;Ü!×.Ò.¨{Ó;‘äÐ :¼4ÀÓ;LÐ:MÐNÔOØ�à…Lr%   c                 óÈ  ^• U R                   n[        X!R                  5      n[        R                  " U5      m[        TS5      (       a  [        SU S35      eU4S jn [        XU5        [        R                  " 5         [        X!R                  5        [        R                  (       at  S[        l        [        U S[!        [        R                  5       S35        ["        R%                  [        R                  5        [        R                  R'                  5         [        R(                  " 5         g ! [        R                  " 5         [        X!R                  5        f = f)NÚ	test_mainzModule z= defines test_main() which is no longer supported by regrtestc                  ó   >• [        T 5      $ )N)r$   )r   s   €r#   r^   Ú!_load_run_test.<locals>.test_func†   s   ø€ Ü˜HÓ%Ð%r%   Tz	 created z uncollectable object(s))rV   r   Útest_dirÚ	importlibÚimport_moduleÚhasattrr   r`   r   Ú
gc_collectr   r5   ÚgcÚgarbageÚenvironment_alteredr   rC   Ú
GC_GARBAGEÚextendÚclearÚreap_children)rH   rO   rV   Úmodule_namer^   r   s        @r#   Ú_load_run_testrr   |   s
  ø€ à× Ñ €IÜ! )×->Ñ->Ó?€KÜ×&Ò& {Ó3€Häˆx˜×%Ñ%ä˜' ) ð -=ð >ó ?ð 	?õ&ð	3Ü˜¨8Ô4ô 	×ÒÔä�i×!1Ñ!1Ô2ä	‡z‡zØ&*ŒÔ#Ü˜˜ 9¬S´·±«_Ð,=ð >0ð 1ô 	2ô
 	×Ñœ"Ÿ*™*Ô%Ü
�
‰
×ÑÔä×ÒÕøô 	×ÒÔä�i×!1Ñ!1Õ2ús   Á D5 Ä5,E!Údisplay_failurec                 óF  • S[         l        UR                  nU(       a  SnUR                  nU R                  n [        5         [         R                  " 5         [        UUR                  XCS9   [        X5        S S S 5        [         R                  (       a  U RC                  5         U R                  c  [        RD                  U l        g g ! , (       d  f       NW= f! [         R                   a<  nU(       d  U(       d  [        U SU 3SS9  [        R                  U l         S nAg S nAf[        R                    a<  nU(       d  U(       d  [        U SU 3SS9  [        R"                  U l         S nAg S nAf[         R$                   a  nSU S3nU(       a  U SU 3n[        U[&        R(                  SS	9  [        R*                  U l        UR,                  U l        UR.                  U l        UR0                  U l         S nAg S nAf[         R2                   a]  nSU S3nU(       a  U SU 3n[        U[&        R(                  SS	9  [        R*                  U l        UR0                  U l         S nAg S nAf[         R4                   a    [        R6                  U l         g [8         a"    [        5         [        R:                  U l         g   U(       d4  [<        R>                  " 5       n[        SU S
U 3[&        R(                  SS	9  [        R@                  U l         g = f)NF)Úpgoz skipped -- T)Úflushútest z failedz -- ©r   rv   ú crashed -- )#r   rl   ru   rW   rV   r   ri   r   r5   rr   ÚResourceDeniedr   r   ÚRESOURCE_DENIEDrY   r   ÚSkipTestÚSKIPPEDrF   r   r   ÚFAILEDr   rD   r3   Ú
TestFailedr@   ÚDID_NOT_RUNÚKeyboardInterruptÚINTERRUPTEDÚ	tracebackÚ
format_excÚUNCAUGHT_EXCÚset_env_changedÚPASSED)rH   rO   rs   ru   rW   rV   ÚexcÚmsgs           r#   Ú_runtest_env_changed_excrŠ   ¡   sg  € ð #(„GÔà
�,‰,€CÞ
ØˆØ�N‰N€Eà× Ñ €Ið0ÜŒÜ×ÒÔä# IØ$,×$4Ñ$4°eóFä˜6Ô,÷Fô\ ×"×"Ø×ÑÔ à‡|�|ÑÜ—|‘|ˆ�ð ÷cFõ Fûô ×!Ñ!ó ÞžSÜ�Y�K˜|¨C¨5Ð1¸Ò>Ü×,Ñ,ˆŒÜûÜ×Ñó ÞžSÜ�Y�K˜|¨C¨5Ð1¸Ò>Ü—}‘}ˆŒÜûÜ×(Ñ(ó 	Ø�i�[ Ð(ˆÞØ�E˜˜c˜UÐ#ˆCÜˆcœŸ
™
¨$Ò/Ü—|‘|ˆŒØŸ
™
ˆŒØŸ,™,ˆŒØ—y‘yˆŒÜûÜ×Ñó Ø�i�[ Ð(ˆÞØ�E˜˜c˜UÐ#ˆCÜˆcœŸ
™
¨$Ò/Ü—|‘|ˆŒØ—y‘yˆŒÜûÜ× Ñ ó Ü×(Ñ(ˆŒÙÜó ÜŒÜ×(Ñ(ˆŒÙðÞÜ×&Ò&Ó(ˆCÜ�E˜)˜ L°°Ð6Ü—z‘z¨ò/ä×)Ñ)ˆŒÙúsh   º4C Á.CÁ:C Ã
CÃC ÃC ÃL Ã02D'Ä'L Ä>2E5Å5L ÆA5HÈL ÈAI5É5,L Ê#(L ËAL c                 óN  • UR                   nUR                  nUR                  nUb-  [        R                  (       a  Sn[
        R                  " USS9  OSn [        U5        U(       Ga  S[        l         [        R                  " 5       n[        R                  n[        R                  n[        R                  n	U	R                  n
S n U[        l        U[        l        Xil        [!        XSS9  U R"                  [$        R&                  :w  a  UR)                  5       nU[        l        U[        l        X©l        Ub=  [        R                  R+                  U5        [        R                  R-                  5         OU[        l         [!        XU(       + S9  [        R.                  nU(       a  XÀl        U(       a  [
        R2                  " 5         S [        l        g ! U[        l        U[        l        X©l        f = f! U(       a  [
        R2                  " 5         S [        l        f = f)NT)ÚexitF)rs   )r5   Úoutput_on_failureÚtimeoutr   Úcan_start_threadÚfaulthandlerÚdump_traceback_laterr   r   ÚioÚStringIOr   r4   r   r   Úorig_stderrrŠ   rY   r   r‡   ÚgetvalueÚwriterv   r6   Úxml_dataÚcancel_dump_traceback_later)rH   rO   r5   r�   rŽ   Úuse_timeoutÚstreamÚorig_stdoutr”   r   Úorig_print_warnings_stderrÚoutputÚxml_lists                r#   Ú_runtestrŸ   è   s•  € ð ×Ñ€GØ ×2Ñ2ÐØ×Ñ€GàÑÔ/×@×@ØˆÜ×)Ò)¨'¸Ó=àˆð-&Ü�HÔçØ"ŒGŒOä—[’[“]ˆFÜŸ*™*ˆKÜŸ*™*ˆKÜ#×1Ñ1ˆMØ)6×)BÑ)BÐ&àˆFðGØ#””
Ø#””
ð -3Ô)ä(¨È5ÒQà—<‘<¤5§<¡<Ó/Ø#Ÿ_™_Ó.�Fà(””
Ø(””
Ø,FÔ)àÑ!Ü—
‘
× Ñ  Ô(Ü—
‘
× Ñ Ô"øð &ŒGŒOÜ$ VØ9@´[òBô ×)Ñ)ˆÞØ&ŒOæÜ×4Ò4Ô6Ø!%ŒÕøð' )””
Ø(””
Ø,FÕ)ûö Ü×4Ò4Ô6Ø!%ŒÕús'   ÁA1G; Ã
AG ÄBG; ÇG8Ç8G; Ç;)H$rV   c                 óJ  • [         R                  " 5       n[        U 5      nUR                  n [        R
                  " UR                  5         [        X15        SSS5        [        R                   R#                  5         [        R                  R#                  5         [         R                  " 5       U-
  Ul        U$ ! , (       d  f       Ni= f!   U(       d4  [        R                  " 5       n[        SU  SU 3[        R                  SS9  [        R                  Ul         NÀ= f)z¥Run a single test.

test_name -- the name of the test

Returns a TestResult.

If runtests.use_junit, xml_data is a list containing each generated
testsuite element.
Nrw   ry   Trx   )ÚtimeÚperf_counterr   ru   r   Úsuppress_immortalizationrT   rŸ   rƒ   r„   r   r   r   r   r…   rY   r4   rv   Úduration)rV   rO   Ú
start_timerH   ru   r‰   s         r#   Úrun_single_testr¦   %  sØ   € ô ×"Ò"Ó$€JÜ˜	Ó"€FØ
�,‰,€Cð
*ô ×-Ò-¨h×.CÑ.CÕDÜ�VÔ&÷ Eô ‡J�J×ÑÔÜ‡J�J×ÑÔä×'Ò'Ó)¨JÑ6€F„OØ€M÷ EÕDûð*ÞÜ×&Ò&Ó(ˆCÜ�E˜)˜ L°°Ð6Ü—z‘z¨ò/ä×)Ñ)ˆŽús*   ® C ÁB=ÁC Â=
CÃC ÃC ÃAD")T)+r�   rj   rf   r’   r   r¡   rƒ   r   r.   r   Útest.supportr   Úfilterr   rH   r   r   r	   rO   r
   Úsave_envr   Úsetupr   Ú
testresultr   Úutilsr   r   r   r   r   ÚPROGRESS_MIN_TIMEr$   r   r   r`   rm   rr   ÚboolrŠ   rŸ   r¦   rS   r%   r#   Ú<module>r¯      sû   ðÛ Û 	Û Û 	Û 
Û Û Û å Ý )å ß 0Ñ 0Ý Ý ,Ý Ý '÷Aõ Að Ð òò
òð>#˜Jð #¸Xð #È$ô #ðN €
ð"˜:ð "°ð "¸dô "ðL 6:ñD$ Zð D$¸8ð D$Ø.2ðD$Ø>BõD$ðN:&�Zð :&¨8ð :&¸ô :&ðz˜xð °8ð À
õ r%   