
    F\hG              
       :   S SK r S SKrS SKrS SKJrJr  S SKJrJr  SSK	J
r
Jr  SSKJrJrJr  SSKJr  SSKJrJrJrJrJrJr  \" \S	5      =(       a	    \" \S
5      r SS\S\S\S-  S\ R8                  \   4S jjrS\S\4S jrS\4S jr \!S:X  a  \ " 5         gg)    N)AnyNoReturn)	os_helperPy_DEBUG   )setup_processsetup_test_dir)WorkerRunTestsJsonFileJsonFileType)run_single_test)StrPathStrJSON
TestFilterget_temp_dirget_work_direxit_timeoutsetsidkillpgruntests	output_fdtmp_dirreturnc           	         U R                  5       nU R                  5       nUR                  SSU/5        [        [        R
                  5      nUb  X%S'   X%S'   X%S'   [        R                  n[        UUUSSUS9n[        (       a  SUS'   U R                  nUR                  U5        UR                  5          [        R                  " U40 UD6sS S S 5        $ ! , (       d  f       g = f)	Nz-mztest.libregrtest.workerTMPDIRTEMPTMPT)envstdoutstderrtext	close_fdscwdstart_new_session)as_jsoncreate_python_cmdextenddictosenvironr   SAVEDCWDUSE_PROCESS_GROUP	json_fileconfigure_subprocessinherit_subprocess
subprocessPopen)	r   r   r   worker_jsoncmdr   work_dirkwargsr-   s	            ./usr/lib/python3.13/test/libregrtest/worker.pycreate_worker_processr7      s    ""$K

$
$
&CJJ/=>
rzz
CHFE
 !!H!F &*"# ""I""6*		%	%	'.v. 
(	'	's   8C
C'r2   c                    [         R                  " U 5      nUR                  S   nUR                  nUR                  n[        UR                  5        [        5         UR                  (       aB  U(       a-  SSR                  S U 5       5      -   n[        SU SU S3SS	9  O[        SU S
3SS	9  [        X!5      nUR                  (       aa  S[        R                  ;   a,  [        [        R                  S   R                  5      Ul        O!["        (       d  [        SSS	9  O[%        S5      eUR&                  [(        R*                  :X  a*  [        5         UR-                  [        R.                  5        O*UR1                  SSS9 nUR-                  U5        S S S 5        [        R2                  " S5        g ! , (       d  f       N%= f)Nr   z
matching: z, c              3   <   #    U  H  u  pU(       d  M  Uv   M     g 7fN ).0patternresults      r6   	<genexpr>!worker_process.<locals>.<genexpr>H   s     /e{OG^d{s   	zRe-running z in verbose mode ()T)flushz in verbose modeztest.covz>Gathering coverage in worker processes requires --with-pydebugz7`test.cov` not found in sys.modules but coverage wantedwzutf-8)encoding)r
   	from_jsontestsmatch_testsr-   r	   test_dirr   rerunjoinprintr   coveragesysmoduleslistcovered_linesr   LookupError	file_typer   STDOUTwrite_json_intor   openexit)r2   r   	test_namerG   r-   matchingr>   json_fps           r6   worker_processrZ   =   sc   ''4Hq!I&22K",,I8$$%O~~#dii/e{/e&eeHK	{*<XJaHPTUK	{*:;4HY1F$#'J(?(H(H#IF P
 I  l111szz*^^C'^2g""7+ 3 HHQK 32s   F66
Gc                     [        [        R                  5      S:w  a!  [        S5        [        R                  " S5        [        R                  S   n [        5       n[        USS9n[        5          [        R                  " USS9   [        U 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N   z-usage: python -m test.libregrtest.worker JSONr   T)worker)quiet)lenrM   argvrK   rV   r   r   r   r   temp_cwdrZ   )r2   r   r4   s      r6   mainrb   e   s~    
388}=>((1+KnGGD1H	5;' 6 
55 
s$   0B4B#B4#
B1	-B44
C__main__r:   )"r0   rM   r)   typingr   r   test.supportr   r   setupr   r	   r   r
   r   r   singler   utilsr   r   r   r   r   r   hasattrr,   intr1   strr7   rZ   rb   __name__r;       r6   <module>rn      s     
 	   , 0 < < #. .
 R*Dwr8/D  59'/N '/s '/#*T>'/=G=M=Mc=R'/T% %H %P(h ( zF rm   