Ë
    òT•jY  ã            	       ó  — d dl Z d dlZd dlZd dlmZmZ d dlmZ ddlm	Z	m
Z
 ddlmZmZmZ ddlmZ ddlmZmZmZmZmZmZ  eed	«      xr	  eed
«      Z	 ddedededz  de j6                  fd„Zdedefd„Zd„ Zedk(  r e«        yy)é    N)ÚAnyÚNoReturn)Ú	os_helperé   )Ú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                 óÈ  — | j                  «       }| j                  «       }|j                  dd|g«       t        t        j
                  «      }|�||d<   ||d<   ||d<   t        j                  }t        |||dd|¬«      }t        rd|d<   | j                  }|j                  |«       |j                  «       5  t        j                  |fi |¤Žcd d d «       S # 1 sw Y   y xY w)	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.12/test/libregrtest/worker.pyÚcreate_worker_processr6      sé   € à×"Ñ"Ó$€Kà
×
$Ñ
$Ó
&€CØ‡J�J�Ð/°Ð=Ô>ä
Œr�z‰zÓ
€CØÐØˆˆH‰ØˆˆF‰ØˆˆE‰
ô ×!Ñ!€Hä!ØØàØØØô€Fõ Ø&*ˆÐ"Ñ#ð ×"Ñ"€IØ×"Ñ" 6Ô*à	×	%Ñ	%Ó	'ñ /Ü×Ñ Ñ. vÑ.÷/÷ /ò /ús   Â8CÃC!r1   c                 óš  — t        j                  | «      }|j                  d   }|j                  }|j                  }t        |j                  «       t        «        |j                  rC|r0ddj                  d„ |D «       «      z   }t        d|› d|› d�d¬	«       nt        d|› d
�d¬	«       t        ||«      }|j                  t        j                  k(  r*t        «        |j                  t         j"                  «       n-|j%                  dd¬«      5 }|j                  |«       d d d «       t!        j&                  d«       y # 1 sw Y   ŒxY w)Nr   z
matching: z, c              3   ó,   K  — | ]  \  }}|sŒ	|–— Œ y ­w©N© )Ú.0ÚpatternÚresults      r5   ú	<genexpr>z!worker_process.<locals>.<genexpr>H   s   è ø€ Ò/e¹O¸GÀVÒ^d´Ñ/eùs   ‚
�zRe-running z in verbose mode (ú)T)Úflushz in verbose modeÚwzutf-8)Úencoding)r	   Ú	from_jsonÚtestsÚmatch_testsr,   r   Útest_dirr   ÚrerunÚjoinÚprintr   Ú	file_typer   ÚSTDOUTÚwrite_json_intoÚsysr   ÚopenÚexit)r1   r   Ú	test_namerE   r,   Úmatchingr=   Újson_fps           r5   Úworker_processrS   =   s  € Ü×'Ñ'¨Ó4€HØ—‘˜qÑ!€IØ&×2Ñ2€KØ"×,Ñ,€Iä�8×$Ñ$Ô%Ü„Oà‡~‚~ÙØ# d§i¡iÑ/eÈ{Ô/eÓ&eÑeˆHÜ�K 	˜{Ð*<¸X¸JÀaÐHÐPTÖUä�K 	˜{Ð*:Ð;À4ÕHä˜Y¨Ó1€Fà×Ñœl×1Ñ1Ò1ÜŒØ×ÑœsŸz™zÕ*à�^‰^˜C¨'ˆ^Ó2ð 	,°gØ×"Ñ" 7Ô+÷	,ô ‡H�HˆQ…K÷	,ð 	,ús   ÄEÅE
c                  ó|  — t        t        j                  «      dk7  r t        d«       t        j                  d«       t        j                  d   } t        «       }t        |d¬«      }t        «       5  t        j                  |d¬«      5  t        | «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Né   z-usage: python -m test.libregrtest.worker JSONr   T)Úworker)Úquiet)ÚlenrM   ÚargvrI   rO   r   r   r   r   Útemp_cwdrS   )r1   r   r3   s      r5   Úmainr[   Y   s’   € Ü
Œ3�8‰8ƒ}˜ÒÜÐ=Ô>Ü�‰�ŒÜ—(‘(˜1‘+€Kä‹n€GÜ˜G¨DÔ1€Hä	‹ñ (Ü×Ñ °Ô5ñ 	(Ü˜;Ô'÷	(÷(ð (÷	(ð 	(ú÷(ð (ús$   Á1B2Â	B&ÂB2Â&B/	Â+B2Â2B;Ú__main__r9   ) r/   rM   r(   Útypingr   r   Útest.supportr   Úsetupr   r   r   r	   r
   r   Úsingler   Úutilsr   r   r   r   r   r   Úhasattrr+   Úintr0   r6   rS   r[   Ú__name__r:   ó    r5   ú<module>rf      s¤   ðÛ Û 
Û 	ß  å "ç 0ß <Ñ <Ý #÷.÷ .ñ
 ˜R Ó*ÒD©w°r¸8Ó/DÐ ð 59ñ'/ Nð '/¸sð '/Ø#*¨T¡>ð'/Ø=G×=MÑ=Mó'/ðT ð ¨Hó ò8(ð ˆzÒÙ…Fð re   