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.10/test/__pycache__/lock_tests.cpython-310.opt-2.pyc
o

�i�x�@s2	ddlZddlZddlZddlZddlmZmZddlZddlZddl	Z	ddl
mZddlm
Z
e�eed�d�Zdd�ZGd	d
�d
e�ZGdd�dej�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZdS)�N)�start_new_thread�TIMEOUT_MAX)�support)�threading_helper�forkz9platform doesn't support fork (no _at_fork_reinit method)cCst�d�dS)N�{�G�z�?)�time�sleep�r
r
�,/usr/local/lib/python3.10/test/lock_tests.py�_waitsrc@s0eZdZ	ddd�Zdd�Zdd�Zdd	�Zd
S)�BunchFcsr	��_|�_g�_g�_|�_t���_�j����fdd�}zt	|�D]}t
|d�q'WdSd�_�)Nc	sdt��}�j�|�z��W�j�|��js t��jrdSdS�j�|��js1t��jr+w�N)�	threading�	get_ident�started�append�finished�	_can_exitr)�tid��f�selfr
r�task-s���zBunch.__init__.<locals>.taskr
T)r�nrrrr�wait_threads_exit�wait_thread�	__enter__�ranger)rrrZwait_before_exitr�ir
rr�__init__s 


�zBunch.__init__cCs.t|j�|jkrt�t|j�|jksdSdSr)�lenrrr�rr
r
r�wait_for_started>s�zBunch.wait_for_startedcCs:t|j�|jkrt�t|j�|jks|j�ddd�dSr)r!rrrr�__exit__r"r
r
r�wait_for_finishedBs�zBunch.wait_for_finishedcCs
d|_dS�NT)rr"r
r
r�	do_finishHs
zBunch.do_finishN)F)�__name__�
__module__�__qualname__r r#r%r'r
r
r
rr
s
r
c@s$eZdZdd�Zdd�Zdd�ZdS)�BaseTestCasecCst��|_dSr)rZthreading_setup�_threadsr"r
r
r�setUpM�zBaseTestCase.setUpcCstj|j�t��dSr)rZthreading_cleanupr,r�
reap_childrenr"r
r
r�tearDownPszBaseTestCase.tearDowncCs$|�||d�|�||d�dS)Ng333333�?g$@)ZassertGreaterEqual�
assertLess)r�actualZexpectedr
r
r�
assertTimeoutTszBaseTestCase.assertTimeoutN)r(r)r*r-r0r3r
r
r
rr+Lsr+c@sveZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�
BaseLockTestscCs|��}~dSr)�locktype�r�lockr
r
r�test_constructorbszBaseLockTests.test_constructorcCs|��}|�t|�d�~dS)Nz<unlocked .* object (.*)?at .*>)r5�assertRegex�reprr6r
r
r�	test_reprfszBaseLockTests.test_reprcCs&|��}|��|�t|�d�~dS)Nz<locked .* object (.*)?at .*>)r5�acquirer9r:r6r
r
r�test_locked_reprkszBaseLockTests.test_locked_reprcC�|��}|��~dSr)r5r<r6r
r
r�test_acquire_destroyq�z"BaseLockTests.test_acquire_destroycCs|��}|��|��~dSr�r5r<�releaser6r
r
r�test_acquire_releasevsz"BaseLockTests.test_acquire_releasecCs$|��}|�|�d��|��dS�NF)r5�
assertTruer<rBr6r
r
r�test_try_acquire|szBaseLockTests.test_try_acquirecsJ|������g���fdd�}t|d���|��d����dS)Ncs����d��dSrD�rr<r
�r7�resultr
rr�sz3BaseLockTests.test_try_acquire_contended.<locals>.f�r)r5r<r
r%�assertFalserB�rrr
rHr�test_try_acquire_contended�sz(BaseLockTests.test_try_acquire_contendedcsp|������d}�fdd�}t||�}|��t�|�t|j�d����|�	�|�t|j�|�dS)N�c�������dSr�r<rBr
�r7r
rr��z/BaseLockTests.test_acquire_contended.<locals>.fr)
r5r<r
r#r�assertEqualr!rrBr%�r�Nr�br
rQr�test_acquire_contended�s
z$BaseLockTests.test_acquire_contendedcsV|����fdd�}d�fdd�	}|�t|d���|�t|t�t|d���dS)NcrOrrPr
rQr
rr�rRz"BaseLockTests.test_with.<locals>.fcs6��|dur	|�Wd�dS1swYdSrr
��errrQr
r�_with�s
�"�z&BaseLockTests.test_with.<locals>._withrJr)r5r
r%�assertRaises�	TypeError)rrrZr
rQr�	test_with�szBaseLockTests.test_withcsd|����fdd�}tt���}t|d���tt���|kr0t�d�|�|tt����dSdS)NcrOrrPr
rQr
rr�rRz)BaseLockTests.test_thread_leak.<locals>.f�g�������?)	r5r!r�	enumerater
r%rr	rS)rrrr
rQr�test_thread_leak�s
�zBaseLockTests.test_thread_leakcs�|���|�t�jdd�|jt�jdd�|jt�jdd�|jt�jtdd��jtd����t��}|�	�jdd��t��}|�
||d�g���fdd�}t|d���|�
�d	�|��dd
�dS)NFrJi������timeoutg}Ô%�I�TrNcs4t��}���jdd��t��}��||�dS)N��?ra)r�	monotonicrr<)�t1�t2�r7�resultsr
rr�sz%BaseLockTests.test_timeout.<locals>.frrc)r5r[�
ValueErrorr<�
OverflowErrorrrBrrdrEr1r
r%rKr3)rrerfrr
rgr�test_timeout�s zBaseLockTests.test_timeoutcCs"|��}t�|�}|�|��dSr)r5�weakref�refZassertIsNotNone�rr7rmr
r
r�test_weakref_exists�s
z!BaseLockTests.test_weakref_existscCs,|��}t�|�}~t��|�|��dSr)r5rlrm�gcZcollectZassertIsNonernr
r
r�test_weakref_deleted�s

