python (3.12.0)

(root)/
lib/
python3.12/
test/
libregrtest/
__pycache__/
runtest_mp.cpython-312.opt-2.pyc

ϑeU	vddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZmZmZmZmZddlmZddlmZddlmZddlmZddlmZddlmZmZmZm Z m!Z!m"Z"dd	l#m$Z$dd
l%m&Z&m'Z'ejPdk(rddl)Z)dZ*d
Z+dZ,e-edxr	e-edZ.ej^dGddZ0GddejbZ2de3e4efde0e3e4efzfdZ5de4de6ee4ffdZ7	d3de0dede4dzdejpfdZ9de4defdZ:Gd d!Z;Gd"d#eZ<e4Z=e6ed$e<fe6ede=fzZ>Gd%d&e?Z@Gd'd(e
jZBd)eCeBdeCeBfd*ZDGd+d,ZEd-ed.e"ddfd/ZFGd0d1ejbZGde3e4efdee3e4efzfd2ZHy)4N)
NamedTupleNoReturnLiteralAnyTextIO)support)	os_helper)	TestStats)	Namespace)Regrtest)runtest
TestResultStatePROGRESS_MIN_TIME
MatchTestsRunTests)setup_tests)format_duration
print_warningwin32g>@gr@setsidkillpgT)slotscDeZdZUeed<eed<dZeed<dZe	dzed<y)	WorkerJob	test_name	namespaceFrerunNmatch_tests)
__name__
__module____qualname__str__annotations__rrboolrrO/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/libregrtest/runtest_mp.pyrr/s&NE4%)Kd")r'rc2eZdZdedeeefffdZxZS)_EncodeWorkerJoboreturnc|xtdx\tj|}d|d<|Stdx\t	|}d|d<|S	t
||S)Nr&T__worker_job__
__namespace__)rdataclassesasdictrvarssuperdefaultselfr+result	__class__s   r(r4z_EncodeWorkerJob.default8sj$++A.+/'(
a*.'
wq))r'r r!r"rdictr#r4
__classcell__r8s@r(r*r*7s#**c3h**r'r*dr,cd|vr|jdtdi|Sd|vr|jdtdi|S|S)Nr.r/r&)poprrr=s r(_decode_worker_jobrAFsH1	~1~!	o~1~r'worker_jsonc8tj|tS)Nobject_hook)jsonloadsrA)rBs r(_parse_worker_argsrHQs::k"466r'
worker_joboutput_filetmp_dirc|j}|j}tj|t}||}nt
jg}g|tjdddd|}ttj}|||d<||d<||d<t|||d	tjd
k7tj}	trd	|	d<t!j"|fi|	S)
Nclsz-uz-mz
test.regrtestz
--worker-argsTMPDIRTEMPTMPTnt)envstdoutstderrtext	close_fdscwdstart_new_session)rpythonrFdumpsr*sys
executablerargs_from_interpreter_flagsr:osenvironnamer	SAVEDCWDUSE_PROCESS_GROUP
subprocessPopen)
rIrJrKnsrZworker_argsr]cmdrSkws
          r(run_test_in_subprocessrjVs

		B
YYF**Z-=>K

nn%
)J)<<>))) ))()C
rzz
CH
FE



