HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/test/test_asyncio/__pycache__/test_locks.cpython-38.opt-2.pyc
U

/D�g���@s�ddlZddlmZddlZddlZddlmZdZe�e�Z	dd�Z
Gdd�dej�ZGd	d
�d
ej�Z
Gdd�dej�ZGd
d�dej�Zedkr�e��dS)�N)�mock)�utilszv^<(?P<class>.*?) object at (?P<address>.*?)\[(?P<extras>(set|unset|locked|unlocked)(, value:\d)?(, waiters:\d+)?)\]>\ZcCst�d�dS�N)�asyncioZset_event_loop_policy�rr�;/opt/cppython/lib/python3.8/test/test_asyncio/test_locks.py�tearDownModulesrcs�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Z�ZS)!�	LockTestscst���|��|_dSr��super�setUp�
new_test_loop�loop��self��	__class__rrrs
zLockTests.setUpc	Cspt��}|�t��tj|d�}W5QRX|�|j|�|�t��tj|jd�}W5QRX|�|j|j�dS�N�r)	r�Mock�assertWarns�DeprecationWarningr�Lock�assertIs�_loopr�rr�lockrrr�test_ctor_loopszLockTests.test_ctor_loopcCs(t�|j�t��}|�|j|j�dSr)r�set_event_looprrrr�rrrrr�test_ctor_noloop'szLockTests.test_ctor_noloopc	s���t��tj�jd��W5QRX��t���d����t�	t������t��tj
��fdd��}W5QRX�j�|����t���d����t�	t����dS)Nrz[unlocked]>c	3s$��t���EdHW5QRXdSr�rrr�rrrr�acquire_lock3sz)LockTests.test_repr.<locals>.acquire_lock�	[locked]>)rrrrr�
assertTrue�repr�endswith�RGX_REPR�match�	coroutine�run_until_complete�rr#rr"r�	test_repr,szLockTests.test_reprc	sx��t��(tj�jd��tj��fdd��}W5QRX�j�|��}��|���������	���
����dS)Nrc
3s,��t���EdHW5QR�SQRXdSrr!rr"rrr#Asz)LockTests.test_lock.<locals>.acquire_lock)rrrrrr*r+r%�locked�release�assertFalse�rr#�resrr"r�	test_lock<s
zLockTests.test_lockc	s�t��}��|���t��Dtj|d�tj|d�tj|d�tj|d�g}tj	�fdd��}W5QRX|D] }|�
||����|���qjdS)Nrc
3s�t�d�EdH��|�����t��b|EdH�>}��|d���|���t�d�EdH��|���W5QRX��|���W5QRXdS)Ng{�G�z�?)r�sleepr0r.rrrr%)r�_lockrrr�testYsz3LockTests.test_lock_by_with_statement.<locals>.test)
r�new_event_looprrrr�	Condition�	Semaphore�BoundedSemaphorer*r+r0r.)rrZ
primitivesr6Z	primitiverrr�test_lock_by_with_statementNs




�z%LockTests.test_lock_by_with_statementc	s�|�t��tj|jd��W5QRXg}|�|j�������fdd�}�fdd�}�fdd�}|j�||��}|j�||��}t	�
|j�|�g|����t	�
|j�|�dg|�t	�
|j�|�dg|�|j�||��}���t	�
|j�|�dd	g|����t	�
|j�|�dd	d
g|�|�|�
��|�|���|�|�
��|�|���|�|�
��|�|���dS)Nrc�s���IdHr|�d�dS�N�T��acquire�append��result�rrr�c1ps
z"LockTests.test_acquire.<locals>.c1c�s���IdHr|�d�dS�N�Tr>rArCrr�c2us
z"LockTests.test_acquire.<locals>.c2c�s���IdHr|�d�dS�N�Tr>rArCrr�c3zs
z"LockTests.test_acquire.<locals>.c3r=rFrI)rrrrrr%r+r?�create_task�
test_utils�run_briefly�assertEqualr/�donerB�rrBrDrGrJ�t1�t2�t3rrCr�test_acquireis:zLockTests.test_acquirec	Cs||�t��tj|jd�}W5QRX|�|j�|����|j�|���}|j�	|j
�|�tj|jj|�|�
|j�dSr)rrrrrr%r+r?rK�	call_soon�cancel�assertRaises�CancelledErrorr0�_waiters)rrZtaskrrr�test_acquire_cancel�s�zLockTests.test_acquire_cancelc	s4|�t��tj|jd��W5QRX�fdd�}|j��}|j�|d|��}t�|j�|�	��
��|j�|dd��}t�|j�|�t�j
�d�|j�|dd��}t�|j�|�t�j
�d�|�d�|��|�	�j
d	���t�|j�|���
��|�	|���|�	|���|�	|���dS)
Nrc�s4���IdHz|dk	r"|IdHW5���XdSr)r?r/)�nameZblockerrCrr�lockit�s
z*LockTests.test_cancel_race.<locals>.lockit�A�Br=�CrFr)rrrrrZ
create_futurerKrLrMr%r.rN�lenrY�
set_resultrV�	cancelledr0rO)rr\�fa�ta�tb�tcrrCr�test_cancel_race�s*

