ó
    F\h  ã                   óØ  • 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J	r	  S SK
Jr  SSKJrJrJrJrJrJrJr   " S S5      r\R*                  " SSS	9 " S
 S5      5       r\R*                  " SSS	9 " S S5      5       r\R*                  " SSS	9 " S S5      5       r\R*                  " SSS	9 " S S\5      5       r " S S\R4                  5      rS\\\4   S\\\\4   -  4S jrg)é    N)ÚAnyÚIterator)Úsupporté   )ÚStrPathÚStrJSONÚ	TestTupleÚTestNameÚ
TestFilterÚFilterTupleÚ
FilterDictc                   ó    • \ rS rSrSrSrSrSrg)ÚJsonFileTypeé   ÚUNIX_FDÚWINDOWS_HANDLEÚSTDOUT© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   Ú__static_attributes__r   ó    Ú0/usr/lib/python3.13/test/libregrtest/runtests.pyr   r      s   † Ø€GØ%€NØƒFr   r   T)ÚslotsÚfrozenc                   óˆ   • \ rS rSr% \S-  \S'   \\S'   S\\\4   SS4S jr	\
R                  S\S   4S j5       rSS	 jrS
rg)ÚJsonFileé   NÚfileÚ	file_typeÚpopen_kwargsÚreturnc                 óè   • U R                   =[        R                  :X  a    U R                  /US'   g [        R                  :X  a.  [
        R                  " 5       nSU R                  /0Ul        X!S'   g g )NÚpass_fdsÚhandle_listÚstartupinfo)r"   r   r   r!   r   Ú
subprocessÚSTARTUPINFOÚlpAttributeList)Úselfr#   r(   s      r   Úconfigure_subprocessÚJsonFile.configure_subprocess   s]   € Ø�n‰nØ%”×%Ö%à,0¯I©I¨;�˜ZÒ(Ü×,Õ,ô )×4Ò4Ó6�Ø/<¸t¿y¹y¸kÐ.J�Ô+Ø.9˜]Ò+ð -r   c              #   óT  #   • [         R                  S:X  af  U R                  [        R                  :X  aH  [
        R                  " U R                  S5         S v •  [
        R                  " U R                  S5        g S v •  g ! [
        R                  " U R                  S5        f = f7f)NÚwin32TF)ÚsysÚplatformr"   r   r   ÚosÚset_handle_inheritabler!   ©r,   s    r   Úinherit_subprocessÚJsonFile.inherit_subprocess+   sl   é € ä�<‰<˜7Ó" t§~¡~¼×9TÑ9TÓ'TÜ×%Ò% d§i¡i°Ô6ð<Ûä×)Ò)¨$¯)©)°UÕ;äøô ×)Ò)¨$¯)©)°UÕ;üs   ‚AB(ÁB Á'B(Â#B%Â%B(c                ó  • U R                   [        R                  :X  a  [        S5      eU R                  nU R                   [        R
                  :X  a$  SS KnUR                  U[        R                  5      n[        X1US9$ )Nz)for STDOUT file type, just use sys.stdoutr   )Úencoding)r"   r   r   Ú