77d?
B"&C&2&&r'ct|}|j}|j}|j}|j}t||rC|r)ddj
|z}td|d|ddntd|ddd|_|||_t||}tttj|t	dtjd
y)Nz
matching: , zRe-running z in verbose mode ()Tflushz in verbose moderMr)rHrrrrrjoinprintverboser
rFr[EncodeTestResultr\exit)rBrIrfrrrmatchingr7s        r(run_tests_workerrv}s#K0J			B$$IE((KO#dii&<<HK	{*<XJaHPTUK	{*:;4H
$
R
#F	G
$**V!1
2$?HHQKr'c&eZdZ	dZdZdZdZy)MultiprocessIteratorcDtj|_||_yN)	threadingLocklock
tests_iter)r6r~s  r(__init__zMultiprocessIterator.__init__sNN$	$r'c|Srzr&r6s r(__iter__zMultiprocessIterator.__iter__sr'c|j5|jtt|jcdddS#1swYyxYwrz)r}r~
StopIterationnextrs r(__next__zMultiprocessIterator.__next__s:
YY	)&##(	)	)	)s	'>AcT|j5d|_dddy#1swYyxYwrz)r}r~rs r(stopzMultiprocessIterator.stops%
YY	#"DO	#	#	#s'N)r r!r"rrrrr&r'r(rxrxsB%)#r'rxc@eZdZUeed<dZedzed<dZedzed<y)MultiprocessResultr7N
worker_stdouterr_msg)r r!r"rr$rr#rr&r'r(rrs$ $M3:$GS4Zr'rFceZdZy)
ExitThreadN)r r!r"r&r'r(rrsr'rceZdZdeddddffdZdefdZddZdd	Z		dd
e	dedzde
fdZ	dd
ededzdefdZ
dede
fdZddZddZdeddfdZxZS)TestWorkerProcess	worker_idrunnerMultiprocessTestRunnerr,Ncdt|||_|j|_|j|_|j
|_|j|_|j|_|j|_	|j|_
d|_d|_d|_
d|_d|_y)NF)r3rrruntestspendingoutputrfworker_timeouttimeoutregrtestrcurrent_test_name
start_time_popen_killed_stopped)r6rrr8s   r(rzTestWorkerProcess.__init__s
"
~~mm)),,
\\
!%
r'cd|jg}|jr|jdn|jd|j}|r|jd||j}|Wtj|jz
}|jd|jjdt|fddj|zS)	NzTestWorkerProcess #runningstoppedztest=zpid=ztime=z<%s> )ris_aliveappendrrtime	monotonicrextendpidrrp)r6infotestpopendts     r(__repr__zTestWorkerProcess.__repr__s%dnn%567==?KK	"KK	"%%KK%v'!DOO3BKK401 !4 568
9&&r'c|j}|y|jryd|_tr|d}n|}td|tj
d	tr/t
j|jtjy|jy#t$rYyt$r}td|d|Yd}~yd}~wwxYw)NTz process groupzKill )filerozFailed to kill z: )rrrcrqr\rUr_rrsignalSIGKILLkillProcessLookupErrorOSErrorr)r6rwhatexcs    r(_killzTestWorkerProcess._kills=<<V>*DVD
dVn3::T:	= 		%))V^^4

!	
	=OD6C7;<<	=s$4BB	C$C,CCc2d|_|jy)NT)rrrs r(rzTestWorkerProcess.stops


r'test_resultrTct|||Srz)r)r6rrTrs    r(mp_result_errorz!TestWorkerProcess.mp_result_errors"+vw??r'rJrKc|j|_	t|||}d|_||_	|j
r|j
t	|j|j}||jd|_d|_S#d|_xYw#tj$r'|j
rt|j
d}Ynt$r|j
rtwxYwn#|j
xYw	|jd|_d|_y#|jd|_d|_wxYw)NFr)rrrjrrrrrwaitr_wait_completedrdTimeoutExpiredr)r6rIrJrKrretcodes      r(_run_processzTestWorkerProcess._run_process	sF!+!5!5	*:{GLE DLDK
'	*}}

  
**T\\*:2
  "DK%)D"W	%)D",,

==%$


==%$
		JJL
  "DK%)D"
  "DK%)D"sFB"C4B
B7C0C4C00C43D*4DD** E
rc
*tjdk(rtj}ntjj
}|jj|}tjd|5}t||j|j|}tjsttjd}t j"j%|}	|j'|||}t!j(|}t+j,|n|j'||}d}|j/d	|j1j3}		ddd-t7|t8j>
}|j=|	Sd}|dk7rd|z}nF	jAd
\}	}
}|	jC}	|sd}n	tEjF|tH}|r.t7|t8j:
}|j=|	|SrAd|dtK|ddjMtO|}	|z
}	jQtS	S#t!j(|}t+j,|wxYw#t4$rF}
d	|
}t7|t8j:
}|j=||cYd}
~
cdddSd}
~
wwxYw#1swYxYw#t4$r}
d|
z}Yd}
~
!d}
~
wwxYw)Nrzw+)encoding)rrrtest_python_)prefixr&rzCannot read process stdout: state)rzExit code %s
zFailed to parse worker stdoutrDzFailed to parse worker JSON: %sz

