Your IP : 216.73.216.85


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



���]B �@s?ddlZddlZddlZddlmZejd�ZddlZddlZddl	Z	ddlm
Z
dZdZej
�Zdd�ZGd	d
�d
ej�ZGdd�de�ZGd
d�d�ZGdd�de�ZGdd�de
j�ZGdd�dej�Zedkr;ej�dS)�N)�support�_thread)�
lock_tests�
�c	Cs%tjr!t�t|�WdQRXdS)N)r�verbose�_print_mutex�print)�arg�r�0/opt/alt/python35/lib64/python3.5/test_thread.py�
verbose_prints	r
c@seZdZdd�ZdS)�BasicThreadTestcCsxtj�|_|jj�tj�|_tj�|_d|_d|_d|_t	j
�}|jt	j|�dS)Nr)
�thread�
allocate_lock�
done_mutex�acquire�
running_mutex�random_mutex�created�running�
next_identrZthreading_setupZ
addCleanupZthreading_cleanup)�self�keyrrr�setUps
			zBasicThreadTest.setUpN)�__name__�
__module__�__qualname__rrrrrrsrc@seZdZdd�Zdd�Zdd�Zdd�Zeje	j
dkd�dd
��Zdd�Zdd�Z
dS)�ThreadRunningTestsc
Csl|j�\|jd7_td|j�tj|j|jf�|jd7_|jd7_WdQRXdS)N�zcreating task %s)rrr
r�start_new_thread�taskrr)rrrr�newtask)s
zThreadRunningTests.newtaskcCs�|j�tj�d}WdQRXtd|t|d�f�tj|�td|�|j�?|jd8_|jt	kr�|jdkr�|j
j�WdQRXdS)Ng��@ztask %s will run for %susg��.Aztask %s donerr)r�randomr
�round�time�sleeprrr�NUMTASKSr�release)r�ident�delayrrrr!1s


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_threads<s


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_sizeDs
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)r3r4r)r3r4)rr/�
ValueErrorr
�errorZskipTestr.rrr+r'r"rr)rZfail_msgZtssr,rrr�test_nt_and_posix_stack_sizeKs*



		

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!os

z,ThreadRunningTests.test__count.<locals>.taskg{�G�z�?rcs
�jd�S)N)r8)�_)�donerr�<lambda>}sz0ThreadRunningTests.test__count.<locals>.<lambda>)r�_countrrr r%r&r.r(�weakref�ref)rZorigr!�wrr)r<r9r:r�test__countis 
	
	zThreadRunningTests.test__countc
s��fdd�}�fdd�}tj�}tj��tjd��c}|j�||_�j�tj|f��j�x#tj�|kr�tj	d�q�WWdQRX|j
d|j��dS)Ncs�j�t�dS)N)r(�SyntaxErrorr)r:rrr!�s
zCThreadRunningTests.test_save_exception_state_on_error.<locals>.taskcs0y
t�Wntk
rYnX�||�dS)N)r5)r�args)�
real_writerr�mywrite�s


zFThreadRunningTests.test_save_exception_state_on_error.<locals>.mywrite�stderrg{�G�z�?Z	Traceback)rr>rrZcaptured_output�writerr r%r&ZassertIn�getvalue)rr!rF�crGr)rEr:r�"test_save_exception_state_on_error�s		

z5ThreadRunningTests.test_save_exception_state_on_errorN)r1r2)rrrr"r!r-r0�unittest�skipIf�os�namer7rBrKrrrrr's'rc@s(eZdZdd�Zdd�ZdS)�BarriercCsA||_d|_tj�|_tj�|_|jj�dS)Nr)�num_threads�waitingrr�
checkin_mutex�checkout_mutexr)rrQrrr�__init__�s
		zBarrier.__init__cCs�|jj�|jd|_|j|jkrP|jd|_|jj�dS|jj�|jj�|jd|_|jdkr�|jj�dS|jj�dS)Nrr)rSrrRrQrTr()rrrr�enter�s




z
Barrier.enterN)rrrrUrVrrrrrP�srPc@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)rPr'�barrr+rr �task2r
rr)rr,rrr�test_barrier�s	

zBarrierTest.test_barriercCs�x�tt�D]�}|dkr(d}n!|j�tj�d}WdQRXtd|t|d�f�tj|�td||f�|jj	�td|�q
W|j
�#|jd8_|jdk}WdQRX|r�|jj
�dS)Nrg��@ztask %s will run for %susg��.Aztask %s entering %sztask %s leaving barrierr)r+�NUMTRIPSrr#r
r$r%r&rXrVrrrr()rr)r,r*�finishedrrrrY�s 	



zBarrierTest.task2N)rrrrZrYrrrrrW�s	rWc@seZdZejZdS)�	LockTestsN)rrrrrZlocktyperrrrr]�sr]c@s[eZdZdd�Zejejjd�d�e	j
dd���Zdd�Zd	S)
�TestForkInThreadcCstj�\|_|_dS)N)rN�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)rN�fork�RuntimeError�_exit�closer`rHra)�pid)rrr�thread1�s
z3TestForkInThread.test_forkinthread.<locals>.thread1�sOKzUnable to fork() in thread)rr r.rN�readr`)rrhr)rr�test_forkinthread�sz"TestForkInThread.test_forkinthreadcCsVytj|j�Wntk
r(YnXytj|j�Wntk
rQYnXdS)N)rNrfr`�OSErrorra)rrrr�tearDown�s

zTestForkInThread.tearDownN)
rrrrrLrM�sys�platform�
startswithrZreap_threadsrkrmrrrrr^�s
r^�__main__)rNrLr#Ztestr�
import_modulerr%rnr?rr'r[rrr
ZTestCaserrrPrWr]r^r�mainrrrr�<module>s(t$'