python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
lock_tests.cpython-311.opt-2.pyc

e	ddlZddlZddlZddlZddlmZmZddlZddlZddl	Z	ddl
mZddlm
Z
ejejdZdZGddeZGd	d
ejZGddeZGd
deZGddeZGddeZGddeZGddeZGddeZGddeZGddeZdS)N)start_new_threadTIMEOUT_MAX)support)threading_helperz9platform doesn't support fork (no _at_fork_reinit method)c4tjd|zdS)N{Gz?)timesleep)nthreads C/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/lock_tests.pywait_threads_blockedr
s	Juwc0eZdZ	ddZdZdZdZdZdS)	BunchFcl	||_||_g|_g|_g|_||_d|_dSN)funcrstartedfinished
exceptions	_can_exit_wait_thread)selfrrwait_before_exits    r__init__zBunch.__init__!sD	
	
-- rc
tj}|j|	|n1#t
$r$}|j|Yd}~nd}~wwxYw|j|tj	tj
D]}|jrdS
dS#|j|tj	tj
D]}|jrwwxYwr)	threading	get_identrappendr
BaseExceptionrrrsleeping_retry
SHORT_TIMEOUTr)rtidexc_s    rtaskz
Bunch.task/s%!##C   	IIKKKK	(	(	(O""3''''''''	(
M  %%%+G,ABB

>EE


M  %%%+G,ABB

>E
s0AB<
A2A-(B<-A22B<<ADcttjtj|_|j	t
|jD]}t|j	dn
#d|_
xYwtjtjD]!}t|j
|jkrn"|S)NT)rwait_threads_exitrr"r	__enter__rangerrr&rr!lenr)rr%s  rr*zBunch.__enter__<s,>w?TUU##%%%	4<((
0
0 B////
0	!DN'(=>>		A4<  DL001s,A++
A5ctjtjD]!}t|j|jkrn"|jddd|j}d|_|rt|j
d|dS)Nz threads raised exceptions)rr!r"r,rrr__exit__rExceptionGroupr)rexc_type	exc_value	tracebackr%rs      rr.zBunch.__exit__Ms'(=>>		A4=!!T\112	
""4t444_
	- DI!I!I!I!+--