zLockTests.test_cancel_racec	s��t��tj�jd��W5QRXd�d����fdd�}���fdd�}��fdd���j�|��}�j�|����j�|��}�j�|��}t��j���|�	��t��j�t��j���
�d	���
�d
������o�|�	��|��t��j���|���dS)Nrrc�s"�d7����IdH�d7�dS�Nr=)r?r)�
call_countr�
lock_countrrr\�sz2LockTests.test_cancel_release_race.<locals>.lockitc�s���IdH�j���dSr)r?rrUr)rr�triggerrr�lockandtrigger�sz:LockTests.test_cancel_release_race.<locals>.lockandtriggercs������dSr)rVr/r)rrQrrrk�sz3LockTests.test_cancel_release_race.<locals>.triggerr=rI)
rrrrrrKrLrMr%rOrNrbrV)rr\rl�t0rRrSr)rirrjrrQrkr�test_cancel_release_race�s*z"LockTests.test_cancel_release_racec	Cs�|�t��tj|jd�}W5QRX|j�|���}t�|j�|�	|�
��|j�|���}t�|j�|�t|j
�d�|j�|���}|��|��t�|j�|�	|�
��|�	|���|�	|���dS)Nrr=)rrrrrrKr?rLrMr%r.rNr`rYr/rVrOrb)rrrdrerfrrr�test_finished_waiter_cancelled
sz(LockTests.test_finished_waiter_cancelledc	Cs6|�t��tj|jd�}W5QRX|�t|j�dSr)rrrrrrW�RuntimeErrorr/rrrr�test_release_not_acquired!sz#LockTests.test_release_not_acquiredc	Cs\|�t��tj|jd�}W5QRX|j�|���|�|���|�	�|�
|���dSr)rrrrrr+r?r%r.r/r0rrrr�test_release_no_waiters'sz!LockTests.test_release_no_waitersc	sr��t��(tj�jd��tj��fdd��}W5QRX�j�|���������W5QRX��	����dS)Nrc
3s,��t���EdHW5QR�SQRXdSrr!rr"rrr#4sz4LockTests.test_context_manager.<locals>.acquire_lock)
rrrrrr*r+r%r.r0r,rr"r�test_context_manager0szLockTests.test_context_managerc
s���t��(tj�jd��tj��fdd��}W5QRX�j�|��}|�������W5QRX��	������
t��|�W5QRXW5QRXdS)Nrc
3s,��t���EdHW5QR�SQRXdSrr!rr"rrr#Bsz?LockTests.test_context_manager_cant_reuse.<locals>.acquire_lock)rrrrrr*r+r%r.r0rW�AttributeError)rr#�cmrr"r�test_context_manager_cant_reuse>sz)LockTests.test_context_manager_cant_reusec
Cs�|�t��tj|jd�}W5QRXz|�|�d�W5QRXWn2tk
rt}z|�t|�d�W5d}~XYnX|�	|�
��dS�Nr�-RuntimeError is not raised in with expression�9"yield from" should be used as context manager expression)rrrrr�failrprN�strr0r.)rr�errrrr�test_context_manager_no_yieldRs�z'LockTests.test_context_manager_no_yield)�__name__�
__module__�__qualname__rrr r-r3r;rTrZrgrnrorqrrrsrvr}�
__classcell__rrrrr	s 
401	r	cs\eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Z�ZS)�
EventTestscst���|��|_dSrr
rrrrrcs
zEventTests.setUpc	Cspt��}|�t��tj|d�}W5QRX|�|j|�|�t��tj|jd�}W5QRX|�|j|j�dSr)	rrrrr�Eventrrr)rr�evrrrrgszEventTests.test_ctor_loopcCs(t�|j�t��}|�|j|j�dSr)rrrr�rr�rr�rrrr qszEventTests.test_ctor_noloopc	Cs�|�t��tj|jd�}W5QRX|�t|��d��t�	t|��}|�
|�d�d�|��|�t|��d��|�t�	t|���|j
�t���|�dt|�k�|�t�	t|���dS)Nrz[unset]>�extrasZunsetz[set]>�	waiters:1)rrrr�rr%r&r'r(r)rN�group�setrYr@rr)rr�r)rrrr-vszEventTests.test_reprc	s |�t��tj|jd��W5QRX|�����g}�fdd�}�fdd�}�fdd�}|j�||��}|j�||��}t�	|j�|�
g|�|j�||��}���t�	|j�|�
dd	d
g|�|�|�
��|�|���|�|�
��|�|���|�|�
��|�|���dS)Nrc�s���IdHr|�d�dSrh��waitr@rA�r�rrrD�sz EventTests.test_wait.<locals>.c1c�s���IdHr|�d�dS)NrFr�rAr�rrrG�sz EventTests.test_wait.<locals>.c2c�s���IdHr|�d�dS)NrIr�rAr�rrrJ�sz EventTests.test_wait.<locals>.c3rIr=rF)rrrr�rr0�is_setrKrLrMrNr�r%rOZassertIsNonerBrPrr�r�	test_wait�s*zEventTests.test_waitc	CsJ|�t��tj|jd�}W5QRX|��|j�|���}|�|�dSr)	rrrr�rr�r+r�r%)rr�r2rrr�test_wait_on_set�s
zEventTests.test_wait_on_setc	Csf|�t��tj|jd�}W5QRX|j�|���}|j�|j�|�	tj
|jj|�|�|j
�dSr)rrrr�rrKr�rUrVrWrXr+r0rY)rr�r�rrr�test_wait_cancel�s�zEventTests.test_wait_cancelc	Csb|�t��tj|jd�}W5QRX|�|���|��|�|���|�	�|�|���dSr)
rrrr�rr0r�r�r%�clearr�rrr�
test_clear�szEventTests.test_clearc	s�|�t��tj|jd��W5QRXg}�fdd�}|j�||��}t�|j�|�g|���	���
�|�������	���	�|�dt
�j��t�|j�|�dg|�|�dt
�j��|�|���|�|���dS)Nrc�s���IdHr|�d�dSr<r�rAr�rrrD�s
z.EventTests.test_clear_with_waiters.<locals>.c1r=r)rrrr�rrKrLrMrNr�r�r0r�r`rYr%rOrB�rrBrD�trr�r�test_clear_with_waiters�s$z"EventTests.test_clear_with_waiters)
r~rr�rrr r-r�r�r�r�r�r�rrrrr�as
&r�cs�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Z�ZS))�ConditionTestscst���|��|_dSrr
rrrrr�s
zConditionTests.setUpc	CsZt��}|�t��>tj|d�}|�|j|�tj|jd�}|�|j|j�W5QRXdSr)	rrrrrr8rrr)rr�condrrrr�szConditionTests.test_ctor_loopcCs(t�|j�t��}|�|j|j�dSr)rrrr8rr�rr�rrrr �szConditionTests.test_ctor_noloopc	s|�t��tj|jd��W5QRXg}�fdd�}�fdd�}�fdd�}|j�||��}|j�||��}|j�||��}t�|j�|�g|�|�	��
��|�|j���
������t�|j�|�g|�|���
�����t�|j�|�dg|�|���
����d	�t�|j�|�dg|�|���
�����t�|j�|�dd	g|�|���
�����t�|j�|�dd	d
g|�|���
��|�|���|�|���|�|���|�|���|�|���|�|���dS)Nrc�s*���IdH���IdHr&|�d�dSr<�r?r�r@rA�r�rrrDs
z$ConditionTests.test_wait.<locals>.c1c�s*���IdH���IdHr&|�d�dSrEr�rAr�rrrGs
z$ConditionTests.test_wait.<locals>.c2c�s*���IdH���IdHr&|�d�dSrHr�rAr�rrrJs
z$ConditionTests.test_wait.<locals>.c3r=rFrI)rrrr8rrKrLrMrNr0r.r%r+r?�notifyr/rOrBrPrr�rr��sN
zConditionTests.test_waitc	Cs�|�t��tj|jd�}W5QRX|j�|���|j�|���}|j�	|j
�|�tj|jj|�|�
|j�|�|���dSr)rrrr8rr+r?rKr�rUrVrWrXr0rYr%r.)rr�r�rrrr�;s�zConditionTests.test_wait_cancelc	Cs�|�t��tj|jd�}W5QRX|j�|���|�|���|j�	|�
��}t�|j�|�
|���|j�|���|�|���|��|j�|j�|j�|j�z|j�|�Wntjk
r�YnX|�|���dSr)rrrr8rr+r?r%r.rKr�rLrMr0r�rUrVr/rX)rr�Z	wait_taskrrr�test_wait_cancel_contestedHs"z)ConditionTests.test_wait_cancel_contestedc	s�|�t��tj|jd��W5QRXd���fdd�}tj|�|jd�}t�|j�|j���	����
�t�|j�|��t�|j����t�|j�|�
|���|�
��dS)NrFc
�s4�4IdH�d����IdHW5QIdHRXdS)NT)r�r�r�Zwaitedrr�wait_on_condhszBConditionTests.test_wait_cancel_after_notify.<locals>.wait_on_cond)rrrr8rZ
ensure_futurerLrMr+r?r�rVr/r%rb)rr��waiterrr�r�test_wait_cancel_after_notifybsz,ConditionTests.test_wait_cancel_after_notifyc	Cs>|�t��tj|jd�}W5QRX|�t|jj|���dSr)	rrrr8rrWrpr+r�r�rrr�test_wait_unacquired|s�z#ConditionTests.test_wait_unacquiredc	s|�t��tj|jd��W5QRXd��fdd��g}��fdd�}|j�||��}t�|j�|�g|�|j�	��
��������t�|j�|�g|�d�|j�	��
��������t�|j�|�dg|�|�
|���|�
|���dS)	NrFcs�Srrr)�presultrr�	predicate�sz/ConditionTests.test_wait_for.<locals>.predicatec�s4���IdH����IdHr0|�d����dSr<)r?�wait_forr@r/rA)r�r�rrrD�s