z"BaseLockTests.test_weakref_deletedN)r(r)r*r8r;r=r?rCrFrMrWr]r`rkrorqr
r
r
rr4]s
r4c@s2eZdZ	dd�Zdd�Zdd�Zedd��Zd	S)
�	LockTestscs�|���g���fdd�}t���Ct|d�t��dkr&t�t��dkst�|�t��d����t��dkrDt�t��dks;|�t��d�Wd�dS1sWwYdS)Ncs(�����d������d�dSr�r<rr
�r7Zphaser
rr��
z#LockTests.test_reacquire.<locals>.fr
rrJ�)r5rrrr!rrSrBrLr
rtr�test_reacquire�s 

��"�zLockTests.test_reacquirecsB|�������fdd�}t|d�}|��������dS)Nc����dSr)rBr
rQr
rr�z*LockTests.test_different_thread.<locals>.frJ)r5r<r
r%rB�rrrVr
rQr�test_different_threads
zLockTests.test_different_threadcCsN|��}|��|�|jdd��|��|�|���|�|jdd��dS)NrraF)�blocking)r5r<rKrB�lockedrEr6r
r
r�test_state_after_timeoutsz"LockTests.test_state_after_timeoutcCsDdd�}|��}|��||�|��}|��|��||�dS)NcSs|��|��dSrrPrQr
r
r�use_locksz/LockTests.test_at_fork_reinit.<locals>.use_lock)r5�_at_fork_reinitr<)rrr7Zlock2r
r
r�test_at_fork_reinitszLockTests.test_at_fork_reinitN)r(r)r*rwr{r~�
requires_forkr�r
r
r
rrr�s
rrc@s6eZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
RLockTestscCs<|��}|��|��|��|��|��|��dSrrAr6r
r
rrw-szRLockTests.test_reacquirecCsX|��}|�t|j�|��|��|��|��|��|��|�t|j�dSr)r5r[�RuntimeErrorrBr<r6r
r
r�test_release_unacquired6�z"RLockTests.test_release_unacquiredcCsX|��}|�t|j�|��|��|��|��|��|��|�t|j�dSr)r5r[r��
_release_saver<rBr6r
r
r�test_release_save_unacquiredBr�z'RLockTests.test_release_save_unacquiredcsR|����fdd�}t|dd�}z
|�t�j�W|��n|��w|��dS)Ncrxr)r<r
rQr
rrQryz+RLockTests.test_different_thread.<locals>.frJT)r5r
r[r�rBr'r%rzr
rQrr{Nsz RLockTests.test_different_threadcs�|���|��������|��������|�����g���fdd�}t|d���|��d����|��������|�����dS)Ncs������dSr)r�	_is_ownedr
rHr
rrbsz$RLockTests.test__is_owned.<locals>.frJr)r5rKr�r<rEr
r%rBrLr
rHr�test__is_ownedZszRLockTests.test__is_ownedN)r(r)r*rwr�r�r{r�r
r
r
rr�)s	r�c@sBeZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zedd��Z	d
S)�
EventTestscCsr|��}|�|���|��|�|���|��|�|���|��|�|���|��|�|���dSr)�	eventtyperK�is_set�setrE�clear�r�evtr
r
r�test_is_setqszEventTests.test_is_setcs|d}g�g����fdd�}t||�}|��t�|�t��d����|��|��dg|�|��dg|�dS)NrNcs ������������dSr�r�waitr
�r��results1�results2r
rr�sz#EventTests._check_notify.<locals>.frT)r
r#rrSr!r�r%)rr�rUrrVr
r�r�
_check_notify}s
zEventTests._check_notifycCs0|��}|�|�|��|��|�|�dSr)r�r�r�r�r�r
r
r�test_notify�s

