Current File : //opt/imh-python/lib/python2.7/test/lock_tests.pyo
�
��Wc@sHdZddlZddlZddlmZmZddlZddlZddlm	Z
d�Zdefd��YZ
dejfd	��YZd
efd��YZdefd
��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdS(s/
Various tests for synchronization primitives.
i����N(tstart_new_threadt	get_ident(ttest_supportcCstjd�dS(Ng{�G�z�?(ttimetsleep(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyt_waitstBunchcBs5eZdZed�Zd�Zd�Zd�ZRS(s
    A bunch of threads.
    cs���_|�_g�_g�_|�_��fd�}y(x!t|�D]}t|d�qPWWnt�_�nXdS(s�
        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.
        csSt�}�jj|�z��Wd�jj|�x�jsMt�q:WXdS(N(Rtstartedtappendtfinishedt	_can_exitR(ttid(tftself(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttask!s	N((RtnRR	R
trangeRtTrue(R
RRtwait_before_exitRti((RR
sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyt__init__s				
		cCs*x#t|j�|jkr%t�qWdS(N(tlenRRR(R
((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pytwait_for_started1scCs*x#t|j�|jkr%t�qWdS(N(RR	RR(R
((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pytwait_for_finished5scCs
t|_dS(N(RR
(R
((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyt	do_finish9s(t__name__t
__module__t__doc__tFalseRRRR(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRs
		tBaseTestCasecBseZd�Zd�ZRS(cCstj�|_dS(N(tsupporttthreading_setupt_threads(R
((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pytsetUp>scCstj|j�tj�dS(N(Rtthreading_cleanupR t
reap_children(R
((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttearDownAs(RRR!R$(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR=s	t
BaseLockTestscBsVeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	s;
    Tests for both recursive and non-recursive locks.
    cCs|j�}~dS(N(tlocktype(R
tlock((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_constructorKscCs|j�}|j�~dS(N(R&tacquire(R
R'((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_acquire_destroyOs
cCs'|j�}|j�|j�~dS(N(R&R)trelease(R
R'((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_acquire_releaseTs

cCs0|j�}|j|jt��|j�dS(N(R&t
assertTrueR)RR+(R
R'((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_try_acquireZscs`|j���j�g���fd�}t|d�j�|j�d��j�dS(Ncs�j�jt��dS(N(RR)R((R'tresult(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRcsii(R&R)RRtassertFalseR+(R
R((R'R/sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_try_acquire_contended_s
cs�|j���j�d}�fd�}t||�}|j�t�|jt|j�d��j�|j	�|jt|j�|�dS(Nics�j��j�dS(N(R)R+((R'(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRms
i(
R&R)RRRtassertEqualRR	R+R(R
tNRtb((R'sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_acquire_contendedis



csq|j���fd�}d�fd�}|�t|d�j�|jt|t�t|d�j�dS(Ncs�j��j�dS(N(R)R+((R'(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR{s
cs&��|dk	r|�nWdQXdS(N(tNone(terr(R'(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyt_with~si(R&R6RRtassertRaisest	TypeError(R
RR8((R'sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyt	test_withyscs`|j���fd�}ttj��}t|d�j�|j|ttj���dS(Ncs�j��j�dS(N(R)R+((R'(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR�s
i(R&Rt	threadingt	enumerateRRR2(R
RR((R'sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_thread_leak�s
(RRRR(R*R,R.R1R5R;R>(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR%Fs					
		t	LockTestscBs eZdZd�Zd�ZRS(sn
    Tests for non-recursive, weak locks
    (which can be acquired and released from different threads).
    cs�|j��g���fd�}t|d�xt��dkrPt�q4Wt�|jt��d��j�xt��dkr�t�q{W|jt��d�dS(Ncs2�j��jd��j��jd�dS(N(R)RR6((R'tphase(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR�s


iii((R&RRRR2R+(R
R((R'R@sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_reacquire�s

csV|j���j��fd�}t|d�}|j��j��j�dS(Ncs�j�dS(N(R+((R'(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR�si(R&R)RRR+(R
RR4((R'sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_different_thread�s


(RRRRARB(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR?�s	t
RLockTestscBs2eZdZd�Zd�Zd�Zd�ZRS(s$
    Tests for recursive locks.
    cCsL|j�}|j�|j�|j�|j�|j�|j�dS(N(R&R)R+(R
R'((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRA�s




cCsr|j�}|jt|j�|j�|j�|j�|j�|j�|j�|jt|j�dS(N(R&R9tRuntimeErrorR+R)(R
R'((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_release_unacquired�s





csV|j���fd�}t|dt�}z|jt�j�Wd|j�XdS(Ncs�j�dS(N(R)((R'(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR�si(R&RRR9RDR+R(R
RR4((R'sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRB�scs�|j��|j�j���j�|j�j���j�|j�j��g���fd�}t|d�j�|j�d��j�|j�j���j�|j�j��dS(Ncs�j�j��dS(N(Rt	_is_owned((R'R/(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR�sii(R&R0RFR)R-RRR+(R
R((R'R/sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest__is_owned�s



(RRRRARERBRG(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRC�s
				t
EventTestscBs;eZdZd�Zd�Zd�Zd�Zd�ZRS(s"
    Tests for Event objects.
    cCs�|j�}|j|j��|j�|j|j��|j�|j|j��|j�|j|j��|j�|j|j��dS(N(t	eventtypeR0tis_settsetR-tclear(R
tevt((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_is_set�s



cs�d}g�g����fd�}t||�}|j�t�|jt��d��j�|j�|j�tg|�|j�tg|�dS(Nics*�j�j���j�j��dS(N(Rtwait((RMtresults1tresults2(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRsi(RRRR2RRKRR(R
RMR3RR4((RMRPRQsh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyt
_check_notifys


cCs>|j�}|j|�|j�|j�|j|�dS(N(RIRRRKRL(R
RM((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_notifys



cs�|j��g�g�d}���fd�}t||�j�|j�tg|�x7�D]/\}}|j|�|j|dk|�qdWg�g��j�t||�j�|j�tg|�x!�D]\}}|j|�q�WdS(NicsX�j�jd��tj�}�jd�}tj�}�j|||f�dS(Ngg�������?(RROR(tt1trtt2(RMRPRQ(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR s
g�������?(	RIRRR2RR0R-RKR(R
R3RRUtdt((RMRPRQsh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_timeouts"

cCs^|j�}|jj}|j�|jj}|j||�|jt|�t|��dS(N(RIt_Event__condt_Condition__lockt_reset_internal_lockstassertIsNottassertIsttype(R
RMtold_locktnew_lock((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_reset_internal_locks4s
(RRRRNRRRSRXRa(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRH�s				tConditionTestscBsDeZdZd�Zd�Zd�Zd�Zd�Zd�ZRS(s(
    Tests for condition variables.
    cCs�|j�}|j�|j�|j�|j�tj�}|j|�}|j�|j|jt��|j�|j|jt��|j|jt��|j�|�|j|jt��WdQXdS(N(tcondtypeR)R+R<tLockR0RR-(R
tcondR'((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_acquireBs






cCs#|j�}|jt|j�dS(N(RcR9RDRO(R
Re((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_unacquired_waitUscCs#|j�}|jt|j�dS(N(RcR9RDtnotify(R
Re((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_unacquired_notifyYscsd}g�g�d�����fd�}t||�}|j�t�|j�g��j��jd�t�d��j�xt��dkr�t�q�W|j�dgd�|j�g��j��jd�t�d��j�x't��t��dkr,t�qW|j�dgddgd�|j�dgd��j��j�t�d��j�xt��dkr�t�q�W|j�dgddgd�|j�dgddgd�|j	�dS(NiicsZ�j��j��j��j���j��j��j��j��dS(N(R)ROR+R((Ret	phase_numRPRQ(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRbs






iiii(
RRRR2R)RhR+Rt
notify_allR(R
ReR3RR4((ReRjRPRQsh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRR]sJ	






"


""cCs*|j�}|j|�|j|�dS(N(RcRR(R
Re((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRS�s
cs~|j��g�d}��fd�}t||�j�|jt��d�x$�D]}|j|dk|�qZWdS(NicsN�j�tj�}�jd�tj�}�j��j||�dS(Ng�������?(R)RROR+R(RTRV(Retresults(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR�s


g�������?(RcRRR2RR-(R
R3RRW((ReRlsh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRX�s
(	RRRRfRgRiRRRSRX(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRb=s				2	tBaseSemaphoreTestscBsVeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	sB
    Common tests for {bounded, unbounded} semaphore objects.
    cCs:|jt|jdd�|jt|jdtj�dS(Ntvaluei����(R9t
ValueErrortsemtypetsystmaxint(R
((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR(�scCs^|jd�}|j�|j�|jd�}|j�|j�|j�|j�dS(Nii(RpR)R+(R
tsem((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRf�s




cCs|j�}|j�~dS(N(RpR)(R
Rs((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR*�s
cs�|jd���j�d}g�g�d�����fd�}t|d�}|j�x't��t��dkr�t�qeW|j��dgd�d�xtd�D]}�j�q�Wx't��t��dkr�t�q�W|jt	���dgddgd�d�xtd�D]}�j�q7Wx't��t��d	krtt�qNW|jt	���dgddgddgd�|j
�jt���j�|j�dS(
Nii
ics2�j��j���j��j��dS(N(R)R((RjRPRQRs(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR�s


iii
ii(
RpR)RRRRR2RR+tsortedR0RR(R
R3RR4R((RjRPRQRssh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR5�s6

,7
cCsu|jd�}|j|jt��|j|jt��|j|jt��|j�|j|jt��dS(Ni(RpR-R)RR0R+(R
Rs((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR.�s
csp|jd���j�g���fd�}t|d�j�|jt��tgdtgd�dS(Nics0�j�jt���j�jt��dS(N(RR)R((RlRs(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR�siii(RpR)RRR2RtRR(R
R((RlRssh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR1�s
csm|j���j��fd�}t|d�}|j�t�|j|j��j�|j�dS(Ncs�j��j�dS(N(R)R+((Rs(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR�s
i(	RpR)RRRR0R	R+R(R
RR4((Rssh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyttest_default_value�s


cs��jd��d��fd�}|��j�jt���j��jt|t��j�jt���j�dS(Nicsc��W�j�jt���j���*�j�jt��|rS|�nWdQXWdQXdS(N(R-R)RR+R0(R7(R
Rs(sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR8s
(RpR6R-R)RR+R9R:(R
R8((R
Rssh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyR;s
(RRRR(RfR*R5R.R1RuR;(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRm�s		
		#		
	tSemaphoreTestscBseZdZd�ZRS(s)
    Tests for unbounded semaphores.
    cCs;|jd�}|j�|j�|j�|j�dS(Ni(RpR+R)(R
Rs((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyREs



(RRRRE(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRvstBoundedSemaphoreTestscBseZdZd�ZRS(s'
    Tests for bounded semaphores.
    cCsJ|j�}|jt|j�|j�|j�|jt|j�dS(N(RpR9RoR+R)(R
Rs((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRE(s


(RRRRE(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyRw#s(RRqRtthreadRRR<tunittestttestRRRtobjectRtTestCaseRR%R?RCRHRbRmRvRw(((sh/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/test/lock_tests.pyt<module>s"	+	Q$6Lio