z(ConditionTests.test_wait_for.<locals>.c1Tr=�rrrr8rrKrLrMrNr+r?r�r/r%rOrBr�r)r�r�r�r�
test_wait_for�s,zConditionTests.test_wait_forc	Csl|�t��tj|jd�}W5QRX|j�|�dd���}|�dddg|�|�t	|jj|�dd���dS)NrcSs
dddgS)Nr=rFrIrrrrr�<lambda>��z9ConditionTests.test_wait_for_unacquired.<locals>.<lambda>r=rFrIcSsdS)NFrrrrrr��r�)
rrrr8rr+r�rNrWrp)rr�r2rrr�test_wait_for_unacquired�s�z'ConditionTests.test_wait_for_unacquiredc	sr|�t��tj|jd��W5QRXg}�fdd�}�fdd�}�fdd�}|j�||��}|j�||��}|j�||��}t�|j�|�g|�|j�	��
����d����t�|j�|�dg|�|j�	��
����d���d	����t�|j�|�dd
dg|�|�
|���|�
|���|�
|���|�
|���|�
|���|�
|���dS)Nrc�s2���IdH���IdHr.|�d����dSr<�r?r�r@r/rAr�rrrD�s

z&ConditionTests.test_notify.<locals>.c1c�s2���IdH���IdHr.|�d����dSrEr�rAr�rrrG�s

