Your IP : 216.73.217.129


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



���]�m�@s[ddlZddlZddlmZmZddlZddlZddlmZdd�Z	Gdd�de
�ZGdd	�d	ej�Z
Gd
d�de
�ZGdd
�d
e�ZGdd�de�ZGdd�de
�ZGdd�de
�ZGdd�de
�ZGdd�de�ZGdd�de�ZGdd�de
�ZdS)�N)�start_new_thread�TIMEOUT_MAX)�supportcCstjd�dS)Ng{�G�z�?)�time�sleep�rr�//opt/alt/python35/lib64/python3.5/lock_tests.py�_waitsr	c@sCeZdZddd�Zdd�Zdd�Zdd	�Zd
S)�BunchFc
s���_|�_g�_g�_|�_��fdd�}y(x!t|�D]}t|f�qSWWnd�_�YnXdS)NcsVtj�}�jj|�z��Wd�jj|�x�jsPt�q=WXdS)N)�	threading�	get_ident�started�append�finished�	_can_exitr	)�tid)�f�selfrr�task!szBunch.__init__.<locals>.taskT)r�nr
rr�ranger)rrrZwait_before_exitr�ir)rrr�__init__s				
		zBunch.__init__cCs*x#t|j�|jkr%t�qWdS)N)�lenr
rr	)rrrr�wait_for_started1szBunch.wait_for_startedcCs*x#t|j�|jkr%t�qWdS)N)rrrr	)rrrr�wait_for_finished5szBunch.wait_for_finishedcCs
d|_dS)NT)r)rrrr�	do_finish9szBunch.do_finishN)�__name__�
__module__�__qualname__rrrrrrrrr
sr
c@s4eZdZdd�Zdd�Zdd�ZdS)�BaseTestCasecCstj�|_dS)N)rZthreading_setup�_threads)rrrr�setUp>szBaseTestCase.setUpcCstj|j�tj�dS)N)rZthreading_cleanupr!Z
reap_children)rrrr�tearDownAszBaseTestCase.tearDowncCs,|j||d�|j||d�dS)Ng333333�?g$@)ZassertGreaterEqual�
assertLess)r�actualZexpectedrrr�
assertTimeoutEszBaseTestCase.assertTimeoutN)rrrr"r#r&rrrrr =sr c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�
BaseLockTestscCs|j�}~dS)N)�locktype)r�lockrrr�test_constructorSszBaseLockTests.test_constructorcCs)|j�}|jt|�d�~dS)Nz<unlocked .* object (.*)?at .*>)r(�assertRegex�repr)rr)rrr�	test_reprWszBaseLockTests.test_reprcCs3|j�}|j�|jt|�d�~dS)Nz<locked .* object (.*)?at .*>)r(�acquirer+r,)rr)rrr�test_locked_repr\s
zBaseLockTests.test_locked_reprcCs|j�}|j�~dS)N)r(r.)rr)rrr�test_acquire_destroybs
z"BaseLockTests.test_acquire_destroycCs'|j�}|j�|j�~dS)N)r(r.�release)rr)rrr�test_acquire_releasegs

z"BaseLockTests.test_acquire_releasecCs0|j�}|j|jd��|j�dS)NF)r(�
assertTruer.r1)rr)rrr�test_try_acquiremszBaseLockTests.test_try_acquirecsc|j���j�g���fdd�}t|d�j�|j�d��j�dS)Ncs�j�jd��dS)NF)rr.r)r)�resultrrrvsz3BaseLockTests.test_try_acquire_contended.<locals>.f�r)r(r.r
r�assertFalser1)rrr)r)r5r�test_try_acquire_contendedrs
z(BaseLockTests.test_try_acquire_contendedcs�|j���j�d}�fdd�}t||�}|j�t�|jt|j�d��j�|j	�|jt|j�|�dS)N�cs�j��j�dS)N)r.r1r)r)rrr�s
z/BaseLockTests.test_acquire_contended.<locals>.fr)
r(r.r
rr	�assertEqualrrr1r)r�Nr�br)r)r�test_acquire_contended|s