zEventTests.test_notifycs�|���g�g�d}���fdd�}t||���|��dg|��D]\}}|�|�|�|d�q$g�g����t||���|��dg|��D]	\}}|�|�qNdS)NrNcs@����d��t��}��d�}t��}��|||f�dS)Ngrc)rr�rrd)re�rrfr�r
rr�s

z"EventTests.test_timeout.<locals>.fFrcT)r�r
r%rSrKr3r�rE)rrUrr��dtr
r�rrk�s$
�zEventTests.test_timeoutcsn|���g�d�d}���fdd�}t||�}|��t���������|��|��dg|�dS)Ng�?rNcs�����d��dS�N�r�r
�r�rhrbr
rr��z(EventTests.test_set_and_clear.<locals>.fT)	r�r
r#rr	r�r�r%rSrTr
r�r�test_set_and_clear�s

zEventTests.test_set_and_clearcCs�|��}|j�|�|j�d��Wd�n1swY|��|j�|�|j�d��Wd�dS1s<wYdSrD)r��_condrKr<r�r�r
r
rr��s�"�zEventTests.test_at_fork_reinitN)
r(r)r*r�r�r�rkr�r�r�r
r
r
rr�lsr�c@sNeZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�ConditionTestscCs�|��}|��|��|��|��t��}|�|�}|��|�|�d��|��|�|�d��|�|�d��|��|�|�|�d��Wd�dS1sWwYdSrD)�condtyper<rBr�LockrKrE)r�condr7r
r
r�test_acquire�s 
"�zConditionTests.test_acquirecC�|��}|�t|j�dSr)r�r[r�r��rr�r
r
r�test_unacquired_wait��z#ConditionTests.test_unacquired_waitcCr�r)r�r[r��notifyr�r
r
r�test_unacquired_notify�r�z%ConditionTests.test_unacquired_notifycsd}g�g�g�d������fdd�}t||�}|��t��dkr,t�t��dks#���|��g������d�t�d����t��dkrWt�t��dksN|��dgd�|��g�t��dkrut�t��dksl�����d�t�d����t��t��d	kr�t�t��t��d	ks�|��dgdd
gd�|��d
gd�t��dkr�t�t��dks������	�t�d����t��dkr�t�t��dks�|��dgdd
gd�|��d
gddgd�|�
�dS)NrNrcsd����������}�����|�f�����������}�����|�f�dSr)r<rr�rB�rI�r��	phase_num�readyr�r�r
rr�s

