
    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]    nn%%%,0II;Z(,, )446/<tyyk.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~~9T9T'T%%dii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yy>>\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
:c3h 
:D 
: HTN  	3r   r   c                   H    \ rS rSr% \\S'   \\S'   \\S'   S\\   4S jr	Sr
g)	HuntRefleakB   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)(RunTestsN   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     <<::%%  zz!! &!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EK..*J)
)[){"JJt==JJ+,
 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   >>KK%  KK,-<<KK*T\\N34(KK))99;<==KKdmm45KKt'8'89:KK,t'8'8&9:;KKsxx(:(:;<=??**T__-CKKS)*>>KK+'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?"c3h$&&Os!
'
 kD6H #* "HX. "
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    zz$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    zz+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#    & &c3h & &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n1E#FD  ( =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(3V T$/6 6 06 T$/m m 0m` T$/EX E 0E&d&& &	4S> 	hc3h.G 	r   