Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/__pycache__/test_thread.cpython-34.pyc

�
g f] �@sKddlZddlZddlZddlmZejd�ZddlZddlZddl	Z	ddlm
Z
dZdZej
�Zdd�ZGd	d
�d
ej�ZGdd�de�ZGd
d�d�ZGdd�de�ZGdd�de
j�ZGdd�dej�Zdd�ZedkrGe�ndS)�N)�support�_thread)�
lock_tests�
�c	Cs'tjr#t�t|�WdQXndS)z2Helper function for printing out debugging output.N)r�verbose�_print_mutex�print)�arg�r�5/opt/alt/python34/lib64/python3.4/test/test_thread.py�
verbose_prints	r
c@seZdZdd�ZdS)�BasicThreadTestcCsYtj�|_|jj�tj�|_tj�|_d|_d|_d|_dS)Nr)	�thread�
allocate_lock�
done_mutex�acquire�
running_mutex�random_mutex�created�running�
next_ident)�selfrrr�setUps
		zBasicThreadTest.setUpN)�__name__�
__module__�__qualname__rrrrrrsrc@seZdZdd�Zdd�Zdd�Zdd�Zeje	j
dkd�dd
��Zdd�Zdd�Z
dS)�ThreadRunningTestsc
Csk|j�\|jd7_td|j�tj|j|jf�|jd7_|jd7_WdQXdS)N�zcreating task %s)rrr
r�start_new_thread�taskrr)rrrr�newtask%s
zThreadRunningTests.newtaskcCs�|j�tj�d}WdQXtd|t|d�f�tj|�td|�|j�B|jd8_|jt	kr�|jdkr�|j
j�nWdQXdS)Ng��@ztask %s will run for %susg��.Aztask %s donerr)r�randomr
�round�time�sleeprrr�NUMTASKSr�release)r�ident�delayrrrr -s


zThreadRunningTests.taskcCsFxtt�D]}|j�q
Wtd�|jj�td�dS)Nz waiting for tasks to complete...zall tasks done)�ranger&r!r
rr)r�irrr�test_starting_threads8s


z(ThreadRunningTests.test_starting_threadscCsC|jtj�dd�tjd�|jtj�dd�dS)Nrzinitial stack size is not 0zstack_size not reset to default)�assertEqualr�
stack_size)rrrr�test_stack_size@s
z"ThreadRunningTests.test_stack_size�nt�posixztest meant for nt and posixcCs$ytjd�Wn=tk
r/td�Yn"tjk
rP|jd�YnXd}xFdD]>}tj|�|jtj�|||�td|�q^Wxpd
D]h}td	|�d|_d|_xt	t
�D]}|j�q�Wtd
�|jj
�td�q�Wtjd�dS)Niz3caught expected ValueError setting stack_size(4096)z4platform does not support changing thread stack sizez&stack_size(%d) failed - should succeed��rzsuccessfully set stack_size(%d)ztrying stack_size = (%d)z!waiting for all tasks to completezall tasks done)r2r3r)r2r3)rr.�
ValueErrorr
�errorZskipTestr-rrr*r&r!rr)rZfail_msgZtssr+rrr�test_nt_and_posix_stack_sizeGs*



		

z/ThreadRunningTests.test_nt_and_posix_stack_sizecs�tj�}tj���j�g���fdd�}tj|f�x�sftjd�qPW|jtj�|d��j�g�t	j
|�fdd��}~x�s�tjd�q�W|jtj�|�dS)Ncs%�jd��j��j�dS)N)�appendrr'r)�mut�startedrrr ks

z,ThreadRunningTests.test__count.<locals>.taskg{�G�z�?rcs
�jd�S)N)r7)�_)�donerr�<lambda>ysz0ThreadRunningTests.test__count.<locals>.<lambda>)r�_countrrrr$r%r-r'�weakref�ref)rZorigr �wrr)r;r8r9r�test__countes 
	
	zThreadRunningTests.test__countc