z&ConditionTests.test_notify.<locals>.c2c�s2���IdH���IdHr.|�d����dSrHr�rAr�rrrJ�s

z&ConditionTests.test_notify.<locals>.c3r=irFrIr�rPrr�r�test_notify�s8


zConditionTests.test_notifyc	s�|�t��tj|jd��W5QRXg}�fdd�}�fdd�}|j�||��}|j�||��}t�|j�|�g|�|j�	��
��������t�|j�|�ddg|�|�
|���|�
|���|�
|���|�
|���dS)Nrc�s2���IdH���IdHr.|�d����dSr<r�rAr�rrrD�s

z*ConditionTests.test_notify_all.<locals>.c1c�s2���IdH���IdHr.|�d����dSrEr�rAr�rrrG�s

z*ConditionTests.test_notify_all.<locals>.c2r=rF)rrrr8rrKrLrMrNr+r?�
notify_allr/r%rOrB)rrBrDrGrQrRrr�r�test_notify_all�s$zConditionTests.test_notify_allc	Cs6|�t��tj|jd�}W5QRX|�t|j�dSr)rrrr8rrWrpr�r�rrr�test_notify_unacquiredsz%ConditionTests.test_notify_unacquiredc	Cs6|�t��tj|jd�}W5QRX|�t|j�dSr)rrrr8rrWrpr�r�rrr�test_notify_all_unacquiredsz)ConditionTests.test_notify_all_unacquiredc	Cs�|�t��tj|jd�}W5QRX|�dt|�k�|�t�t|���|j�	|�
��|�dt|�k�|j�t
���|�dt|�k�|�t�t|���|j�t
���|�dt|�k�|�t�t|���dS)Nr�unlockedr.r��	waiters:2)rrrr8rr%r&r(r)r+r?rYr@rrr�rrrr-szConditionTests.test_reprc	s���t��tj�jd��W5QRX��t��tj��fdd��}W5QRX�j�|���������W5QRX��	����dS)Nrc
3s,��t���EdHW5QR�SQRXdSrr!r�r�rrr�acquire_cond0sz9ConditionTests.test_context_manager.<locals>.acquire_cond)
rrrr8rr*r+r%r.r0)rr�rr�rrs+sz#ConditionTests.test_context_managerc
Cs�|�t��tj|jd�}W5QRXz|�|�d�W5QRXWn2tk
rt}z|�t|�d�W5d}~XYnX|�	|�
��dSrw)rrrr8rrzrprNr{r0r.)rr�r|rrrr}:s�z,ConditionTests.test_context_manager_no_yieldc	CsV|�t��$tj|jd�}tj||jd�}W5QRX|�|j|�|�|j|j�dSr)	rrrrrr8rr5r)rrr�rrr�test_explicit_lockHs
z!ConditionTests.test_explicit_lockc
Cs`|��}|�|j�|�t��8tj|jd�}|�t	��tj
||d�W5QRXW5QRXdSr)r
�
addCleanup�closerrrrrrW�
ValueErrorr8rrrr�test_ambiguous_loopsPsz#ConditionTests.test_ambiguous_loopsc	sHt������j���fdd�}��t����|��W5QRXdS)Nc
�s^tj�d�}|4IdH�6��tj��tj|��dd�IdHW5QRXW5QIdHRXdS)Nrg�?)�timeout)rr8rW�TimeoutErrorr�r�)Z	condition�rrrr�task_timeout\sz:ConditionTests.test_timeout_in_block.<locals>.task_timeout)rr7r�r�rrr+)rr�rr�r�test_timeout_in_blockXs
z$ConditionTests.test_timeout_in_block)r~rr�rrr r�r�r�r�r�r�r�r�r�r�r�r-rsr}r�r�r�r�rrrrr��s(	@
&
5%r�cs�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Z�ZS)�SemaphoreTestscst���|��|_dSrr
rrrrrhs
zSemaphoreTests.setUpc	Cspt��}|�t��tj|d�}W5QRX|�|j|�|�t��tj|jd�}W5QRX|�|j|j�dSr)	rrrrrr9rrr)rr�semrrrrlszSemaphoreTests.test_ctor_loopcCs(t�|j�t��}|�|j|j�dSr)rrrr9rr�rr�rrrr vszSemaphoreTests.test_ctor_noloopc	Cs8|�t��tjd|jd�}W5QRX|�|���dS)Nrr)rrrr9rr%r.r�rrr�test_initial_value_zero{sz&SemaphoreTests.test_initial_value_zeroc	Cs|�t��tj|jd�}W5QRX|�t|��d��|�t�	t|���|j�
|���|�t|��d��|�dt|�k�|�t�	t|���|j�
t���|�dt|�k�|�t�	t|���|j�
t���|�dt|�k�|�t�	t|���dS)Nrz[unlocked, value:1]>r$�waitersr�r�)rrrr9rr%r&r'r(r)r+r?rYr@rrr�rrrr-�szSemaphoreTests.test_reprc	s���t��tj�jd��W5QRX��d�j���t��tj��fdd��}W5QRX�j�|��}��	|���	��
����d�j��������
����d�j�dS)Nrr=c
3s,��t���EdHW5QR�SQRXdSrr!rr�rrr#�sz3SemaphoreTests.test_semaphore.<locals>.acquire_lockr)
rrrr9rrN�_valuer*r+r%r.r/r0r1rr�r�test_semaphore�s
zSemaphoreTests.test_semaphorecCs|�ttjd�dS)N���)rWr�rr9rrrr�test_semaphore_value�sz#SemaphoreTests.test_semaphore_valuec	s�|�t��tjd|jd��W5QRXg}|�|j������|�|j������|���	���fdd�}�fdd�}�fdd�}�fd	d
�}|j�
||��}|j�
||��}|j�
||��}t�|j�|�
dg|�|���	��|�
dt�j��|�
d
�j�|j�
||��}	������|�
d�j�t�|j�|�
d
�j�|�
dt|��|���	��|�
dt�j��|�
d
�j�|�|���|�|���|||	g}
dd�|
D�}|�dt|�����|j�tj|
��dS)NrIrc�s���IdH|�d�dSr<r>rA�r�rrrD�s
z'SemaphoreTests.test_acquire.<locals>.c1c�s���IdH|�d�dSrEr>rAr�rrrG�s
z'SemaphoreTests.test_acquire.<locals>.c2c�s���IdH|�d�dSrHr>rAr�rrrJ�s
z'SemaphoreTests.test_acquire.<locals>.c3c�s���IdH|�d�dS)N�Tr>rAr�rr�c4�s
z'SemaphoreTests.test_acquire.<locals>.c4r=rFrcSs g|]}|��r|��r|�qSr)rOrB��.0r�rrr�
<listcomp>�sz/SemaphoreTests.test_acquire.<locals>.<listcomp>)rrrr9rr%r+r?r0r.rKrLrMrNr`rYr�r/rOrBZgather)rrBrDrGrJr�rQrRrS�t4Z
race_tasksZ
done_tasksrr�rrT�sF
zSemaphoreTests.test_acquirec	Cs�|�t��tj|jd�}W5QRX|j�|���|j�|���}|j�|j	�|�
tj|jj|�|�|j
p�tdd�|j
D���dS)Nrcss|]}|��VqdSr�rO)r�r�rrr�	<genexpr>�sz5SemaphoreTests.test_acquire_cancel.<locals>.<genexpr>)rrrr9rr+r?rKrUrVrWrXr%rY�all)rr�r?rrrrZ�s��z"SemaphoreTests.test_acquire_cancelc	Cs�|�t��tjd|jd�}W5QRX|j�|���}|j�|���}|j�|���}|j�|���}t�|j�|�	�|�
�|�
�t�|j�tdd�||fD��}|�|d�|�
�|�
�t�|j�dS)Nr��valuercss|]}|��VqdSrr�r�rrrr�szCSemaphoreTests.test_acquire_cancel_before_awoken.<locals>.<genexpr>r=)
rrrr9rrKr?rLrMr/rV�sumrN)rr�rQrRrSr�Znum_donerrr�!test_acquire_cancel_before_awoken�s z0SemaphoreTests.test_acquire_cancel_before_awokenc	Cs�|�t��tjd|jd�}W5QRX|j�|���}|j�|���}t�|j�|�	�|�
�t�|j�|�|���dS)Nrr�)
rrrr9rrKr?rLrMr/rVr%r.)rr�rQrRrrr�test_acquire_hang
sz SemaphoreTests.test_acquire_hangc	Cs6|�t��tj|jd�}W5QRX|�t|j�dSr)rrrr:rrWr�r/r�rrrrqsz(SemaphoreTests.test_release_not_acquiredc	Cs\|�t��tj|jd�}W5QRX|j�|���|�|���|�	�|�
|���dSr)rrrr9rr+r?r%r.r/r0r�rrrrr"sz&SemaphoreTests.test_release_no_waitersc
s���t��*tjd�jd��tj��fdd��}W5QRX�j�|���J��������	d�j
��j�|���������W5QRXW5QRX��	d�j
�dS)NrFrc
3s,��t���EdHW5QR�SQRXdSrr!rr�rrr#/sz9SemaphoreTests.test_context_manager.<locals>.acquire_lockr=)rrrr9rr*r+r0r.rNr�r%r,rr�rrs+s"z#SemaphoreTests.test_context_managerc
Cs�|�t��tjd|jd�}W5QRXz|�|�d�W5QRXWn2tk
rv}z|�t|�d�W5d}~XYnX|�d|j	�dS)NrFrrxry)
rrrr9rrzrprNr{r�)rr�r|rrrr}=s�z,SemaphoreTests.test_context_manager_no_yield)r~rr�rrr r�r-r�r�rTrZr�r�rqrrrsr}r�rrrrr�fs
>
	r��__main__)Zunittestr�rerZtest.test_asynciorrLZSTR_RGX_REPR�compiler(rZTestCaser	r�r�r�r~�mainrrrr�<module>s*�
Lg