Ë
    òT•j/  ã                   óæ  — d dl 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d dlmZ d dl	m
Z
 ddlmZmZmZmZmZmZ  G d„ d«      Z ej&                  dd¬	«       G d
„ d«      «       Z ej&                  dd¬	«       G d„ d«      «       Z ej&                  dd¬	«       G d„ d«      «       Z ej&                  dd¬	«       G d„ de«      «       Z G d„ dej0                  «      Zdeeef   deeeef   z  fd„Zy)é    N)ÚAny)Úsupporté   )ÚStrPathÚStrJSONÚ	TestTupleÚ
TestFilterÚFilterTupleÚ
FilterDictc                   ó   — e Zd ZdZdZdZy)ÚJsonFileTypeÚUNIX_FDÚWINDOWS_HANDLEÚSTDOUTN)Ú__name__Ú
__module__Ú__qualname__r   r   r   © ó    ú0/usr/lib/python3.12/test/libregrtest/runtests.pyr   r      s   „ Ø€GØ%€NØ�Fr   r   T)ÚslotsÚfrozenc                   ód   — e Zd ZU edz  ed<   eed<   deddfd„Zej                  d„ «       Z
d	d„Zy)
ÚJsonFileNÚfileÚ	file_typeÚpopen_kwargsÚreturnc                 óä   — | j                   xt        j                  k(  r | j                  g|d<   y t        j                  k(  r.t        j                  «       }d| j                  gi|_        ||d<   y y )NÚpass_fdsÚhandle_listÚstartupinfo)r   r   r   r   r   Ú
subprocessÚSTARTUPINFOÚlpAttributeList)Úselfr   r"   s      r   Úconfigure_subprocesszJsonFile.configure_subprocess   s_   € Ø�n‰nØ%”×%Õ%à,0¯I©I¨;�˜ZÒ(Ü×,Ô,ô )×4Ñ4Ó6�Ø/<¸t¿y¹y¸kÐ.J�Ô+Ø.9�˜]Ò+ð -r   c              #   ó$  K  — | j                   t        j                  k(  rFt        j                  | j
                  d«       	 d –— t        j                  | j
                  d«       y d –— y # t        j                  | j
                  d«       w xY w­w)NTF)r   r   r   ÚosÚset_handle_inheritabler   ©r&   s    r   Úinherit_subprocesszJsonFile.inherit_subprocess+   sb   è ø€ à�>‰>œ\×8Ñ8Ò8Ü×%Ñ% d§i¡i°Ô6ð<Ûä×)Ñ)¨$¯)©)°UÕ;äøô ×)Ñ)¨$¯)©)°UÕ;üs   ‚>BÁA+ Á&BÁ+"BÂBc                ó  — | j                   t        j                  k(  rt        d«      ‚| j                  }| j                   t        j
                  k(  r$dd l}|j                  |t        j                  «      }t        |||¬«      S )Nz)for STDOUT file type, just use sys.stdoutr   )Úencoding)r   r   r   Ú
