python (3.11.7)

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

euRddlZddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	e	j
dejddg	Zejddg
Z
eje
dZdZd
ZGddejZGddZGddeZGddeZGddeejZeGddeejZGddeZGddeejZeGddeejZGd d!eZGd"d#eejZeGd$d%eejZGd&d'e Z!Gd(d)eZ"Gd*d+e"ejZ#eGd,d-e"ejZ$Gd.d/Z%Gd0d1e%ejZ&eGd2d3e%ejZ'e(d4krej)dSdS)5N)
gc_collect)
import_helper)threading_helperT)modulequeue_queue)blocked)freshzNo _queue module foundcR|jdko||jkSNr)maxsizeqsize)qs C/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_queue.pyqfullrs"9q=3QWWYY!)33ceZdZdZdZdS)_TriggerThreadc||_||_tj|_tj|dSN)fnargs	threadingEventstartedEventThread__init__)selfrrs   rrz_TriggerThread.__init__s=	%O--!!$'''''rc~tjd|j|j|jdS)N皙?)timesleeprsetrrrs rrunz_TriggerThread.run!s=	
3rN)__name__
__module____qualname__rr&rrrrs2(((rrceZdZdZdZdS)BlockingTestMixinc*t||}|	|||_|js|d|z|jt
j|S#t
j|wxYw)Nz*blocking function %r appeared not to block)rstartresultris_setfailrjoin_thread)r
block_func
block_argstrigger_functrigger_argsthreads      rdo_blocking_testz"BlockingTestMixin.do_blocking_test<sl;;	1$*j1DK&--//
&		F$%&&&;(0000(0000sAA<<Bct||}|		|||d|zn
#|$rwxYw	tj||js|ddSdS#tj||js|dwwxYw)Nzexpected exception of kind %rz(trigger thread ended but event never set)rr.r1rr2rr0)rr3r4r5r6expected_exception_classr7s       rdo_exceptional_blocking_testz.BlockingTestMixin.do_exceptional_blocking_testJsl;;	F
;
J''		9!9:;;;;,



;
(000&--//
F		DEEEEE
F
F
(000&--//
F		DEEEE
FsABABACN)r'r(r)r8r;r*rrr,r,:s7111FFFFFrr,cJeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)BaseQueueTestMixincDd|_tj|_dSr
)cumrLockcumlockr%s rsetUpzBaseQueueTestMixin.setUp]s ~''rcX|rtd|||||d|d|dtgdgdgd}|||g}|	|||j
jd	ttd
z
D]?}||||d@|t|dd
tz}dtz}|||t|d||||	||d|dn#|jj$rYnwxYw	||d|dn#|jj$rYnwxYw||j|f|jd||j|ddf|jdttD]}|||d	|d|dn#|jj$rYnwxYw	|d|dn#|jj$rYnwxYw||jd|jd||jd|jddS)N&Call this function with an empty queueoM)rErFrG)rGrFrE)rErGrF)Queue	LifoQueue
PriorityQueuez&Didn't seem to queue the correct data!Queue should not be emptyQueue should not be fullQueue should be fullrblockz(Didn't appear to block with a full queueg{Gz?timeoutz+Didn't appear to time-out with a full queuer*T
Queue should be emptyz*Didn't appear to block with an empty queuez-Didn't appear to time-out with an empty queueempty)TrU)rRuntimeError
assertTruerXassertFalsefullputdictgetassertEqual	__class__r'range
QUEUE_SIZErr1rFullr8Empty)rrtarget_orderactual_orderilastr\s       rbasic_queue_testz#BaseQueueTestMixin.basic_queue_testas7799	IGHHH		""""""	c


	c


	c