s��fdd�}�fdd�}tj�}tj��tjd��c}|j�||_�j�tj|f��j�x#tj�|kr�tj	d�q�WWdQX|j
d|j��dS)Ncs�j�t�dS)N)r'�SyntaxErrorr)r9rrr �s
zCThreadRunningTests.test_save_exception_state_on_error.<locals>.taskcs0y
t�Wntk
rYnX�||�dS)N)r4)r�args)�
real_writerr�mywrite�s


zFThreadRunningTests.test_save_exception_state_on_error.<locals>.mywrite�stderrg{�G�z�?Z	Traceback)rr=rrZcaptured_output�writerrr$r%ZassertIn�getvalue)rr rE�crFr)rDr9r�"test_save_exception_state_on_errors		

z5ThreadRunningTests.test_save_exception_state_on_errorN)zntzposix)rrrr!r r,r/�unittest�skipIf�os�namer6rArJrrrrr#s'rc@s(eZdZdd�Zdd�ZdS)�BarriercCsA||_d|_tj�|_tj�|_|jj�dS)Nr)�num_threads�waitingrr�
checkin_mutex�checkout_mutexr)rrPrrr�__init__�s
		zBarrier.__init__cCs�|jj�|jd|_|j|jkrP|jd|_|jj�dS|jj�|jj�|jd|_|jdkr�|jj�dS|jj�dS)Nrr)rRrrQrPrSr')rrrr�enter�s




z
Barrier.enterN)rrrrTrUrrrrrO�srOc@s(eZdZdd�Zdd�ZdS)�BarrierTestcCsjtt�|_t|_x*tt�D]}tj|j|f�q%Wtd�|j	j
�td�dS)Nzwaiting for tasks to endz
tasks done)rOr&�barrr*rr�task2r
rr)rr+rrr�test_barrier�s	

zBarrierTest.test_barrierc
Cs�x�tt�D]�}|dkr(d}n |j�tj�d}WdQXtd|t|d�f�tj|�td||f�|jj	�td|�q
W|j
�#|jd8_|jdk}WdQX|r�|jj
�ndS)Nrg��@ztask %s will run for %susg��.Aztask %s entering %sztask %s leaving barrierr)r*�NUMTRIPSrr"r
r#r$r%rWrUrrrr')rr(r+r)ZfinishedrrrrX�s 	



zBarrierTest.task2N)rrrrYrXrrrrrV�s	rVc@seZdZejZdS)�	LockTestsN)rrrrrZlocktyperrrrr[�sr[c@s[eZdZdd�Zejejjd�d�e	j
dd���Zdd�Zd	S)
�TestForkInThreadcCstj�\|_|_dS)N)rM�pipe�read_fd�write_fd)rrrrr�szTestForkInThread.setUp�winz5This test is only appropriate for POSIX-like systems.csH�fdd�}tj|f��jtj�jd�dd�dS)Ncs�ytj�}Wntk
r1tjd�YnX|dkryz'tj�j�tj�jd�Wdtjd�Xntj�j�dS)NrrsOK)rM�fork�RuntimeError�_exit�closer^rGr_)�pid)rrr�thread1�s
z3TestForkInThread.test_forkinthread.<locals>.thread1�sOKzUnable to fork() in thread)rrr-rM�readr^)rrfr)rr�test_forkinthread�sz"TestForkInThread.test_forkinthreadcCsVytj|j�Wntk
r(YnXytj|j�Wntk
rQYnXdS)N)rMrdr^�OSErrorr_)rrrr�tearDown�s

zTestForkInThread.tearDownN)
rrrrrKrL�sys�platform�
startswithrZreap_threadsrirkrrrrr\�s
r\cCstjtttt�dS)N)rZrun_unittestrrVr[r\rrrr�	test_main�sro�__main__)rMrKr"Ztestr�
import_modulerr$rlr>rr&rZrrr
ZTestCaserrrOrVr[r\rorrrrr�<module>s*t$'