-	-	-rcd|_dSNT)rrs r	do_finishzBunch.do_finish\s
rN)F)__name__
__module____qualname__rr&r*r.r6r(rrrrsi!!!!"
-
-
-rrc eZdZdZdZdZdS)BaseTestCasec6tj|_dSr)rthreading_setup_threadsr5s rsetUpzBaseTestCase.setUpas(8::


rcRtj|jtjdSr)rthreading_cleanupr>r
reap_childrenr5s rtearDownzBaseTestCase.tearDownds'*DM::rcj|||dz|||dzdS)Ng333333?g$@)assertGreaterEqual
assertLess)ractualexpecteds   r
assertTimeoutzBaseTestCase.assertTimeouths<	
3777400000rN)r7r8r9r?rCrIr(rrr;r;`sA;;;   11111rr;cdeZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdS)
BaseLockTestsctjtjD]}t||krn|t||dSr)rr!r"r,assertEqual)rphaserHr%s    r
wait_phasezBaseLockTests.wait_phasevs\'(=>>		A5zzX%%&UX.....rc0|}~dSr)locktyperlocks  rtest_constructorzBaseLockTests.test_constructor|s}}DDrcv|}|t|d~dS)Nz<unlocked .* object (.*)?at .*>)rQassertRegexreprrRs  r	test_reprzBaseLockTests.test_reprs3}}d%FGGGDDrc|}||t|d~dS)Nz<locked .* object (.*)?at .*>)rQacquirerVrWrRs  rtest_locked_reprzBaseLockTests.test_locked_reprs@}}d%DEEEDDrcX|}|~dSr)rQrZrRs  rtest_acquire_destroyz"BaseLockTests.test_acquire_destroys#}}DDrc|}||~dSrrQrZreleaserRs  rtest_acquire_releasez"BaseLockTests.test_acquire_releases0}}DDrc|}||d|dSNF)rQ
assertTruerZr`rRs  rtest_try_acquirezBaseLockTests.test_try_acquires>}}U++,,,rc|gfd}t|d5	dddn#1swxYwY|ddS)NcXddSrcrrZrSresultsrfz3BaseLockTests.test_try_acquire_contended.<locals>.fs'MM$,,u--.....rr)rQrZrassertFalser`rrkrSrjs  @@rtest_try_acquire_contendedz(BaseLockTests.test_try_acquire_contendeds}}	/	/	/	/	/	/
1a[[																	###sAAAc|fd}d}t||5}t||t|jddddn#1swxYwY|t|j|dS)NcXdSrrZr`rSsrrkz/BaseLockTests.test_acquire_contended.<locals>.f!LLNNNLLNNNNNrr)rQrZrr
rMr,rr`)rrkNbunchrSs    @rtest_acquire_contendedz$BaseLockTests.test_acquire_contendeds}}					

1a[[	E ###S00!444
LLNNN
																
U^,,a00000sABB Bc|fd}dfd	}5	dddn#1swxYwYt|d5	dddn#1swxYwY|t55t#1swxYwY	dddn#1swxYwYt|d5	ddddS#1swxYwYdS)NcXdSrrrrssrrkz"BaseLockTests.test_with.<locals>.frtrcH5||	ddddS#1swxYwYdSrr()errrSs r	with_lockz*BaseLockTests.test_with.<locals>.with_locks|

?I#

















srlr)rQrassertRaises	TypeError)rrkr}rSs   @r	test_withzBaseLockTests.test_withs3}}																												1a[[																	

y
)
)	 	 
 
 
 
 
 
 
 
 
 
 
 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 1a[[																				s`155AA!A?B"B

B	B"B	B""B&)B&=CCCc|fd}t|d5	ddddS#1swxYwYdS)NcXdSrrrrssrrkz)BaseLockTests.test_thread_leak.<locals>.frtr)rQrrrkrSs  @rtest_thread_leakzBaseLockTests.test_thread_leaks}}					1b\\																				s
:>>cP||tjdd|tjd|tjd|tjt
dzt
tj}|	dtj}|
||z
dgfd}t|d5	dddn#1swxYwY|d|
dd	dS)
NFrlitimeoutg}Ô%ITructj}dtj}||z
dS)N?r)r		monotonicrrZ)t1t2rSresultss  rrkz%BaseLockTests.test_timeout.<locals>.fsY!!BNN4<<<44555!!BNN27#####rrr)rQr~
ValueErrorrZ
OverflowErrorrr`r	rrdrFrrmrI)rrrrkrSrs    @@rtest_timeoutzBaseLockTests.test_timeouts}}*dlE1===*dlDAAA-uEEE-{QOOO[)))
^

Q//000
^

R###	$	$	$	$	$	$
1a[[																	$$$71:s+++++sE$$E(+E(c|}tj|}||dSr)rQweakrefrefassertIsNotNonerrSrs   rtest_weakref_existsz!BaseLockTests.test_weakref_existss>}}k$SSUU#####rc|}tj|}~tj||dSr)rQrrgccollectassertIsNoners   rtest_weakref_deletedz"BaseLockTests.test_weakref_deletedsL}}k$

##%%     rN)r7r8r9rOrTrXr[r]rarerorxrrrrrr(rrrKrKqs///


			111$:,,,6$$$
!!!!!rrKc8eZdZ	dZdZdZedZdS)	LockTestsc:|gfd}tj5t|d|d|dddddS#1swxYwYdS)NcdddSrrZr)rSrNsrrkz#LockTests.test_reacquire.<locals>.fsGLLNNNLLLLNNNLLrr(rl)rQrr)rrOr`rrkrSrNs  @@rtest_reacquirezLockTests.test_reacquires}}						
/
1
1	&	&Q###OOE1%%%
LLNNNOOE1%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&sABBBc|fd}t|d5	dddn#1swxYwYdS)Nc0dSr)r`rssrrkz*LockTests.test_different_thread.<locals>.f'LLNNNNNrrl)rQrZrr`rs  @rtest_different_threadzLockTests.test_different_thread#s}}					
1a[[																	sA

AAcp|}|||d|||||ddS)NrrF)blocking)rQrZrmr`lockedrdrRs  rtest_state_after_timeoutz"LockTests.test_state_after_timeout.s}}d33444'''e4455555rcd}|}||||}||||dS)NcV||dSrrrrss ruse_lockz/LockTests.test_at_fork_reinit.<locals>.use_lock:s"
LLNNNLLNNNNNr)rQ_at_fork_reinitrZ)rrrSlock2s    rtest_at_fork_reinitzLockTests.test_at_fork_reinit8s~			}}





rN)r7r8r9rrr
requires_forkrr(rrrr
sa&&&(			666]rrc4eZdZ	dZdZdZdZdZdZdS)
RLockTestsc|}||||||dSrr_rRs  rrzRLockTests.test_reacquirePsa}}rc|}|t|j|||||||t|jdSr)rQr~RuntimeErrorr`rZrRs  rtest_release_unacquiredz"RLockTests.test_release_unacquiredYs}},555,55555rc|}|t|j|||||||t|jdSr)rQr~r
_release_saverZr`rRs  rtest_release_save_unacquiredz'RLockTests.test_release_save_unacquiredes}},(:;;;,(:;;;;;rc`dddddgfd}tj5t|ddd	dddddddS#1swxYwYdS)NrrlrcddddS)Nr)rZrrOr`)rSrNrsrrkz*RLockTests.test_recursion_count.<locals>.fs[LLNNNLLOOE1%%%LLNNNLLrr()
rQrM_recursion_countrZr`rr)rrOrrs` @@rtest_recursion_countzRLockTests.test_recursion_countqs7}}D1133444D1133444D1133444D1133444D1133444							
/
1
1		9		9Q###OOE1%%%Q 5 5 7 7888
LLOOE1%%%Q 5 5 7 7888		9		9		9		9		9		9		9		9		9		9		9		9		9		9		9		9		9		9s4B"H##H'*H'c.|fd}t|dd5}	|tj|n#|wxYw	ddddS#1swxYwYdS)Nc0dSr)rZrssrrkz+RLockTests.test_different_thread.<locals>.frrrlT)rQrr~rr`r6)rrkrwrSs   @rrz RLockTests.test_different_threads}}					1a

	"%
