403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.51
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/lock_tests.cpython-313.pyc
�

��iK����SrSSKrSSKrSSKrSSKJrJr SSKrSSKrSSK	r	SSK
Jr SSKJ
r
 \R"\RS5rSr"SS	\5r"S
S\R(5r"SS
\5r"SS\5r"SS\5r"SS\5r"SS\5r"SS\5r"SS\5r"SS\5r"SS\5rg)z/
Various tests for synchronization primitives.
�N)�start_new_thread�TIMEOUT_MAX)�support)�threading_helperz9platform doesn't support fork (no _at_fork_reinit method)c�6�[R"SU-5 g)N�{�G�z�?)�time�sleep)�nthreads �$C:\Python313\\Lib\test\lock_tests.py�wait_threads_blockedr
s��	�J�J�u�w���c�:�\rSrSrSrS
SjrSrSrSrSr	Sr
g	)�Bunch�z
A bunch of threads.
c�l�XlX l/Ul/Ul/UlU(+UlSUlg)z�
Construct a bunch of `nthread` threads running the same function `func`.
If `wait_before_exit` is True, the threads won't terminate until
do_finish() is called.
N)�funcr�started�finished�
exceptions�	_can_exit�_wait_thread)�selfrr�wait_before_exits    r�__init__�Bunch.__init__ s5���	��������
����-�-��� ��rc�X�[R"5nURRU5 UR	5 URRU5 [R"[R5HnUR(dM g g![
a%nURRU5 SnAN�SnAff=f!URRU5 [R"[R5HnUR(dM f f=f�N)�	threading�	get_identr�appendr�
BaseExceptionrrr�sleeping_retry�
SHORT_TIMEOUTr)r�tid�exc�_s    r�task�
Bunch.task.s����!�!�#�������C� �	��I�I�K�
�M�M� � ��%��+�+�G�,A�,A�B���>�>�>��C��	�	(��O�O�"�"�3�'�'��	(��
�M�M� � ��%��+�+�G�,A�,A�B���>�>�>��C�s0�B�
C�&C�C�C�C�AD)�$D)c��[R"[R5UlURR5 [
UR5Hn[URS5 M [R"[R5H)n[UR5UR:�dM( U$ U$! SUl
e=f)N�T)r�wait_threads_exitrr$r�	__enter__�rangerrr(rr#�lenr)rr's  rr-�Bunch.__enter__;s���,�>�>�w�?T�?T�U������#�#�%�	��4�<�<�(�� ����B�/�)��'�'��(=�(=�>�A��4�<�<� �D�L�L�0����	?����	�!�D�N��s�2C
�

Cc�D�[R"[R5H(n[UR5UR
:�dM( O URRSSS5 URnSUlU(a[URS3U5eg)Nz threads raised exceptions)rr#r$r/rrr�__exit__r�ExceptionGroupr)r�exc_type�	exc_value�	tracebackr'rs      rr2�Bunch.__exit__Ls����'�'��(=�(=�>�A��4�=�=�!�T�\�\�1��?�
	
���"�"�4��t�4��_�_�
����� �D�I�I�;�.H�!I�!+�-�
-�rc��SUlg�NT)r�rs r�	do_finish�Bunch.do_finish[s	����r)rrrrrrrN)F)�__name__�
__module__�__qualname__�__firstlineno__�__doc__rr(r-r2r;�__static_attributes__r+rrrrs ���!���"
-�rrc�&�\rSrSrSrSrSrSrg)�BaseTestCase�_c�8�[R"5Ulgr)r�threading_setup�_threadsr:s r�setUp�BaseTestCase.setUp`s��(�8�8�:��
rc�h�[R"UR6 [R"5 gr)r�threading_cleanuprHr�
reap_childrenr:s r�tearDown�BaseTestCase.tearDowncs ���*�*�D�M�M�:����rc�T�URXS-5 URXS-5 g)Ng333333�?g$@)�assertGreaterEqual�
assertLess)r�actual�expecteds   r�
assertTimeout�BaseTestCase.assertTimeoutgs&��	
����3��7�����4��0r)rHN)r=r>r?r@rIrNrUrBr+rrrDrD_s��;� �1rrDc�l�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrg)�
BaseLockTests�pz3
Tests for both recursive and non-recursive locks.
c��[R"[R5Hn[U5U:�dM O UR	[U5U5 gr)rr#r$r/�assertEqual)r�phaserTr's    r�
wait_phase�BaseLockTests.wait_phaseusB���'�'��(=�(=�>�A��5�z�X�%��?�	
����U��X�.rc�&�UR5nAgr)�locktype�r�locks  r�test_constructor�BaseLockTests.test_constructor{s���}�}���rc�\�UR5nUR[U5S5 Ag)Nz<unlocked .* object (.*)?at .*>)r`�assertRegex�reprras  r�	test_repr�BaseLockTests.test_reprs%���}�}�������d��%F�G�rc�|�UR5nUR5 UR[U5S5 Ag)Nz<locked .* object (.*)?at .*>)r`�acquirerfrgras  r�test_locked_repr�BaseLockTests.test_locked_repr�s.���}�}�����������d��%D�E�rc�F�UR5nUR5 Agr)r`rkras  r�test_acquire_destroy�"BaseLockTests.test_acquire_destroy�s���}�}�������rc�f�UR5nUR5 UR5 Agr�r`rk�releaseras  r�test_acquire_release�"BaseLockTests.test_acquire_release�s"���}�}�����������rc��UR5nURURS55 UR5 g�NF)r`�
assertTruerkrsras  r�test_try_acquire�BaseLockTests.test_try_acquire�s+���}�}���������U�+�,����rc��^^�UR5mTR5 /mUU4Sjn[US5 SSS5 URTS5 TR	5 g!,(df   N3=f)Nc�F>�TRTRS55 grw�r!rk�rb�results��r�f�3BaseLockTests.test_try_acquire_contended.<locals>.f�s����M�M�$�,�,�u�-�.r�r)r`rkr�assertFalsers�rr�rbrs  @@r�test_try_acquire_contended�(BaseLockTests.test_try_acquire_contended�sU����}�}���������	/�
�1�a�[���������#������[�s�A'�'
A5c�j^�UR5mTR5 U4SjnSn[X5n[U5 UR	[UR5S5 TR5 SSS5 UR	[WR5U5 g!,(df   N4=f)Nc�F>�TR5 TR5 gr�rkrs�rbs�rr��/BaseLockTests.test_acquire_contended.<locals>.f������L�L�N��L�L�Nr�r)r`rkrr
r[r/rrs)rr��N�bunchrbs    @r�test_acquire_contended�$BaseLockTests.test_acquire_contended�s�����}�}�������	�
��
�1�[�E� ��#����S����0�!�4�
�L�L�N�
�	
����U�^�^�,�a�0��[�s�AB$�$
B2c�^�UR5mU4SjnSU4SjjnT SSS5 [US5 SSS5 UR[5 T [e!,(df   NC=f!,(df   N>=f!,(df   O=fSSS5 O!,(df   O=f[US5 SSS5 g!,(df   g=f)Nc�F>�TR5 TR5 grr�r�s�rr��"BaseLockTests.test_with.<locals>.f�r�rc�J>�T UbUeSSS5 g!,(df   g=frr+)�errrbs �r�	with_lock�*BaseLockTests.test_with.<locals>.with_lock�s�����?��I�#����s��
"r�r)r`r�assertRaises�	TypeError)rr�r�rbs   @r�	test_with�BaseLockTests.test_with�s�����}�}���	�	�����1�a�[����
�
�y�
)�����T���[��
����*�
)�
)���1�a�[���[�[�s@�A!�A2�B�B�!
A/�2
B�
B	�
B�
B,�;C�
Cc�^�UR5mU4Sjn[US5 SSS5 g!,(df   g=f)Nc�F>�TR5 TR5 grr�r�s�rr��)BaseLockTests.test_thread_leak.<locals>.f�r�r�)r`r�rr�rbs  @r�test_thread_leak�BaseLockTests.test_thread_leak�s-����}�}���	��1�b�\���\�\�s�/�
=c��^^�UR5mUR[TRSS5 UR[TRSS9 UR[TRSS9 UR[TR[
S-S9 TR[
S9 TR
5 [R"5nURTRSS95 [R"5nURX!-
S5 /mUU4Sjn[US5 SSS5 URTS5 URTSS	5 g!,(df   N8=f)
NFr�i������timeoutg}Ô%�I�Tr�c�>�[R"5nTRTRSS95 [R"5nTRX-
5 g)N��?r�)r	�	monotonicr!rk)�t1�t2rb�resultss  ��rr��%BaseLockTests.test_timeout.<locals>.f�s@������!�B��N�N�4�<�<��<�4�5����!�B��N�N�2�7�#rrr�)r`r��
ValueErrorrk�
OverflowErrorrrsr	r�rxrRrr�rU)rr�r�r�rbr�s    @@r�test_timeout�BaseLockTests.test_timeout�s����}�}������*�d�l�l�E�1�=����*�d�l�l�D��A����-����u��E����-����{�Q���O����[��)�����
�^�^�
��������Q��/�0�
�^�^�
��������#���	$�
�1�a�[���������$����7�1�:�s�+��[�s�-E!�!
E/c�|�UR5n[R"U5nURU"55 gr)r`�weakref�ref�assertIsNotNone�rrbr�s   r�test_weakref_exists�!BaseLockTests.test_weakref_exists�s+���}�}����k�k�$������S�U�#rc��UR5n[R"U5nA[R"5 URU"55 gr)r`r�r��gc�collect�assertIsNoner�s   r�test_weakref_deleted�"BaseLockTests.test_weakref_deleteds7���}�}����k�k�$����
�
�
�����#�%� rr+N)r=r>r?r@rAr]rcrhrlrortryr�r�r�r�r�r�r�rBr+rrrXrXpsM���/���
��
��
	�1�$�:�,�6$�
!rrXc�:�\rSrSrSrSrSrSr\S5r	Sr
g)	�	LockTestsi	zb
Tests for non-recursive, weak locks
(which can be acquired and released from different threads).
c�^^�UR5m/mUU4Sjn[R"5 [US5 UR	TS5 TR5 UR	TS5 SSS5 g!,(df   g=f)Nc�>�TR5 TRS5 TR5 TRS5 gr�rkr!)rbr\s��rr��#LockTests.test_reacquire.<locals>.fs-����L�L�N��L�L����L�L�N��L�L��rr+r��)r`rr,rr]rs�rr�rbr\s  @@r�test_reacquire�LockTests.test_reacquiresc����}�}�����	��
/�
/�
1��Q��#��O�O�E�1�%�
�L�L�N��O�O�E�1�%�2�
1�
1�s�AA;�;
B	c��^�UR5mTR5 U4Sjn[US5 SSS5 TR5 TR5 g!,(df   N/=f)Nc�&>�TR5 gr)rsr�s�rr��*LockTests.test_different_thread.<locals>.f&�����L�L�Nrr�)r`rkrrsr�s  @r�test_different_thread�LockTests.test_different_thread"sG����}�}�������	�
�1�a�[������������[�s�A�
A-c��UR5nUR5 URURSS95 UR5 URUR	55 URURSS95 g)Nrr�F)�blocking)r`rkr�rs�lockedrxras  r�test_state_after_timeout�"LockTests.test_state_after_timeout-se���}�}�������������d��3�4������������'�������e��4�5rc���SnUR5nUR5 U"U5 UR5nUR5 UR5 U"U5 g)Nc�D�UR5 UR5 grr�r�s r�use_lock�/LockTests.test_at_fork_reinit.<locals>.use_lock9s��
�L�L�N��L�L�Nr)r`�_at_fork_reinitrk)rr�rb�lock2s    r�test_at_fork_reinit�LockTests.test_at_fork_reinit7sP��	��}�}�����������
�
���
�
�
��
������rr+N)r=r>r?r@rAr�r�r��
requires_forkr�rBr+rrr�r�	s*���&�(	�6����rr�c�<�\rSrSrSrSrSrSrSrSr	Sr
S	rg
)�
RLockTestsiKz
Tests for recursive locks.
c���UR5nUR5 UR5 UR5 UR5 UR5 UR5 grrrras  rr��RLockTests.test_reacquireOsC���}�}��������������������������rc�d�UR5nUR[UR5 UR	5 UR	5 UR5 UR	5 UR5 UR5 UR[UR5 gr)r`r��RuntimeErrorrsrkras  r�test_release_unacquired�"RLockTests.test_release_unacquiredXsk���}�}������,����5����������������������������,����5rc�d�UR5nUR[UR5 UR	5 UR	5 UR5 UR	5 UR5 UR5 UR[UR5 gr)r`r�r��
_release_saverkrsras  r�test_release_save_unacquired�'RLockTests.test_release_save_unacquireddso���}�}������,��(:�(:�;����������������������������,��(:�(:�;rc�^^^�TR5mTRSTR55 TR5 TRSTR55 TR5 TR5 TRSTR55 TR	5 TRSTR55 TR	5 TR	5 TRSTR55 /mUUU4Sjn[
R"5 [US5 TRTS5 TRSTR55 TRS5 TRTS5 TRSTR55 SSS5 g!,(df   g=f)Nrr��r�c�>�TR5 TRS5 TRTS5 TR5 TRS5 g)Nr�)rkr!r]rs)rbr\rs���rr��*RLockTests.test_recursion_count.<locals>.f�s;����L�L�N��L�L����O�O�E�1�%��L�L�N��L�L��rr+)
r`r[�_recursion_countrkrsrr,rr]r!r�s` @@r�test_recursion_count�RLockTests.test_recursion_countpsK����}�}�������D�1�1�3�4���������D�1�1�3�4�������������D�1�1�3�4���������D�1�1�3�4�������������D�1�1�3�4���	��
/�
/�
1��Q��#��O�O�E�1�%����Q�� 5� 5� 7�8�
�L�L����O�O�E�1�%����Q�� 5� 5� 7�8�2�
1�
1�s
�3BF>�>
Gc�^�UR5mU4Sjn[USS5nUR[TR5 UR5 SSS5 g!UR5 f=f!,(df   g=f)Nc�&>�TR5 gr)rkr�s�rr��+RLockTests.test_different_thread.<locals>.f�r�rr�T)r`rr�r�rsr;)rr�r�rbs   @rr�� RLockTests.test_different_thread�se����}�}���	��1�a��
�%�
"��!�!�,����=����!�	�
�����!��	�
�s"�A6� A!�A6�!A3�3A6�6
Bc�f^^�UR5mURTR55 TR5 UR	TR55 TR5 UR	TR55 /mUU4Sjn[US5 SSS5 URTS5 TR
5 UR	TR55 TR
5 URTR55 g!,(df   N�=f)Nc�D>�TRTR55 gr)r!�	_is_ownedr~s��rr��$RLockTests.test__is_owned.<locals>.f�s����M�M�$�.�.�*�+rr�r)r`r�r�rkrxrrsr�s  @@r�test__is_owned�RLockTests.test__is_owned�s�����}�}���������)�*�����������(�)�����������(�)���	,�
�1�a�[���������#�����������(�)�����������)�*�
�[�s�%D"�"
D0r+N)r=r>r?r@rAr�r�r�r�r�r�rBr+rrr�r�Ks&����
6�
<�!9�F
"�+rr�c�L�\rSrSrSrSrSrSrSrSr	\
S5rS	rS
r
g)�
EventTestsi�z
Tests for Event objects.
c���UR5nURUR55 UR5 UR	UR55 UR5 UR	UR55 UR5 URUR55 UR5 URUR55 gr)�	eventtyper��is_set�setrx�clear�r�evts  r�test_is_set�EventTests.test_is_set�s����n�n����������&����	�����
�
��%����	�����
�
��%��	�	���������&��	�	���������&rc�4^^^�Sn/m/mUUU4Sjn[X25 [U5 UR[T5S5 TR	5 SSS5 URTS/U-5 URTS/U-5 g!,(df   N;=f)Nr�c�>�TRTR55 TRTR55 gr)r!�wait)r�results1�results2s���rr��#EventTests._check_notify.<locals>.f�s'����O�O�C�H�H�J�'��O�O�C�H�H�J�'rrT)rr
r[r/r�)rrr�r�rr	s `  @@r�
_check_notify�EventTests._check_notify�s����
������	(��1�[� ��#����S��]�A�.�
�G�G�I�
�	
����D�6�A�:�.�����D�6�A�:�.��[�s�7B	�	
Bc��UR5nURU5 UR5 UR5 URU5 gr)r�rr�rrs  r�test_notify�EventTests.test_notify�s<���n�n������3�����	��	�	�����3�rc��^^^�UR5m/m/mSnUUU4Sjn[X!5 SSS5 URTS/U-5 TH(up4URU5 UR	US5 M* /m/mTR5 [X!5 SSS5 URTS/U-5 THup4UR
U5 M g!,(df   N�=f!,(df   NR=f)Nr�c��>�TRTRS55 [R"5nTRS5n[R"5nTRXU-
45 g)Ngr�)r!rr	r�)r��rr�rrr	s   ���rr��"EventTests.test_timeout.<locals>.f�sN����O�O�C�H�H�S�M�*����!�B�����
�A����!�B��O�O�Q�R��L�)rFr�T)r�rr[r�rUr�rx)rr�r�r�dtrrr	s     @@@rr��EventTests.test_timeout�s�����n�n�������
��	*��1�[���	
����E�7�Q�;�/��E�A����Q�����r�3�'��
�������	�
�1�[���	
����D�6�A�:�.��E�A��O�O�A���!�[���[�s�C�C(�
C%�(
C6c�
^^�UR5m/mUU4SjnSn[X5 [U5 TR5 TR	5 SSS5 URTS/U-5 g!,(df   N%=f)Nc�b>�TRTR[R55 gr)r!rr�LONG_TIMEOUT)�eventr�s��rr��(EventTests.test_set_and_clear.<locals>.fs����N�N�5�:�:�g�&:�&:�;�<rr�T)r�rr
r�rr[)rr�r�rr�s   @@r�test_set_and_clear�EventTests.test_set_and_clear�sj������ ����	=�
��
�1�[� ��#�
�I�I�K��K�K�M�
�	
����4�&�1�*�-��[�s�,A4�4
Bc��UR5nUR URURRS55 SSS5 UR	5 UR URURRS55 SSS5 g!,(df   N^=f!,(df   g=frw)r��_condr�rkr�rs  rr��EventTests.test_at_fork_reinits����n�n���
�Y�Y����S�Y�Y�.�.�u�5�6������
�Y�Y����S�Y�Y�.�.�u�5�6��Y��Y���Y�s�+B �,+B1� 
B.�1
B?c��UR5nUR[U5S5 UR5 UR[U5S5 g)Nz<\w+\.Event at .*: unset>z<\w+\.Event at .*: set>)r�rfrgr�rs  rrh�EventTests.test_reprsA���n�n�������c��$@�A����	�����c��$>�?rr+N)r=r>r?r@rArrrr�rr�r�rhrBr+rrr�r��s:���
'�/�( ��>.�&�7��7�@rr�c�H�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
g)
�ConditionTestsi"z 
Tests for condition variables.
c��UR5nUR5 UR5 UR5 UR5 [R"5nURU5nUR5 URURS55 UR5 UR
URS55 URURS55 UR5 U URURS55 SSS5 g!,(df   g=frw)�condtyperkrsr�Lockr�rx)r�condrbs   r�test_acquire�ConditionTests.test_acquire's����}�}���	
�����������������~�~����}�}�T�"������������e�,�-�����������U�+�,�������e�,�-�����
����T�\�\�%�0�1��T�T�s�	!D3�3
Ec�d�UR5nUR[UR5 gr)r%r�r�r�rr's  r�test_unacquired_wait�#ConditionTests.test_unacquired_wait:s!���}�}������,��	�	�2rc�d�UR5nUR[UR5 gr)r%r�r��notifyr+s  r�test_unacquired_notify�%ConditionTests.test_unacquired_notify>s!���}�}������,����4rc�X^^^^	^
�/m/m	/m
SmUUUU	U
4SjnSn[X#5 [R"[R5Hn[	T5U:�dM O TR5 UR
T	/5 SnTR5 TRU5 [U5 SmTR5 [R"[R5Hn[	T	5U:�dM O UR
T	S/U-5 UR
T
/5 [R"[R5Hn[	T5U:�dM O TR5 TRS5 [U5 SmTR5 [R"[R5H"n[	T	5[	T
5-X5-:�dM" O X5-
nUR
T	S/U-S/U--5 UR
T
S/U-5 [R"[R5Hn[	T5U:�dM O TR5 TR5 [U5 SmTR5 [R"[R5Hn[	T
5U:�dM O UR
T	S/U-S/U--5 UR
T
S/U-S	/U--5 SSS5 g!,(df   g=f)
Nrc�V>�TR5 TRT5 TR5nTR5 TRUT45 TR5 TRT5 TR5nTR5 TRUT45 gr)rkr!rrs)rr'�	phase_num�readyrr	s �����rr��'ConditionTests._check_notify.<locals>.fRsw����L�L�N��L�L��#��Y�Y�[�F��L�L�N��O�O�V�Y�/�0��L�L�N��L�L��#��Y�Y�[�F��L�L�N��O�O�V�Y�/�0rr�r�r�)Tr�r�)Tr�)Tr�)rrr#r$r/rr[rkr/r
rs�
notify_all)rr'r�r�r'�count1�count2r4r5rr	s `     @@@@rr�ConditionTests._check_notifyBs�����������	�
	1�
	1�
��
�1�[��+�+�G�,A�,A�B���u�:��?��C�
�K�K�M����X�r�*��F��L�L�N��K�K��� ��(��I��L�L�N��+�+�G�,A�,A�B���x�=�F�*��C�
���X�	�{�V�';�<����X�r�*��+�+�G�,A�,A�B���u�:��'��C�

�L�L�N��K�K��N� ��#��I��L�L�N��+�+�G�,A�,A�B���x�=�3�x�=�0�Q�Z�@��C��Z�F����X�	�{�V�';�y�k�F�>R�'R�S����X�	�{�V�';�<��+�+�G�,A�,A�B���u�:��?��C�

�L�L�N��O�O�� ��#��I��L�L�N��+�+�G�,A�,A�B���x�=�A�%��C�
���X�	�{�V�';�y�k�F�>R�'R�S����X�	�{�V�';�y�k�F�>R�'R�S�A�[�[�s4�5L�BL�<A L� BL�(A/L�A5L�>L�
L)c�h�UR5nURU5 URU5 gr)r%rr+s  rr�ConditionTests.test_notify�s)���}�}������4� ����4� rc�$^^^�UR5mSm/mUUU4SjnSn[X5 SSS5 UR[T5U5 TH(up4UR	UT5 URU5 M* g!,(df   NX=f)Nr�c��>�TR5 [R"5nTRT5n[R"5nTR	5 TRX -
U45 gr)rkr	r�rrsr!)r�rr�r'r�r�s   ���rr��&ConditionTests.test_timeout.<locals>.f�sN����L�L�N����!�B��Y�Y�w�'�F����!�B��L�L�N��N�N�B�G�V�,�-rr�)r%rr[r/rUr�)rr�r�rrr'r�r�s     @@@rr��ConditionTests.test_timeout�s{����}�}�������	.�
��
�1�[�������W��q�)�!�J�B����r�7�+�
���V�$�"�	�[�s�B�
Bc�>^^^�TR5mSmUUU4Sjn[US5 [S5H9n[R"S5 T TS-
mTR5 SSS5 M; SSS5 g!,(df   MU=f!,(df   g=f)Nrc�>�T TRU4Sj5nTRU5 TRTS5 SSS5 g!,(df   g=f)Nc�>�TS:H$�N�r+��states�r�<lambda>�8ConditionTests.test_waitfor.<locals>.f.<locals>.<lambda>�s	���u��zrrE)�wait_forrxr[)rr'rrGs ���rr��&ConditionTests.test_waitfor.<locals>.f�s;�������'9�:������'�� � ���*����s�9A�
Ar�rEr)r%rr.r	r
r/)rr��ir'rGs`  @@r�test_waitfor�ConditionTests.test_waitfor�sp����}�}�����	+��1�a�[��1�X���
�
�5�!���Q�J�E��K�K�M��T���[��T���[�s#�'B�A<�'B�<
B�B�
Bc�|^^^^�TR5mSm/mUUUU4Sjn[US5 [S5H9n[R"S5 T TS-
mTR5 SSS5 M; SSS5 TR
[T5S5 g!,(df   Mp=f!,(df   N<=f)Nrc�(>�T [R"5nTRU4SjSS9n[R"5U-
nTRU5 TR	US5 TRS5 SSS5 g!,(df   g=f)Nc�>�TS:H$rDr+rFs�rrH�@ConditionTests.test_waitfor_timeout.<locals>.f.<locals>.<lambda>�s	����q�r皙�����?r�)r	r�rJr�rUr!)rrr'rrG�successs  ����rr��.ConditionTests.test_waitfor_timeout.<locals>.f�sj�����^�^�%�����'8�#��F���^�^�%��*��� � ��(��"�"�2�s�+����t�$�
���s�A6B�
Br�r�r)r%rr.r	r
r/r[r/)rr�rLr'rGrTs`  @@@r�test_waitfor_timeout�#ConditionTests.test_waitfor_timeout�s�����}�}�������	%�	%��1�a�[��1�X���
�
�5�!���Q�J�E��K�K�M��T���	
����W��q�)�	�T��	�[�s#�'B-�B�+B-�
B*�%B-�-
B;r+N)r=r>r?r@rAr(r,r0rrr�rMrVrBr+rrr#r#"s2���2�&3�5�`T�D!�%�4"� *rr#c�T�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rg)�BaseSemaphoreTestsi�z:
Common tests for {bounded, unbounded} semaphore objects.
c��UR[URSS9 UR[UR[R*S9 g)N���)�value)r�r��semtype�sys�maxsizer:s rrc�#BaseSemaphoreTests.test_constructor�s:�����*�d�l�l�B��?����*�d�l�l�S�[�[�L��Irc��URS5nUR5 UR5 URS5nUR5 UR5 UR5 UR5 g)Nr�r�)r]rkrs�r�sems  rr(�BaseSemaphoreTests.test_acquire�sR���l�l�1�o�����
����
��l�l�1�o�����
����
����
����
rc�F�UR5nUR5 Agr)r]rkrbs  rro�'BaseSemaphoreTests.test_acquire_destroy�s���l�l�n�����
�rc�@^
^^^
^�SnURU5m
T
R5 /m/m/mSm
U
UUU
U4SjnUU4SjnSn[X$5 US-
nU"U5 URTT-S/U-5 Sm
[	U5HnT
R5 M UnU"XW-5 UR[
TT-5S/U-S/U--5 Sm
US-
n[	U5HnT
R5 M U"XW-U-5 UR[
TT-5S/U-S/U--S/U--5 URT
RS55 Sn	T
R5 SSS5 URTS	/WW-W-W	--5 g!,(df   N.=f)
N�rc��>�TRTR55 TRT5 TRTR55 TRT5 grr})r4rr	rc�sem_resultss�����rr�7BaseSemaphoreTests.test_acquire_contended.<locals>.funcsC������s�{�{�}�-��O�O�I�&����s�{�{�}�-��O�O�I�&rc�>�[R"[R5H n[T5[T5-U:�dM  g gr�rr#r$r/��countr'rr	s  ��r�
wait_count�=BaseSemaphoreTests.test_acquire_contended.<locals>.wait_count�7����+�+�G�,A�,A�B���x�=�3�x�=�0�E�9��Cr�
r�r�FT)r]rkrr[r.rs�sortedr�)r�	sem_valuerrpr�r8rLr9�count3�count4r4rr	rcrjs          @@@@@rr��)BaseSemaphoreTests.test_acquire_contendeds�����	��l�l�9�%�����
��������	�	'�	'�	�

��
�4�^���]�F��v�����X��0�1�#��,�?��I��9�%�����
�&��F��v��'����V�H�x�$7�8��S�6�\�Q�C�&�L�8�
:��I��!�m�F��6�]�����
�#��v���/�0����V�H�x�$7�8��S�6�\�Q�C�&�L�8�A�3��<�G�
I�
���S�[�[��/�0��F��K�K�M�9�<	
������6�F�?�V�#;�f�#D�E�	G�=�^�s
�DF�
Fc�^^^	^
�SnURU5m
T
R5 /m/m	SmUUU	U
4SjnUU	4Sjn[US5 US-
nU"U5 URTT	-S/U-5 SmUnT
R	U5 U"XE-5 UR[TT	-5S/U-S/U--5 SmUS-
nT
R	U5 U"XE-U-5 UR[TT	-5S/U-S/U--S/U--5 UR
T
RS55 T
R	5 SSS5 g!,(df   g=f)	Nrhrc�>�TR5 TRT5 TR5 TRT5 grr�)r4rr	rcs����rr�2BaseSemaphoreTests.test_multirelease.<locals>.funcDs-����K�K�M��O�O�I�&��K�K�M��O�O�I�&rc�>�[R"[R5H n[T5[T5-U:�dM  g grrmrns  ��rrp�8BaseSemaphoreTests.test_multirelease.<locals>.wait_countKrrrrsr�r�F)r]rkrr[rsrtr�)rrurrpr8r9rvr4rr	rcs       @@@@r�test_multirelease�$BaseSemaphoreTests.test_multirelease<sW����	��l�l�9�%�����
������	�	'�	'�	�
�4��_���]�F��v�����X��0�1�#��,�?��I��F��K�K����v��'����V�H�x�$7�8��S�6�\�Q�C�&�L�8�
:��I���]�F��K�K����v���/�0����V�H�x�$7�8��S�6�\�Q�C�&�L�8�A�3��<�G�
I�
���S�[�[��/�0�
�K�K�M�3�_�_�s
�
C4E�
Ec�F�URS5nURURS55 URURS55 URURS55 UR	5 URURS55 g)Nr�F)r]rxrkr�rsrbs  rry�#BaseSemaphoreTests.test_try_acquireksn���l�l�1�o��������E�*�+�������E�*�+�������U�+�,����
�������E�*�+rc�^^�URS5mTR5 /mUU4Sjn[US5 SSS5 UR[	T5S/S-S/S--5 g!,(df   N5=f)NrEc�>�TRTRS55 TRTRS55 grwr})r�rcs��rr��8BaseSemaphoreTests.test_try_acquire_contended.<locals>.fws-����N�N�3�;�;�u�-�.��N�N�3�;�;�u�-�.rr�FrhTr�)r]rkrr[rt)rr�r�rcs  @@rr��-BaseSemaphoreTests.test_try_acquire_contendedsse����l�l�1�o�����
���	/��1�a�[���
	
������5�'�A�+���!��*C�E��[�s�A*�*
A8c�0�URS5nUR[URSSS9 UR	URSS95 UR	URSS95 URURSS95 UR
5 UR	URSS95 [R"5nURURSS95 [R"5U-
nURUS5 g)Nr�Fg�?r�g{�G�zt?r�)
r]r�r�rkrxr�rsr	r�rU)rrc�trs    r�test_acquire_timeout�'BaseSemaphoreTests.test_acquire_timeout�s����l�l�1�o�����*�c�k�k�5�#��F�������E��2�3�������E��2�3�������U��3�4����
�������E��2�3��N�N���������S��1�2�
�^�^�
��
!�����2�s�#rc�
^�UR5mTR5 U4Sjn[US5n[S5 UR	UR
5 TR
5 SSS5 g!,(df   g=f)Nc�F>�TR5 TR5 grr�)rcs�rr��0BaseSemaphoreTests.test_default_value.<locals>.f�s����K�K�M��K�K�Mrr�)r]rkrr
r�rrs)rr�r�rcs   @r�test_default_value�%BaseSemaphoreTests.test_default_value�sX����l�l�n�����
�	��1�a�[�E� ��#����U�^�^�,�
�K�K�M�
�[�[�s�7A4�4
Bc�@^^�TRS5mSUU4SjjnU"5 TRTRS55 TR5 TR	[
U[
5 TRTRS55 TR5 g)Nr�c�*>�T TRTRS55 TR5 T TRTRS55 U(aUeSSS5 SSS5 g!,(df   N=f!,(df   g=frw)rxrkrsr�)r�rrcs ��r�_with�+BaseSemaphoreTests.test_with.<locals>._with�sg����������E� 2�3����
���$�$�S�[�[��%7�8��!�	������S����s"�3B�*A3�"B�3
B	�=B�
BFr)r]rxrkrsr�r�)rr�rcs` @rr��BaseSemaphoreTests.test_with�so����l�l�1�o��	"�	"�	��������E�*�+����
����)�U�I�6�������E�*�+����
rr+N)r=r>r?r@rArcr(ror�r~ryr�r�r�r�rBr+rrrYrY�s>���J���
6G�p-�^,�F�$�� rrYc�$�\rSrSrSrSrSrSrg)�SemaphoreTestsi�z!
Tests for unbounded semaphores.
c��URS5nUR5 UR5 UR5 UR5 g�Nr�)r]rsrkrbs  rr��&SemaphoreTests.test_release_unacquired�s3���l�l�1�o�����
����
����
����
rc�(�URS5nUR[U5S5 UR5 UR[U5S5 UR	5 UR	5 UR[U5S5 g)Nr�z<\w+\.Semaphore at .*: value=3>z<\w+\.Semaphore at .*: value=2>z<\w+\.Semaphore at .*: value=4>)r]rfrgrkrsrbs  rrh�SemaphoreTests.test_repr�si���l�l�1�o������c��$F�G����
�����c��$F�G����
����
�����c��$F�Grr+N�r=r>r?r@rAr�rhrBr+rrr�r��s����Hrr�c�$�\rSrSrSrSrSrSrg)�BoundedSemaphoreTestsi�z
Tests for bounded semaphores.
c���UR5nUR[UR5 UR	5 UR5 UR[UR5 gr)r]r�r�rsrkrbs  rr��-BoundedSemaphoreTests.test_release_unacquired�sG���l�l�n�����*�c�k�k�2����
����
����*�c�k�k�2rc��URS5nUR[U5S5 UR5 UR[U5S5 g)Nr�z(<\w+\.BoundedSemaphore at .*: value=3/3>z(<\w+\.BoundedSemaphore at .*: value=2/3>)r]rfrgrkrbs  rrh�BoundedSemaphoreTests.test_repr�sB���l�l�1�o������c��$O�P����
�����c��$O�Prr+Nr�r+rrr�r��s���3�Qrr�c��\rSrSrSrSrSrSrSrSr	Sr
S	rSS
jrSr
SrS
rSrSrSrSrSrSrSrSrg)�BarrierTestsi�z
Tests for Barrier objects.
r�g@c�V�URURURS9Ulg)Nr�)�barriertyper��defaultTimeout�barrierr:s rrI�BarrierTests.setUp�s#���'�'�����8K�8K�'�L��rc�8�URR5 gr)r��abortr:s rrN�BarrierTests.tearDown�s�������rc�d�[XR5 SSS5 g!,(df   g=fr)rr��rr�s  r�run_threads�BarrierTests.run_threads�s��
�1�f�f�
���
�
�s�!�
/c�`�URRnURX0R5 [	U5H�nUSRS5 UR[
US5XC-5 URR5 USRS5 UR[
US5US-U-5 URR5 M� URURRS5 URURR5 g)NrTr�)r��partiesr[r�r.r!r/r�	n_waitingr��broken)rr��n�mrLs     r�	multipass�BarrierTests.multipass�s����L�L� � ������F�F�#��q��A��A�J���d�#����S����_�a�e�4��L�L�����A�J���d�#����S����_�q�1�u��k�:��L�L����
�	
������/�/��3�������,�,�-rc��UR[URSS9 UR[URSS9 g)Nr)r�r[)r�r�r�r:s rrc�BarrierTests.test_constructor�s8�����*�d�&6�&6���B����*�d�&6�&6���Crc�D^^^�///mUUU4SjnTRU5 g)z+
Test that a barrier is passed in lockstep
c�*>�TRTT5 gr)r�)�passesr�rs���rr��$BarrierTests.test_barrier.<locals>.fs����N�N�7�F�+rN�r�)rr�r�r�s`` @r�test_barrier�BarrierTests.test_barrier�s!����b�'��	,�����rc�$�URS5$)z3
Test that a barrier works for 10 consecutive runs
rs)r�r:s r�test_barrier_10�BarrierTests.test_barrier_10s��� � ��$�$rc�^^�/mUU4SjnTRU5 TR[T5[[TR555 g)z)
test the return value from barrier.wait
c�\>�TRR5nTRU5 gr)r�rr!)rr�rs ��rr��(BarrierTests.test_wait_return.<locals>.fs!������!�!�#�A��N�N�1�rN)r�r[�sumr.r�)rr�r�s` @r�test_wait_return�BarrierTests.test_wait_returns@�����	�	
���������W��s�5����=�'9�:rc�^^^�/mU4SjnTRTRU5mUUU4SjnTRU5 g)z
Test the 'action' callback
c�(>�TRS5 gr9)r!)r�s�r�action�(BarrierTests.test_action.<locals>.actions����N�N�4� rc�\>�TR5 TR[T5S5 gr�)rr[r/)r�r�rs���rr��#BarrierTests.test_action.<locals>.fs ����L�L�N����S��\�1�-rN)r�r�r�)rr�r�r�r�s`  @@r�test_action�BarrierTests.test_actions:�����	!��"�"�4�6�6�6�2��	.�	
����rc�^^^�/m/mUUU4SjnTRU5 TR[T5S5 TR[T5TRS-
5 TR	TR
R5 g)z;
Test that an abort will put the barrier in a broken state
c�d>�TRR5nUTRS-:Xa[eTRR5 TR	S5 g![
Ra TR	S5 g[a TRR5 gf=f�Nr�T)r�rr�r�r!r�BrokenBarrierErrorr�)rLrr	rs ���rr��"BarrierTests.test_abort.<locals>.f+s����

��L�L�%�%�'�������	�>�&�&����!�!�#�����%���/�/�
&�����%��
����"�"�$��
�s�AA"�"%B/�	#B/�.B/rr�N)r�r[r/r�rxr�r�)rr�rr	s` @@r�
test_abort�BarrierTests.test_abort%sj�������	�	
���������X���*�����X�����q��1�������+�+�,rc�^^^^�/m/m/mUUUU4SjnTRU5 TR[T5S5 TR[T5TRS-
5 TR[T5TR5 g)z<
Test that a 'reset' on a barrier frees the waiting threads
c�B>�TRR5nUTRS-:Xao[R"[R
5H,nTRRTRS-
:�dM, O TRR5 O,TRR5 TRS5 TRR5 TRS5 g![Ra TRS5 NSf=f)Nr�r�T)r�rr�rr#r$r��resetr!rr�)rLr'rr	�results3rs  ����rr��"BarrierTests.test_reset.<locals>.fDs�������!�!�#�A��D�F�F�A�I�~� �/�/��0E�0E�F�A��|�|�-�-�$�&�&�1�*�=��G����"�"�$�*��L�L�%�%�'��O�O�D�)�
�L�L�����O�O�D�!��	!�3�3�*��O�O�D�)�*�s�+C6�6%D�Drr�N)r�r[r/r�)rr�rr	r�s` @@@r�
test_reset�BarrierTests.test_reset=sv���������	"�	"�$	
���������X���*�����X�����q��1�����X�����/rc�V^^^^^�/m/m/mTRTR5mUUUUU4SjnTRU5 TR[	T5S5 TR[	T5TRS-
5 TR[	T5TR5 g)z6
Test that a barrier can be reset after being broken.
c�P>�TRR5nUTRS-:Xa[eTRR5 TR	S5 TR5TRS-:XaTRR5 TR5 TRR5 TR	S5 g![
Ra TR	S5 N�[a TRR5 N�f=fr�)	r�rr�r�r!rr�r�r�)rL�barrier2rr	r�rs �����rr��,BarrierTests.test_abort_and_reset.<locals>.fds����

��L�L�%�%�'�������	�>�&�&����!�!�#�����%��}�}��$�&�&�!�)�+����"�"�$��M�M�O��L�L�����O�O�D�!���/�/�
&�����%��
����"�"�$��
�s�AC�%D%�?#D%�$D%rr�N)r�r�r�r[r/)rr�r�rr	r�s` @@@@r�test_abort_and_reset�!BarrierTests.test_abort_and_reset\s�����������#�#�D�F�F�+��	"�	"�*	
���������X���*�����X�����q��1�����X�����/rc�4^�U4SjnTRU5 g)z
Test wait(timeout)
c�*>�TRR5nUTRS-:Xa#[R"TR
S-5 TR
[RTRRTR
S-5 g)Nr�rE)	r�rr�r	r
r�r�rr�)rLrs �rr��$BarrierTests.test_timeout.<locals>.f�sm������!�!�#�A��D�F�F�a�K���
�
�4�.�.��2�3����i�:�:�"�l�l�/�/��1D�1D�q�1H�
JrNr�r�s` rr��BarrierTests.test_timeout~s���	J�	
����rc�^^�SnTRSUS9mUU4Sjn[R"5n[US5 SSS5 [R"5U-
nTR	XA5 g!,(df   N8=f)z$
Test the barrier's default timeout
rSr�r�c�Z>�TR[RTR5 gr)r�rr�r)r�rs��rr��,BarrierTests.test_default_timeout.<locals>.f�s ������i�:�:�%�l�l�
,rr�N)r�r	r�rrQ)rr�r��
start_timerr�s`    @r�test_default_timeout�!BarrierTests.test_default_timeout�sj������"�"�1�g�"�6��	,��^�^�%�
�
�1�a�[���
�^�^�
�
�
*������,��[�s�A1�1
A?c�f�URS5nUR5 UR5 gr�)r�r)r�bs  r�test_single_thread�BarrierTests.test_single_thread�s$�����Q���	����	���rc�:^^�URS5m[RmUR[	T5S5 UU4SjnSn[X5 [R"[R5HnTRU:�dM O UR[	T5S5 TRT5 SSS5 UR[	T5S5 TR5 UR[	T5S5 g!,(df   NU=f)Nr�z!<\w+\.Barrier at .*: waiters=0/3>c�(>�TRT5 gr)r)r�r�s��rr��!BarrierTests.test_repr.<locals>.f�s����L�L��!rr�z!<\w+\.Barrier at .*: waiters=2/3>z<\w+\.Barrier at .*: broken>)r�rrrfrgrr#r$r�rr�)rr�r�r'r�r�s    @@rrh�BarrierTests.test_repr�s�����"�"�1�%���&�&������g��(L�M�	"�
��
�1�[��+�+�G�,A�,A�B���$�$��)��C�
���T�'�]�A�
C�
�L�L��!��	
����g��=�	?�	�
�
������g��8�	:�!�[�s�6D�
0D�
D)r�N)r�)r=r>r?r@rAr�r�rIrNr�r�rcr�r�r�r�r�r�r�r�r�r�rhrBr+rrr�r��sf���	
�A��N�M���.�D��%�
;��-�00�> 0�D�-� �
:rr�)rAr�r^r	�_threadrrr�unittestr��testr�test.supportr�
skipUnless�has_fork_supportr�r
�objectr�TestCaserDrXr�r�r�r#rYr�r�r�r+rr�<module>rs����
�
��1�����)��#�#�G�$<�$<�%C�D�
�
 �@�F�@�F1�8�$�$�1�"V!�L�V!�r?�
�?�Dd+��d+�Nm@��m@�`G*�\�G*�TA��A�FH�'�H�.Q�.�Q�(`:�<�`:r

Youez - 2016 - github.com/yon3zu
LinuXploit