Your IP : 216.73.216.52


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/lock_tests.cpython-310.opt-2.pyc

o

0�i�x�@s2	ddlZddlZddlZddlZddlmZmZddlZddlZddl	Z	ddl
mZddlm
Z
e�eed�d�Zdd�ZGd	d
�d
e�ZGdd�dej�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZdS)�N)�start_new_thread�TIMEOUT_MAX)�support)�threading_helper�forkz9platform doesn't support fork (no _at_fork_reinit method)cCst�d�dS)N�{�G�z�?)�time�sleep�r
r
�6/opt/alt/python310/lib64/python3.10/test/lock_tests.py�_waitsrc@s0eZdZ	ddd�Zdd�Zdd�Zdd	�Zd
S)�BunchFcsr	��_|�_g�_g�_|�_t���_�j����fdd�}zt	|�D]}t
|d�q'WdSd�_�)Nc	sdt��}�j�|�z��W�j�|��js t��jrdSdS�j�|��js1t��jr+w�N)�	threading�	get_ident�started�append�finished�	_can_exitr)�tid��f�selfr
r�task-s���zBunch.__init__.<locals>.taskr
T)r�nrrrr�wait_threads_exit�wait_thread�	__enter__�ranger)rrrZwait_before_exitr�ir
rr�__init__s 


�zBunch.__init__cCs.t|j�|jkrt�t|j�|jksdSdSr)�lenrrr�rr
r
r�wait_for_started>s�zBunch.wait_for_startedcCs:t|j�|jkrt�t|j�|jks|j�ddd�dSr)r!rrrr�__exit__r"r
r
r�wait_for_finishedBs�zBunch.wait_for_finishedcCs
d|_dS�NT)rr"r
r
r�	do_finishHs
zBunch.do_finishN)F)�__name__�
__module__�__qualname__r r#r%r'r
r
r
rr
s
r
c@s$eZdZdd�Zdd�Zdd�ZdS)�BaseTestCasecCst��|_dSr)rZthreading_setup�_threadsr"r
r
r�setUpM�zBaseTestCase.setUpcCstj|j�t��dSr)rZthreading_cleanupr,rZ
reap_childrenr"r
r
r�tearDownPszBaseTestCase.tearDowncCs$|�||d�|�||d�dS)Ng333333�?g$@)ZassertGreaterEqual�
assertLess)rZactualZexpectedr
r
r�
assertTimeoutTszBaseTestCase.assertTimeoutN)r(r)r*r-r/r1r
r
r
rr+Lsr+c@sveZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�
BaseLockTestscCs|��}~dSr)�locktype�r�lockr
r
r�test_constructorbszBaseLockTests.test_constructorcCs|��}|�t|�d�~dS)Nz<unlocked .* object (.*)?at .*>)r3�assertRegex�reprr4r
r
r�	test_reprfszBaseLockTests.test_reprcCs&|��}|��|�t|�d�~dS)Nz<locked .* object (.*)?at .*>)r3�acquirer7r8r4r
r
r�test_locked_reprkszBaseLockTests.test_locked_reprcC�|��}|��~dSr)r3r:r4r
r
r�test_acquire_destroyq�z"BaseLockTests.test_acquire_destroycCs|��}|��|��~dSr�r3r:�releaser4r
r
r�test_acquire_releasevsz"BaseLockTests.test_acquire_releasecCs$|��}|�|�d��|��dS�NF)r3�
assertTruer:r@r4r
r
r�test_try_acquire|szBaseLockTests.test_try_acquirecsJ|������g���fdd�}t|d���|��d����dS)Ncs����d��dSrB�rr:r
�r5�resultr
rr�sz3BaseLockTests.test_try_acquire_contended.<locals>.f�r)r3r:r
r%�assertFalser@�rrr
rFr�test_try_acquire_contended�sz(BaseLockTests.test_try_acquire_contendedcsp|������d}�fdd�}t||�}|��t�|�t|j�d����|�	�|�t|j�|�dS)N�c�������dSr�r:r@r
�r5r
rr��z/BaseLockTests.test_acquire_contended.<locals>.fr)
r3r:r
r#r�assertEqualr!rr@r%�r�Nr�br
rOr�test_acquire_contended�s
z$BaseLockTests.test_acquire_contendedcsV|����fdd�}d�fdd�	}|�t|d���|�t|t�t|d���dS)NcrMrrNr
rOr
rr�rPz"BaseLockTests.test_with.<locals>.fcs6��|dur	|�Wd�dS1swYdSrr
��errrOr
r�_with�s
�"�z&BaseLockTests.test_with.<locals>._withrHr)r3r
r%�assertRaises�	TypeError)rrrXr
rOr�	test_with�szBaseLockTests.test_withcsd|����fdd�}tt���}t|d���tt���|kr0t�d�|�|tt����dSdS)NcrMrrNr
rOr
rr�rPz)BaseLockTests.test_thread_leak.<locals>.f�g�������?)	r3r!r�	enumerater
r%rr	rQ)rrrr
rOr�test_thread_leak�s
�zBaseLockTests.test_thread_leakcs�|���|�t�jdd�|jt�jdd�|jt�jdd�|jt�jtdd��jtd����t��}|�	�jdd��t��}|�
||d�g���fdd�}t|d���|�
�d	�|��dd
�dS)NFrHi������timeoutg}Ô%�I�TrLcs4t��}���jdd��t��}��||�dS)N��?r_)r�	monotonicrr:)�t1�t2�r5�resultsr
rr�sz%BaseLockTests.test_timeout.<locals>.frra)r3rY�
ValueErrorr:�
OverflowErrorrr@rrbrCr0r
r%rIr1)rrcrdrr
rer�test_timeout�s zBaseLockTests.test_timeoutcCs"|��}t�|�}|�|��dSr)r3�weakref�refZassertIsNotNone�rr5rkr
r
r�test_weakref_exists�s
z!BaseLockTests.test_weakref_existscCs,|��}t�|�}~t��|�|��dSr)r3rjrk�gcZcollectZassertIsNonerlr
r
r�test_weakref_deleted�s