z'ConditionTests._check_notify.<locals>.f�rJ)TrJrv�)Trv)Tr�)r
r#r!rr�rSr<r�rB�
notify_allr%)rr�rUrrVr
r�rr��sd
�
��
���zConditionTests._check_notifycCs |��}|�|�|�|�dSr)r�r�r�r
r
rr�5s
zConditionTests.test_notifycsd|���g�d}��fdd�}t||���|�t��|��D]\}}|�|d�|�|�q dS)NrNcs@���t��}��d�}t��}�����|||f�dS)Nrc)r<rrdr�rBr)rerIrf�r�rhr
rr?s
z&ConditionTests.test_timeout.<locals>.frc)r�r
r%rSr!r3rK)rrUrr�rIr
r�rrk;s�zConditionTests.test_timeoutc	s�����d����fdd�}t|d�}|��td�D]!}t�d����d7����Wd�n1s7wYq|��dS)NrcsR�����fdd��}��|����d�Wd�dS1s"wYdS)Nc��dkSr�r
r
��stater
r�<lambda>V�z8ConditionTests.test_waitfor.<locals>.f.<locals>.<lambda>r�)�wait_forrErSr��r�rr�r
rrTs

"�z&ConditionTests.test_waitfor.<locals>.frJr�r)r�r
r#rrr	r�r%�rrrVrr
r�r�test_waitforQs


��zConditionTests.test_waitforc	s�����d�g�����fdd�}t|d�}|��td�D]!}t�d����d7����Wd�n1s:wYq|����t	��d�dS)Nrcst��.t��}�j�fdd�dd�}t��|}��|���|d���d�Wd�dS1s3wYdS)Ncr�r�r
r
r�r
rr�ir�z@ConditionTests.test_waitfor_timeout.<locals>.f.<locals>.<lambda>g�������?ra)rrdr�rKr3r)r�rI�r�rr��successr
rrfs
"�z.ConditionTests.test_waitfor_timeout.<locals>.frJr�r)
r�r
r#rrr	r�r%rSr!r�r
r�r�test_waitfor_timeoutbs


��z#ConditionTests.test_waitfor_timeoutN)r(r)r*r�r�r�r�r�rkr�r�r
r
r
rr��sJr�c@s^eZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�BaseSemaphoreTestscCs,|jt|jdd�|jt|jtjd�dS)N���)�value)r[ri�semtype�sys�maxsizer"r
r
rr8sz#BaseSemaphoreTests.test_constructorcCsH|�d�}|��|��|�d�}|��|��|��|��dS)NrJrv)r�r<rB�r�semr
r
rr��s

zBaseSemaphoreTests.test_acquirecCr>r)r�r<r�r
r
rr?�r@z'BaseSemaphoreTests.test_acquire_destroycs�|�d�����d}g�g�g�d������fdd�}t|d�}|��t��t��dkr=t�t��t��dks0|���dgd�d�td�D]}���qNt��t��dkrlt�t��t��dks_|�t	���dgddgd�d	�td�D]}���q�t��t��d
kr�t�t��t��d
ks�|�t	���dgddgdd	gd�|�
��d�����|��|��dgd
�dS)N��
rcs4��������������������dSrrGr
�r�r�r�r�Zsem_resultsr
rr�s
z4BaseSemaphoreTests.test_acquire_contended.<locals>.f�rJ�
rv�FT�)r�r<r
r#r!rrSrrB�sortedrKr%)rrUrrVrr
r�rrW�s@