z$BaseLockTests.test_acquire_contendedcsw|j���fdd�}d�fdd�}|�t|d�j�|jt|t�t|d�j�dS)Ncs�j��j�dS)N)r.r1r)r)rrr�s
z"BaseLockTests.test_with.<locals>.fc	s$��|dk	r|�WdQRXdS)Nr)�err)r)rr�_with�sz&BaseLockTests.test_with.<locals>._withr6)r(r
r�assertRaises�	TypeError)rrr?r)r)r�	test_with�szBaseLockTests.test_withcs�|j���fdd�}ttj��}t|d�j�ttj��|kr�tjd�|j|ttj���dS)Ncs�j��j�dS)N)r.r1r)r)rrr�s
z)BaseLockTests.test_thread_leak.<locals>.f�g�������?)	r(rr�	enumerater
rrrr:)rrrr)r)r�test_thread_leak�s
zBaseLockTests.test_thread_leakcs*|j��|jt�jdd�|jt�jdd
�|jt�jdd�|jt�jdtd��jdt��j�tj�}|j�jdd��tj�}|j	||d�g���fdd�}t
|d�j�|j�d�|j
�dd	�dS)Nrr6�timeout�dg}Ô%�I�Tr9csFtj�}�j�jdd��tj�}�j||�dS)NrFg�?)rrr.)�t1�t2)r)�resultsrrr�sz%BaseLockTests.test_timeout.<locals>.fg�?i����)r(r@�
ValueErrorr.�
OverflowErrorrr1rr3r$r
rr7r&)rrHrIrr)r)rJr�test_timeout�s 
zBaseLockTests.test_timeoutN)rrrr*r-r/r0r2r4r8r=rBrErMrrrrr'Ns
r'c@s4eZdZdd�Zdd�Zdd�ZdS)�	LockTestscs�|j��g���fdd�}t|f�xt��dkrSt�q7Wt�|jt��d��j�xt��dkr�t�q~W|jt��d�dS)Ncs2�j��jd��j��jd�dS)N)r.rr)r)�phaserrr�s


z#LockTests.test_reacquire.<locals>.frr6�)r(rrr	r:r1)rrr)r)rOr�test_reacquire�s

zLockTests.test_reacquirecsY|j���j��fdd�}t|d�}|j��j��j�dS)Ncs�j�dS)N)r1r)r)rrr�sz*LockTests.test_different_thread.<locals>.fr6)r(r.r
rr1)rrr<r)r)r�test_different_thread�s


zLockTests.test_different_threadcCsi|j�}|j�|j|jdd��|j�|j|j��|j|jdd��dS)NrFg{�G�z�?�blockingF)r(r.r7r1�lockedr3)rr)rrr�test_state_after_timeout�s

z"LockTests.test_state_after_timeoutN)rrrrQrRrUrrrrrN�srNc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
RLockTestscCsL|j�}|j�|j�|j�|j�|j�|j�dS)N)r(r.r1)rr)rrrrQ�s




zRLockTests.test_reacquirecCsr|j�}|jt|j�|j�|j�|j�|j�|j�|j�|jt|j�dS)N)r(r@�RuntimeErrorr1r.)rr)rrr�test_release_unacquireds





z"RLockTests.test_release_unacquiredcCsr|j�}|jt|j�|j�|j�|j�|j�|j�|j�|jt|j�dS)N)r(r@rW�
_release_saver.r1)rr)rrr�test_release_save_unacquireds





z'RLockTests.test_release_save_unacquiredc
sY|j���fdd�}t|dd�}z|jt�j�Wd|j�XdS)Ncs�j�dS)N)r.r)r)rrr sz+RLockTests.test_different_thread.<locals>.fr6T)r(r
r@rWr1r)rrr<r)r)rrRsz RLockTests.test_different_threadcs�|j��|j�j���j�|j�j���j�|j�j��g���fdd�}t|d�j�|j�d��j�|j�j���j�|j�j��dS)Ncs�j�j��dS)N)r�	_is_ownedr)r)r5rrr0sz$RLockTests.test__is_owned.<locals>.fr6r)r(r7r[r.r3r
rr1)rrr)r)r5r�test__is_owned(s



zRLockTests.test__is_ownedN)rrrrQrXrZrRr\rrrrrV�s
	rVc@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�
EventTestscCs�|j�}|j|j��|j�|j|j��|j�|j|j��|j�|j|j��|j�|j|j��dS)N)�	eventtyper7�is_set�setr3�clear)r�evtrrr�test_is_set?s



zEventTests.test_is_setcs�d}g�g����fdd�}t||�}|j�t�|jt��d��j�|j�|j�dg|�|j�dg|�dS)Nr9cs*�j�j���j�j��dS)N)r�waitr)rb�results1�results2rrrPsz#EventTests._check_notify.<locals>.frT)r
rr	r:rr`r)rrbr;rr<r)rbrerfr�
_check_notifyKs


zEventTests._check_notifycCs>|j�}|j|�|j�|j�|j|�dS)N)r^rgr`ra)rrbrrr�test_notify\s