"!!,===!!!!!!!!!		"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"s(B
 A#B
#A99B

BBc||||gfd}t|d5	dddn#1swxYwY|d||dS)NcVdSr)r	_is_ownedrisrrkz$RLockTests.test__is_owned.<locals>.fs%MM$..**+++++rrlr)rQrmrrZrdrr`rns  @@rtest__is_ownedzRLockTests.test__is_owneds|}}))***(()))(()))	,	,	,	,	,	,
1a[[																	###(()))))*****sCC!CN)	r7r8r9rrrrrrr(rrrrLst
6
6
6
<
<
<!9!9!9F
"
"
"+++++rrcJeZdZ	dZdZdZdZdZedZ	dZ
dS)	
EventTestscT|}||||||||||||||dSr)	eventtypermis_setsetrdclearrevts  rtest_is_setzEventTests.test_is_setsnn&&&			

%%%			

%%%		&&&		&&&&&rcjd}ggfd}t||5t||tddddn#1swxYwY|dg|z|dg|zdS)NrucdSr)rwait)rresults1results2srrkz#EventTests._check_notify.<locals>.fs=OOCHHJJ'''OOCHHJJ'''''rrT)rr
rMr,r)rrrvrkrrs `  @@r
_check_notifyzEventTests._check_notifys
	(	(	(	(	(	(	(1a[[		 ###S]]A...
GGIII
																
D6A:...D6A:.....sAA44A8;A8c|}||||||dSr)rrrrrs  rtest_notifyzEventTests.test_notifysYnn3					3rc*|ggd}fd}t||5	dddn#1swxYwY|dg|zD]0\}}||||d1ggt||5	dddn#1swxYwY|dg|zD]\}}||dS)Nrucdtj}d}tj}|||z
fdS)Ngr)rrr	r)rrrrrrs   rrkz"EventTests.test_timeout.<locals>.fshOOCHHSMM***!!B

A!!BOOQRL)))))rFrT)rrrMrmrIrrd)rrvrkrdtrrrs     @@@rrzEventTests.test_timeoutsnn
	*	*	*	*	*	*	*1a[[																		
E7Q;///	(	(EArQr3''''			
1a[[																		
D6A:...		EArOOA		s#AA
ACCCc8|gfd}d}t||5t|dddn#1swxYwY|dg|zdS)NcltjdSr)rrrLONG_TIMEOUT)eventrsrrkz(EventTests.test_set_and_clear.<locals>.fs*NN5::g&:;;<<<<<rruT)rrr
rrrM)rrkrvrrs   @@rtest_set_and_clearzEventTests.test_set_and_clears  	=	=	=	=	=	=

1a[[		 ###
IIKKKKKMMM
																
4&1*-----s8A55A9<A9c|}|j5||jddddn#1swxYwY||j5||jdddddS#1swxYwYdSrc)r_condrmrZrrs  rrzEventTests.test_at_fork_reinits6nn
Y	7	7SY..u55666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7
Y	7	7SY..u55666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7s#.AAA<.B77B;>B;c|}|t|d||t|ddS)Nz<\w+\.Event at .*: unset>z<\w+\.Event at .*: set>)rrVrWrrs  rrXzEventTests.test_reprs^nnc$@AAA			c$>?????rN)r7r8r9rrrrrrrrXr(rrrrs
'
'
'///(   >...&77]7@@@@@rrc@eZdZ	dZdZdZdZdZdZdZ	dZ
d	S)
ConditionTestsc|}||||tj}||}|||d|||d||d||5||dddddS#1swxYwYdSrc)condtyperZr`rLockrmrd)rcondrSs   rtest_acquirezConditionTests.test_acquire(sr}}	
~}}T""e,,---U++,,,e,,---
	2	2T\\%00111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s)E99E=E=cn|}|t|jdSr)rr~rrrrs  rtest_unacquired_waitz#ConditionTests.test_unacquired_wait;s-}},	22222rcn|}|t|jdSr)rr~rnotifyrs  rtest_unacquired_notifyz%ConditionTests.test_unacquired_notify?s-}},44444rc	
