Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 3.145.115.25
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_queue.cpython-310.pyc
o

abR�@sddlZddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	ej
ddgd�Zej
ddgd�Ze�
ed	�Zd
Zdd�ZGd
d�dej�ZGdd�d�ZGdd�de�ZGdd�de�ZGdd�deej�ZeGdd�deej��ZGdd�de�ZGdd�deej�ZeGdd�deej��ZGdd �d e�ZGd!d"�d"eej�ZeGd#d$�d$eej��ZGd%d&�d&e�Z Gd'd(�d(e�Z!Gd)d*�d*e!ej�Z"eGd+d,�d,e!ej��Z#Gd-d.�d.�Z$Gd/d0�d0e$ej�Z%eGd1d2�d2e$ej��Z&e'd3k�re�(�dSdS)4�N)�
gc_collect)�
import_helper)�threading_helper�queue�_queue)Zblocked)ZfreshzNo _queue module found�cCs|jdko|��|jkS�Nr)�maxsize�qsize)�q�r�8/usr/local/python-3.10/lib/python3.10/test/test_queue.py�qfullsrc@�eZdZdd�Zdd�ZdS)�_TriggerThreadcCs&||_||_t��|_tj�|�dS�N)�fn�args�	threading�Event�startedEvent�Thread�__init__)�selfrrrrr
rs
z_TriggerThread.__init__cCs$t�d�|j��|j|j�dS)N皙�����?)�time�sleepr�setrr�rrrr
�runs
	
z_TriggerThread.runN)�__name__�
__module__�__qualname__rrrrrr
rsrc@r)�BlockingTestMixinc	CsTt||�}|��z||�|_|j��s|�d|�|jWt�|�St�|�w)Nz*blocking function %r appeared not to block)r�start�resultr�is_set�failr�join_thread)r�
block_func�
block_args�trigger_func�trigger_args�threadrrr
�do_blocking_test:s


�z"BlockingTestMixin.do_blocking_testc	Cs�t||�}|��z*z||�Wn|y�w|�d|�Wt�|�|j��s2|�d�dSdSt�|�|j��sD|�d�ww)Nzexpected exception of kind %rz(trigger thread ended but event never set)rr$r'rr(rr&)rr)r*r+r,Zexpected_exception_classr-rrr
�do_exceptional_blocking_testHs&
��

�
�
�z.BlockingTestMixin.do_exceptional_blocking_testN)r r!r"r.r/rrrr
r#8sr#c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�BaseQueueTestMixincCsd|_t��|_dSr)�cumr�Lock�cumlockrrrr
�setUp[szBaseQueueTestMixin.setUpcCsh|��rtd��|�|���|�|���|�d�|�d�|�d�tgd�gd�gd�d�}|��|��|��g}|�	|||j
jd	�tt
d
�D]}|�|�|�|��d�qN|�t|�d�d
t
}dt
}|�|�|�t|�d�|�|���|�|���z|j|dd�|�d�Wn|jjy�Ynwz|j|dd�|�d�Wn|jjy�Ynw|�|j|f|jd�|�|j|ddf|jd�tt
�D]}|��q�|�|��d�z
|jdd�|�d�Wn|jj�yYnwz
|jdd�|�d�Wn|jj�yYnw|�|jd|jd�|�|jd|jd�dS)N�&Call this function with an empty queue�o�M��)r6r7r8)r8r7r6)r6r8r7)�Queue�	LifoQueue�
PriorityQueuez&Didn't seem to queue the correct data!��Queue should not be empty�Queue should not be full���Queue should be fullr��blockz(Didn't appear to block with a full queueg{�G�z�?��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 queue��empty)TrF)r
�RuntimeError�
assertTruerI�assertFalse�full�put�dict�get�assertEqual�	__class__r �range�
QUEUE_SIZErr'r�Fullr.�Empty)rrZtarget_orderZactual_order�i�lastrMrrr
�basic_queue_test_sp


��

��
��z#BaseQueueTestMixin.basic_queue_testcCs\	|��}|dkr|��dS|j�|j|7_Wd�n1s$wY|��q)NTr)rP�	task_doner3r1)rr�xrrr
�worker�s��zBaseQueueTestMixin.workercCs�d|_g}dD]}tj|j|fd�}|��|�|�qtd�D]}|�|�q |��|�	|jt
td��d�dD]}|�d�q:|��|D]}|��qHdS)Nr)rr<��targetr�dz0q.join() did not block until all tasks were done���)r1rrr\r$�appendrSrN�joinrQ�sum)rr�threadsrWr-rrr
�queue_join_test�s$�
�z"BaseQueueTestMixin.queue_join_testcCs8|��}z|��Wn
tyYdSw|�d�dS�Nz(Did not detect task count going negative)�	type2testrZ�
ValueErrorr'�rrrrr
�test_queue_task_done�s�z'BaseQueueTestMixin.test_queue_task_donecCsL|��}|�|�|�|�z|��Wn
tyYdSw|�d�dSrf)rgrerZrhr'rirrr
�test_queue_join�s

�z"BaseQueueTestMixin.test_queue_joincC�"|�t�}|�|�|�|�dSr)rgrTrYrirrr
�
test_basic�s

zBaseQueueTestMixin.test_basiccCs�|�t�}|�t��|jddd�Wd�n1swY|�t��|jddd�Wd�dS1s9wYdS�Nr<r`rD)rgrT�assertRaisesrhrNrPrirrr
�&test_negative_timeout_raises_exception�s
�"�z9BaseQueueTestMixin.test_negative_timeout_raises_exceptioncCs�|�t�}tt�D]}|�d�q	|�|jj��
|�d�Wd�n1s(wYtt�D]}|��q1|�|jj��
|��Wd�dS1sOwYdS)Nr<)	rgrTrS�
put_nowaitrorrU�
get_nowaitrV�rrrWrrr
�test_nowait�s
�

"�zBaseQueueTestMixin.test_nowaitcCs�|�d�}|�d�|�d�|�d�|�|jj��
|�d�Wd�n1s+wY|�|��d�d|_|�|jj��|�d�Wd�dS1sSwYdS)N�r<r?�)	rgrNrorrUrqrQr
r	rirrr
�test_shrinking_queue�s



�"�z'BaseQueueTestMixin.test_shrinking_queueN)
r r!r"r4rYr\rerjrkrmrprtrwrrrr
r0Zs9


r0c�eZdZ�fdd�Z�ZS)�	QueueTestc�|jj|_t���dSr)rr9rg�superr4r�rRrr
r4��
zQueueTest.setUp�r r!r"r4�
__classcell__rrr|r
ry��ryc@�eZdZeZdS)�PyQueueTestN�r r!r"�py_queuerrrrr
r���r�c@r�)�
CQueueTestN�r r!r"�c_queuerrrrr
r���r�crx)�
LifoQueueTestcrzr)rr:rgr{r4rr|rr
r4r}zLifoQueueTest.setUpr~rrr|r
r�r�r�c@r�)�PyLifoQueueTestNr�rrrr
r�r�r�c@r�)�CLifoQueueTestNr�rrrr
r�r�r�crx)�PriorityQueueTestcrzr)rr;rgr{r4rr|rr
r4r}zPriorityQueueTest.setUpr~rrr|r
r�r�r�c@r�)�PyPriorityQueueTestNr�rrrr
r�r�r�c@r�)�CPriorityQueueTestNr�rrrr
r�r�r�c@�eZdZdS)�FailingQueueExceptionN�r r!r"rrrr
r�"sr�cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)�FailingQueueTestcs0|jj�G�fdd�d��}||_t���dS)Ncs0eZdZ�fdd�Z�fdd�Z�fdd�ZdS)z,FailingQueueTest.setUp.<locals>.FailingQueuecs"d|_d|_�j|g|�R�dS)NF)�
fail_next_put�
fail_next_getr)rr�r9rr
r+sz5FailingQueueTest.setUp.<locals>.FailingQueue.__init__cs |jr
d|_td����||�S�NFzYou Lose)r�r��_put)r�itemr�rr
r�/sz1FailingQueueTest.setUp.<locals>.FailingQueue._putcs|jr
d|_td����|�Sr�)r�r��_getrr�rr
r�4s
z1FailingQueueTest.setUp.<locals>.FailingQueue._getN)r r!r"rr�r�rr�rr
�FailingQueue*sr�)rr9r�r{r4)rr�r|r�r
r4&szFailingQueueTest.setUpcCs�|��rtd��ttd�D]}|�|�qd|_z|jddd�|�d�Wn	ty0Ynwd|_z|jddd	�|�d�Wn	tyKYnw|�d
�|�t	|�d�d|_z|�
|jd|jd
�|�d�Wn	tyvYnw|�d
�d|_z|�|jd|jd
t�|�d�Wn	ty�Ynw|�d
�|�t	|�d�|��|�t	|�d�|�d
�|�t	|�d�|�
|jd|jd
�tt�D]}|��q�|�|��d�|�d�d|_
z|��|�d�Wn	ty�Ynw|�|��d�d|_
z
|jdd	�|�d�Wn
t�yYnw|�|��d�|��|�|��d�d|_
z|�|jd
|jdt�|�d�Wn
t�yTYnw|�|��d�|��|�|��d�dS)Nr5r<TZoopsrrBz)The queue didn't fail when it should haverrDrXrA)rMr)rMTrFr>rG�firstr=rH)r
rJrSrTrNr�r'r�rKrr.rPr/r�rsrrr
�failing_queue_test>s���
�
��



����z#FailingQueueTest.failing_queue_testcCrlr)r�rTr�rirrr
�test_failing_queue�s

z#FailingQueueTest.test_failing_queue)r r!r"r4r�r�rrrr|r
r�$sQr�c@r�)�PyFailingQueueTestNr�rrrr
r��r�r�c@r�)�CFailingQueueTestNr�rrrr
r��r�r�c@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�BaseSimpleQueueTestcCs|��|_dSr)rgrrrrr
r4�szBaseSimpleQueueTest.setUpcCsX	z|��}Wnty|�|�YdSw|�|�|��dkr+t�|��d�q)NTg�?���MbP?)�pop�
IndexErrorrN�randomrr)rr�seq�rnd�sentinel�valrrr
�feed�s
�
�zBaseSimpleQueueTest.feedcCs"	|��}||krdS|�|�qr)rPra�rr�resultsr�r�rrr
�consume�s
�zBaseSimpleQueueTest.consumecCsR		z|jdd�}Wn|jjyt�d�Ynwqq||kr#dS|�|�q)NTFrB��h㈵��>)rPrrVrrrar�rrr
�consume_nonblock�s��
�z$BaseSimpleQueueTest.consume_nonblockcCsH		z|jdd�}Wn|jjyYnwqq||krdS|�|�q)NTr�rD)rPrrVrar�rrr
�consume_timeout�s��
�z#BaseSimpleQueueTest.consume_timeoutcs�g�d�|������t�d��g��fdd��������fdd�t|�D�}�����fdd�t|�D�}t�||��Wd�n1sJwY|���|���	��|�
���d��S)N�*cs��fdd�}|S)Nc
sFz
�|i|��WdSty"}z��|�WYd}~dSd}~wwr)�
BaseExceptionra)r�kwargs�e)�
exceptions�frr
�wrapper�s��zHBaseSimpleQueueTest.run_threads.<locals>.log_exceptions.<locals>.wrapperr)r�r�)r�)r�r
�log_exceptions�sz7BaseSimpleQueueTest.run_threads.<locals>.log_exceptionscs&g|]}tj�������fd��qS�r]�rr��.0rW)�	feed_funcr�rr�r�r�rr
�
<listcomp>�s

�

�z3BaseSimpleQueueTest.run_threads.<locals>.<listcomp>cs$g|]}tj������fd��qSr�r�r�)�consume_funcr�rr�r�rr
r��s

�
�r)�copy�reverser��RandomrSrZ
start_threadsrLrKrIrQr
)rZ	n_threadsr�inputsr�r�ZfeedersZ	consumersr)	r�r�r�r�rr�r�r�r�r
�run_threads�s(
���
zBaseSimpleQueueTest.run_threadscCs�|j}|�|���|�|��d�|�d�|�|���|�|��d�|�d�|�d�|�d�|�|���|�|��d�|�|��d�|�|��d�|�|�	�d�|�|��d�|�|jdd�d�|�|���|�|��d�|�|jdd	�d�|�|���|�|��d�|�
|jj��|jdd�Wd�n1s�wY|�
|jj��|jd
d	�Wd�n1s�wY|�
|jj��|�	�Wd�n1s�wY|�|���|�|��d�dS)Nrr<r?rurvFrBrrDr�)
rrKrIrQr
rNrLrqrPrrrorrVrirrr
rm�s@



��
�zBaseSimpleQueueTest.test_basiccCsL|j}|�d�|�t��|jdd�Wd�dS1swYdSrn)rrNrorhrPrirrr
rps

"�z:BaseSimpleQueueTest.test_negative_timeout_raises_exceptioncCs8|j}ttd��}|�d|||j|j�}|�||�dS)Nr_r<)r�listrSr�r�r�rQ)rrr�r�rrr
�
test_orderszBaseSimpleQueueTest.test_ordercC�@d}|j}ttd��}|�||||j|j�}|�t|�|�dS�N�2�')rr�rSr�r�r�rQ�sorted�r�Nrr�r�rrr
�test_many_threads's
z%BaseSimpleQueueTest.test_many_threadscCr�r�)rr�rSr�r�r�rQr�r�rrr
�test_many_threads_nonblock2�
�z.BaseSimpleQueueTest.test_many_threads_nonblockcCr�)Nr�i�)rr�rSr�r�r�rQr�r�rrr
�test_many_threads_timeout<r�z-BaseSimpleQueueTest.test_many_threads_timeoutcCsdGdd�d�}d}|j}t|�D]}|�|��qt|�D]}t�|���}t�|�|��qdS)Nc@r�)z.BaseSimpleQueueTest.test_references.<locals>.CNr�rrrr
�CIsr��)rrSrN�weakref�refrPrZassertIsNone)rr�r�rrW�wrrrr
�test_referencesFs�z#BaseSimpleQueueTest.test_referencesN)r r!r"r4r�r�r�r�r�rmrpr�r�r�r�r�rrrr
r��s

 %	

r�cs eZdZeZ�fdd�Z�ZS)�PySimpleQueueTestcrzr)r�_PySimpleQueuergr{r4rr|rr
r4Yr}zPySimpleQueueTest.setUp)r r!r"r�rr4rrrr|r
r�Vsr�cs0eZdZeZ�fdd�Zdd�Zdd�Z�ZS)�CSimpleQueueTestcrzr)r�SimpleQueuergr{r4rr|rr
r4cr}zCSimpleQueueTest.setUpcCs(|�|j|jj�|�|j|jj�dSr)ZassertIsrgrr�rrrr
�test_is_defaultgsz CSimpleQueueTest.test_is_defaultcs~|j�t���d}g}G��fdd�dt�}	|�}��t���~|�����|d|kr0q1q|�|t	t
|d���dS)Nr�cs"eZdZdd�Z��fdd�ZdS)z2CSimpleQueueTest.test_reentrancy.<locals>.CircularcSs
||_dSr)Zcircularrrrr
rws
z;CSimpleQueueTest.test_reentrancy.<locals>.Circular.__init__cs��t���dSr)rN�nextr��genrrr
�__del__zsz:CSimpleQueueTest.test_reentrancy.<locals>.Circular.__del__N)r r!r"rr�rr�rr
�Circularvsr�Tr`r<)r�	itertools�count�objectrNr�rarPrQr�rS)rr�r�r��orr�r
�test_reentrancyks�z CSimpleQueueTest.test_reentrancy)	r r!r"r�rr4r�r�rrrr|r
r�^s
r��__main__))r�r�rrZunittestr�Ztest.supportrrrZimport_fresh_moduler�r�Z
skipUnlessZneed_c_queuerTrrrr#r0ryZTestCaser�r�r�r�r�r�r�r��	Exceptionr�r�r�r�r�r�r�r �mainrrrr
�<module>sV "u5
)�
© 2025 GrazzMean