zEventTests.test_notifycs�|j��g�g�d}���fdd�}t||�j�|j�dg|�x1�D])\}}|j|�|j|d�qgWg�g��j�t||�j�|j�dg|�x!�D]\}}|j|�q�WdS)Nr9csX�j�jd��tj�}�jd�}tj�}�j|||f�dS)Ngg�?)rrdr)rH�rrI)rbrerfrrris
z"EventTests.test_timeout.<locals>.fFg�?T)r^r
rr:r7r&r`r3)rr;rri�dtr)rbrerfrrMds"

zEventTests.test_timeoutcs�|j��g�d}��fdd�}t||�}|j�tjd��j��j�|j�|j�dg|�dS)Nr9cs�j�jd��dS)Nr6)rrdr)rbrJrrr�sz(EventTests.test_set_and_clear.<locals>.fg�?T)	r^r
rrrr`rarr:)rr;rr<r)rbrJr�test_set_and_clear}s




zEventTests.test_set_and_clearcCsn|j�}|j�|j|jjd��WdQRX|j�|j�|j|jjd��WdQRXdS)NF)r^�_condr7r.�_reset_internal_locks)rrbrrr�test_reset_internal_locks�s
 

z$EventTests.test_reset_internal_locksN)	rrrrcrgrhrMrkrnrrrrr]:sr]c@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�ConditionTestsc
Cs�|j�}|j�|j�|j�|j�tj�}|j|�}|j�|j|jd��|j�|j|jd��|j|jd��|j�|�|j|jd��WdQRXdS)NF)�condtyper.r1r�Lockr7r3)r�condr)rrr�test_acquire�s






zConditionTests.test_acquirecCs#|j�}|jt|j�dS)N)rpr@rWrd)rrrrrr�test_unacquired_wait�sz#ConditionTests.test_unacquired_waitcCs#|j�}|jt|j�dS)N)rpr@rW�notify)rrrrrr�test_unacquired_notify�sz%ConditionTests.test_unacquired_notifycsrd}g�g�g�d������fdd�}t||�}|j�xt��dkrtt�qXW�j�|j�g��j��jd�t�d��j�xt��dkr�t�q�W|j�d
gd�|j�g�xt��dkr#t�qW�j��jd�t�d��j�x't��t��d	kr{t�qUW|j�dgddgd�|j�d
gd�xt��dkr�t�q�W�j��j	�t�d��j�xt��dkrt�qW|j�dgddgd�|j�dgddgd�|j
�dS)Nr9rcs��j��j���j�}�j��j|�f��j��j���j�}�j��j|�f�dS)N)r.rrdr1)r5)rr�	phase_num�readyrerfrrr�s





z'ConditionTests._check_notify.<locals>.f�r6TrP�)Tr6)Tr6)TrP)TrP)Tr6)TrP)TrP)Try)r
rrr	rar:r.rur1�
notify_allr)rrrr;rr<r)rrrwrxrerfrrg�sX







"


""zConditionTests._check_notifycCs*|j�}|j|�|j|�dS)N)rprg)rrrrrrrhs
zConditionTests.test_notifycs�|j��g�d}��fdd�}t||�j�|jt��|�x1�D])\}}|j|d�|j|�q]WdS)Nr9csV�j�tj�}�jd�}tj�}�j��j|||f�dS)Ng�?)r.rrdr1r)rHr5rI)rrrJrrrs

z&ConditionTests.test_timeout.<locals>.fg�?)rpr
rr:rr&r7)rr;rrjr5r)rrrJrrMszConditionTests.test_timeoutc
s��j��d����fdd�}t|d�}|j�xCtd�D]5}tjd����d7��j�WdQRXqPW|j�dS)NrcsJ��=�j�fdd��}�j|��j�d�WdQRXdS)Ncs
�dkS)N�rr)�staterr�<lambda>"sz8ConditionTests.test_waitfor.<locals>.f.<locals>.<lambda>r|)�wait_forr3r:)r5)rrrr}rrr s
z&ConditionTests.test_waitfor.<locals>.fr6r|g{�G�z�?)rpr
rrrrrur)rrr<rr)rrrr}r�test_waitfors


zConditionTests.test_waitforc
s��j��d�g�����fdd�}t|d�}|j�xCtd�D]5}tjd����d7��j�WdQRXqYW|j��jt	��d�dS)Nrcsy��ltj�}�j�fdd�dd�}tj�|}�j|��j|d��jd�WdQRXdS)Ncs
�dkS)Nr|rr)r}rrr~5sz@ConditionTests.test_waitfor_timeout.<locals>.f.<locals>.<lambda>rFg�������?)rrr7r&r)rjr5)rrrr}�successrrr2s!
z.ConditionTests.test_waitfor_timeout.<locals>.fr6ryg{�G�z�?)
rpr
rrrrrurr:r)rrr<rr)rrrr}r�r�test_waitfor_timeout.s