gg	g
d	
fd}d}t||5tjtjD]}t	|krn|	gd}|t|d
tjtjD]}t		|krn|	dg|z|
gtjtjD]}t	|krndt|d
tjtjD]*}t		t	
z||zkrn+||z
}|	dg|zdg|zz|
dg|ztjtjD]}t	|krnt|d
tjtjD]}t	
|krn|	dg|zdg|zz|
dg|zd	g|zzddddS#1swxYwYdS)
Nrc}|f}|fdSr)rZrrr`)rjr	phase_numreadyrrs rrkz'ConditionTests._check_notify.<locals>.fSsLLNNNLL###YY[[FLLNNNOOVY/000LLNNNLL###YY[[FLLNNNOOVY/00000rrurrl)Trlr)Tr)Tr)rrr!r"r,rrMrZrr
r`
notify_all)rrrkrvr%count1count2rrrrs `     @@@@rrzConditionTests._check_notifyCs	
	1
	1
	1
	1
	1
	1
	1
	1
	1

1a[[@	T@	T+G,ABB

u::??E#
KKMMMXr***FLLNNNKK (((ILLNNN+G,ABB

x==F**E+
X	{V';<<<Xr***+G,ABB

u::''E(
LLNNNKKNNN ###ILLNNN+G,ABB

x==3x==0QZ@@EAZFX	{V';ykF>R'RSSSX	{V';<<<+G,ABB

u::??E#
LLNNNOO ###ILLNNN+G,ABB

x==A%%E&X	{V';ykF>R'RSSSX	{V';ykF>R'RSSSA@	T@	T@	T@	T@	T@	T@	T@	T@	T@	T@	T@	T@	T@	T@	T@	T@	T@	TsLMMMc|}||||dSr)rrrs  rrzConditionTests.test_notifys=}}4   4     rcL|dgfd}d}t||5	dddn#1swxYwY|t|D]0\}}||||1dS)Nrctj}}tj}||z
|fdSr)rZr	rrr`r)rrjrrrrs   rrkz&ConditionTests.test_timeout.<locals>.fsiLLNNN!!BYYw''F!!BLLNNNNNBGV,-----rru)rrrMr,rIrm)rrkrvrrjrrrs     @@@rrzConditionTests.test_timeouts}}	.	.	.	.	.	.	.