z"BaseLockTests.test_weakref_deletedN)r(r)r*r6r9r;r=rArDrKrUr[r^rirmror
r
r
rr2]s
r2c@s2eZdZ	dd�Zdd�Zdd�Zedd��Zd	S)
�	LockTestscs�|���g���fdd�}t���Ct|d�t��dkr&t�t��dkst�|�t��d����t��dkrDt�t��dks;|�t��d�Wd�dS1sWwYdS)Ncs(�����d������d�dSr�r:rr
�r5Zphaser
rr��
z#LockTests.test_reacquire.<locals>.fr
rrH�)r3rrrr!rrQr@rJr
rrr�test_reacquire�s 

��"�zLockTests.test_reacquirecsB|�������fdd�}t|d�}|��������dS)Nc����dSr)r@r
rOr
rr�z*LockTests.test_different_thread.<locals>.frH)r3r:r
r%r@�rrrTr
rOr�test_different_threads
zLockTests.test_different_threadcCsN|��}|��|�|jdd��|��|�|���|�|jdd��dS)Nrr_F)Zblocking)r3r:rIr@�lockedrCr4r
r
r�test_state_after_timeoutsz"LockTests.test_state_after_timeoutcCsDdd�}|��}|��||�|��}|��|��||�dS)NcSs|��|��dSrrNrOr
r
r�use_locksz/LockTests.test_at_fork_reinit.<locals>.use_lock)r3�_at_fork_reinitr:)rr|r5Zlock2r
r
r�test_at_fork_reinitszLockTests.test_at_fork_reinitN)r(r)r*ruryr{�
requires_forkr~r
r
r
rrp�s
rpc@s6eZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
RLockTestscCs<|��}|��|��|��|��|��|��dSrr?r4r
r
rru-szRLockTests.test_reacquirecCsX|��}|�t|j�|��|��|��|��|��|��|�t|j�dSr)r3rY�RuntimeErrorr@r:r4r
r
r�test_release_unacquired6�z"RLockTests.test_release_unacquiredcCsX|��}|�t|j�|��|��|��|��|��|��|�t|j�dSr)r3rYr��
_release_saver:r@r4r
r
r�test_release_save_unacquiredBr�z'RLockTests.test_release_save_unacquiredcsR|����fdd�}t|dd�}z
|�t�j�W|��n|��w|��dS)Ncrvr)r:r
rOr
rrQrwz+RLockTests.test_different_thread.<locals>.frHT)r3r
rYr�r@r'r%rxr
rOrryNsz RLockTests.test_different_threadcs�|���|��������|��������|�����g���fdd�}t|d���|��d����|��������|�����dS)Ncs������dSr)r�	_is_ownedr
rFr
rrbsz$RLockTests.test__is_owned.<locals>.frHr)r3rIr�r:rCr
r%r@rJr
rFr�test__is_ownedZszRLockTests.test__is_ownedN)r(r)r*rur�r�ryr�r
r
r
rr�)s	r�c@sBeZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zedd��Z	d
S)�
EventTestscCsr|��}|�|���|��|�|���|��|�|���|��|�|���|��|�|���dSr)�	eventtyperIZis_set�setrC�clear�r�evtr
r
r�test_is_setqszEventTests.test_is_setcs|d}g�g����fdd�}t||�}|��t�|�t��d����|��|��dg|�|��dg|�dS)NrLcs ������������dSr�r�waitr
�r��results1�results2r
rr�sz#EventTests._check_notify.<locals>.frT)r
r#rrQr!r�r%)rr�rSrrTr
r�r�
_check_notify}s
zEventTests._check_notifycCs0|��}|�|�|��|��|�|�dSr)r�r�r�r�r�r
r
r�test_notify�s