�
�$
�.z)BaseSemaphoreTests.test_acquire_contendedcst|�d�����g�g�d�����fdd�}t|d�}|��t��t��dkr8t�t��t��dks+|���dgd�d���d�t��t��dkrat�t��t��dksT|�t���dgddgd�d	���d�t��t��d
kr�t�t��t��d
ks�|�t���dgddgdd	gd�|�	��d�����|�
�dS)Nr�rcs(��������������dSrrsr
�r�r�r�r�r
rr�ruz/BaseSemaphoreTests.test_multirelease.<locals>.fr�r�rJr�rvr�F)r�r<r
r#r!rrSrBr�rKr%rzr
r�r�test_multirelease�s6

�
�$
�.z$BaseSemaphoreTests.test_multireleasecCsV|�d�}|�|�d��|�|�d��|�|�d��|��|�|�d��dS)NrvF)r�rEr<rKrBr�r
r
rrF�s
z#BaseSemaphoreTests.test_try_acquirecsV|�d�����g���fdd�}t|d���|�t��dgddgd�dS)	Nr�cs$����d������d��dSrDrGr
�rhr�r
rr�sz8BaseSemaphoreTests.test_try_acquire_contended.<locals>.frNFr�Tr�)r�r<r
r%rSr�rLr
r�rrM�s
$z-BaseSemaphoreTests.test_try_acquire_contendedcCs�|�d�}|jt|jddd�|�|jdd��|�|jdd��|�|jdd��|��|�|jdd��t��}|�|jdd��t��|}|�	|d�dS)NrvF��?rag{�G�zt?rc)
r�r[rir<rErKrBrrdr3)rr��tr�r
r
r�test_acquire_timeout�s
z'BaseSemaphoreTests.test_acquire_timeoutcsT|�������fdd�}t|d�}|��t�|�|j����|��dS)NcrOrrPr
�r�r
rr�rRz0BaseSemaphoreTests.test_default_value.<locals>.frJ)	r�r<r
r#rrKrrBr%rzr
r�r�test_default_value�s
z%BaseSemaphoreTests.test_default_valuecsb��d��d��fdd�	}|�����d�������t|t�����d�����dS)Nrvc	s���;����d�����������d��|r|�Wd�n1s(wYWd�dSWd�dS1s@wYdSrD)rEr<rBrKrXr�r
rrZ	s���"�z+BaseSemaphoreTests.test_with.<locals>._withFr)r�rEr<rBr[r\)rrZr
r�rr]s
zBaseSemaphoreTests.test_withN)
r(r)r*r8r�r?rWr�rFrMr�r�r]r
r
r
rr�zs
% 

r�c@�eZdZ	dd�ZdS)�SemaphoreTestscCs.|�d�}|��|��|��|��dS�NrJ)r�rBr<r�r
r
rr�s

z&SemaphoreTests.test_release_unacquiredN�r(r)r*r�r
r
r
rr��r�c@r�)�BoundedSemaphoreTestscCs8|��}|�t|j�|��|��|�t|j�dSr)r�r[rirBr<r�r
r
rr�+s
z-BoundedSemaphoreTests.test_release_unacquiredNr�r
r
r
rr�&r�r�c@s�eZdZ	dZdZdd�Zdd�Zdd�Zd	d
�Zd!dd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd S)"�BarrierTestsrNg@cCs|j|j|jd�|_dS)Nra)�barriertyperU�defaultTimeout�barrierr"r
r
rr-;r�zBarrierTests.setUpcCs|j��dSr)r��abortr"r
r
rr0=r.zBarrierTests.tearDowncCs"t||jd�}|�|��dSr�)r
rUr%rzr
r
r�run_threads@szBarrierTests.run_threadscCs�|jj}|�||j�t|�D]4}|d�d�|�t|d�||�|j��|d�d�|�t|d�|d|�|j��q|�|jjd�|�	|jj
�dS)NrTrJ)r��partiesrSrUrrr!r��	n_waitingrK�broken)rrhr�mrr
r
r�	multipassEs
zBarrierTests.multipassrJcs(	ggg����fdd�}��|�dS)Ncs�����dSr)r�r
��passesrhrr
rrWsz$BarrierTests.test_barrier.<locals>.f�r�)rr�rr
r�r�test_barrierRszBarrierTests.test_barriercCs	|�d�S)Nr�)r�r"r
r
r�test_barrier_10[s
zBarrierTests.test_barrier_10cs<	g���fdd�}��|���t��tt�j���dS)Ncs�j��}��|�dSr)r�r�r)r��rhrr
rrfs
z(BarrierTests.test_wait_return.<locals>.f)r�rS�sumrrUrLr
r�r�test_wait_returnas

