Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_thread.cpython-39.opt-2.pyc

a

��g�!�@s�ddlZddlZddlZddlmZddlZddlZddlZddlm	Z	dZ
dZdZe�
�Zdd�ZGd	d
�d
ej�ZGdd�de�ZGd
d�d�ZGdd�de�ZGdd�de	j�ZGdd�dej�Zedkr�e��dS)�N)�support)�
lock_tests�
�g{�G�z�?cCs6tjr2t�t|�Wd�n1s(0YdS�N)r�verbose�_print_mutex�print)�arg�r�,/usr/local/lib/python3.9/test/test_thread.py�
verbose_printsr
c@seZdZdd�ZdS)�BasicThreadTestcCsZt��|_|j��t��|_t��|_d|_d|_d|_t	�
�}|jt	jg|�R�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rsrc@sVeZdZdd�Zdd�Zdd�Zdd�Ze�e	j
d	vd
�dd��Zd
d�Zdd�Z
dS)�ThreadRunningTestscCst|j�Z|jd7_td|j�t�|j|jf�|jd7_|jd7_Wd�n1sf0YdS)N�zcreating task %s)rrr
r�start_new_thread�taskrr�rrrr�newtask)szThreadRunningTests.newtaskcCs�|j�t��d}Wd�n1s(0Ytd|t|d�f�t�|�td|�|j�<|jd8_|jt	kr�|jdkr�|j
��Wd�n1s�0YdS)N���@�task %s will run for %sus���.Aztask %s doner r)r�randomr
�round�time�sleeprrr�NUMTASKSr�release)r�ident�delayrrrr"1s*
zThreadRunningTests.taskcCs\t���@tt�D]}|��qtd�|j��td�Wd�n1sN0YdS)Nz waiting for tasks to complete...�all tasks done)r�wait_threads_exit�ranger,r$r
rr�r�irrr�test_starting_threads<s


z(ThreadRunningTests.test_starting_threadscCs2|�t��dd�t�d�|�t��dd�dS)Nrzinitial stack size is not 0zstack_size not reset to default)�assertEqualr�
stack_sizer#rrr�test_stack_sizeEs
z"ThreadRunningTests.test_stack_size)�nt�posixztest meant for nt and posixc	Cszt�d�Wn6ty(td�YntjyD|�d�Yn0d}dD]0}t�|�|�t��|||�td|�qNdD]t}td|�d	|_d	|_t	�
��@tt�D]}|�
�q�td
�|j��td�Wd�q�1s�0Yq�t�d	�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))r;r<ztrying stack_size = (%d)rz!waiting for all tasks to completer0)rr7�
ValueErrorr
�errorZskipTestr6rrrr1r2r,r$rr)rZfail_msgZtssr4rrr�test_nt_and_posix_stack_sizeLs,



(z/ThreadRunningTests.test_nt_and_posix_stack_sizecs�t��}t������g���fdd�}t����t�|d��sPt�t	�q@|�
t��|d����g�t�
|�fdd��}~�s�t�t	�t��q�|�
t��|�Wd�n1s�0YdS)Ncs��d�������dSr)�appendrr-r)�mut�startedrrr"rs
z,ThreadRunningTests.test__count.<locals>.taskrr cs
��d�Sr)r@)�_)�donerr�<lambda>��z0ThreadRunningTests.test__count.<locals>.<lambda>)r�_countrrrr1r!r*r+�
POLL_SLEEPr6r-�weakref�ref�
gc_collect)rZorigr"�wrr)rDrArBr�test__countks$


zThreadRunningTests.test__countc	s��fdd�}t���t����}t���,���t�|d����Wd�n1sX0Y|�t|j	j
�d�|�|j	j|�|�|j	j
d�|�|j	j�Wd�n1s�0YdS)Ncs���td��dS)N�task failed)r-r=r�rBrrr"�sz:ThreadRunningTests.test_unraisable_exception.<locals>.taskrrNz&Exception ignored in thread started by)rrrZcatch_unraisable_exceptionr1rr!r6�strZ
unraisable�	exc_valueZassertIs�object�err_msg�assertIsNotNone�
exc_traceback)rr"�cmrrOr�test_unraisable_exception�s

&
�z,ThreadRunningTests.test_unraisable_exceptionN)rrrr$r"r5r8�unittestZskipIf�os�namer?rMrWrrrrr's	
rc@seZdZdd�Zdd�ZdS)�BarriercCs.||_d|_t��|_t��|_|j��dSr)�num_threads�waitingrr�
checkin_mutex�checkout_mutexr)rr\rrr�__init__�s


zBarrier.__init__cCs�|j��|jd|_|j|jkr<|jd|_|j��dS|j��|j��|jd|_|jdkrt|j��dS|j��dS)Nr r)r^rr]r\r_r-r#rrr�enter�s





z
Barrier.enterN)rrrr`rarrrrr[�sr[c@seZdZdd�Zdd�ZdS)�BarrierTestcCstt���Xtt�|_t|_tt�D]}t�|j	|f�q"t
d�|j��t
d�Wd�n1sf0YdS)Nzwaiting for tasks to endz
tasks done)
rr1r[r,�barrr2rr!�task2r
rrr3rrr�test_barrier�s


zBarrierTest.test_barrierc	Cs�tt�D]�}|dkrd}n2|j�t��d}Wd�n1sB0Ytd|t|d�f�t�|�td||f�|j�	�td|�q|j
�(|jd8_|jdk}Wd�n1s�0Y|r�|j�
�dS)Nrr%r&r'ztask %s entering %sztask %s leaving barrierr )r2�NUMTRIPSrr(r
r)r*r+rcrarrrr-)rr.r4r/�finishedrrrrd�s"*�

(zBarrierTest.task2N)rrrrerdrrrrrb�s
rbc@seZdZejZdS)�	LockTestsN)rrrrrZlocktyperrrrrh�srhc@s<eZdZdd�Ze�eed�d�ej	dd���Z
dd�Zd	S)
�TestForkInThreadcCst��\|_|_dSr)rY�pipe�read_fd�write_fdr#rrrr�szTestForkInThread.setUp�forkzneed os.forkcs�d��fdd�}t���Ft�||j|jf�|�t�|jd�d�t�	|j�Wd�n1sd0Y|�
��tj�dd�dS)Nc	sFt����rdSz$t�|�t�|d�Wt�d�nt�d�0dS)N�OKr)rYrm�close�write�_exit)rkrl��pidrr�fork_thread�s
z7TestForkInThread.test_forkinthread.<locals>.fork_thread�rnr)�exitcode)rr1rr!rkrlr6rY�readrorTZwait_process)rrtrrrr�test_forkinthread�s
*
z"TestForkInThread.test_forkinthreadcCsLzt�|j�Wnty"Yn0zt�|j�WntyFYn0dSr)rYrork�OSErrorrlr#rrr�tearDown�szTestForkInThread.tearDownN)rrrrrXZ
skipUnless�hasattrrYrZreap_threadsrxrzrrrrri�s
ri�__main__)rYrXr(�testr�_threadrr*rIrr,rfrHrrr
ZTestCaserrr[rbrhrir�mainrrrr�<module>s(u%-

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists