Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/lock_tests.cpython-38.opt-1.pyc
U

>��gq�@sdZddlZddlZddlmZmZddlZddlZddlZddl	m
Z
dd�ZGdd�de�Z
Gd	d
�d
ej�ZGdd�de�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZdS)z/
Various tests for synchronization primitives.
�N)�start_new_thread�TIMEOUT_MAX)�supportcCst�d�dS)N�{�G�z�?)�time�sleep�rr�./opt/cppython/lib/python3.8/test/lock_tests.py�_waitsr
c@s2eZdZdZddd�Zdd�Zdd�Zd	d
�ZdS)
�Bunchz
    A bunch of threads.
    Fcsx��_|�_g�_g�_|�_t���_�j����fdd�}zt	|�D]}t
|d�qLWnd�_�YnXdS)z�
        Construct a bunch of `n` threads running the same function `f`.
        If `wait_before_exit` is True, the threads won't terminate until
        do_finish() is called.
        c	s@t��}�j�|�z
��W5�j�|��js:t�q,XdS�N)�	threading�	get_ident�started�append�finished�	_can_exitr
)�tid��f�selfrr	�task%s
zBunch.__init__.<locals>.taskrTN)r�nrrrr�wait_threads_exit�wait_thread�	__enter__�ranger)rrrZwait_before_exitr�irrr	�__init__s


zBunch.__init__cCst|j�|jkrt�qdSr)�lenrrr
�rrrr	�wait_for_started6szBunch.wait_for_startedcCs,t|j�|jkrt�q|j�ddd�dSr)rrrr
r�__exit__r rrr	�wait_for_finished:szBunch.wait_for_finishedcCs
d|_dS�NT)rr rrr	�	do_finish@szBunch.do_finishN)F)�__name__�
__module__�__qualname__�__doc__rr!r#r%rrrr	rs

rc@s$eZdZdd�Zdd�Zdd�ZdS)�BaseTestCasecCst��|_dSr)rZthreading_setup�_threadsr rrr	�setUpEszBaseTestCase.setUpcCstj|j�t��dSr)rZthreading_cleanupr+�
reap_childrenr rrr	�tearDownHszBaseTestCase.tearDowncCs$|�||d�|�||d�dS)Ng333333�?g$@)ZassertGreaterEqual�
assertLess)r�actualZexpectedrrr	�
assertTimeoutLszBaseTestCase.assertTimeoutN)r&r'r(r,r.r1rrrr	r*Dsr*c@sxeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�
BaseLockTestsz;
    Tests for both recursive and non-recursive locks.
    cCs|��}~dSr)�locktype�r�lockrrr	�test_constructorZszBaseLockTests.test_constructorcCs|��}|�t|�d�~dS)Nz<unlocked .* object (.*)?at .*>)r3�assertRegex�reprr4rrr	�	test_repr^szBaseLockTests.test_reprcCs&|��}|��|�t|�d�~dS)Nz<locked .* object (.*)?at .*>)r3�acquirer7r8r4rrr	�test_locked_reprcszBaseLockTests.test_locked_reprcCs|��}|��~dSr)r3r:r4rrr	�test_acquire_destroyisz"BaseLockTests.test_acquire_destroycCs|��}|��|��~dSr�r3r:�releaser4rrr	�test_acquire_releasensz"BaseLockTests.test_acquire_releasecCs$|��}|�|�d��|��dS�NF)r3�
assertTruer:r>r4rrr	�test_try_acquiretszBaseLockTests.test_try_acquirecsJ|������g���fdd�}t|d���|��d����dS)Ncs����d��dSr@�rr:r�r5�resultrr	r}sz3BaseLockTests.test_try_acquire_contended.<locals>.f�r)r3r:rr#�assertFalser>�rrrrDr	�test_try_acquire_contendedysz(BaseLockTests.test_try_acquire_contendedcsp|������d}�fdd�}t||�}|��t�|�t|j�d����|�	�|�t|j�|�dS)N�cs������dSr�r:r>r�r5rr	r�sz/BaseLockTests.test_acquire_contended.<locals>.fr)
r3r:rr!r
�assertEqualrrr>r#�r�Nr�brrLr	�test_acquire_contended�s
z$BaseLockTests.test_acquire_contendedcsV|����fdd�}d�fdd�	}|�t|d���|�t|t�t|d���dS)Ncs������dSrrKrrLrr	r�sz"BaseLockTests.test_with.<locals>.fc	s ��|dk	r|�W5QRXdSrr��errrLrr	�_with�sz&BaseLockTests.test_with.<locals>._withrF)N)r3rr#�assertRaises�	TypeError)rrrTrrLr	�	test_with�szBaseLockTests.test_withcs`|����fdd�}tt���}t|d���tt���|kr\t�d�|�|tt����dS)Ncs������dSrrKrrLrr	r�sz)BaseLockTests.test_thread_leak.<locals>.f�g�������?)	r3rr
�	enumeraterr#rrrM)rrrrrLr	�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)
NrrFi������timeoutg}Ô%�I�TrJcs4t��}���jdd��t��}��||�dS)N��?r[)r�	monotonicrr:)�t1�t2�r5�resultsrr	r�sz%BaseLockTests.test_timeout.<locals>.fr])r3rU�
ValueErrorr:�
OverflowErrorrr>rr^rAr/rr#rGr1)rr_r`rrrar	�test_timeout�s zBaseLockTests.test_timeoutcCs"|��}t�|�}|�|��dSr)r3�weakref�refZassertIsNotNone�rr5rgrrr	�test_weakref_exists�s
z!BaseLockTests.test_weakref_existscCs$|��}t�|�}~|�|��dSr)r3rfrgZassertIsNonerhrrr	�test_weakref_deleted�s
z"BaseLockTests.test_weakref_deletedN)r&r'r(r)r6r9r;r<r?rBrIrQrWrZrerirjrrrr	r2Us
r2c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�	LockTestszn
    Tests for non-recursive, weak locks
    (which can be acquired and released from different threads).
    c	s�|���g���fdd�}t���ft|d�t��dkrBt�q.t�|�t��d����t��dkrtt�q`|�t��d�W5QRXdS)Ncs(�����d������d�dSr)r:rr�r5Zphaserr	r�s
z#LockTests.test_reacquire.<locals>.frrrF�)r3rrrrr
rMr>rHrrlr	�test_reacquire�s

zLockTests.test_reacquirecsB|�������fdd�}t|d�}|��������dS)Ncs���dSr)r>rrLrr	r�sz*LockTests.test_different_thread.<locals>.frF)r3r:rr#r>�rrrPrrLr	�test_different_thread�s
zLockTests.test_different_threadcCsN|��}|��|�|jdd��|��|�|���|�|jdd��dS)Nrr[F)�blocking)r3r:rGr>�lockedrAr4rrr	�test_state_after_timeoutsz"LockTests.test_state_after_timeoutN)r&r'r(r)rnrprsrrrr	rk�srkc@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�
RLockTestsz$
    Tests for recursive locks.
    cCs<|��}|��|��|��|��|��|��dSrr=r4rrr	rnszRLockTests.test_reacquirecCsX|��}|�t|j�|��|��|��|��|��|��|�t|j�dSr)r3rU�RuntimeErrorr>r:r4rrr	�test_release_unacquiredsz"RLockTests.test_release_unacquiredcCsX|��}|�t|j�|��|��|��|��|��|��|�t|j�dSr)r3rUru�
_release_saver:r>r4rrr	�test_release_save_unacquired&sz'RLockTests.test_release_save_unacquiredcsJ|����fdd�}t|dd�}z|�t�j�W5|��X|��dS)Ncs���dSr)r:rrLrr	r5sz+RLockTests.test_different_thread.<locals>.frFT)r3rr%rUrur>r#rorrLr	rp2s
z RLockTests.test_different_threadcs�|���|��������|��������|�����g���fdd�}t|d���|��d����|��������|�����dS)Ncs������dSr)r�	_is_ownedrrDrr	rFsz$RLockTests.test__is_owned.<locals>.frFr)r3rGryr:rArr#r>rHrrDr	�test__is_owned>szRLockTests.test__is_ownedN)	r&r'r(r)rnrvrxrprzrrrr	rt
s	rtc@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�
EventTestsz"
    Tests for Event objects.
    cCsr|��}|�|���|��|�|���|��|�|���|��|�|���|��|�|���dSr)�	eventtyperG�is_set�setrA�clear�r�evtrrr	�test_is_setUszEventTests.test_is_setcs|d}g�g����fdd�}t||�}|��t�|�t��d����|��|��dg|�|��dg|�dS)NrJcs ������������dSr�r�waitr�r��results1�results2rr	rfsz#EventTests._check_notify.<locals>.frT)rr!r
rMrr~r#)rr�rOrrPrr�r	�
_check_notifyas
zEventTests._check_notifycCs0|��}|�|�|��|��|�|�dSr)r|r�r~rr�rrr	�test_notifyrs

zEventTests.test_notifycs�|���g�g�d}���fdd�}t||���|��dg|��D]\}}|�|�|�|d�qHg�g����t||���|��dg|��D]\}}|�|�q�dS)NrJcs@����d��t��}��d�}t��}��|||f�dS)Ngr])rr�rr^)r_�rr`r�rr	rs