zBarrierTests.test_wait_returncs>	g��fdd�}���j|�����fdd�}��|�dS)Ncs��d�dSr&)rr
)rhr
r�actionrr.z(BarrierTests.test_action.<locals>.actioncs�����t��d�dSr�)r�rSr!r
�r�rhrr
rrusz#BarrierTests.test_action.<locals>.f�r�rUr�)rr�rr
r�r�test_actionmszBarrierTests.test_actioncs\	g�g����fdd�}��|���t��d���t���jd����jj�dS)Ncstz�j��}|�jdkrt��j����d�WdStjy+��d�YdSty9�j��YdSw�NrvT)r�r�rUr�rr�BrokenBarrierErrorr��r�r�r�rr
rr�s


�z"BarrierTests.test_abort.<locals>.frrJ)r�rSr!rUrEr�r�rLr
r�r�
test_abort{s

zBarrierTests.test_abortcsf	g�g�g�����fdd�}��|���t��d���t���jd���t���j�dS)Ncs��j��}|�jdkr)�jj�jdkr#t�d��jj�jdks�j��nz�j����d�Wntj	yD��d�Ynw�j����d�dS)NrvrJg����MbP?T)
r�r�rUr�rr	�resetrrr�r��r�r��results3rr
rr�s

�
�
z"BarrierTests.test_reset.<locals>.frrJ)r�rSr!rUrLr
r�r�
test_reset�s
zBarrierTests.test_resetcst	g�g�g����j�������fdd�}��|���t��d���t���jd���t���j�dS)Ncs�z�j��}|�jdkrt��j����d�Wntjy)��d�Ynty6�j��Ynw����jdkrE�j������j����d�dSr�)	r�r�rUr�rrr�r�r�r��Zbarrier2r�r�r�rr
rr�s"


�

z,BarrierTests.test_abort_and_reset.<locals>.frrJ)r�rUr�rSr!rLr
r�r�test_abort_and_reset�s
z!BarrierTests.test_abort_and_resetcs	�fdd�}��|�dS)Ncs:�j��}|�jdkrt�d���tj�jjd�dS)Nrvr�rc)r�r�rUrr	r[rr�r�r"r
rr�s

�z$BarrierTests.test_timeout.<locals>.fr�rLr
r"rrk�szBarrierTests.test_timeoutcs.	�j�jdd����fdd�}��|�dS)Ng333333�?racs4���}|�jdkrt�d���tj�j�dS)Nrvr�)r�rUrr	r[rr�r��r�rr
rr�s
z,BarrierTests.test_default_timeout.<locals>.fr�rLr
rr�test_default_timeout�sz!BarrierTests.test_default_timeoutcCs|�d�}|��|��dSr�)r�r�)rrVr
r
r�test_single_thread�s
zBarrierTests.test_single_threadN)rJ)r(r)r*rUr�r-r0r�r�r�r�r�r�r�r�rrkrrr
r
r
rr�4s$

	"r�)�osrpr�r�_threadrrrZunittestrl�testrZtest.supportrZ
skipUnless�hasattrr�r�objectr
ZTestCaser+r4rrr�r�r�r�r�r�r�r
r
r
r�<module>s:�1	DC_0