Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/test_importlib/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/test_importlib/__pycache__/test_locks.cpython-35.opt-2.pyc



���]i�@sddlmZejd�ZddlZddlZddlZddlZddl	m
Z
yddlZWnek
r�dZYnXddl	m
Z
edk	r�Gdd�d�Zd	d
�ej�D�Zejee
jde�\ZZn8iZGdd
�d
ej�ZGdd�dej�Zedk	r�Gdd�d�Zdd
�ej�D�Zejedede�\ZZn8iZGdd�dej�ZGdd�dej�ZGdd�d�Zejede�\ZZe
jdd��Zedkre�dS)�)�util�	importlib�N)�support)�
lock_testsc@sReZdZedd��ZdZdZdZdZdZ	dZ
dZdZdS)�ModuleLockAsRLockTestscCs
|jd�S)NZ	some_lock)�LockType)�cls�r
�//opt/alt/python35/lib64/python3.5/test_locks.py�<lambda>szModuleLockAsRLockTests.<lambda>N)
�__name__�
__module__�__qualname__�classmethodZlocktypeZtest__is_ownedZtest_try_acquireZtest_try_acquire_contendedZ	test_withZtest_timeoutZtest_release_save_unacquiredZ	test_reprZtest_locked_reprr
r
r
rrsrcCs%i|]\}}|jj|�qSr
)�
_bootstrap�_ModuleLock)�.0�kind�	splitinitr
r
r�
<dictcomp>&s	rrc@seZdZdS)�Frozen_ModuleLockAsRLockTestsN)r
rrr
r
r
rr0src@seZdZdS)�Source_ModuleLockAsRLockTestsN)r
rrr
r
r
rr3src@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�DeadlockAvoidanceTestscCsBy tj�|_tjd�Wntk
r=d|_YnXdS)Ng���ư>)�sys�getswitchinterval�old_switchinterval�setswitchinterval�AttributeError)�selfr
r
r�setUp:s

zDeadlockAvoidanceTests.setUpcCs#|jdk	rtj|j�dS)N)rrr)rr
r
r�tearDownAszDeadlockAvoidanceTests.tearDowncs�d��fdd�t��D����fdd�t��D��|rV�}n
�d}tj|��g��fdd������fdd	�}tj||�j��jt��|��S)
N�
cs%g|]}�jt|���qSr
)r�str)r�i)rr
r�
<listcomp>Gs	zFDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.<listcomp>cs,g|]"}�|�|d�f�qS)rr
)rr$)�NLOCKS�locksr
rr%Hs	rcs2y|j�Wn�jk
r)dSYnXdSdS)NFT)�acquire�
DeadlockError)�lock)rr
r�_acquirePs
	zDDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>._acquirecsk�j�\}}�|�}�j��|�}�j||f�|rW|j�|rg|j�dS)N)�pop�wait�append�release)�a�bZra�rb)r+�barrier�pairs�resultsr
r�fZs

z=DeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.f)�range�	threading�BarrierrZBunchZwait_for_finished�assertEqual�len)rZcreate_deadlockZNTHREADSr6r
)r&r+r3r'r4r5rr�run_deadlock_avoidance_testEs"	


z2DeadlockAvoidanceTests.run_deadlock_avoidance_testcCsU|jd�}|jd�}|j|d�|j|jd�t|�|�dS)NTFr)TF)TT)r<�countZassertGreaterEqualr:r;)rr5Znb_deadlocksr
r
r�
test_deadlockhsz$DeadlockAvoidanceTests.test_deadlockcCsK|jd�}|j|jd�d�|j|jd�t|��dS)NFTr)TF)TT)r<r:r=r;)rr5r
r
r�test_no_deadlockqsz'DeadlockAvoidanceTests.test_no_deadlockN)r
rrr r!r<r>r?r
r
r
rr8s
#	rcCs%i|]\}}|jj|�qSr
)r�_DeadlockError)rrrr
r
rrws	r)c@seZdZdS)�Frozen_DeadlockAvoidanceTestsN)r
rrr
r
r
rrA�srAc@seZdZdS)�Source_DeadlockAvoidanceTestsN)r
rrr
r
r
rrB�srBc@s:eZdZedd��Zdd�Zdd�ZdS)�
LifetimeTestscCs
|jjS)N)�initr)rr
r
r�	bootstrap�szLifetimeTests.bootstrapcCs�d}|j||jj�|jj|�}|j||jj�tj|�}~tj�|j||jj�|j	|��dS)NZxyzzy)
ZassertNotInrE�
_module_locks�_get_module_lockZassertIn�weakref�refr�
gc_collectZassertIsNone)r�namer*�wrr
r
r�test_lock_lifetime�s
z LifetimeTests.test_lock_lifetimecCs3tj�|jdt|jj�|jj�dS)Nr)rrJr:r;rErF)rr
r
r�test_all_locks�s
zLifetimeTests.test_all_locksN)r
rr�propertyrErMrNr
r
r
rrC�srCrDcCs tjtttttt�dS)N)rZrun_unittestrrrArB�Frozen_LifetimeTests�Source_LifetimeTestsr
r
r
r�	test_main�s	rR�__main__) �rZ	test_utilZimport_importlibrDr�timeZunittestrHZtestrr8�ImportErrorrr�itemsZ
LOCK_TYPESZ	test_bothZ
RLockTestsrrZTestCaserZDEADLOCK_ERRORSrArBrCrPrQZreap_threadsrRr
r
r
r
r�<module>sF
	?