Your IP : 216.73.216.213
�
f f� � @ s� d Z d d l a d d l Z d d l Z d d l Z d d l Z d d l m Z d a Gd d � d e j
� Z Gd d � d e j
� Z Gd d � d e j
� Z
d d
d � Z e d k r� e � n d S)
z�Generic thread tests.
Meant to be used by dummy_thread and thread. To allow for different modules
to be used, test_main() can be called with the module to use as the thread
implementation as its sole argument.
� N)�supportc @ s� e Z d Z d Z d d � Z d d � Z d d � Z d d � Z d
d � Z d d
� Z d d � Z
d d � Z d d � Z d S)� LockTestszTest lock objects.c C s t j � | _ d S)N)�_thread�
allocate_lock�lock)�self� r �;/opt/alt/python34/lib64/python3.4/test/test_dummy_thread.py�setUp s zLockTests.setUpc C s | j | j j � d � d S)Nz(Lock object is not initialized unlocked.)�
assertTruer �locked)r r r r �
test_initlock s zLockTests.test_initlockc C s8 | j j � | j j � | j | j j � d � d S)Nz%Lock object did not release properly.)r �acquire�releaser r )r r r r �test_release s
zLockTests.test_releasec C s | j t | j j � d S)N)�assertRaises�RuntimeErrorr r )r r r r �test_improper_release% s zLockTests.test_improper_releasec C s | j | j j d � d � d S)Nr z)Conditional acquiring of the lock failed.)r r r )r r r r �test_cond_acquire_success) s z#LockTests.test_cond_acquire_successc C s1 | j j d � | j | j j d � d � d S)Nr z=Conditional acquiring of a locked lock incorrectly succeeded.)r r r )r r r r �test_cond_acquire_fail. s z LockTests.test_cond_acquire_failc C s* | j j � | j | j j � d � d S)NzUncondional locking failed.)r r r r )r r r r �test_uncond_acquire_success5 s
z%LockTests.test_uncond_acquire_successc C sB | j | j j d � d k d � | j | j j � d k � d S)N� Tz*Unconditional locking did not return True.)r r r )r r r r �test_uncond_acquire_return_val; s z(LockTests.test_uncond_acquire_return_valc C s� d d � } | j j � t t j � � } t j | | j t f � t j re t � t d t � n | j j � t t j � � } t j r� t d � n | j
| | t k d � d S)Nc S s t j | � | j � d S)z:Hold on to lock for a set amount of time before unlocking.N)�time�sleepr )Z to_unlock�delayr r r �delay_unlockC s
z<LockTests.test_uncond_acquire_blocking.<locals>.delay_unlockz@*** Waiting for thread to release the lock (approx. %s sec.) ***�donez+Blocking by unconditional acquiring failed.)r r �intr r �start_new_thread�DELAYr �verbose�printr )r r Z
start_timeZend_timer r r �test_uncond_acquire_blockingA s
z&LockTests.test_uncond_acquire_blockingN)
�__name__�
__module__�__qualname__�__doc__r
r
r r r r r r r# r r r r r s r c @ sR e Z d Z d Z d d � Z d d � Z d d � Z d d � Z d
d � Z d S)
� MiscTestszMiscellaneous tests.c C s | j t t j � d S)N)r �
SystemExitr �exit)r r r r � test_exitY s zMiscTests.test_exitc C s9 | j t j � t d � | j t j � d k d � d S)Nz*_thread.get_ident() returned a non-integerr z_thread.get_ident() returned 0)�assertIsInstancer � get_identr r )r r r r �
test_ident] s zMiscTests.test_identc C s | j t j � t j d � d S)NzR_thread.LockType is not an instance of what is returned by _thread.allocate_lock())r, r r �LockType)r r r r �
test_LockTyped s zMiscTests.test_LockTypec C s, d d � } | j t t j | t � � d S)Nc S s t j � d S)N)r �interrupt_mainr r r r �call_interruptm s z5MiscTests.test_interrupt_main.<locals>.call_interrupt)r �KeyboardInterruptr r �tuple)r r2 r r r �test_interrupt_mainj s zMiscTests.test_interrupt_mainc C s | j t t j � d S)N)r r3 r r1 )r r r r �test_interrupt_in_mainr s z MiscTests.test_interrupt_in_mainN) r$ r% r&