ValueErrorr   r   ÚmsvcrtÚopen_osfhandler)   ÚO_WRONLYÚopen)r&   Úmoder.   r   r0   s        r   r3   zJsonFile.open6   sc   € Ø�>‰>œ\×0Ñ0Ò0ÜÐHÓIÐIà�y‰yˆØ�>‰>œ\×8Ñ8Ò8Ûà×(Ñ(¨¬r¯{©{Ó;ˆDÜ�D˜$¨Ô2Ð2r   )Úr)r   r   r   ÚintÚ__annotations__ÚstrÚdictr'   Ú
contextlibÚcontextmanagerr,   r3   r   r   r   r   r      sE   … ð �‰*ÓØƒNð
:°ð 
:¸$ó 
:ð ×Ññó ðô	3r   r   c                   ó>   — e Zd ZU eed<   eed<   eed<   dee   fd„Zy)ÚHuntRefleakÚwarmupsÚrunsÚfilenamer   c                 ó>   — d| j                   › d| j                  › d�gS )Nz-Rú:)r>   r?   r+   s    r   Úbisect_cmd_argszHuntRefleak.bisect_cmd_argsH   s$   € ð ˜Ÿ™˜ a¨¯	©	 {°!Ð4Ð5Ð5r   N)	r   r   r   r6   r7   r   Úlistr8   rC   r   r   r   r=   r=   B   s"   … àƒLØ
ƒIØÓð6  c¡ô 6r   r=   c                   óŠ  — e Zd ZU eed<   eed<   eed<   eed<   edz  ed<   eed<   eed<   eed	<   eed
<   eed<   edz  ed<   e	ed<   eed<   e
dz  ed<   edz  ed<   eed<   edz  ed<   e	dz  ed<   eedf   ed<   eedf   dz  ed<   eed<   e	ez  ed<   d"d„Zd„ Zdedz  fd„Zd„ Zd„ Zdefd„Zdee   fd „Zdee   fd!„Zy)#ÚRunTestsÚ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Úmemory_limitÚgc_threshold.Úuse_resourcesÚ
python_cmdÚ	randomizeÚrandom_seedr   c                 ód   — t        j                  | «      }|j                  |«       t        di |¤ŽS ©Nr   )ÚdataclassesÚasdictÚupdaterF   ©r&   ÚoverrideÚstates      r   ÚcopyzRunTests.copyg   s,   € Ü×"Ñ" 4Ó(ˆØ�‰�XÔÜÑ ˜%Ñ Ð r   c                 ód   — t        j                  | «      }|j                  |«       t        di |¤ŽS r^   )r_   r`   ra   ÚWorkerRunTestsrb   s      r   Úcreate_worker_runtestszRunTests.create_worker_runtestsl   s,   € Ü×"Ñ" 4Ó(ˆØ�‰�XÔÜÑ& Ñ&Ð&r   c                 óT   — | j                   �| j                   j                  |d «      S y ©N)rK   Úget)r&   Ú	test_names     r   Úget_match_testszRunTests.get_match_testsq   s*   € Ø× Ñ Ð,Ø×(Ñ(×,Ñ,¨Y¸Ó=Ð=àr   c                 óF   — | j                   ry t        | j                  «      S rj   )rM   ÚlenrG   r+   s    r   Úget_jobszRunTests.get_jobsw   s   € ð �<Š<ØÜ�4—:‘:‹Ðr   c              #   ó€   K  — | j                   r	 | j                  E d {  –—†  Œ| j                  E d {  –—†  y 7 Œ7 Œ­wrj   )rM   rG   r+   s    r   Ú
iter_testszRunTests.iter_tests~   s:   è ø€ Ø�<Š<ØØŸ:™:×%Ð%ð ð —z‘z×!Ñ!ð &øà!ús   ‚>Ÿ: >´<µ>¼>c                 ót   — t        | j                  «      xs" t        j                  xs t        j                  S rj   )ÚboolrZ   r   Úis_emscriptenÚis_wasir+   s    r   Újson_file_use_stdoutzRunTests.json_file_use_stdout…   s/   € ô �—‘Ó!ò Ü×$Ñ$òä�‰ð	
r   c                 óì   — t        j                  «       }| j                  �"| j                  }|D �cg c]
  }|dk7  sŒ	|‘Œ }}nt        j                  f}g |¢|¢}d|vr|j                  d«       |S c c}w )Nz-Eú-u)r   Úargs_from_interpreter_flagsrZ   ÚsysÚ
executableÚappend)r&   Úpython_optsr|   ÚoptÚcmds        r   Úcreate_python_cmdzRunTests.create_python_cmd’   sx   € Ü×9Ñ9Ó;ˆØ�?‰?Ð&ØŸ™ˆJð +6ÖE 3¸À»š3ÐEˆKÑEäŸ.™.Ð*ˆJØ)�
Ð)˜[Ð)ˆØ�{Ñ"Ø�J‰J�tÔØˆ
ùò Fs
   ±
A1¼A1c                 ó–  — g }| j                   r|j                  d«       | j                  r|j                  d«       | j                  r|j                  d| j                  › �«       | j                  �)|j                  | j                  j                  «       «       | j                  r|j                  d| j                  f«       | j                  r|j                  d| j                  f«       | j                  r|j                  d| j                  › �«       | j                  r,|j                  ddj                  | j                  «      f«       | j                  r2t        j                  | j                  «      }|j                  d	|f«       | j                  r|j                  d
«       |j                  d| j                  › �«       |S )Nz
--failfastz--fail-env-changedz
--timeout=z	--testdirz
--memlimitz--threshold=ry   ú,z--pythonz--randomizez--randseed=)rH   r}   rI   rQ   rT   ÚextendrC   rU   rW   rX   rY   ÚjoinrZ   Úshlexr[   r\   )r&   Úargsr€   s      r   rC   z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   rF   )r   r   r   r   r7   rt   r	   r   Úfloatr6   r=   r   r8   Útuplere   rh   r
   rm   rp   rr   rw   rD   r�   rC   r   r   r   rF   rF   N   s  … àÓØƒOØÓØÓØ  4Ñ'Ó'ØƒKØƒMØ	ƒIØÓØÓØ�T‰\ÓØƒLØƒKØ Ñ$Ó$Ø˜‰nÓØƒOØ˜‘*ÓØ˜‘*ÓØ˜˜c˜‘?Ó"Ø�c˜3�h‘ $Ñ&Ó&ØƒOØ�s‘Óó!ò
'ð
¨K¸$Ñ,>ó òò"ð
 dó 
ð 4¨¡9ó ð  c¡ô r   rF   c                   ó>   — e Zd ZU eed<   defd„Zededd fd„«       Zy)rg   Ú	json_filer   c                 ó8   — t        j                  | t        ¬«      S )N)Úcls)ÚjsonÚdumpsÚ_EncodeRunTestsr+   s    r   Úas_jsonzWorkerRunTests.as_jsonÀ   s   € Ü�z‰z˜$¤OÔ4Ð4r   Úworker_jsonc                 ó8   — t        j                  | t        ¬«      S )N)Úobject_hook)rŽ   ÚloadsÚ_decode_runtests)r’   s    r   Ú	from_jsonzWorkerRunTests.from_jsonÃ   s   € ä�z‰z˜+Ô3CÔDÐDr   N)	r   r   r   r   r7   r   r‘   Ústaticmethodr—   r   r   r   rg   rg   ¼   s;   … àÓð5˜ó 5ð ðE˜wð EÐ+;ò Eó ñEr   rg   c                   ó2   ‡ — e Zd Zdedeeef   fˆ fd„Zˆ xZS )r�   Úor   c                 óz   •— t        |t        «      rt        j                  |«      }d|d<   |S t        ‰| �  |«      S )NTÚ__runtests__)Ú
isinstancerg   r_   r`   ÚsuperÚdefault)r&   rš   ÚresultÚ	__class__s      €r   rŸ   z_EncodeRunTests.defaultÉ   s;   ø€ Ü�aœÔ(Ü ×'Ñ'¨Ó*ˆFØ%)ˆF�>Ñ"ØˆMä‘7‘? 1Ó%Ð%r   )r   r   r   r   r9   r8   rŸ   Ú__classcell__)r¡   s   @r   r�   r�   È   s#   ø„ ð&˜ð &  c¨3 h¡÷ &ñ &r   r�   Údatar   c                 óž   — d| v rH| j                  d«       | d   rt        di | d   ¤Ž| d<   | d   rt        di | d   ¤Ž| d<   t        di | ¤ŽS | S )Nrœ   rT   r‹   r   )Úpopr=   r   rg   )r£   s    r   r–   r–   Ò   sg   € Ø˜ÑØ�‰�Ô Ø�ÒÜ#.Ñ#F°°nÑ1EÑ#FˆD�Ñ Ø�ÒÜ (Ñ =¨4°Ñ+<Ñ =ˆD�ÑÜÑ% Ñ%Ð%àˆr   )r:   r_   rŽ   r)   r†   r#   r{   Útypingr   Útestr   Úutilsr   r   r   r	   r
   r   r   Ú	dataclassr   r=   rF   rg   ÚJSONEncoderr�   r9   r8   r–   r   r   r   ú<module>r«      s  ðÛ Û Û Û 	Û Û Û 
Ý å ÷F÷ F÷ñ ð €×Ñ˜T¨$Ô/÷(3ð (3ó 0ð(3ðV €×Ñ˜T¨$Ô/÷6ð 6ó 0ð6ð €×Ñ˜T¨$Ô/÷jð jó 0ðjðZ €×Ñ˜T¨$Ô/ôE�Xó Eó 0ðEô&�d×&Ñ&ô &ð	˜4  S ™>ð 	¨h¸¸cÀ3¸h¹Ñ.Gô 	r   