z#ConditionTests.test_waitfor_timeoutN)rrrrsrtrvrgrhrMr�r�rrrrro�sJroc@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�BaseSemaphoreTestscCs:|jt|jdd�|jt|jdtj�dS)N�valuer6���)r@rK�semtype�sys�maxsize)rrrrr*Ksz#BaseSemaphoreTests.test_constructorcCs^|jd�}|j�|j�|jd�}|j�|j�|j�|j�dS)Nr6rP)r�r.r1)r�semrrrrsOs




zBaseSemaphoreTests.test_acquirecCs|j�}|j�~dS)N)r�r.)rr�rrrr0Ys
z'BaseSemaphoreTests.test_acquire_destroycs�|jd���j�d}g�g�d�����fdd�}t|d�}|j�x't��t��dkr�t�qhW|j��dgd�d�xtd�D]}�j�q�Wx't��t��dkr�t�q�W|jt	���dgddgd�d	�xtd�D]}�j�q:Wx't��t��d
krwt�qQW|jt	���dgddgdd	gd�|j
�jd���j�|j�dS)N��
rcs2�j��j���j��j��dS)N)r.rr)rwrerfr�rrres


z4BaseSemaphoreTests.test_acquire_contended.<locals>.f�r6�
rP�F)r�r.r
rrr	r:rr1�sortedr7r)rr;rr<rr)rwrerfr�rr=^s6

,7
z)BaseSemaphoreTests.test_acquire_contendedcCsu|jd�}|j|jd��|j|jd��|j|jd��|j�|j|jd��dS)NrPF)r�r3r.r7r1)rr�rrrr4�s
z#BaseSemaphoreTests.test_try_acquirecss|jd���j�g���fdd�}t|d�j�|jt��dgddgd�dS)	Nr|cs0�j�jd���j�jd��dS)NF)rr.r)rJr�rrr�sz8BaseSemaphoreTests.test_try_acquire_contended.<locals>.fr9Fr�Try)r�r.r
rr:r�)rrr)rJr�rr8�s
z-BaseSemaphoreTests.test_try_acquire_contendedcCs�|jd�}|jt|jddd�|j|jdd��|j|jdd��|j|jdd��|j�|j|jdd��tj�}|j|jdd��tj�|}|j|d�dS)NrPFrFg�?g{�G�zt?g�?)	r�r@rKr.r3r7r1rr&)rr��trjrrr�test_acquire_timeout�s
z'BaseSemaphoreTests.test_acquire_timeoutcsp|j���j��fdd�}t|d�}|j�t�|j|j��j�|j�dS)Ncs�j��j�dS)N)r.r1r)r�rrr�s
z0BaseSemaphoreTests.test_default_value.<locals>.fr6)	r�r.r
rr	r7rr1r)rrr<r)r�r�test_default_value�s


z%BaseSemaphoreTests.test_default_valuecs��jd��d��fdd�}|��j�jd���j��jt|t��j�jd���j�dS)NrPcsb��U�j�jd���j���'�j�jd��|rP|�WdQRXWdQRXdS)NF)r3r.r1r7)r>)rr�rrr?�s
z+BaseSemaphoreTests.test_with.<locals>._withF)r�r3r.r1r@rA)rr?r)rr�rrB�s
zBaseSemaphoreTests.test_withN)rrrr*rsr0r=r4r8r�r�rBrrrrr�Fs
#

r�c@seZdZdd�ZdS)�SemaphoreTestscCs;|jd�}|j�|j�|j�|j�dS)Nr6)r�r1r.)rr�rrrrX�s



z&SemaphoreTests.test_release_unacquiredN)rrrrXrrrrr��sr�c@seZdZdd�ZdS)�BoundedSemaphoreTestscCsJ|j�}|jt|j�|j�|j�|jt|j�dS)N)r�r@rKr1r.)rr�rrrrX�s