OOO(7,;OO===!%%''2|AK4H'IA	C	C	Cz!|$$	D	DA
EE!HHHOOAGGII'BCCCCE!HH&@AAA:~z!	da"8999###!!!	
EE$aE   II@AAAAz			D		
EE$E%%%IICDDDDz			D		
aedWaeR888aedD"%5qubAAAz""		A
EEGGGGAGGII
'>???	
EEENNNIIBCCCCz			D		
EE$EIIEFFFFz			D		
aeR
;;;aeZ
CCCCCsH,I..J?J,J11KK#+NN! N!%+OO#"O#c	|}|dkr|dS|j5|xj|z
c_dddn#1swxYwY|t)NTr)r_	task_donerAr?)rrxs   rworkerzBaseQueueTestMixin.workers	A1uu




A
















KKMMM	sAAAcd|_g}dD]G}tj|j|f}|||Ht
dD]}||||	|jtt
dddD]}|d||D]}|dS)Nr)rrKtargetrdz0q.join() did not block until all tasks were done)r?rrrnr.appendrbr]joinr`sum)rrthreadsrhr7s     rqueue_join_testz"BaseQueueTestMixin.queue_join_tests	#	#A%T[tDDDFLLNNNNN6""""s		A
EE!HHHH	3uSzz??K	M	M	M		A
EE"IIII			FKKMMMM		rc|}	||ddS#t$rYdSwxYwNz(Did not detect task count going negative)	type2testrlr1
ValueErrorrrs  rtest_queue_task_donez'BaseQueueTestMixin.test_queue_task_donescNN	B
KKMMM
II@AAAAA			DD	sA
AAc|}||||	||ddS#t$rYdSwxYwrz)r{rxrlr1r|r}s  rtest_queue_joinz"BaseQueueTestMixin.test_queue_joins
NNQQ	B
KKMMM
II@AAAAA			DD	sA++
A98A9c|t}||||dSr)r{rcrjr}s  r
test_basiczBaseQueueTestMixin.test_basicsC
NN:&&a   a     rc`|t}|t5|dddddn#1swxYwY|t5|ddddddS#1swxYwYdSNrKrsrS)r{rcassertRaisesr|r]r_r}s  r&test_negative_timeout_raises_exceptionz9BaseQueueTestMixin.test_negative_timeout_raises_exceptions NN:&&


z
*
*	!	!
EE!RE   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!


z
*
*	!	!
EE!RE   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!s#AA A>B##B'*B'c|t}ttD]}|d||jj5|ddddn#1swxYwYttD]}|||jj5|ddddS#1swxYwYdS)NrK)	r{rcrb
put_nowaitrrrd
get_nowaitrerrrhs   rtest_nowaitzBaseQueueTestMixin.test_nowaitsiNN:&&z""		A
LLOOOO


tz
/
/		
LLOOO															z""		A
LLNNNN


tz/
0
0		
LLNNN																		s$&BBBC??DDc>|d}|d|d|d||jj5|ddddn#1swxYwY||dd|_||jj5|dddddS#1swxYwYdS)NrKrN)	r{r]rrrdrr`rrr}s  rtest_shrinking_queuez'BaseQueueTestMixin.test_shrinking_queueslNN1	a	a	a


tz
/
/		
LLOOO															A&&&	


tz
/
/		
LLOOO																		s$4BBB/DDDN)
r'r(r)rBrjrnrxr~rrrrrr*rrr=r=\s(((6D6D6Dr$BBBBBB!!!!!!


rr=ceZdZfdZxZS)	QueueTestcj|jj|_tdSr)rrHr{superrBrras rrBzQueueTest.setUps$)