1a[[																	Wq)))!	%	%JBr7+++
V$$$$	%	%sAA
AcLdfd}t|d5tdD]I}tjd5dz
dddn#1swxYwYJ	ddddS#1swxYwYdS)Nrc5fd}|dddddS#1swxYwYdS)NcdkSNr(statesr<lambda>z8ConditionTests.test_waitfor.<locals>.f.<locals>.<lambda>suzrr)wait_forrdrM)rjrrrs rrkz&ConditionTests.test_waitfor.<locals>.fs
+
+'9'9'9'9::'''  ***
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+sAAAArlrr)rrr+r	r
r)rrkirrs`  @@rtest_waitforzConditionTests.test_waitforsJ}}	+	+	+	+	+	+	+1a[[	"	"1XX
"
"
5!!!""QJEKKMMM"""""""""""""""
"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"s5(BA?3B?BBBBB Bcdgfd}t|d5tdD]I}tjd5dz
dddn#1swxYwYJ	dddn#1swxYwYtddS)NrcD5tj}fdd}tj|z
}||ddddddS#1swxYwYdS)NcdkSrr(rsrrz@ConditionTests.test_waitfor_timeout.<locals>.f.<locals>.<lambda>sqr皙?r)r	rrrmrIr)rrjrrrsuccesss  rrkz.ConditionTests.test_waitfor_timeout.<locals>.fs
%
%^%%'8'8'8'8#FF^%%*  (((""2s+++t$$$

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%sBBBBrlrr)rrr+r	r
rrMr,)rrkrrrrs`  @@@rtest_waitfor_timeoutz#ConditionTests.test_waitfor_timeoutsj}}	%	%	%	%	%	%	%	%1a[[	"	"1XX
"
"
5!!!""QJEKKMMM"""""""""""""""
"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	
Wq)))))s5(BB7BBB
BBB #B N)r7r8r9rrrrrrrr
r(rrrr#s222&333555`T`T`TD!!!%%%4""" *****rrcLeZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)BaseSemaphoreTestsc|t|jd|t|jtjdS)N)value)r~rsemtypesysmaxsizer5s rrTz#BaseSemaphoreTests.test_constructorsF*dlB???*dlS[LIIIIIrcJ|d}|||d}||||dS)Nrlr)rrZr`rsems  rrzBaseSemaphoreTests.test_acquiresrll1oo





ll1oo













rcX|}|~dSr)rrZrs  rr]z'BaseSemaphoreTests.test_acquire_destroys#llnn


CCrc

d}||

gggd


fd}fd}d}t||5|dz
}|||zdg|zd
t	|D]}
|}|||z|t
zdg|zdg|zzd
|dz
}t	|D]}
|||z|z|t
zdg|zdg|zzdg|zz|
dd}	
dddn#1swxYwY|d	g||z|z|	zzdS)
NrcdSrrh)rrrrsem_resultssrrz7BaseSemaphoreTests.test_acquire_contended.<locals>.funcses{{}}---OOI&&&s{{}}---OOI&&&&&rctjtjD](}ttz|krdS)dSrrr!r"r,countr%rrs  r
wait_countz=BaseSemaphoreTests.test_acquire_contended.<locals>.wait_countR+G,ABB

x==3x==0E99EE:

r
rlrFT)rrZrrMr+r`sortedrm)r	sem_valuerr"rvrrrcount3count4rrrrrs          @@@@@rrxz)BaseSemaphoreTests.test_acquire_contendeds	ll9%%


		'	'	'	'	'	'	'	'	'						


4^^		]FJvX01#,???I9%%





FJv'''VHx$788S6\QC&L8
:
:
:I!mF6]]





