HEX
Server: Apache
System: Linux opal14.opalstack.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User: curbgloabal_opal (1234)
PHP: 8.1.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib64/python3.6/test/__pycache__/test_thread.cpython-36.pyc
3


 \�!�@s�ddlZddlZddlZddlmZejd�ZddlZddlZddl	Z	ddlm
Z
dZdZdZ
ej�Zdd	�ZGd
d�dej�ZGdd
�d
e�ZGdd�d�ZGdd�de�ZGdd�de
j�ZGdd�dej�Zedkr�ej�dS)�N)�support�_thread)�
lock_tests�
�g{�G�z�?c	Cs"tjrt�t|�WdQRXdS)z2Helper function for printing out debugging output.N)r�verbose�_print_mutex�print)�arg�r�#/usr/lib64/python3.6/test_thread.py�
verbose_printsr
c@seZdZdd�ZdS)�BasicThreadTestcCsXtj�|_|jj�tj�|_tj�|_d|_d|_d|_t	j
�}|jt	jf|��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�Zeje	j
dkd�dd
��Zdd�Zdd�Z
dS)�ThreadRunningTestsc
Cs`|j�P|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�2|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!2s
zThreadRunningTests.taskc	CsLtj��:xtt�D]}|j�qWtd�|jj�td�WdQRXdS)Nz waiting for tasks to complete...zall tasks done)r�wait_threads_exit�ranger'r"r
rr)r�irrr�test_starting_threads=s

z(ThreadRunningTests.test_starting_threadscCs2|jtj�dd�tjd�|jtj�dd�dS)Nrzinitial stack size is not 0zstack_size not reset to default)�assertEqualr�
stack_size)rrrr�test_stack_sizeFs
z"ThreadRunningTests.test_stack_size�nt�posixztest meant for nt and posixcCsytjd�Wn:tk
r*td�Yn tjk
rH|jd�YnXd}x8dD]0}tj|�|jtj�|||�td|�qTWxld
D]d}td	|�d|_d|_t	j
��:xtt�D]}|j
�q�Wtd
�|jj�td�WdQRXq�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)r4r5r)r4r5)rr0�
ValueErrorr
�errorZskipTestr/rrrr+r,r'r"rr)rZfail_msgZtssr-rrr�test_nt_and_posix_stack_sizeMs,




z/ThreadRunningTests.test_nt_and_posix_stack_sizecs�tj�}tj���j�g���fdd�}tj���tj|f�x�sRtjt	�qBW|j
tj�|d��j�g�tj
|�fdd��}~x�s�tjt	�q�W|j
tj�|�WdQRXdS)Ncs�jd��j��j�dS)N)�appendrr(r)�mut�startedrrr!ss
z,ThreadRunningTests.test__count.<locals>.taskrcs
�jd�S)N)r9)�_)�donerr�<lambda>�sz0ThreadRunningTests.test__count.<locals>.<lambda>)r�_countrrrr+r r%r&�
POLL_SLEEPr/r(�weakref�ref)rZorigr!�wrr)r=r:r;r�test__countls"
zThreadRunningTests.test__countcs��fdd�}�fdd�}tj��tjd��B}|j�||_�j�tj��tj|f��j�WdQRXWdQRX|jd|j	��dS)Ncs�j�t�dS)N)r(�SyntaxErrorr)r;rrr!�szCThreadRunningTests.test_save_exception_state_on_error.<locals>.taskcs0yt�Wntk
rYnX�|f|��dS)N)r6)r�args)�
real_writerr�mywrite�s
zFThreadRunningTests.test_save_exception_state_on_error.<locals>.mywrite�stderrZ	Traceback)
rrrZcaptured_output�writerr+r ZassertIn�getvalue)rr!rHrIr)rGr;r�"test_save_exception_state_on_error�s
z5ThreadRunningTests.test_save_exception_state_on_errorN)r2r3)rrrr"r!r.r1�unittestZskipIf�os�namer8rDrLrrrrr(s	rc@seZdZdd�Zdd�ZdS)�BarriercCs.||_d|_tj�|_tj�|_|jj�dS)Nr)�num_threads�waitingrr�
checkin_mutex�checkout_mutexr)rrQrrr�__init__�s


zBarrier.__init__cCs�|jj�|jd|_|j|jkr<|jd|_|jj�dS|jj�|jj�|jd|_|jdkrt|jj�dS|jj�dS)Nrr)rSrrRrQrTr()rrrr�enter�s





z
Barrier.enterN)rrrrUrVrrrrrP�srPc@seZdZdd�Zdd�ZdS)�BarrierTestcCsdtj��Rtt�|_t|_x tt�D]}tj|j	|f�q$Wt
d�|jj�t
d�WdQRXdS)Nzwaiting for tasks to endz
tasks done)
rr+rPr'�barrr,rr �task2r
rr)rr-rrr�test_barrier�s


zBarrierTest.test_barriercCs�x�tt�D]x}|dkrd}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*ZfinishedrrrrY�s 

zBarrierTest.task2N)rrrrZrYrrrrrW�s
rWc@seZdZejZdS)�	LockTestsN)rrrrrZlocktyperrrrr\�sr\c@s<eZdZdd�Zejeed�d�ej	dd���Z
dd�Zd	S)
�TestForkInThreadcCstj�\|_|_dS)N)rN�pipe�read_fd�write_fd)rrrrr�szTestForkInThread.setUp�forkzneed os.forkcsZd���fdd�}tj��*tj|f��jtj�jd�dd�WdQRX�j�d�dS)Nznot setcs^tj�}|dkr>ztj�j�tj�jd�Wdtjd�Xntj�j�tj|d�\}�dS)NrsOK)rNra�closer_rJr`�_exit�waitpid)�pid)r�statusrr�thread1�sz3TestForkInThread.test_forkinthread.<locals>.thread1�sOKzUnable to fork() in threadr)rr+rr r/rN�readr_)rrgr)rrfr�test_forkinthread�s
z"TestForkInThread.test_forkinthreadcCsPytj|j�Wntk
r$YnXytj|j�Wntk
rJYnXdS)N)rNrbr_�OSErrorr`)rrrr�tearDownszTestForkInThread.tearDownN)rrrrrMZ
skipUnless�hasattrrNrZreap_threadsrjrlrrrrr]�sr]�__main__)rNrMr#Ztestr�
import_modulerr%�sysrArr'r[r@rrr
ZTestCaserrrPrWr\r]r�mainrrrr�<module>s*
w%,