Warning -- z leaked temporary files (): rl)*r\platformlocalegetencodingrTrrget_match_teststempfile
TemporaryFilerrfrris_wasimkdtempr_pathabspathrlistdirr	rmtreeseekreadstrip	ExceptionrrMULTIPROCESSING_ERRORrTIMEOUT
rpartitionrstriprFrGdecode_test_resultlenrpsortedset_env_changedr)r6rrrstdout_filerIrKr	tmp_filesrTrrr7_rBmsgs                r(_runtestzTestWorkerProcess._runtest>s<<7"))+Hzz**Hmm33I>
#
#D8
<	E"9-1WW)-/:<J??#**.A''//'2."//
KQG "

7 3I$$W-++JD	Q
E$))+1133	EB?	?F''77a<$w.G%+%6%6t%<"FA{]]_F9F!ZZ4FHF
	1L1LMF''@@!!*,9~&c$))F94E*F)GIC
cMF""$!&&11_!#

7 3I$$W-
E9>#IU5P5PQ++FG+DD?	E	E4
E5	E	Ed!F?#EGFsh5A)K,I+2AK,JK9+,JK,	K)#2K$K)K,$K))K,,K69	LL

Lc|jj}|jj}|js		t	|j
}tj|_	|j|}tj|jz
|j_|jjd|f|jj||ry	|jsyy#t$rYywxYw#t $rYyt"$r2|jjdt%j&fYywxYw)NFT)rffailfastfail_env_changedrrrrrrrrr7durationrput	must_stopr
BaseException	traceback
format_exc)r6	fail_fastrr	mp_results     r(runzTestWorkerProcess.runs
GG$$	7733--
 $T\\ 2I#'.."2 MM)4	,0NN,<t,N	  )	 23##--i9IJK--%
 
y';';'= >?
s6C4BD4	D=D?DD	E7EEc	|j}	|jty#tjt
f$r+}t
d|dttd|Yd}~yd}~wwxYw)NzFailed to wait for z completion (timeout=r)rrJOIN_TIMEOUTrdrrrr)r6rrs   r(rz!TestWorkerProcess._wait_completedsg	&JJ|$))73	&/v6&&5l&C%DC G%
&
&	&s$A(!A##A(rc	|jd|jsytj|z
}|jjd|dt
||tkDrtd|dt
|y)Ng?zWaiting for z thread for zFailed to join z in )	rprrrrlogrrr)r6rrs   r(wait_stoppedzTestWorkerProcess.wait_stoppedsIIcN==?!J.BMMTF3%%4R%8$9;
<L vT/":M9NOPr'r,N)NNrz)r r!r"intrr#rrrrrrrrrrrfloatrr;r<s@r(rrs#/GD '#' =8"	@@d
@

@,03*F3*!Dj3*473*jM2#M2*<M2^.&ur'rworkerscg}|D]^}|j}|stj|jz
}|tk\s=|dt|d}|j
|`|S)Nz (rm)rrrrrrr)rrworkerrrrVs      r(get_runningrsjG!"44 
^^
 1 1
1
"" 1?23FGDNN4 !Nr'cjeZdZdededdfdZddZddZdedzfdZ	d	e
ddfd
ZdedefdZ
dd
Zy)rrrr,Nc|j}|j}||_||_|j|_|jj
|_||_t
j|_|j}t||_|t|dz|dz|_
d|_yd|_
d|_y)Ng?i,)rfrrrrrqueueQueuer
iter_testsrxrminrr)r6rrrfrr~s      r(rzMultiprocessTestRunner.__init__s
[[** 
 
^^
==$$05
((*
+J7#&gmWv5E"FD#'Dr'c|jj}|jj}td|dzDcgc]}t	||c}|_dt
|j
d}|r(|dt|dt|jdz
}|j||j
D]}|jycc}w)NzRun tests in parallel using z child processesz (timeout: z, worker timeout: rm)rfuse_mprrangerrrrrrstart)r6r	rindexrrs      r(
start_workersz$MultiprocessTestRunner.start_workerss''//%*1fqj%9;!*%6;,S->,??OP&w/&t':':;=
>C	

ll	FLLN	;sCctj}|jD]}|j|jD]}|j	|yrz)rrrrr)r6rrs   r(stop_workersz#MultiprocessTestRunner.stop_workerssK^^%
ll	FKKM	ll	,F
+	,r'ch|jj}|jjdu}t}t	d|j
Dr:|rt
jtd	|jj|S	|jjdS#tj$rYnwxYwt|j
}|r%|s#|jddj|zt	d|j
DrɌ#tj$rYywxYw)Nc3<K|]}|jywrz)r).0rs  r(	<genexpr>z5MultiprocessTestRunner._get_result.<locals>.<genexpr>s?&//#?sT)rtrzrunning: %srlr)rfpgorPROGRESS_UPDATEanyrfaulthandlerdump_traceback_laterMAIN_PROCESS_TIMEOUTrgetrEmptyrrrp)r6ruse_faulthandlerrrs     r(_get_resultz"MultiprocessTestRunner._get_resultsggkk GGOO47!?$,,??112F7;=
{{w77	;;??1?--;;

"$,,/Gs7);;<?$,,??&{{		s$/B(D(B>=B>D10D1rc|j}|jj}t|}|jr|d|jzz
}n0|j
tk\r|s|dt|j
zz
}t|j}|r|s|ddj|zz
}|jj|j|y)Nz (%s)z -- running: %srl)r7rfrr#rrrrrrrprdisplay_progress
test_index)r6rr7rrVrs      r(display_resultz%MultiprocessTestRunner.display_results!!ggkk6{Gi////Doo!223Gofoo>>>Ddll+3%		'(:::D

&&t=r'itemc	|jj}|drM|d}td|tdtj
}|jj|||S|xjdz
c_|d}|j}|jj|||j||jrt|jd|S)	Nrrzregrtest worker thread failed: z<regrtest worker>r)rTrn)
rrrrrrraccumulate_resultr r7r!rrq)r6r"rrr7rs      r(_process_resultz&MultiprocessTestRunner._process_result*s4

##7aJ;J<HI 35;V;VWFMM++F%+@M1G	!!

''e'<I&"")))6
r'c|jj}|jj}|jj}|j	d|_		|j
}|n%|j|}|j||rn8|tj|jj!|j#y#t$rtd|j_YgwxYw#|tj|jj!|j#wxYw)NrT)rfrrrr
r rr%rKeyboardInterruptrqrinterruptedrcancel_dump_traceback_laterrrr)r6rrrr"r7s      r(	run_testsz MultiprocessTestRunner.run_tests@sGG$$	7733''//	 '')<--d3##I/?@"88:
LL!	-G(,DMM%	-"88:
LLs%9C$C<9C?;C<<C??AEr)r r!r"rrrr
rQueueOutputrrr!r%r%r*r&r'r(rrscX$*,[4/:
>(:
>t
>KD, r'rrrc8t||jyrz)rr*)rrs  r(run_tests_multiprocessr-^s8X.88:r'c4eZdZ	dedeeefffdZxZS)rsr+r,ct|tr0tj|}|jj
|d<|St||S)N__test_result__)
isinstancerr0r1r8r r3r4r5s   r(r4zEncodeTestResult.defaultesFa$ ''*F()(<(<F$%Mwq!!r'r9r<s@r(rsrsbs&A""c3h""r'rsct	d|vr|S|jd|dtdi|d|d<tdi|S)Nr0statsr&)r?r
rr@s r(rrnsJA!EE
z,7,'
??r'rz)Ir0rrFos.pathr_rrrdr\rr{rrtypingrrrrrrrtest.supportr	r
test.libregrtest.cmdlinertest.libregrtest.mainrtest.libregrtest.runtestr
rrrrrtest.libregrtest.setuprtest.libregrtest.utilsrrrrrrrhasattrrc	dataclassrJSONEncoderr*r:r#rAtuplerHrerjrvrxrExcStrr+rrThreadrlistrrr-rsrr&r'r(<module>rCs6

=="".*/A<<7 R*Dwr8/DT"**#**t''*$sCx.Yc3h-G6C6E)S.,A626$'y$'(.$'$'$J$':D:J:J$'N#(:##,

GEN$667%
v@U:VV		D	((DN
/0
T:K5L
H H V;X;;d;	"t''	"	$sCx.	Z$sCx.-H	r'