z-BoundedSemaphoreTests.test_release_unacquiredN)rrrrXrrrrr��sr�c@s�eZdZdZdZdd�Zdd�Zdd�Zd	d
�Zddd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd S)!�BarrierTestsr9g@cCs"|j|jd|j�|_dS)NrF)�barriertyper;�defaultTimeout�barrier)rrrrr"�szBarrierTests.setUpcCs|jj�dS)N)r��abort)rrrrr#�szBarrierTests.tearDowncCs+t||jd�}|�|j�dS)Nr6)r
r;r)rrr<rrr�run_threads�szBarrierTests.run_threadscCs�|jj}|j||j�x�t|�D]�}|djd�|jt|d�||�|jj�|djd�|jt|d�|d|�|jj�q,W|j|jjd�|j	|jj
�dS)NrTr6)r��partiesr:r;rrrrd�	n_waitingr7�broken)rrJr�mrrrr�	multipass�s
"zBarrierTests.multipassr6cs5ggg����fdd�}�j|�dS)Ncs�j���dS)N)r�r)�passesrJrrrrsz$BarrierTests.test_barrier.<locals>.f)r�)rr�rr)r�rJrr�test_barrier�szBarrierTests.test_barriercCs
|jd�S)Nr�)r�)rrrr�test_barrier_10szBarrierTests.test_barrier_10csQg���fdd�}�j|��jt��tt�j���dS)Ncs �jj�}�j|�dS)N)r�rdr)ri)rJrrrrsz(BarrierTests.test_wait_return.<locals>.f)r�r:�sumrr;)rrr)rJrr�test_wait_returns
zBarrierTests.test_wait_returncsVg��fdd�}�j�j|�����fdd�}�j|�dS)Ncs�jd�dS)NT)rr)rJrr�actionsz(BarrierTests.test_action.<locals>.actioncs$�j��jt��d�dS)Nr6)rdr:rr)r�rJrrrrs
z#BarrierTests.test_action.<locals>.f)r�r;r�)rr�rr)r�rJrr�test_actions
zBarrierTests.test_actioncs{g�g����fdd�}�j|��jt��d��jt���jd��j�jj�dS)Ncs�yF�jj�}|�jdkr+t��jj��jd�Wn@tjk
rj�jd�Yntk
r��jj�YnXdS)NrPT)r�rdr;rWrr�BrokenBarrierErrorr�)r)rerfrrrr+s


z"BarrierTests.test_abort.<locals>.frr6)r�r:rr;r3r�r�)rrr)rerfrr�
test_abort%s

zBarrierTests.test_abortcs�g�g�g�����fdd�}�j|��jt��d��jt���jd��jt���j�dS)Ncs��jj�}|�jdkr_x*�jj�jdkrNtjd�q%W�jj�nCy�jj��jd�Wn"tj	k
r��jd�YnX�jj��jd�dS)NrPr6g����MbP?T)
r�rdr;r�rr�resetrrr�)r)rerf�results3rrrrDs

z"BarrierTests.test_reset.<locals>.frr6)r�r:rr;)rrr)rerfr�rr�
test_reset=s
zBarrierTests.test_resetcs�g�g�g��j�j�������fdd�}�j|��jt��d��jt���jd��jt���j�dS)Ncs�yF�jj�}|�jdkr+t��jj��jd�Wn@tjk
rj�jd�Yntk
r��jj�YnX�j��jdkr��jj��j��jj��jd�dS)NrPT)	r�rdr;rWrrr�r�r�)r)�barrier2rerfr�rrrrcs 





z,BarrierTests.test_abort_and_reset.<locals>.frr6)r�r;r�r:r)rrr)r�rerfr�rr�test_abort_and_reset[s
z!BarrierTests.test_abort_and_resetcs#�fdd�}�j|�dS)NcsO�jj�}|�jdkr/tjd��jtj�jjd�dS)NrPg�?g�?)r�rdr;rrr@rr�)r)rrrr�s

z$BarrierTests.test_timeout.<locals>.f)r�)rrr)rrrM}szBarrierTests.test_timeoutcs>�j�jdd����fdd�}�j|�dS)NrFg333333�?csF�j�}|�jdkr,tjd��jtj�j�dS)NrPg�?)rdr;rrr@rr�)r)r�rrrr�s
z,BarrierTests.test_default_timeout.<locals>.f)r�r;r�)rrr)r�rr�test_default_timeout�sz!BarrierTests.test_default_timeoutcCs'|jd�}|j�|j�dS)Nr6)r�rd)rr<rrr�test_single_thread�s
zBarrierTests.test_single_threadN)rrrr;r�r"r#r�r�r�r�r�r�r�r�r�rMr�r�rrrrr��s 
	"r�)r�r�_threadrrrZunittestZtestrr	�objectr
ZTestCaser r'rNrVr]ror�r�r�r�rrrr�<module>s"+|.B]�|