zEventTests.test_notifycs�|���g�g�d}���fdd�}t||���|��dg|��D]\}}|�|�|�|d�q$g�g����t||���|��dg|��D]	\}}|�|�qNdS)NrLcs@����d��t��}��d�}t��}��|||f�dS)Ngra)rr�rrb)rc�rrdr�r
rr�s

z"EventTests.test_timeout.<locals>.fFraT)r�r
r%rQrIr1r�rC)rrSrr��dtr
r�rri�s$
�zEventTests.test_timeoutcsn|���g�d�d}���fdd�}t||�}|��t���������|��|��dg|�dS)Ng�?rLcs�����d��dS�N�r�r
�r�rfr`r
rr��z(EventTests.test_set_and_clear.<locals>.fT)	r�r
r#rr	r�r�r%rQrRr
r�r�test_set_and_clear�s

zEventTests.test_set_and_clearcCs�|��}|j�|�|j�d��Wd�n1swY|��|j�|�|j�d��Wd�dS1s<wYdSrB)r�Z_condrIr:r}r�r
r
rr~�s�"�zEventTests.test_at_fork_reinitN)
r(r)r*r�r�r�rir�rr~r
r
r
rr�lsr�c@sNeZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�ConditionTestscCs�|��}|��|��|��|��t��}|�|�}|��|�|�d��|��|�|�d��|�|�d��|��|�|�|�d��Wd�dS1sWwYdSrB)�condtyper:r@rZLockrIrC)r�condr5r
r
r�test_acquire�s 
"�zConditionTests.test_acquirecC�|��}|�t|j�dSr)r�rYr�r��rr�r
r
r�test_unacquired_wait��z#ConditionTests.test_unacquired_waitcCr�r)r�rYr��notifyr�r
r
r�test_unacquired_notify�r�z%ConditionTests.test_unacquired_notifycsd}g�g�g�d������fdd�}t||�}|��t��dkr,t�t��dks#���|��g������d�t�d����t��dkrWt�t��dksN|��dgd�|��g�t��dkrut�t��dksl�����d�t�d����t��t��d	kr�t�t��t��d	ks�|��dgdd
gd�|��d
gd�t��dkr�t�t��dks������	�t�d����t��dkr�t�t��dks�|��dgdd
gd�|��d
gddgd�|�
�dS)NrLrcsd����������}�����|�f�����������}�����|�f�dSr)r:rr�r@�rG�r��	phase_numZreadyr�r�r
rr�s

z'ConditionTests._check_notify.<locals>.f�rH)TrHrt�)Trt)Tr�)r
r#r!rr�rQr:r�r@Z
notify_allr%)rr�rSrrTr
r�rr��sd
�
��
���zConditionTests._check_notifycCs |��}|�|�|�|�dSr)r�r�r�r
r
rr�5s
zConditionTests.test_notifycsd|���g�d}��fdd�}t||���|�t��|��D]\}}|�|d�|�|�q dS)NrLcs@���t��}��d�}t��}�����|||f�dS)Nra)r:rrbr�r@r)rcrGrd�r�rfr
rr?s
z&ConditionTests.test_timeout.<locals>.fra)r�r
r%rQr!r1rI)rrSrr�rGr
r�rri;s�zConditionTests.test_timeoutc	s�����d����fdd�}t|d�}|��td�D]!}t�d����d7����Wd�n1s7wYq|��dS)NrcsR�����fdd��}��|����d�Wd�dS1s"wYdS)Nc��dkSr�r
r
��stater
r�<lambda>V�z8ConditionTests.test_waitfor.<locals>.f.<locals>.<lambda>r�)�wait_forrCrQr��r�rr�r
rrTs

"�z&ConditionTests.test_waitfor.<locals>.frHr�r)r�r
r#rrr	r�r%�rrrTrr
r�r�test_waitforQs


��zConditionTests.test_waitforc	s�����d�g�����fdd�}t|d�}|��td�D]!}t�d����d7����Wd�n1s:wYq|����t	��d�dS)Nrcst��.t��}�j�fdd�dd�}t��|}��|���|d���d�Wd�dS1s3wYdS)Ncr�r�r
r
r�r
rr�ir�z@ConditionTests.test_waitfor_timeout.<locals>.f.<locals>.<lambda>g�������?r_)rrbr�rIr1r)r�rG�r�rr�Zsuccessr
rrfs
"�z.ConditionTests.test_waitfor_timeout.<locals>.frHr�r)
r�r
r#rrr	r�r%rQr!r�r
r�r�test_waitfor_timeoutbs


��z#ConditionTests.test_waitfor_timeoutN)r(r)r*r�r�r�r�r�rir�r�r
r
r
rr��sJr�c@s^eZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�BaseSemaphoreTestscCs,|jt|jdd�|jt|jtjd�dS)N���)�value)rYrg�semtype�sys�maxsizer"r
r
rr6sz#BaseSemaphoreTests.test_constructorcCsH|�d�}|��|��|�d�}|��|��|��|��dS)NrHrt)r�r:r@�r�semr
r
rr��s

zBaseSemaphoreTests.test_acquirecCr<r)r�r:r�r
r
rr=�r>z'BaseSemaphoreTests.test_acquire_destroycs�|�d�����d}g�g�g�d������fdd�}t|d�}|��t��t��dkr=t�t��t��dks0|���dgd�d�td�D]}���qNt��t��dkrlt�t��t��dks_|�t	���dgddgd�d	�td�D]}���q�t��t��d
kr�t�t��t��d
ks�|�t	���dgddgdd	gd�|�
��d�����|��|��dgd
�dS)N��
rcs4��������������������dSrrEr
�r�r�r�r�Zsem_resultsr
rr�s
z4BaseSemaphoreTests.test_acquire_contended.<locals>.f�rH�
rt�FT�)r�r:r
r#r!rrQrr@�sortedrIr%)rrSrrTrr
r�rrU�s@

�
�$
�.z)BaseSemaphoreTests.test_acquire_contendedcst|�d�����g�g�d�����fdd�}t|d�}|��t��t��dkr8t�t��t��dks+|���dgd�d���d�t��t��dkrat�t��t��dksT|�t���dgddgd�d	���d�t��t��d
kr�t�t��t��d
ks�|�t���dgddgdd	gd�|�	��d�����|�
�dS)Nr�rcs(��������������dSrrqr
�r�r�r�r�r
rr�rsz/BaseSemaphoreTests.test_multirelease.<locals>.fr�r�rHr�rtr�F)r�r:r
r#r!rrQr@r�rIr%rxr
r�r�test_multirelease�s6

�
�$
�.z$BaseSemaphoreTests.test_multireleasecCsV|�d�}|�|�d��|�|�d��|�|�d��|��|�|�d��dS)NrtF)r�rCr:rIr@r�r
r
rrD�s
z#BaseSemaphoreTests.test_try_acquirecsV|�d�����g���fdd�}t|d���|�t��dgddgd�dS)	Nr�cs$����d������d��dSrBrEr
�rfr�r
rr�sz8BaseSemaphoreTests.test_try_acquire_contended.<locals>.frLFr�Tr�)r�r:r
r%rQr�rJr
r�rrK�s
$z-BaseSemaphoreTests.test_try_acquire_contendedcCs�|�d�}|jt|jddd�|�|jdd��|�|jdd��|�|jdd��|��|�|jdd��t��}|�|jdd��t��|}|�	|d�dS)NrtF��?r_g{�G�zt?ra)
r�rYrgr:rCrIr@rrbr1)rr��tr�r
r
r�test_acquire_timeout�s
z'BaseSemaphoreTests.test_acquire_timeoutcsT|�������fdd�}t|d�}|��t�|�|j����|��dS)NcrMrrNr
�r�r
rr�rPz0BaseSemaphoreTests.test_default_value.<locals>.frH)	r�r:r
r#rrIrr@r%rxr
r�r�test_default_value�s
z%BaseSemaphoreTests.test_default_valuecsb��d��d��fdd�	}|�����d�������t|t�����d�����dS)Nrtc	s���;����d�����������d��|r|�Wd�n1s(wYWd�dSWd�dS1s@wYdSrB)rCr:r@rIrVr�r
rrX	s���"�z+BaseSemaphoreTests.test_with.<locals>._withFr)r�rCr:r@rYrZ)rrXr
r�rr[s
zBaseSemaphoreTests.test_withN)
r(r)r*r6r�r=rUr�rDrKr�r�r[r
r
r
rr�zs
% 

r�c@�eZdZ	dd�ZdS)�SemaphoreTestscCs.|�d�}|��|��|��|��dS�NrH)r�r@r:r�r
r
rr�s

z&SemaphoreTests.test_release_unacquiredN�r(r)r*r�r
r
r
rr��r�c@r�)�BoundedSemaphoreTestscCs8|��}|�t|j�|��|��|�t|j�dSr)r�rYrgr@r:r�r
r
rr�+s
z-BoundedSemaphoreTests.test_release_unacquiredNr�r
r
r
rr�&r�r�c@s�eZdZ	dZdZdd�Zdd�Zdd�Zd	d
�Zd!dd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd S)"�BarrierTestsrLg@cCs|j|j|jd�|_dS)Nr_)�barriertyperS�defaultTimeout�barrierr"r
r
rr-;r�zBarrierTests.setUpcCs|j��dSr)r��abortr"r
r
rr/=r.zBarrierTests.tearDowncCs"t||jd�}|�|��dSr�)r
rSr%rxr
r
r�run_threads@szBarrierTests.run_threadscCs�|jj}|�||j�t|�D]4}|d�d�|�t|d�||�|j��|d�d�|�t|d�|d|�|j��q|�|jjd�|�	|jj
�dS)NrTrH)r�ZpartiesrQrSrrr!r��	n_waitingrI�broken)rrfr�mrr
r
r�	multipassEs
zBarrierTests.multipassrHcs(	ggg����fdd�}��|�dS)Ncs�����dSr)r�r
��passesrfrr
rrWsz$BarrierTests.test_barrier.<locals>.f�r�)rr�rr
r�r�test_barrierRszBarrierTests.test_barriercCs	|�d�S)Nr�)r�r"r
r
r�test_barrier_10[s
zBarrierTests.test_barrier_10cs<	g���fdd�}��|���t��tt�j���dS)Ncs�j��}��|�dSr)r�r�r)r��rfrr
rrfs
z(BarrierTests.test_wait_return.<locals>.f)r�rQ�sumrrSrJr
r�r�test_wait_returnas

zBarrierTests.test_wait_returncs>	g��fdd�}���j|�����fdd�}��|�dS)Ncs��d�dSr&)rr
)rfr
r�actionrr.z(BarrierTests.test_action.<locals>.actioncs�����t��d�dSr�)r�rQr!r
�r�rfrr
rrusz#BarrierTests.test_action.<locals>.f�r�rSr�)rr�rr
r�r�test_actionmszBarrierTests.test_actioncs\	g�g����fdd�}��|���t��d���t���jd����jj�dS)Ncstz�j��}|�jdkrt��j����d�WdStjy+��d�YdSty9�j��YdSw�NrtT)r�r�rSr�rr�BrokenBarrierErrorr��r�r�r�rr
rr�s


�z"BarrierTests.test_abort.<locals>.frrH)r�rQr!rSrCr�r�rJr
r�r�
test_abort{s

zBarrierTests.test_abortcsf	g�g�g�����fdd�}��|���t��d���t���jd���t���j�dS)Ncs��j��}|�jdkr)�jj�jdkr#t�d��jj�jdks�j��nz�j����d�Wntj	yD��d�Ynw�j����d�dS)NrtrHg����MbP?T)
r�r�rSr�rr	�resetrrr�r��r�r��results3rr
rr�s

�
�
z"BarrierTests.test_reset.<locals>.frrH)r�rQr!rSrJr
r�r�
test_reset�s
zBarrierTests.test_resetcst	g�g�g����j�������fdd�}��|���t��d���t���jd���t���j�dS)Ncs�z�j��}|�jdkrt��j����d�Wntjy)��d�Ynty6�j��Ynw����jdkrE�j������j����d�dSr�)	r�r�rSr�rrr�r�r�r��Zbarrier2r�r�r�rr
rr�s"


�

z,BarrierTests.test_abort_and_reset.<locals>.frrH)r�rSr�rQr!rJr
r�r�test_abort_and_reset�s
z!BarrierTests.test_abort_and_resetcs	�fdd�}��|�dS)Ncs:�j��}|�jdkrt�d���tj�jjd�dS)Nrtr�ra)r�r�rSrr	rYrr�r�r"r
rr�s

�z$BarrierTests.test_timeout.<locals>.fr�rJr
r"rri�szBarrierTests.test_timeoutcs.	�j�jdd����fdd�}��|�dS)Ng333333�?r_cs4���}|�jdkrt�d���tj�j�dS)Nrtr�)r�rSrr	rYrr�r��r�rr
rr�s
z,BarrierTests.test_default_timeout.<locals>.fr�rJr
r�r�test_default_timeout�sz!BarrierTests.test_default_timeoutcCs|�d�}|��|��dSr�)r�r�)rrTr
r
r�test_single_thread�s
zBarrierTests.test_single_threadN)rH)r(r)r*rSr�r-r/r�r�r�r�r�r�r�r�r�rir�r�r
r
r
rr�4s$

	"r�)�osrnr�r�_threadrrrZunittestrj�testrZtest.supportrZ
skipUnless�hasattrrr�objectr
ZTestCaser+r2rpr�r�r�r�r�r�r�r
r
r
r�<module>s:�1	DC_0