rr'r(r)rB
__classcell__ras@rrr8rrceZdZeZdS)PyQueueTestNr'r(r)py_queuerr*rrrrEEErrceZdZeZdS)
CQueueTestNr'r(r)c_queuerr*rrrrEEErrceZdZfdZxZS)
LifoQueueTestcj|jj|_tdSr)rrIr{rrBrs rrBzLifoQueueTest.setUps$-


rrrs@rrrrrrceZdZeZdS)PyLifoQueueTestNrr*rrrr
rrrceZdZeZdS)CLifoQueueTestNrr*rrrrrrrceZdZfdZxZS)PriorityQueueTestcj|jj|_tdSr)rrJr{rrBrs rrBzPriorityQueueTest.setUps$1


rrrs@rrrrrrceZdZeZdS)PyPriorityQueueTestNrr*rrrrrrrceZdZeZdS)CPriorityQueueTestNrr*rrrrrrrceZdZdS)FailingQueueExceptionNr'r(r)r*rrrr$srrc*eZdZfdZdZdZxZS)FailingQueueTestc|jjGfdd}||_tdS)Nc.eZdZfdZfdZfdZdS),FailingQueueTest.setUp.<locals>.FailingQueuec@d|_d|_j|g|RdS)NF)
fail_next_put
fail_next_getr)rrrHs  rrz5FailingQueueTest.setUp.<locals>.FailingQueue.__init__.s3%*"%*"t+d++++++rcj|jrd|_td||SNFzYou Lose)rr_put)ritemrHs  rrz1FailingQueueTest.setUp.<locals>.FailingQueue._put2s8%<).D&/
;;;zz$---rch|jrd|_td|Sr)rr_get)rrHs rrz1FailingQueueTest.setUp.<locals>.FailingQueue._get7s6%<).D&/
;;;zz$'''rN)r'r(r)rrr)rHsrFailingQueuer-s`
,
,
,
,
,
.
.
.
.
.

(
(
(
(
(
(
(rr)rrHrrrB)rrrHras  @rrBzFailingQueueTest.setUp)sa
 	(	(	(	(	(	(	(5	(	(	( )


rc	|rtdttdz
D]}||d|_	|dd|dn#t$rYnwxYwd|_	|dd	|dn#t$rYnwxYw|d
|t|dd|_	|
|jd|jd
|dn#t$rYnwxYw|d
d|_	||jd|jd
t|dn#t$rYnwxYw|d
|t|d||t|d|d
|t|d|
|jd|jd
ttD]}|||d|dd|_
	||dn#t$rYnwxYw||dd|_
	|d	|dn#t$rYnwxYw||d|||dd|_
	||jd
|jdt|dn#t$rYnwxYw||d|||ddS)NrDrKToopsrrQz)The queue didn't fail when it should haver!rSrirP)r\r*)r\TrUrMrVfirstrLrW)rrYrbrcr]rr1rrZrr8r_r;rrs   rfailing_queue_testz#FailingQueueTest.failing_queue_testAs7799	IGHHHz!|$$		A
EE!HHHH	
EE&E"""IIABBBB$			D		
EE&#E&&&IIABBBB$			D		f


a"8999	!!!%AE2>>>IIABBBB$			D		
f


	--ae5GPR.C
E
E
EIIABBBB$			D		
f


a"8999	E!HH&@AAA	f


a"8999aeYr:::z""		A
EEGGGGAGGII
'>???	g	
EEGGGIIABBBB$			D			#>???	
EE#EIIABBBB$			D			#>???	AGGII
'>???	--aeR
.C
E
E
EIIABBBB$			D		
		#>???	AGGII
'>?????s~,B
BB ,C

CC7E
E"!E"=G
G
G
)L55
MM5+N!!
N.-N.=Q
Q)(Q)c|t}||||dSr)rrcrr}s  rtest_failing_queuez#FailingQueueTest.test_failing_queuesE
j))""""""""r)r'r(r)rBrrrrs@rrr's]0O@O@O@b#######rrceZdZeZdS)PyFailingQueueTestNrr*rrrrrrrceZdZeZdS)CFailingQueueTestNrr*rrrrrrrc\eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdS)BaseSimpleQueueTestc8||_dSr)r{rr%s rrBzBaseSimpleQueueTest.setUps!!rc*		|}n&#t$r||YdSwxYw|||dkr)t	j|dz)NTg?MbP?)pop
IndexErrorr]randomr"r#)rrseqrndsentinelvals      rfeedzBaseSimpleQueueTest.feeds	0
ggii


h

EE#JJJzz||c!!
3::<<$.///	0s;;ch	|}||krdS||2r)r_rtrrresultsrrs     rconsumezBaseSimpleQueueTest.consumes9	 %%''ChNN3		 rc			|d}n*#|jj$rtjdYnwxYwB||krdS||a)NTFrQh㈵>)r_rrer"r#rtrs     rconsume_nonblockz$BaseSimpleQueueTest.consume_nonblocks
	 
%%e%,,Cz'%%%Jt$$$$$%
hNN3
	 s#AAc			|d}n#|jj$rYnwxYw.||krdS||M)NTrrS)r_rrertrs     rconsume_timeoutz#BaseSimpleQueueTest.consume_timeouts|
	 
%%%--Cz'D
hNN3
	 s--cL	

g
d|

tjdgfd		
fdt	|D}	
fdt	|D}tj||z5	dddn#1swxYwY||	|
d
S)N*cfd}|S)Nct	|i|dS#t$r }|Yd}~dSd}~wwxYwr)
BaseExceptionrt)rkwargse
exceptionsfs   rwrapperzHBaseSimpleQueueTest.run_threads.<locals>.log_exceptions.<locals>.wrappersh)At&v&&&&&$)))%%a((((((((()s

727r*)rrrs` rlog_exceptionsz7BaseSimpleQueueTest.run_threads.<locals>.log_exceptionss)
)
)
)
)
)
)
Nrc	Vg|]%}tjf&Srprr).0rh	feed_funcrrrrrs  r
<listcomp>z3BaseSimpleQueueTest.run_threads.<locals>.<listcomp>sV...#>>)+D+D*+S#x)@BBB...rcTg|]$}tjf%Srr)rrhconsume_funcrrrrs  rrz3BaseSimpleQueueTest.run_threads.<locals>.<listcomp>sT000%^^L-I-I,-w+ACCC000rr)copyreverserRandomrbr
start_threadsr[rZrXr`r)r	n_threadsrinputsrrfeeders	consumersrrrrrrs  ` ``  @@@@@@rrun_threadszBaseSimpleQueueTest.run_threadsskkmm


mB
					.........!),,...00000000#I..000	
+Gi,?
@
@																		
$$$		"""A&&&s'B55B9<B9c"|j}||||d|d||||d|d|d|d||||d||d||d||	d||d||dd||||d||d	d||||d|
|jj5|ddddn#1swxYwY|
|jj5|d
	dddn#1swxYwY|
|jj5|	dddn#1swxYwY||||ddS)NrrKrNrrFrQr!rSr)
rrZrXr`rr]r[rr_rrrrer}s  rrzBaseSimpleQueueTest.test_basicsF		"""A&&&	a###A&&&	a	Q	a###A&&&!$$$A&&&+++A&&&U++Q///###A&&&s++Q///		"""A&&&


tz/
0
0		
EEE															


tz/
0
0	 	 
EE$E	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 


tz/
0
0		
LLNNN																	"""A&&&&&s6:LL!$L!M**M.1M.N55N9<N9c|j}|d|t5|dddddS#1swxYwYdSr)rr]rr|r_r}s  rrz:BaseSimpleQueueTest.test_negative_timeout_raises_exceptionsF	a


z
*
*		
EE"E																		sAA"Ac|j}ttd}|d|||j|j}|||dS)NrrrK)rlistrbrrrr`)rrrrs    r
test_orderzBaseSimpleQueueTest.test_order!sYFeCjj!!""1aDLII	
&)))))rcd}|j}ttd}|||||j|j}|t||dSN2')rrrbrrrr`sortedrNrrrs     rtest_many_threadsz%BaseSimpleQueueTest.test_many_threads*sdFeEll##""1aDLII	
&11111rcd}|j}ttd}|||||j|j}|t||dSr)rrrbrrrr`rr	s     rtest_many_threads_nonblockz.BaseSimpleQueueTest.test_many_threads_nonblock5slFeEll##""1a#'9d.CEE	
&11111rcd}|j}ttd}|||||j|j}|t||dS)Nri)rrrbrrrr`rr	s     rtest_many_threads_timeoutz-BaseSimpleQueueTest.test_many_threads_timeout?slFeDkk""""1a#'9d.BDD	
&11111rcVGdd}d}|j}t|D]}|| t|D]S}tj|}t
||TdS)NceZdZdS).BaseSimpleQueueTest.test_references.<locals>.CNrr*rrCrLsDrr)rrbr]weakrefrefr_rassertIsNone)rrr
rrhwrs      rtest_referencesz#BaseSimpleQueueTest.test_referencesIs								
Fq		A
EE!!##JJJJq	$	$AQUUWW%%BLLLbbdd####	$	$rN)r'r(r)rBrrrrrrrrrr
rrr*rrrrs"""	0	0	0         @#'#'#'J***	2	2	2222222
$
$
$
$
$rrc"eZdZeZfdZxZS)PySimpleQueueTestcj|jj|_tdSr)r_PySimpleQueuer{rrBrs rrBzPySimpleQueueTest.setUp\s$2


r)r'r(r)rrrBrrs@rrrYs=Errc.eZdZeZfdZdZdZxZS)CSimpleQueueTestcj|jj|_tdSr)rSimpleQueuer{rrBrs rrBzCSimpleQueueTest.setUpfs$/


rc||j|jj||j|jjdSr)assertIsr{rr!r%s rtest_is_defaultz CSimpleQueueTest.test_is_defaultjs>

dndj&<===

dndj&<=====rc	|jtjd}g}Gfddt}	|}t~||d|krnb||tt|dzdS)Nrc"eZdZdZfdZdS)2CSimpleQueueTest.test_reentrancy.<locals>.Circularc||_dSr)circularr%s rrz;CSimpleQueueTest.test_reentrancy.<locals>.Circular.__init__zs
 $


rcLtdSr)r]next)rgenrs r__del__z:CSimpleQueueTest.test_reentrancy.<locals>.Circular.__del__}s!d3ii     rN)r'r(r)rr-)r,rsrCircularr'ysB
%
%
%
!
!
!
!
!
!
!
!rr.TrsrK)r	itertoolscountobjectr]r+rtr_r`rrb)rr
rr.or,rs     @@rtest_reentrancyz CSimpleQueueTest.test_reentrancyns
Fo
	!	!	!	!	!	!	!	!v	!	!	!	

A
EE$s))NN15577###r{a
		
$uQU||"4"455555r)	r'r(r)rrrBr$r3rrs@rrras]
E>>>6666666rr__main__)*r/rrr"unittestrtest.supportrrrrequires_working_threadingimport_fresh_modulerr
skipUnlessneed_c_queuercrrrr,r=rTestCaserrrrrrrr	Exceptionrrrrrrrr'mainr*rr<module>r>s



######&&&&&&)))))),+48888,=,WxjIII
+-
+GH:
F
F
F"x"7,DEE

444Y%@FFFFFFFFDVVVVV*VVVp")X.H-&mX%6]H$5*+X->*H,=
-,,,,I,,,q#q#q#q#q#(q#q#q#j)8+<((*;q$q$q$q$q$q$q$q$h+X->&6&6&6&6&6*H,=&6&6&6RzHMOOOOOr