Jv/000VHx$788S6\QC&L8A3<G
I
I
I
S[[//000FKKMMM9															<	
6F?V#;f#DE	G	G	G	G	GsEF11F58F5c*	
d}||

gg	d	
fd}	fd}t|d5|dz
}|||	zdg|zd|}
||||z|t	zdg|zdg|zzd|dz
}
||||z|z|t	zdg|zdg|zzdg|zz|
d
ddddS#1swxYwYdS)	NrrcdSrr)rrrrsrrz2BaseSemaphoreTests.test_multirelease.<locals>.funcEsGKKMMMOOI&&&KKMMMOOI&&&&&rctjtjD](}ttz|krdS)dSrrr s  rr"z8BaseSemaphoreTests.test_multirelease.<locals>.wait_countLr#rr$rlrF)rrZrrMr`r%rm)rr&rr"rrr'rrrrs       @@@@rtest_multireleasez$BaseSemaphoreTests.test_multirelease=sN	ll9%%


		'	'	'	'	'	'	'	'						
4__		]FJvX01#,???IFKKJv'''VHx$788S6\QC&L8
:
:
:I]FKKJv/000VHx$788S6\QC&L8A3<G
I
I
I
S[[//000
KKMMM3																		sD'FFFc|d}||d||d||d|||ddS)NrF)rrdrZrmr`rs  rrez#BaseSemaphoreTests.test_try_acquirelsll1ooE**+++E**+++U++,,,


E**+++++rc|dgfd}t|d5	dddn#1swxYwY|t	dgdzdgdzzdS)NrcdddSrcrh)rrsrrkz8BaseSemaphoreTests.test_try_acquire_contended.<locals>.fxsENN3;;u--...NN3;;u--.....rruFrTr)rrZrrMr%)rrkrrs  @@rroz-BaseSemaphoreTests.test_try_acquire_contendedtsll1oo


	/	/	/	/	/	/1a[[																	
	
5'A+!*CEEEEEsAAAc|d}|t|jdd||d||d||d|||dtj}||dtj|z
}|	|ddS)NrFg?rg{Gzt?r)
rr~rrZrdrmr`r	rrI)rrtrs    rtest_acquire_timeoutz'BaseSemaphoreTests.test_acquire_timeoutsll1oo*ck5#FFFE22333E22333U33444


E22333NS11222
^


!2s#####rc.|fd}t|d5}td||jddddS#1swxYwYdS)NcXdSrrr)rsrrkz0BaseSemaphoreTests.test_default_value.<locals>.fs!KKMMMKKMMMMMrrl)rrZrr
rmrr`)rrkrwrs   @rtest_default_valuez%BaseSemaphoreTests.test_default_valuesllnn


					1a[[	E ###U^,,,
KKMMM
																		s>B

BBcddfd	}|dt
|t
ddS)NrcD5d5d|r|	dddn#1swxYwYddddS#1swxYwYdSrc)rdrZr`rm)r|rrs r_withz+BaseSemaphoreTests.test_with.<locals>._withs%
"
"E 2 2333


