HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_thread.cpython-37.opt-1.pyc
B

��g�!�@s�ddlZddlZddlZddlmZddlZddlZddlZddl	Z	ddlm
Z
dZdZdZ
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�?c	Cs"tjrt�t|�WdQRXdS)z2Helper function for printing out debugging output.N)r�verbose�_print_mutex�print)�arg�r
�,/usr/local/lib/python3.7/test/test_thread.py�
verbose_printsrc@seZdZdd�ZdS)�BasicThreadTestcCsXt��|_|j��t��|_t��|_d|_d|_d|_t	�
�}|jt	jf|��dS)Nr)
�thread�
allocate_lock�
done_mutex�acquire�
running_mutex�random_mutex�created�running�
next_identrZthreading_setupZ
addCleanupZthreading_cleanup)�self�keyr
r
r�setUps



zBasicThreadTest.setUpN)�__name__�
__module__�__qualname__rr
r
r
rr
sr
c@sVeZdZdd�Zdd�Zdd�Zdd�Ze�e	j
d	kd
�dd��Zd
d�Zdd�Z
dS)�ThreadRunningTestsc	Cs`|j�P|jd7_td|j�t�|j|jf�|jd7_|jd7_WdQRXdS)N�zcreating task %s)rrrr�start_new_thread�taskrr)rr
r
r�newtask*szThreadRunningTests.newtaskc	Cs�|j�t��d}WdQRXtd|t|d�f�t�|�td|�|j�2|jd8_|jt	kr�|jdkr�|j
��WdQRXdS)Ng��@ztask %s will run for %susg��.Aztask %s donerr)r�randomr�round�time�sleeprrr�NUMTASKSr�release)r�ident�delayr
r
rr 2s
zThreadRunningTests.taskc	CsLt���:xtt�D]}|��qWtd�|j��td�WdQRXdS)Nz waiting for tasks to complete...zall tasks done)r�wait_threads_exit�ranger&r!rrr)r�ir
r
r�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_size)rr
r
r�test_stack_sizeFs
z"ThreadRunningTests.test_stack_size)�nt�posixztest meant for nt and posixc
Csyt�d�Wn:tk
r*td�Yn tjk
rH|�d�YnXd}x8dD]0}t�|�|�t��|||�td|�qTWxldD]d}td|�d	|_d	|_t	�
��:xtt�D]}|�
�q�Wtd
�|j��td�WdQRXq�Wt�d	�dS)Niz3caught expected ValueError setting stack_size(4096)z4platform does not support changing thread stack sizez&stack_size(%d) failed - should succeed)iirzsuccessfully set stack_size(%d))iiztrying stack_size = (%d)rz!waiting for all tasks to completezall tasks done)rr/�
ValueErrorr�errorZskipTestr.rrrr*r+r&r!rr)rZfail_msgZtssr,r
r
r�test_nt_and_posix_stack_sizeMs,




z/ThreadRunningTests.test_nt_and_posix_stack_sizec	s�t��}t������g���fdd�}t����t�|d�x�sRt�t	�qBW|�
t��|d����g�t�
|�fdd��}~x�s�t�t	�q�W|�
t��|�WdQRXdS)Ncs��d�������dS)N)�appendrr'r
)�mut�startedr
rr ss
z,ThreadRunningTests.test__count.<locals>.taskr
rcs
��d�S)N)r6)�_)�doner
r�<lambda>��z0ThreadRunningTests.test__count.<locals>.<lambda>)r�_countrrrr*rr$r%�
POLL_SLEEPr.r'�weakref�ref)rZorigr Zwrr
)r:r7r8r�test__countls"
zThreadRunningTests.test__countc
s��fdd�}�fdd�}t���t�d��B}|j�||_���t���t�|d����WdQRXWdQRX|�d|�	��dS)Ncs���t�dS)N)r'�SyntaxErrorr
)r8r
rr �szCThreadRunningTests.test_save_exception_state_on_error.<locals>.taskcs0yt�Wntk
rYnX�|f|��dS)N)r3)r�args)�
real_writer
r�mywrite�s
zFThreadRunningTests.test_save_exception_state_on_error.<locals>.mywrite�stderrr
Z	Traceback)
rrrZcaptured_output�writerr*rZassertIn�getvalue)rr rErFr
)rDr8r�"test_save_exception_state_on_error�s
z5ThreadRunningTests.test_save_exception_state_on_errorN)rrrr!r r-r0�unittestZskipIf�os�namer5rArIr
r
r
rr(s	rc@seZdZdd�Zdd�ZdS)�BarriercCs.||_d|_t��|_t��|_|j��dS)Nr)�num_threads�waitingrr�
checkin_mutex�checkout_mutexr)rrNr
r
r�__init__�s


zBarrier.__init__cCs�|j��|jd|_|j|jkr<|jd|_|j��dS|j��|j��|jd|_|jdkrt|j��dS|j��dS)Nrr)rPrrOrNrQr')rr
r
r�enter�s





z
Barrier.enterN)rrrrRrSr
r
r
rrM�srMc@seZdZdd�Zdd�ZdS)�BarrierTestc	Csdt���Rtt�|_t|_x tt�D]}t�|j	|f�q$Wt
d�|j��t
d�WdQRXdS)Nzwaiting for tasks to endz
tasks done)
rr*rMr&�barrr+rr�task2rrr)rr,r
r
r�test_barrier�s


zBarrierTest.test_barrierc
Cs�x�tt�D]x}|dkrd}n|j�t��d}WdQRXtd|t|d�f�t�|�td||f�|j�	�td|�q
W|j
�|jd8_|jdk}WdQRX|r�|j�
�dS)Nrg��@ztask %s will run for %susg��.Aztask %s entering %sztask %s leaving barrierr)r+�NUMTRIPSrr"rr#r$r%rUrSrrrr')rr(r,r)Zfinishedr
r
rrV�s 

zBarrierTest.task2N)rrrrWrVr
r
r
rrT�s
rTc@seZdZejZdS)�	LockTestsN)rrrrrZlocktyper
r
r
rrY�srYc@s<eZdZdd�Ze�eed�d�ej	dd���Z
dd�Zd	S)
�TestForkInThreadcCst��\|_|_dS)N)rK�pipe�read_fd�write_fd)rr
r
rr�szTestForkInThread.setUp�forkzneed os.forkc	sZd���fdd�}t���*t�|d���t��jd�dd�WdQRX���d�dS)	Nznot setc	s^t��}|dkr>zt��j�t��jd�Wdt�d�Xnt��j�t�|d�\}�dS)NrsOK)rKr^�closer\rGr]�_exit�waitpid)�pid)r�statusr
r�thread1�sz3TestForkInThread.test_forkinthread.<locals>.thread1r
�sOKzUnable to fork() in threadr)rr*rrr.rK�readr\)rrdr
)rrcr�test_forkinthread�s
z"TestForkInThread.test_forkinthreadcCsPyt�|j�Wntk
r$YnXyt�|j�Wntk
rJYnXdS)N)rKr_r\�OSErrorr])rr
r
r�tearDownszTestForkInThread.tearDownN)rrrrrJZ
skipUnless�hasattrrKrZreap_threadsrgrir
r
r
rrZ�srZ�__main__)rKrJr"Ztestr�_threadrr$�sysr?rr&rXr>rrrZTestCaser
rrMrTrYrZr�mainr
r
r
r�<module>s*w%,