z"EventTests.test_timeout.<locals>.fFr]T)r|rr#rMrGr1r~rA)rrOrr��dtrr�r	rezs"
zEventTests.test_timeoutcsn|���g�d�d}���fdd�}t||�}|��t���������|��|��dg|�dS)Ng�?rJcs�����d��dS�N�r�r�r�rbr\rr	r�sz(EventTests.test_set_and_clear.<locals>.fT)	r|rr!rrr~rr#rMrNrr�r	�test_set_and_clear�s

zEventTests.test_set_and_clearc	Cs\|��}|j�|�|j�d��W5QRX|��|j�|�|j�d��W5QRXdSr@)r|�_condrGr:�_reset_internal_locksr�rrr	�test_reset_internal_locks�sz$EventTests.test_reset_internal_locksN)
r&r'r(r)r�r�r�rer�r�rrrr	r{Psr{c@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�ConditionTestsz(
    Tests for condition variables.
    c	Cs�|��}|��|��|��|��t��}|�|�}|��|�|�d��|��|�|�d��|�|�d��|��|�|�|�d��W5QRXdSr@)�condtyper:r>r
�LockrGrA)r�condr5rrr	�test_acquire�s
zConditionTests.test_acquirecCs|��}|�t|j�dSr)r�rUrur��rr�rrr	�test_unacquired_wait�sz#ConditionTests.test_unacquired_waitcCs|��}|�t|j�dSr)r�rUru�notifyr�rrr	�test_unacquired_notify�sz%ConditionTests.test_unacquired_notifycs�d}g�g�g�d������fdd�}t||�}|��t��dkrNt�q:���|��g������d�t�d����t��dkr�t�q�|��dgd�|��g�t��dkr�t�q������d�t�d����t��t��d	k�rt�q�|��dgdd
gd�|��d
gd�t��dk�rTt��q<�����	�t�d����t��dk�r�t��qv|��dgdd
gd�|��d
gddgd�|�
�dS)NrJrcsd����������}�����|�f�����������}�����|�f�dSr)r:rr�r>�rE�r��	phase_num�readyr�r�rr	r�s

z'ConditionTests._check_notify.<locals>.f�rF)TrFrm�)Trm)Tr�)rr!rr
rrMr:r�r>�
notify_allr#)rr�rOrrPrr�r	r��sX




zConditionTests._check_notifycCs |��}|�|�|�|�dSr)r�r�r�rrr	r�s
zConditionTests.test_notifycsd|���g�d}��fdd�}t||���|�t��|��D]\}}|�|d�|�|�q@dS)NrJcs@���t��}��d�}t��}�����|||f�dS)Nr])r:rr^r�r>r)r_rEr`�r�rbrr	r"s
z&ConditionTests.test_timeout.<locals>.fr])r�rr#rMrr1rG)rrOrr�rErr�r	reszConditionTests.test_timeoutc
sr����d����fdd�}t|d�}|��td�D].}t�d����d7����W5QRXq6|��dS)Nrc	s<��.���fdd��}��|����d�W5QRXdS)Ncs�dkSr�rr��staterr	�<lambda>9�z8ConditionTests.test_waitfor.<locals>.f.<locals>.<lambda>r�)�wait_forrArMr��r�rr�rr	r7s
z&ConditionTests.test_waitfor.<locals>.frFr�r)r�rr!rrrr�r#�rrrPrrr�r	�test_waitfor4s

zConditionTests.test_waitforc
s�����d�g�����fdd�}t|d�}|��td�D].}t�d����d7����W5QRXq<|����t	��d�dS)Nrc	s^��Pt��}�j�fdd�dd�}t��|}��|���|d���d�W5QRXdS)Ncs�dkSr�rrr�rr	r�Lr�z@ConditionTests.test_waitfor_timeout.<locals>.f.<locals>.<lambda>g�������?r[)rr^r�rGr1r)r�rE�r�rr��successrr	rIs
z.ConditionTests.test_waitfor_timeout.<locals>.frFr�r)
r�rr!rrrr�r#rMrr�rr�r	�test_waitfor_timeoutEs

z#ConditionTests.test_waitfor_timeoutN)r&r'r(r)r�r�r�r�r�rer�r�rrrr	r��sJr�c@sXeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�ZdS)�BaseSemaphoreTestszB
    Common tests for {bounded, unbounded} semaphore objects.
    cCs,|jt|jdd�|jt|jtjd�dS)N���)�value)rUrc�semtype�sys�maxsizer rrr	r6bsz#BaseSemaphoreTests.test_constructorcCsH|�d�}|��|��|�d�}|��|��|��|��dS)NrFrm)r�r:r>�r�semrrr	r�fs

zBaseSemaphoreTests.test_acquirecCs|��}|��~dSr)r�r:r�rrr	r<psz'BaseSemaphoreTests.test_acquire_destroycst|�d�����d}g�g�g�d������fdd�}t|d�}|��t��t��dkrht�qL|���dgd�d�td�D]}���q�t��t��dkr�t�q�|�t	���dgddgd�d	�td�D]}���q�t��t��d
k�rt�q�|�t	���dgddgdd	gd�|�
��d�����|��|��dgd
�dS)N��
rcs4��������������������dSrrCr�r�r�r�r�Zsem_resultsrr	r}s
z4BaseSemaphoreTests.test_acquire_contended.<locals>.f�rF�
rm�FT�)r�r:rr!rr
rMrr>�sortedrGr#)rrOrrPrrr�r	rQus:


$
.z)BaseSemaphoreTests.test_acquire_contendedcCsV|�d�}|�|�d��|�|�d��|�|�d��|��|�|�d��dS)NrmF)r�rAr:rGr>r�rrr	rB�s
z#BaseSemaphoreTests.test_try_acquirecsV|�d�����g���fdd�}t|d���|�t��dgddgd�dS)	Nr�cs$����d������d��dSr@rCr�rbr�rr	r�sz8BaseSemaphoreTests.test_try_acquire_contended.<locals>.frJFr�Tr�)r�r:rr#rMr�rHrr�r	rI�s
z-BaseSemaphoreTests.test_try_acquire_contendedcCs�|�d�}|jt|jddd�|�|jdd��|�|jdd��|�|jdd��|��|�|jdd��t��}|�|jdd��t��|}|�	|d�dS)NrmF��?r[g{�G�zt?r])
r�rUrcr:rArGr>rr^r1)rr��tr�rrr	�test_acquire_timeout�s
z'BaseSemaphoreTests.test_acquire_timeoutcsT|�������fdd�}t|d�}|��t�|�|j����|��dS)Ncs������dSrrKr�r�rr	r�sz0BaseSemaphoreTests.test_default_value.<locals>.frF)	r�r:rr!r
rGrr>r#rorr�r	�test_default_value�s
z%BaseSemaphoreTests.test_default_valuecsb��d��d��fdd�	}|�����d�������t|t�����d�����dS)Nrmc
sT��F����d�����������d��|r<|�W5QRXW5QRXdSr@)rAr:r>rGrRr�rr	rT�sz+BaseSemaphoreTests.test_with.<locals>._withF)N)r�rAr:r>rUrV)rrTrr�r	rW�s
zBaseSemaphoreTests.test_withN)
r&r'r(r)r6r�r<rQrBrIr�r�rWrrrr	r�]s
%

r�c@seZdZdZdd�ZdS)�SemaphoreTestsz)
    Tests for unbounded semaphores.
    cCs.|�d�}|��|��|��|��dS�NrF)r�r>r:r�rrr	rv�s

z&SemaphoreTests.test_release_unacquiredN�r&r'r(r)rvrrrr	r��sr�c@seZdZdZdd�ZdS)�BoundedSemaphoreTestsz'
    Tests for bounded semaphores.
    cCs8|��}|�t|j�|��|��|�t|j�dSr)r�rUrcr>r:r�rrr	rv�s
z-BoundedSemaphoreTests.test_release_unacquiredNr�rrrr	r��sr�c@s�eZdZdZdZdZdd�Zdd�Zdd	�Zd
d�Z	d"d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!S)#�BarrierTestsz$
    Tests for Barrier objects.
    rJg@cCs|j|j|jd�|_dS)Nr[)�barriertyperO�defaultTimeout�barrierr rrr	r,�szBarrierTests.setUpcCs|j��dSr)r��abortr rrr	r.szBarrierTests.tearDowncCs"t||jd�}|�|��dSr�)rrOr#rorrr	�run_threadsszBarrierTests.run_threadscCs�|jj}|�||j�t|�D]h}|d�d�|�t|d�||�|j��|d�d�|�t|d�|d|�|j��q|�|jjd�|�	|jj
�dS)NrTrF)r��partiesrMrOrrrr��	n_waitingrG�broken)rrbr�mrrrr	�	multipasss
zBarrierTests.multipassrFcs&ggg����fdd�}��|�dS)z;
        Test that a barrier is passed in lockstep
        cs�����dSr)r�r��passesrbrrr	rsz$BarrierTests.test_barrier.<locals>.fN�r�)rr�rrr�r	�test_barrierszBarrierTests.test_barriercCs
|�d�S)zC
        Test that a barrier works for 10 consecutive runs
        r�)r�r rrr	�test_barrier_10szBarrierTests.test_barrier_10cs:g���fdd�}��|���t��tt�j���dS)z9
        test the return value from barrier.wait
        cs�j��}��|�dSr)r�r�r)r��rbrrr	r)s
z(BarrierTests.test_wait_return.<locals>.fN)r�rM�sumrrOrHrr�r	�test_wait_return$s
zBarrierTests.test_wait_returncs<g��fdd�}���j|�����fdd�}��|�dS)z,
        Test the 'action' callback
        cs��d�dSr$)rr)rbrr	�action5sz(BarrierTests.test_action.<locals>.actioncs�����t��d�dSr�)r�rMrr�r�rbrrr	r8sz#BarrierTests.test_action.<locals>.fN�r�rOr�)rr�rrr�r	�test_action0s
zBarrierTests.test_actioncsZg�g����fdd�}��|���t��d���t���jd����jj�dS)zK
        Test that an abort will put the barrier in a broken state
        csvz4�j��}|�jdkrt��j����d�Wn<tjk
rT��d�Yntk
rp�j��YnXdS�NrmT)r�r�rOrurr
�BrokenBarrierErrorr��r�r�r�rrr	rDs


z"BarrierTests.test_abort.<locals>.frrFN)r�rMrrOrAr�r�rHrr�r	�
test_abort>s
zBarrierTests.test_abortcsdg�g�g�����fdd�}��|���t��d���t���jd���t���j�dS)zL
        Test that a 'reset' on a barrier frees the waiting threads
        cs��j��}|�jdkrB�jj�jdkr6t�d�q�j��n:z�j����d�Wn tj	k
rz��d�YnX�j����d�dS)NrmrFg����MbP?T)
r�r�rOr�rr�resetrr
r�r��r�r��results3rrr	r]s


z"BarrierTests.test_reset.<locals>.frrFN)r�rMrrOrHrr�r	�
test_resetVs
zBarrierTests.test_resetcsrg�g�g����j�������fdd�}��|���t��d���t���jd���t���j�dS)zF
        Test that a barrier can be reset after being broken.
        cs�z4�j��}|�jdkrt��j����d�Wn<tjk
rT��d�Yntk
rp�j��YnX����jdkr��j������j����d�dSr�)	r�r�rOrurr
r�r�r�r��Zbarrier2r�r�r�rrr	r|s 




z,BarrierTests.test_abort_and_reset.<locals>.frrFN)r�rOr�rMrrHrr�r	�test_abort_and_resetts
z!BarrierTests.test_abort_and_resetcs�fdd�}��|�dS)z$
        Test wait(timeout)
        cs:�j��}|�jdkr"t�d���tj�jjd�dS)Nrmr�r])r�r�rOrrrUr
r�r�r rr	r�s

�z$BarrierTests.test_timeout.<locals>.fNr�rHrr r	re�szBarrierTests.test_timeoutcs,�j�jdd����fdd�}��|�dS)z4
        Test the barrier's default timeout
        g333333�?r[cs4���}|�jdkr t�d���tj�j�dS)Nrmr�)r�rOrrrUr
r�r��r�rrr	r�s
z,BarrierTests.test_default_timeout.<locals>.fNr�rHrr�r	�test_default_timeout�sz!BarrierTests.test_default_timeoutcCs|�d�}|��|��dSr�)r�r�)rrPrrr	�test_single_thread�s
zBarrierTests.test_single_threadN)rF)r&r'r(r)rOr�r,r.r�r�r�r�r�r�r�r�r�rer�r�rrrr	r��s"
	"r�)r)r�r�_threadrrr
Zunittestrf�testrr
�objectrZTestCaser*r2rkrtr{r�r�r�r�r�rrrr	�<module>s*11C^0~

F1le Man4ger