""$$S[[%7%7888"!	""""""""""""""""
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"s5?B-A=1B=B	BB	BBBFr)rrdrZr`r~r)rr8rs` @rrzBaseSemaphoreTests.test_withsll1oo	"	"	"	"	"	"	"	E**+++


)UI666E**+++




rN)
r7r8r9rTrr]rxr,reror2r5rr(rrrrsJJJ
6G6G6Gp---^,,,FFF$$$ rrceZdZ	dZdZdS)SemaphoreTestsc|d}||||dSNrl)rr`rZrs  rrz&SemaphoreTests.test_release_unacquiredsIll1oo













rcz|d}|t|d||t|d|||t|ddS)Nrz<\w+\.Semaphore at .*: value=3>z<\w+\.Semaphore at .*: value=2>z<\w+\.Semaphore at .*: value=4>)rrVrWrZr`rs  rrXzSemaphoreTests.test_reprsll1ooc$FGGG


c$FGGG





c$FGGGGGrNr7r8r9rrXr(rrr:r:s<HHHHHrr:ceZdZ	dZdZdS)BoundedSemaphoreTestsc|}|t|j|||t|jdSr)rr~rr`rZrs  rrz-BoundedSemaphoreTests.test_release_unacquireds_llnn*ck222





*ck22222rc|d}|t|d||t|ddS)Nrz(<\w+\.BoundedSemaphore at .*: value=3/3>z(<\w+\.BoundedSemaphore at .*: value=2/3>)rrVrWrZrs  rrXzBoundedSemaphoreTests.test_reprs^ll1ooc$OPPP


c$OPPPPPrNr>r(rrr@r@s<333QQQQQrr@cteZdZ	dZdZdZdZdZdZddZ	d	Z
d
ZdZdZ
d
ZdZdZdZdZdZdS)BarrierTestsrug@cR||j|j|_dS)Nr)barriertypervdefaultTimeoutbarrierr5s rr?zBarrierTests.setUps%''8K'LLrc8|jdSr)rHabortr5s rrCzBarrierTests.tearDownsrcdt||j5	ddddS#1swxYwYdSr)rrvrrks  rrun_threadszBarrierTests.run_threadss{
1df

																				s%))c||jj}|||jt	|D]}|dd|t
|d||z|j|dd|t
|d|dz|z|j||jjd|	|jj
dS)NrTrl)rHpartiesrMrvr+rr,r	n_waitingrmbroken)rrnmrs     r	multipasszBarrierTests.multipasssL DF###q	 	 AAJd###S__a!e444LAJd###S__q1uk:::L/333,-----rrlcN	gggfd}|dS)Nc4dSr)rT)passesrrsrrkz$BarrierTests.test_barrier.<locals>.fsNN7F+++++rrM)rrWrkrs`` @rtest_barrierzBarrierTests.test_barriersR	b'	,	,	,	,	,	,	,rc.	|dS)Nr$)rYr5s rtest_barrier_10zBarrierTests.test_barrier_10s	  $$$rc	gfd}|tttjdS)Ncdj}|dSr)rHrr)rrrs rrkz(BarrierTests.test_wait_return.<locals>.f
s.!!##ANN1r)rMrMsumr+rv)rrkrs` @rtest_wait_returnzBarrierTests.test_wait_returnsv								
Ws5=='9'9:::::rc	gfd}j|fd}|dS)Nc2ddSr4)r)rsractionz(BarrierTests.test_action.<locals>.actionsNN4     rcvtddSr<)rrMr,)rHrrsrrkz#BarrierTests.test_action.<locals>.fs2LLNNNS\\1-----r)rFrvrM)rrbrkrHrs`  @@rtest_actionzBarrierTests.test_actions		!	!	!	!	!""46622	.	.	.	.	.	.	.	
rc(	ggfd}|tdtjdz
jjdS)Ncb	j}|jdzkrtjddS#t
j$rdYdSt$rjYdSwxYwNrT)rHrrvrrrBrokenBarrierErrorrJ)rrrrs rrkz"BarrierTests.test_abort.<locals>.f(s

L%%''	>>&&!!###%%%%%/
&
&
&%%%%%%


""$$$
sAA!!$B."B.-B.rrl)rMrMr,rvrdrHrQ)rrkrrs` @@r
test_abortzBarrierTests.test_abort"s									
X***Xq111+,,,,,rcB	gggfd}|tdtjdz
tjdS)Ncj}|jdzkrUtjtjD]}jjjdz
krnjnZ	jdn*#tj
$rdYnwxYwjddS)NrrlT)rHrrvrr!r"rPresetrrrh)rr%rrresults3rs  rrkz"BarrierTests.test_reset.<locals>.fAs!!##ADFAI~~ /0EFFA|-$&1*==>""$$$$*L%%'''OOD)))) 3***OOD)))))*
LOOD!!!!!s?.B..$CCrrl)rMrMr,rv)rrkrrrms` @@@r
test_resetzBarrierTests.test_reset:s		"	"	"	"	"	"	"	"$	
X***Xq111X/////rcz	gggjfd}|t	dt	jdz
t	jdS)NcV	j}|jdzkrtjdnN#t
j$rdYn(t$rjYnwxYwjdzkrjjddSrg)	rHrrvrrrrhrJrl)rbarrier2rrrmrs rrkz,BarrierTests.test_abort_and_reset.<locals>.fas"

L%%''	>>&&!!###%%%%/
&
&
&%%%%%


""$$$
}}$&!)++""$$$MMOOOLOOD!!!!!sAA  $B+"B+*B+rrl)rFrvrMrMr,)rrkrqrrrms` @@@@rtest_abort_and_resetz!BarrierTests.test_abort_and_resetYs	##DF++	"	"	"	"	"	"	"	"	"*	
X***Xq111X/////rc>	fd}|dS)Ncj}|jdzkrtjjdztjjjjdzdS)Nrr)	rHrrvr	r
rGr~rrh)rrs rrkz$BarrierTests.test_timeout.<locals>.fs}!!##ADFaK
4.2333i:"l/1Dq1H
J
J
J
J
JrrXrLs` rrzBarrierTests.test_timeout{sB		J	J	J	J	J	
rc	d}d|fd}tj}t|d5	dddn#1swxYwYtj|z
}||dS)NrrrcRtjjdSr)r~rrhr)rHrsrrkz,BarrierTests.test_default_timeout.<locals>.fs/i:%l
,
,
,
,
,rrl)rFr	rrrE)rrrk
start_timerrHs`    @rtest_default_timeoutz!BarrierTests.test_default_timeouts	""1g"66	,	,	,	,	,	,^%%

1a[[																	
^



*G,,,,,sAAAc|d}||dSr<)rFr)rbs  rtest_single_threadzBarrierTests.test_single_threads3Q		rcr|dtj|t	dfd}d}t||5tjtjD]}j|krn|t	d	dddn#1swxYwY|t	d
|t	ddS)Nrz!<\w+\.Barrier at .*: waiters=0/3>c2dSr)r)rHrsrrkz!BarrierTests.test_repr.<locals>.fsLL!!!!!rrz!<\w+\.Barrier at .*: waiters=2/3>z<\w+\.Barrier at .*: broken>)rFrrrVrWrr!r"rPrrJ)rrkrvr%rHrs    @@rrXzBarrierTests.test_reprs""1%%&g(LMMM	"	"	"	"	"	"

1a[[		"		"+G,ABB

$))E*T']]A
C
C
C
LL!!!		"		"		"		"		"		"		"		"		"		"		"		"		"		"		"	
g=	?	?	?	

g8	:	:	:	:	:sA'CCCN)rl)r7r8r9rvrGr?rCrMrTrYr[r_rdrirnrrrrxr{rXr(rrrDrDs	
ANMMM...%%%
;
;
;---0000> 0 0 0D--- 
:::::rrD)osrrr	_threadrrrunittestrtestrtest.supportr
skipUnlesshas_fork_supportrr
objectrTestCaser;rKrrrrrr:r@rDr(rr<module>rs
							



11111111))))))$#G$<%CDD
   @@@@@F@@@F111118$111"V!V!V!V!V!LV!V!V!r?????
???Dd+d+d+d+d+d+d+d+Nm@m@m@m@m@m@m@m@`G*G*G*G*G*\G*G*G*TAAAAAAAAFHHHHH'HHH.QQQQQ.QQQ(\:\:\:\:\:<\:\:\:\:\:r