ValueErrorr!   r   ÚmsvcrtÚopen_osfhandler3   ÚO_WRONLYÚopen)r,   Úmoder9   r!   r;   s        r   r>   ÚJsonFile.open6   sa   € Ø�>‰>œ\×0Ñ0Ó0ÜÐHÓIÐIà�y‰yˆØ�>‰>œ\×8Ñ8Ó8Ûà×(Ñ(¨¬r¯{©{Ó;ˆDÜ�D¨Ñ2Ð2r   r   )Úr)r   r   r   r   ÚintÚ__annotations__ÚstrÚdictr   r-   Ú
contextlibÚcontextmanagerr   r6   r>   r   r   r   r   r   r      sX   ‡ ð �‰*ÓØƒNð
:°°c¸3°h±ð 
:ÀDô 
:ð ×Ñð H¨T¡Nó ó ð÷	3r   r   c                   óH   • \ rS rSr% \\S'   \\S'   \\S'   S\\   4S jr	Sr
g)	ÚHuntRefleakéB   ÚwarmupsÚrunsÚfilenamer$   c                 ó>   • SU R                    SU R                   S3/$ )Nz-RÚ:)rK   rL   r5   s    r   Úbisect_cmd_argsÚHuntRefleak.bisect_cmd_argsH   s$   € ð ˜Ÿ™˜ a¨¯	©	 {°!Ð4Ð5Ð5r   r   N)r   r   r   r   rB   rC   r   ÚlistrD   rP   r   r   r   r   rI   rI   B   s"   ‡ àƒLØ
ƒIØÓð6  c¡÷ 6r   rI   c                   óÊ  • \ rS rSr% \\S'   \\S'   \\S'   \\S'   \S-  \S'   \\S'   \\S	'   \\S
'   \\S'   \\S'   \	S-  \S'   \
\S'   \\S'   \S-  \S'   \S-  \S'   \\S'   \\S'   \S-  \S'   \
S-  \S'   \\S4   \S'   \\S4   S-  \S'   \\S'   \
\-  \S'   S&S jrS'S jrS\S\S-  4S jrS\
S-  4S  jrS\\   4S! jrS\4S" jrS\\   4S# jrS\\   4S$ jrS%rg)(ÚRunTestséN   ÚtestsÚ	fail_fastÚfail_env_changedÚmatch_testsNÚmatch_tests_dictÚrerunÚforeverÚpgoÚpgo_extendedÚoutput_on_failureÚtimeoutÚverboseÚquietÚhunt_refleakÚtest_dirÚ	use_junitÚcoverageÚmemory_limitÚgc_threshold.Úuse_resourcesÚ
python_cmdÚ	randomizeÚrandom_seedr$   c                 óf   • [         R                  " U 5      nUR                  U5        [        S0 UD6$ ©Nr   )ÚdataclassesÚasdictÚupdaterT   ©r,   ÚoverrideÚstates      r   ÚcopyÚRunTests.copyh   s,   € Ü×"Ò" 4Ó(ˆØ�‰�XÔÜÑ ˜%Ñ Ð r   c                 óf   • [         R                  " U 5      nUR                  U5        [        S0 UD6$ rn   )ro   rp   rq   ÚWorkerRunTestsrr   s      r   Úcreate_worker_runtestsÚRunTests.create_worker_runtestsm   s,   € Ü×"Ò" 4Ó(ˆØ�‰�XÔÜÑ& Ñ&Ð&r   Ú	test_namec                 óV   • U R                   b  U R                   R                  US 5      $ g ©N)rZ   Úget)r,   r{   s     r   Úget_match_testsÚRunTests.get_match_testsr   s*   € Ø× Ñ Ñ,Ø×(Ñ(×,Ñ,¨Y¸Ó=Ð=àr   c                 óP   • U R                   (       a  g [        U R                  5      $ r}   )r\   ÚlenrV   r5   s    r   Úget_jobsÚRunTests.get_jobsx   s   € ð �<�<ØÜ�4—:‘:‹Ðr   c              #   óŒ   #   • U R                   (       a   U R                   S h  v•N   M  U R                   S h  v•N   g  N N7fr}   )r\   rV   r5   s    r   Ú
iter_testsÚRunTests.iter_tests   s8   é € Ø�<�<ØØŸ:™:×%Ð%ñ ð —z‘z×!Ñ!ñ &á!ùs   ‚"A¤A ¥AºA»AÁAc                 óˆ   • [        U R                  5      =(       d'    [        R                  =(       d    [        R                  $ r}   )Úboolrj   r   Úis_emscriptenÚis_wasir5   s    r   Újson_file_use_stdoutÚRunTests.json_file_use_stdout†   s/   € ô �—‘Ó!÷ Ü×$Ñ$÷ä�‰ð	
r   c                 ó@  • [         R                  " 5       nU R                  b&  U R                  nU Vs/ s H  o3S:w  d  M
  UPM     nnO[        R                  4n/ UQUQnSU;  a  UR                  S5        U R                  (       a  UR                  S5        U$ s  snf )Nz-Eú-uz-Xpresite=test.cov)r   Úargs_from_interpreter_flagsrj   r1   Ú
executableÚappendrf   )r,   Úpython_optsr‘   ÚoptÚcmds        r   Úcreate_python_cmdÚRunTests.create_python_cmd“   s�   € Ü×9Ò9Ó;ˆØ�?‰?Ñ&ØŸ™ˆJñ +6ÓEª+ 3À¹Ÿ3©+ˆKÐEˆKäŸ.™.Ð*ˆJØ)�
Ð)˜[Ð)ˆØ�{Ó"Ø�J‰J�tÔØ�=�=Ø�J‰JÐ+Ô,Øˆ
ùò Fs   ³	BÁ Bc                 óô  • / nU R                   (       a  UR                  S5        U R                  (       a  UR                  S5        U R                  (       a  UR                  SU R                   35        U R                  b)  UR                  U R                  R                  5       5        U R                  (       a  UR                  SU R                  45        U R                  (       a  UR                  SU R                  45        U R                  (       a  UR                  SU R                   35        U R                  (       a,  UR                  SSR                  U R                  5      45        U R                  (       a3  [        R                  " U R                  5      nUR                  S	U45        U R                  (       a  UR                  S
5        UR                  SU R                   35        U$ )Nz
--failfastz--fail-env-changedz
--timeout=z	--testdirz
--memlimitz--threshold=r�   Ú,z--pythonz--randomizez--randseed=)rW   r’   rX   r`   rc   ÚextendrP   rd   rg   rh   ri   Újoinrj   Úshlexrk   rl   )r,   Úargsr•   s      r   rP   ÚRunTests.bisect_cmd_args¤   sY  € ØˆØ�>�>Ø�K‰K˜Ô%Ø× × Ø�K‰KÐ,Ô-Ø�<�<Ø�K‰K˜* T§\¡\ NÐ3Ô4Ø×ÑÑ(Ø�K‰K˜×)Ñ)×9Ñ9Ó;Ô<Ø�=�=Ø�K‰K˜ d§m¡mÐ4Ô5Ø××Ø�K‰K˜ t×'8Ñ'8Ð9Ô:Ø××Ø�K‰K˜, t×'8Ñ'8Ð&9Ð:Ô;Ø××Ø�K‰K˜˜sŸx™x¨×(:Ñ(:Ó;Ð<Ô=Ø�?�?Ü—*’*˜TŸ_™_Ó-ˆCØ�K‰K˜ SÐ)Ô*Ø�>�>Ø�K‰K˜+Ô'Ø�‰�k $×"2Ñ"2Ð!3Ð4Ô5Øˆr   r   )r$   rT   )r$   rx   )r   r   r   r   r	   rC   r‰   r   r   ÚfloatrB   rI   r   rD   Útupleru   ry   r
   r   r   rƒ   r   r†   rŒ   rR   r–   rP   r   r   r   r   rT   rT   N   s%  ‡ àÓØƒOØÓØÓØ  4Ñ'Ó'ØƒKØƒMØ	ƒIØÓØÓØ�T‰\ÓØƒLØƒKØ Ñ$Ó$Ø˜‰nÓØƒOØƒNØ˜‘*ÓØ˜‘*ÓØ˜˜c˜‘?Ó"Ø�c˜3�h‘ $Ñ&Ó&ØƒOØ�s‘Óô!ô
'ð
¨ð °kÀDÑ6Hô ð˜# ™*ô ð"˜H XÑ.ô "ð
 dô 
ð 4¨¡9ô ð"  c¡÷ r   rT   c                   óJ   • \ rS rSr% \\S'   S\4S jr\S\SS 4S j5       r	Sr
g)	rx   é¿   Ú	json_filer$   c                 ó4   • [         R                  " U [        S9$ )N)Úcls)ÚjsonÚdumpsÚ_EncodeRunTestsr5   s    r   Úas_jsonÚWorkerRunTests.as_jsonÃ   s   € Ü�zŠz˜$¤OÑ4Ð4r   Úworker_jsonc                 ó4   • [         R                  " U [        S9$ )N)Úobject_hook)r¦   ÚloadsÚ_decode_runtests)r«   s    r   Ú	from_jsonÚWorkerRunTests.from_jsonÆ   s   € ä�zŠz˜+Ô3CÑDÐDr   r   N)r   r   r   r   r   rC   r   r©   Ústaticmethodr°   r   r   r   r   rx   rx   ¿   s;   ‡ àÓð5˜ô 5ð ðE˜wð EÐ+;ó Eó óEr   rx   c                   ó>   ^ • \ rS rSrS\S\\\4   4U 4S jjrSrU =r	$ )r¨   éË   Úor$   c                 ó†   >• [        U[        5      (       a  [        R                  " U5      nSUS'   U$ [        TU ]  U5      $ )NTÚ__runtests__)Ú
isinstancerx   ro   rp   ÚsuperÚdefault)r,   rµ   ÚresultÚ	__class__s      €r   rº   Ú_EncodeRunTests.defaultÌ   s>   ø€ Ü�aœ×(Ñ(Ü ×'Ò'¨Ó*ˆFØ%)ˆF�>Ñ"ØˆMä‘7‘? 1Ó%Ð%r   r   )
r   r   r   r   r   rE   rD   rº   r   Ú__classcell__)r¼   s   @r   r¨   r¨   Ë   s#   ø† ð&˜ð &  c¨3 h¡÷ &õ &r   r¨   Údatar$   c                 ó¶   • SU ;   aR  U R                  S5        U S   (       a  [        S0 U S   D6U S'   U S   (       a  [        S0 U S   D6U S'   [        S0 U D6$ U $ )Nr·   rc   r£   r   )ÚpoprI   r   rx   )r¿   s    r   r¯   r¯   Õ   sg   € Ø˜ÓØ�‰�Ô Ø�×Ü#.Ñ#F°°nÑ1EÑ#FˆD�Ñ Ø�×Ü (Ñ =¨4°Ñ+<Ñ =ˆD�ÑÜÑ% Ñ%Ð%àˆr   )rF   ro   r¦   r3   rœ   r)   r1   Útypingr   r   Útestr   Úutilsr   r   r	   r
   r   r   r   r   Ú	dataclassr   rI   rT   rx   ÚJSONEncoderr¨   rE   rD   r¯   r   r   r   Ú<module>rÇ      s  ðÛ Û Û Û 	Û Û Û 
ß  å ÷P÷ Pñ P÷ñ ð ×Ò˜T¨$Ñ/÷(3ð (3ó 0ð(3ðV ×Ò˜T¨$Ñ/÷6ð 6ó 0ð6ð ×Ò˜T¨$Ñ/÷mð mó 0ðmð` ×Ò˜T¨$Ñ/ôE�Xó Eó 0ðEô&�d×&Ñ&ô &ð	˜4  S ™>ð 	¨h¸¸cÀ3¸h¹Ñ.Gõ 	r   