Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/lock_tests.cpython-312.opt-2.pyc

�

&Μg�����	ddlZddlZddlZddlmZmZddlZddlZddlZddl	m
Z
ddlmZeje
jd�Zd�ZGd�de�ZGd	�d
ej&�ZGd�de�ZGd
�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�ZGd�de�Zy)�N)�start_new_thread�TIMEOUT_MAX)�support)�threading_helperz9platform doesn't support fork (no _at_fork_reinit method)c�4�tjd|z�y)N�{�G�z�?)�time�sleep)�nthreads �,/usr/local/lib/python3.12/test/lock_tests.py�wait_threads_blockedr
s��	�J�J�u�w���c�.�eZdZ	dd�Zd�Zd�Zd�Zd�Zy)�Bunchc�j�	||_||_g|_g|_g|_||_d|_y�N)�funcr�started�finished�
exceptions�	_can_exit�_wait_thread)�selfrr�wait_before_exits    r�__init__zBunch.__init__ s>��	�
��	���������
����-�-��� ��rc�4�tj�}|jj|�	|j	�|jj|�tjtj�D]}|js�yy#t
$r%}|jj|�Yd}~�{d}~wwxYw#|jj|�tjtj�D]}|js�wwxYwr)�	threading�	get_identr�appendr�
BaseExceptionrrr�sleeping_retry�
SHORT_TIMEOUTr)r�tid�exc�_s    r�taskz
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�B<�7C�<C�C�AD�Dc��tjtj�|_|jj�	t
|j�D]}t|jd��	tjtj�D]'}t|j�|jk\s�&|S|S#d|_
�xYw)N�T)r�wait_threads_exitrr"r�	__enter__�rangerrr&rr!�lenr)rr%s  rr*zBunch.__enter__;s���,�>�>�w�?T�?T�U������#�#�%�	��4�<�<�(�� ����B�/�)��'�'��(=�(=�>�A��4�<�<� �D�L�L�0����	?����	�!�D�N��s�0C�
Cc�2�tjtj�D]&}t|j�|j
k\s�&n|jjddd�|j}d|_|rt|j�d�|��y)Nz threads raised exceptions)rr!r"r,rrr�__exit__r�ExceptionGroupr)r�exc_type�	exc_value�	tracebackr%rs      rr.zBunch.__exit__Ls����'�'��(=�(=�>�A��4�=�=�!�T�\�\�1��?�
	
���"�"�4��t�4��_�_�
����� �D�I�I�;�.H�!I�!+�-�
-�rc��d|_y�NT)r�rs r�	do_finishzBunch.do_finish[s	����rN)F)�__name__�
__module__�__qualname__rr&r*r.r6r(rrrrs ���!���"
-�rrc��eZdZd�Zd�Zd�Zy)�BaseTestCasec�6�tj�|_yr)r�threading_setup�_threadsr5s r�setUpzBaseTestCase.setUp`s��(�8�8�:��
rc�d�tj|j�tj�yr)r�threading_cleanupr>r�
reap_childrenr5s r�tearDownzBaseTestCase.tearDowncs ���*�*�D�M�M�:����rc�X�|j||dz�|j||dz�y)Ng333333�?g$@)�assertGreaterEqual�
assertLess)r�actual�expecteds   r�
assertTimeoutzBaseTestCase.assertTimeoutgs*��	
�����3��7������4��0rN)r7r8r9r?rCrIr(rrr;r;_s��;� �1rr;c�b�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zy)�
BaseLockTestsc��tjtj�D]}t|�|k\s�n|j	t|�|�yr)rr!r"r,�assertEqual)r�phaserHr%s    r�
wait_phasezBaseLockTests.wait_phaseusB���'�'��(=�(=�>�A��5�z�X�%��?�	
����U��X�.rc�&�|j�}~yr)�locktype�r�locks  r�test_constructorzBaseLockTests.test_constructor{s���}�}���rc�\�|j�}|jt|�d�~y)Nz<unlocked .* object (.*)?at .*>)rQ�assertRegex�reprrRs  r�	test_reprzBaseLockTests.test_reprs%���}�}�������d��%F�G�rc�|�|j�}|j�|jt|�d�~y)Nz<locked .* object (.*)?at .*>)rQ�acquirerVrWrRs  r�test_locked_reprzBaseLockTests.test_locked_repr�s.���}�}�����������d��%D�E�rc�F�|j�}|j�~yr)rQrZrRs  r�test_acquire_destroyz"BaseLockTests.test_acquire_destroy�s���}�}�������rc�f�|j�}|j�|j�~yr�rQrZ�releaserRs  r�test_acquire_releasez"BaseLockTests.test_acquire_release�s"���}�}�����������rc��|j�}|j|jd��|j�y�NF)rQ�
assertTruerZr`rRs  r�test_try_acquirezBaseLockTests.test_try_acquire�s+���}�}���������U�+�,����rc�����|j���j�g���fd�}t|d�5	ddd�|j�d��j	�y#1swY�.xYw)Nc�F���j�jd��yrc�rrZ�rS�results��r�fz3BaseLockTests.test_try_acquire_contended.<locals>.f�s����M�M�$�,�,�u�-�.r�r)rQrZr�assertFalser`�rrkrSrjs  @@r�test_try_acquire_contendedz(BaseLockTests.test_try_acquire_contended�sU����}�}���������	/�
�1�a�[���������#������[�s�A&�&A/c�`��|j���j��fd�}d}t||�5}t|�|j	t|j�d��j�ddd�|j	tj�|�y#1swY�/xYw)Nc�F���j��j�yr�rZr`�rSs�rrkz/BaseLockTests.test_acquire_contended.<locals>.f������L�L�N��L�L�Nr�r)rQrZrr
rMr,rr`)rrk�N�bunchrSs    @r�test_acquire_contendedz$BaseLockTests.test_acquire_contended�s�����}�}�������	�
��
�1�a�[�E� ��#����S����0�!�4�
�L�L�N�
�	
����U�^�^�,�a�0��[�s�AB$�$B-c�v��|j���fd�}d�fd�	}�5	ddd�t|d�5	ddd�|jt�5�5t�#1swY�>xYw#1swY�4xYw#1swYnxYw	ddd�n#1swYnxYwt|d�5	ddd�y#1swYyxYw)Nc�F���j��j�yrrrrss�rrkz"BaseLockTests.test_with.<locals>.f�rtrc�>���5|�|�	ddd�y#1swYyxYwrr()�errrSs �r�	with_lockz*BaseLockTests.test_with.<locals>.with_lock�s�����?��I�#����s��rlr)rQr�assertRaises�	TypeError)rrkr}rSs   @r�	test_withzBaseLockTests.test_with�s�����}�}���	�	�����1�a�[����
�
�y�
)�����T���[��
����*�
)�
)���1�a�[���[�[�s@�A�A*�B�A6�A'�*A3�6A?	�;B�B�$B/�/B8c�t��|j���fd�}t|d�5	ddd�y#1swYyxYw)Nc�F���j��j�yrrrrss�rrkz)BaseLockTests.test_thread_leak.<locals>.f�rtr�)rQr�rrkrSs  @r�test_thread_leakzBaseLockTests.test_thread_leak�s-����}�}���	��1�b�\���\�\�s�.�7c�����|j��|jt�jdd�|jt�jd��|jt�jd��|jt�jt
dz���jt
���j
�tj�}|j�jd���tj�}|j||z
d�g���fd�}t|d�5	ddd�|j�d�|j�dd	�y#1swY�3xYw)
NFrli������timeoutg}Ô%�I�Truc���tj�}�j�jd���tj�}�j||z
�y)N��?r�)r	�	monotonicrrZ)�t1�t2rS�resultss  ��rrkz%BaseLockTests.test_timeout.<locals>.f�sB������!�B��N�N�4�<�<��<�4�5����!�B��N�N�2��7�#rrr�)rQr~�
ValueErrorrZ�
OverflowErrorrr`r	r�rdrFrrmrI)rr�r�rkrSr�s    @@r�test_timeoutzBaseLockTests.test_timeout�s����}�}������*�d�l�l�E�1�=����*�d�l�l�D��A����-����u��E����-����{�Q���O����[��)�����
�^�^�
��������Q��/�0�
�^�^�
������R���#���	$�
�1�a�[���������$����7�1�:�s�+��[�s�:E.�.E7c�z�|j�}tj|�}|j|��yr)rQ�weakref�ref�assertIsNotNone�rrSr�s   r�test_weakref_existsz!BaseLockTests.test_weakref_exists�s+���}�}����k�k�$������S�U�#rc��|j�}tj|�}~tj�|j|��yr)rQr�r��gc�collect�assertIsNoner�s   r�test_weakref_deletedz"BaseLockTests.test_weakref_deleteds7���}�}����k�k�$����
�
�
�����#�%� rN)r7r8r9rOrTrXr[r]rarerorxr�r�r�r�r�r(rrrKrKpsM���/���
��
��
	�1�$�:�,�6$�
!rrKc�0�eZdZ	d�Zd�Zd�Zed��Zy)�	LockTestsc�
���|j��g���fd�}tj�5t|d�|j	�d��j�|j	�d�ddd�y#1swYyxYw)Nc����j��jd��j��jd�yr�rZr)rSrNs��rrkz#LockTests.test_reacquire.<locals>.fs-����L�L�N��L�L����L�L�N��L�L��rr(rl�)rQrr)rrOr`�rrkrSrNs  @@r�test_reacquirezLockTests.test_reacquiresc����}�}�����	��
/�
/�
1��Q��#��O�O�E�1�%�
�L�L�N��O�O�E�1�%�2�
1�
1�s�AA9�9Bc����|j���j��fd�}t|d�5	ddd��j��j�y#1swY�*xYw)Nc�&���j�yr)r`rss�rrkz*LockTests.test_different_thread.<locals>.f&�����L�L�Nrrl)rQrZrr`r�s  @r�test_different_threadzLockTests.test_different_thread"sG����}�}�������	�
�1�a�[������������[�s�A�A'c�&�|j�}|j�|j|jd���|j�|j|j	��|j|jd���y)Nrr�F)�blocking)rQrZrmr`�lockedrdrRs  r�test_state_after_timeoutz"LockTests.test_state_after_timeout-se���}�}�������������d��3�4������������'�������e��4�5rc���d�}|j�}|j�||�|j�}|j�|j�||�y)Nc�D�|j�|j�yrrrrss r�use_lockz/LockTests.test_at_fork_reinit.<locals>.use_lock9s��
�L�L�N��L�L�Nr)rQ�_at_fork_reinitrZ)rr�rS�lock2s    r�test_at_fork_reinitzLockTests.test_at_fork_reinit7sP��	��}�}�����������
�
���
�
�
��
������rN)r7r8r9r�r�r��
requires_forkr�r(rrr�r�	s*���&�(	�6����rr�c�2�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zy)�
RLockTestsc���|j�}|j�|j�|j�|j�|j�|j�yrr_rRs  rr�zRLockTests.test_reacquireOsC���}�}��������������������������rc�d�|j�}|jt|j�|j	�|j	�|j�|j	�|j�|j�|jt|j�yr)rQr~�RuntimeErrorr`rZrRs  r�test_release_unacquiredz"RLockTests.test_release_unacquiredXsk���}�}������,����5����������������������������,����5rc�d�|j�}|jt|j�|j	�|j	�|j�|j	�|j�|j�|jt|j�yr)rQr~r��
_release_saverZr`rRs  r�test_release_save_unacquiredz'RLockTests.test_release_save_unacquireddso���}�}������,��(:�(:�;����������������������������,��(:�(:�;rc������j���jd�j���j��jd�j���j��j��jd�j���j	��jd�j���j	��j	��jd�j��g����fd�}tj�5t|d��j�d��jd�j���jd��j�d��jd�j��ddd�y#1swYyxYw)Nrrl�r�c����j��jd��j�d��j��jd�y)Nr�)rZrrOr`)rSrNrs���rrkz*RLockTests.test_recursion_count.<locals>.f�s;����L�L�N��L�L����O�O�E�1�%��L�L�N��L�L��rr()
rQrM�_recursion_countrZr`rr)rrOrr�s` @@r�test_recursion_countzRLockTests.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
�1BF<�<Gc���|j���fd�}t|dd�5}	|jt�j�|j�	ddd�y#|j�wxYw#1swYyxYw)Nc�&���j�yr)rZrss�rrkz+RLockTests.test_different_thread.<locals>.f�r�rrlT)rQrr~r�r`r6)rrkrwrSs   @rr�z RLockTests.test_different_thread�se����}�}���	��1�a��
�%�
"��!�!�,����=����!�	�
�����!��	�
�s"�A5� A �A5� A2�2A5�5A>c�Z���|j��|j�j���j�|j	�j���j�|j	�j��g���fd�}t|d�5	ddd�|j�d��j
�|j	�j���j
�|j�j��y#1swY�|xYw)Nc�D���j�j��yr)r�	_is_ownedris��rrkz$RLockTests.test__is_owned.<locals>.f�s����M�M�$�.�.�*�+rrlr)rQrmr�rZrdrr`rns  @@r�test__is_ownedzRLockTests.test__is_owned�s�����}�}���������)�*�����������(�)�����������(�)���	,�
�1�a�[���������#�����������(�)�����������)�*�
�[�s�$D!�!D*N)	r7r8r9r�r�r�r�r�r�r(rrr�r�Ks&����
6�
<�!9�F
"�+rr�c�B�eZdZ	d�Zd�Zd�Zd�Zd�Zed��Z	d�Z
y)	�
EventTestsc���|j�}|j|j��|j�|j	|j��|j�|j	|j��|j�|j|j��|j�|j|j��yr)�	eventtyperm�is_set�setrd�clear�r�evts  r�test_is_setzEventTests.test_is_set�s����n�n����������&����	�����
�
��%����	�����
�
��%��	�	���������&��	�	���������&rc�*����d}g�g����fd�}t||�5t|�|jt��d��j	�ddd�|j�dg|z�|j�dg|z�y#1swY�6xYw)Nruc����j�j���j�j��yr)r�wait)r��results1�results2s���rrkz#EventTests._check_notify.<locals>.f�s'����O�O�C�H�H�J�'��O�O�C�H�H�J�'rrT)rr
rMr,r�)rr�rvrkr�r�s `  @@r�
_check_notifyzEventTests._check_notify�s����
������	(��1�a�[� ��#����S��]�A�.�
�G�G�I�
�	
����D�6�A�:�.�����D�6�A�:�.��[�s�7B	�	Bc��|j�}|j|�|j�|j�|j|�yr)r�r�r�r�r�s  r�test_notifyzEventTests.test_notify�s<���n�n������3�����	��	�	�����3�rc������|j��g�g�d}���fd�}t||�5	ddd�|j�dg|z��D](\}}|j|�|j	|d��*g�g��j�t||�5	ddd�|j�dg|z��D]\}}|j
|��y#1swY��xYw#1swY�GxYw)Nruc�����j�jd��tj�}�jd�}tj�}�j|||z
f�y)Ngr�)rr�r	r�)r��rr�r�r�r�s   ���rrkz"EventTests.test_timeout.<locals>.f�sP����O�O�C�H�H�S�M�*����!�B�����
�A����!�B��O�O�Q��R��L�)rFr�T)r�rrMrmrIr�rd)rrvrkr��dtr�r�r�s     @@@rr�zEventTests.test_timeout�s�����n�n�������
��	*��1�a�[���	
����E�7�Q�;�/��E�A�r����Q�����r�3�'��
�������	�
�1�a�[���	
����D�6�A�:�.��E�A�r��O�O�A���!�[���[�s�C�C"�C�"C+c����|j��g���fd�}d}t||�5t|��j��j	�ddd�|j�dg|z�y#1swY� xYw)Nc�b���j�jtj��yr)rr�r�LONG_TIMEOUT)�eventr�s��rrkz(EventTests.test_set_and_clear.<locals>.fs����N�N�5�:�:�g�&:�&:�;�<rruT)r�rr
r�r�rM)rrkrvr�r�s   @@r�test_set_and_clearzEventTests.test_set_and_clear�sl������ ����	=�
��
�1�a�[� ��#�
�I�I�K��K�K�M�
�	
����4�&�1�*�-��[�s�,A4�4A=c�p�|j�}|j5|j|jjd��ddd�|j	�|j5|j|jjd��ddd�y#1swY�YxYw#1swYyxYwrc)r��_condrmrZr�r�s  rr�zEventTests.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 �,+B,� B)�,B5c��|j�}|jt|�d�|j�|jt|�d�y)Nz<\w+\.Event at .*: unset>z<\w+\.Event at .*: set>)r�rVrWr�r�s  rrXzEventTests.test_reprsA���n�n�������c��$@�A����	�����c��$>�?rN)r7r8r9r�r�r�r�r�r�r�rXr(rrr�r��s:���
'�/�( ��>.�&�7��7�@rr�c�>�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
y	)
�ConditionTestsc�|�|j�}|j�|j�|j�|j�tj�}|j|�}|j�|j|jd��|j�|j
|jd��|j|jd��|j�|5|j|jd��ddd�y#1swYyxYwrc)�condtyperZr`r�Lockrmrd)r�condrSs   r�test_acquirezConditionTests.test_acquire's����}�}���	
�����������������~�~����}�}�T�"������������e�,�-�����������U�+�,�������e�,�-�����
����T�\�\�%�0�1��T�T�s�!D2�2D;c�d�|j�}|jt|j�yr)r�r~r�r��rr�s  r�test_unacquired_waitz#ConditionTests.test_unacquired_wait:s!���}�}������,��	�	�2rc�d�|j�}|jt|j�yr)r�r~r��notifyr�s  r�test_unacquired_notifyz%ConditionTests.test_unacquired_notify>s!���}�}������,����4rc�"����	�
�g�g�	g�
d�����	�
fd�}d}t||�5tjtj�D]}t	��|k\s�n�j�|j
�	g�d}�j��j|�t|�d��j�tjtj�D]}t	�	�|k\s�n|j
�	dg|z�|j
�
g�tjtj�D]}t	��|k\s�n�j��jd�t|�d��j�tjtj�D]!}t	�	�t	�
�z||zk\s�!n||z
}|j
�	dg|zdg|zz�|j
�
dg|z�tjtj�D]}t	��|k\s�n�j��j�t|�d��j�tjtj�D]}t	�
�|k\s�n|j
�	dg|zdg|zz�|j
�
dg|zd	g|zz�ddd�y#1swYyxYw)
Nrc�V���j��j���j�}�j��j|�f��j��j���j�}�j��j|�f�yr)rZrr�r`)rjr��	phase_num�readyr�r�s �����rrkz'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�/�0rrur�rl)Trlr�)Tr�)Tr�)rrr!r"r,r�rMrZr�r
r`�
notify_all)rr�rkrvr%�count1�count2r�r�r�r�s `     @@@@rr�zConditionTests._check_notifyBs�����������	�
	1�
	1�
��
�1�a�[��+�+�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�5AL�BL�A/L�
A4L�?=L�Lc�h�|j�}|j|�|j|�yr)r�r�r�s  rr�zConditionTests.test_notify�s)���}�}������4� ����4� rc�����|j��d�g����fd�}d}t||�5	ddd�|jt��|��D](\}}|j	|��|j|��*y#1swY�RxYw)Nr�c�����j�tj�}�j��}tj�}�j	��j||z
|f�yr)rZr	r�r�r`r)r�rjr�r�r�r�s   ���rrkz&ConditionTests.test_timeout.<locals>.f�sP����L�L�N����!�B��Y�Y�w�'�F����!�B��L�L�N��N�N�B��G�V�,�-rru)r�rrMr,rIrm)rrkrvr�rjr�r�r�s     @@@rr�zConditionTests.test_timeout�s����}�}�������	.�
��
�1�a�[�������W��q�)�!�J�B�����r�7�+�
���V�$�"�	�[�s�B�B	c�"�����j��d����fd�}t|d�5td�D]7}tjd��5�dz
��j�ddd��9	ddd�y#1swY�MxYw#1swYyxYw)Nrc����5�j�fd��}�j|��j�d�ddd�y#1swYyxYw)Nc����dk(S�N�r(��states�r�<lambda>z8ConditionTests.test_waitfor.<locals>.f.<locals>.<lambda>�s	���u��zrr)�wait_forrdrM)rjr�rrs ���rrkz&ConditionTests.test_waitfor.<locals>.f�s;�������'9�:������'�� � ���*����s�8A�Arlrr)r�rr+r	r
r�)rrk�ir�rs`  @@r�test_waitforzConditionTests.test_waitfor�sp����}�}�����	+��1�a�[��1�X���
�
�5�!���Q�J�E��K�K�M��T���[��T���[�s#�&B�A9�%
B�9B�>B�Bc�`������j��d�g�����fd�}t|d�5td�D]7}tjd��5�dz
��j�ddd��9	ddd��j
t��d�y#1swY�hxYw#1swY�1xYw)Nrc����5tj�}�j�fd�d��}tj�|z
}�j|��j	|d��jd�ddd�y#1swYyxYw)Nc����dk(Srr(rs�rrz@ConditionTests.test_waitfor_timeout.<locals>.f.<locals>.<lambda>�s	����q�r皙�����?r�)r	r�rrmrIr)r�rjr�rr�successs  ����rrkz.ConditionTests.test_waitfor_timeout.<locals>.f�sj�����^�^�%�����'8�#��F���^�^�%��*��� � ��(��"�"�2�s�+����t�$�
���s�A6B�Brlr�r)r�rr+r	r
r�rMr,)rrkrr�rrs`  @@@r�test_waitfor_timeoutz#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-N)r7r8r9r�r�r�r�r�r�rr
r(rrr�r�"s2���2�&3�5�`T�D!�%�4"� *rr�c�J�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�BaseSemaphoreTestsc��|jt|jd��|jt|jtj��y)N���)�value)r~r��semtype�sys�maxsizer5s rrTz#BaseSemaphoreTests.test_constructor�s:�����*�d�l�l�B��?����*�d�l�l�S�[�[�L��Irc��|jd�}|j�|j�|jd�}|j�|j�|j�|j�y)Nrlr�)rrZr`�r�sems  rr�zBaseSemaphoreTests.test_acquire�sR���l�l�1�o�����
����
��l�l�1�o�����
����
����
����
rc�F�|j�}|j�~yr)rrZrs  rr]z'BaseSemaphoreTests.test_acquire_destroy�s���l�l�n�����
�rc�0�
���
��d}|j|��
�
j�g�g�g�d�
�
���
�fd�}��fd�}d}t||�5|dz
}||�|j��zdg|z�d�
t	|�D]}�
j��|}|||z�|jt
��z�dg|zdg|zz�d�
|dz
}t	|�D]}�
j��|||z|z�|jt
��z�dg|zdg|zzdg|zz�|j�
jd��d}	�
j�ddd�|j�d	gzz	zz�y#1swY�)xYw)
N�rc�����j�j���j���j�j���j��yrrh)r�r�r�r�sem_resultss�����rrz7BaseSemaphoreTests.test_acquire_contended.<locals>.funcsC������s�{�{�}�-��O�O�I�&����s�{�{�}�-��O�O�I�&rc���tjtj�D]}t��t��z|k\s�yyr�rr!r"r,��countr%r�r�s  ��r�
wait_countz=BaseSemaphoreTests.test_acquire_contended.<locals>.wait_count�7����+�+�G�,A�,A�B���x�=�3�x�=�0�E�9��Cr�
rlr�FT)rrZrrMr+r`�sortedrm)r�	sem_valuerr"rvr�rr��count3�count4r�r�r�rrs          @@@@@rrxz)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����	�
�d}|j|��
�
j�g�g�	d����	�
fd�}��	fd�}t|d�5|dz
}||�|j��	zdg|z�d�|}�
j	|�|||z�|jt��	z�dg|zdg|zz�d�|dz
}�
j	|�|||z|z�|jt��	z�dg|zdg|zzdg|zz�|j
�
jd���
j	�ddd�y#1swYyxYw)	Nrrc����j��j���j��j��yrr�)r�r�r�rs����rrz2BaseSemaphoreTests.test_multirelease.<locals>.funcDs-����K�K�M��O�O�I�&��K�K�M��O�O�I�&rc���tjtj�D]}t��t��z|k\s�yyrrr s  ��rr"z8BaseSemaphoreTests.test_multirelease.<locals>.wait_countKr#rr$rlr�F)rrZrrMr`r%rm)rr&rr"r�r�r'r�r�r�rs       @@@@r�test_multireleasez$BaseSemaphoreTests.test_multirelease<sV����	��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
�C6E�Ec�F�|jd�}|j|jd��|j|jd��|j|jd��|j	�|j|jd��y)Nr�F)rrdrZrmr`rs  rrez#BaseSemaphoreTests.test_try_acquireksn���l�l�1�o��������E�*�+�������E�*�+�������U�+�,����
�������E�*�+rc�����|jd���j�g���fd�}t|d�5	ddd�|jt	��dgdzdgdzz�y#1swY�0xYw)Nrc����j�jd���j�jd��yrcrh)r�rs��rrkz8BaseSemaphoreTests.test_try_acquire_contended.<locals>.fws-����N�N�3�;�;�u�-�.��N�N�3�;�;�u�-�.rruFrTr�)rrZrrMr%)rrkr�rs  @@rroz-BaseSemaphoreTests.test_try_acquire_contendedsse����l�l�1�o�����
���	/��1�a�[���
	
������5�'�A�+���!��*C�E��[�s�A)�)A2c�P�|jd�}|jt|jdd��|j	|jd���|j	|jd���|j|jd���|j
�|j	|jd���tj�}|j|jd���tj�|z
}|j|d�y)Nr�Fg�?r�g{�G�zt?r�)
rr~r�rZrdrmr`r	r�rI)rr�tr�s    r�test_acquire_timeoutz'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���|j���j��fd�}t|d�5}td�|j	|j
��j
�ddd�y#1swYyxYw)Nc�F���j��j�yrrr)rs�rrkz0BaseSemaphoreTests.test_default_value.<locals>.f�s����K�K�M��K�K�Mrrl)rrZrr
rmrr`)rrkrwrs   @r�test_default_valuez%BaseSemaphoreTests.test_default_value�sX����l�l�n�����
�	��1�a�[�E� ��#����U�^�^�,�
�K�K�M�
�[�[�s�7A3�3A<c�<����jd��d��fd�	}|��j�jd���j��j	t
|t
��j�jd���j�y)Nr�c����5�j�jd���j��5�j�jd��|r|�	ddd�ddd�y#1swY�xYw#1swYyxYwrc)rdrZr`rm)r|rrs ��r�_withz+BaseSemaphoreTests.test_with.<locals>._with�sg����������E� 2�3����
���$�$�S�[�[��%7�8��!�	������S����s"�3A:�%A.�A:�.A7	�3A:�:BFr)rrdrZr`r~r)rr8rs` @rr�zBaseSemaphoreTests.test_with�sj����l�l�1�o��	"�	��������E�*�+����
����)�U�I�6�������E�*�+����
rN)
r7r8r9rTr�r]rxr,reror2r5r�r(rrrr�s>���J���
6G�p-�^,�F�$�� rrc��eZdZ	d�Zd�Zy)�SemaphoreTestsc��|jd�}|j�|j�|j�|j�y�Nrl)rr`rZrs  rr�z&SemaphoreTests.test_release_unacquired�s3���l�l�1�o�����
����
����
����
rc�(�|jd�}|jt|�d�|j�|jt|�d�|j	�|j	�|jt|�d�y)Nr�z<\w+\.Semaphore at .*: value=3>z<\w+\.Semaphore at .*: value=2>z<\w+\.Semaphore at .*: value=4>)rrVrWrZr`rs  rrXzSemaphoreTests.test_repr�si���l�l�1�o������c��$F�G����
�����c��$F�G����
����
�����c��$F�GrN�r7r8r9r�rXr(rrr:r:�s����Hrr:c��eZdZ	d�Zd�Zy)�BoundedSemaphoreTestsc���|j�}|jt|j�|j	�|j�|jt|j�yr)rr~r�r`rZrs  rr�z-BoundedSemaphoreTests.test_release_unacquired�sG���l�l�n�����*�c�k�k�2����
����
����*�c�k�k�2rc��|jd�}|jt|�d�|j�|jt|�d�y)Nr�z(<\w+\.BoundedSemaphore at .*: value=3/3>z(<\w+\.BoundedSemaphore at .*: value=2/3>)rrVrWrZrs  rrXzBoundedSemaphoreTests.test_repr�sB���l�l�1�o������c��$O�P����
�����c��$O�PrNr>r(rrr@r@�s���3�Qrr@c�x�eZdZ	dZdZd�Zd�Zd�Zd�Zd�Z	dd�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zy)�BarrierTestsrug@c�\�|j|j|j��|_y)Nr�)�barriertyperv�defaultTimeout�barrierr5s rr?zBarrierTests.setUp�s#���'�'�����8K�8K�'�L��rc�8�|jj�yr)rH�abortr5s rrCzBarrierTests.tearDown�s�������rc�\�t||j�5	ddd�y#1swYyxYwr)rrv�rrks  r�run_threadszBarrierTests.run_threads�s��
�1�d�f�f�
���
�
�s�"�+c�`�|jj}|j||j�t	|�D]�}|djd�|jt
|d�||z�|jj�|djd�|jt
|d�|dz|z�|jj���|j|jjd�|j|jj�y)NrTrl)rH�partiesrMrvr+rr,r��	n_waitingrm�broken)rr��n�mrs     r�	multipasszBarrierTests.multipass�s����L�L� � ������D�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��|jt|jd��|jt|jd��y)Nr)rOr)r~r�rFr5s rrTzBarrierTests.test_constructor�s8�����*�d�&6�&6���B����*�d�&6�&6���Crc�D����	ggg����fd�}�j|�y)Nc�*���j���yr)rT)�passesr�rs���rrkz$BarrierTests.test_barrier.<locals>.fs����N�N�7�F�+r�rM)rrXrkr�s`` @r�test_barrierzBarrierTests.test_barrier�s&���	��b�'��	,�����rc�&�	|jd�S)Nr$)rZr5s r�test_barrier_10zBarrierTests.test_barrier_10s��	�� � ��$�$rc����	g���fd�}�j|��jt��tt�j���y)Nc�\���jj�}�j|�yr)rHr�r)r�r�rs ��rrkz(BarrierTests.test_wait_return.<locals>.fs!������!�!�#�A��N�N�1�r)rMrM�sumr+rv)rrkr�s` @r�test_wait_returnzBarrierTests.test_wait_returnsE���	���	�	
���������W��s�5����=�'9�:rc�����	g��fd�}�j�j|�����fd�}�j|�y)Nc�(���jd�yr4)r)r�s�r�actionz(BarrierTests.test_action.<locals>.actions����N�N�4� rc�\���j��jt��d�yr<)r�rMr,)rHr�rs���rrkz#BarrierTests.test_action.<locals>.fs ����L�L�N����S��\�1�-r)rFrvrM)rrcrkrHr�s`  @@r�test_actionzBarrierTests.test_actions?���	���	!��"�"�4�6�6�6�2��	.�	
����rc�����	g�g����fd�}�j|��jt��d��jt���jdz
��j	�j
j�y)Nc�^��	�jj�}|�jdzk(rt��jj��j	d�y#t
j$r�j	d�Yyt$r�jj�YywxYw�Nr�T)rHr�rvr�rr�BrokenBarrierErrorrJ)rr�r�rs ���rrkz"BarrierTests.test_abort.<locals>.f+s����

��L�L�%�%�'�������	�>�&�&����!�!�#�����%���/�/�
&�����%��
����"�"�$��
�s�AA!�!$B,�"B,�+B,rrl)rMrMr,rvrdrHrQ)rrkr�r�s` @@r�
test_abortzBarrierTests.test_abort%so���	�����	�	
���������X���*�����X�����q��1�������+�+�,rc������	g�g�g�����fd�}�j|��jt��d��jt���jdz
��jt���j�y)Nc�6���jj�}|�jdzk(rktjtj
�D]*}�jj�jdz
k\s�*n�jj�n,	�jj��jd��jj��jd�y#tj$r�jd�Y�RwxYw)Nr�rlT)rHr�rvrr!r"rP�resetrrri)rr%r�r��results3rs  ����rrkz"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�+C1�1$D�Drrl)rMrMr,rv)rrkr�r�rns` @@@r�
test_resetzBarrierTests.test_reset=sv���	�������	"�$	
���������X���*�����X�����q��1�����X�����/rc�V������	g�g�g��j�j�������fd�}�j|��jt	��d��jt	���jdz
��jt	���j�y)Nc�H��	�jj�}|�jdzk(rt��jj��j	d��j��jdzk(r�jj��j��jj��j	d�y#t
j$r�j	d�Y��t$r�jj�Y��wxYwrh)	rHr�rvr�rrrirJrm)r�barrier2r�r�rnrs �����rrkz,BarrierTests.test_abort_and_reset.<locals>.fds����

��L�L�%�%�'�������	�>�&�&����!�!�#�����%��}�}��$�&�&�!�)�+����"�"�$��M�M�O��L�L�����O�O�D�!���/�/�
&�����%��
����"�"�$��
�s�AC�$D!�<"D!� D!rrl)rFrvrMrMr,)rrkrrr�r�rns` @@@@r�test_abort_and_resetz!BarrierTests.test_abort_and_reset\s����	��������#�#�D�F�F�+��	"�	"�*	
���������X���*�����X�����q��1�����X�����/rc�4��	�fd�}�j|�y)Nc�&���jj�}|�jdzk(r"tj�j
dz��j
tj�jj�j
dz�y)Nr�r)	rHr�rvr	r
rGr~rri)rrs �rrkz$BarrierTests.test_timeout.<locals>.f�sm������!�!�#�A��D�F�F�a�K���
�
�4�.�.��2�3����i�:�:�"�l�l�/�/��1D�1D�q�1H�
JrrYrLs` rr�zBarrierTests.test_timeout~s���	�	J�	
����rc����	d}�jd|�����fd�}tj�}t|d�5	ddd�tj�|z
}�j	||�y#1swY�3xYw)Nrr�r�c�Z���jtj�j�yr)r~rrir�)rHrs��rrkz,BarrierTests.test_default_timeout.<locals>.f�s ������i�:�:�%�l�l�
,rrl)rFr	r�rrE)rr�rk�
start_timer�rHs`    @r�test_default_timeoutz!BarrierTests.test_default_timeout�sq���	����"�"�1�g�"�6��	,��^�^�%�
�
�1�a�[���
�^�^�
�
�
*������G�,��[�s�A3�3A<c�f�|jd�}|j�|j�yr<)rFr�)r�bs  r�test_single_threadzBarrierTests.test_single_thread�s$�����Q���	����	���rc�(���|jd��tj�|jt	��d���fd�}d}t||�5tjtj�D]}�j|k\s�n|jt	��d��j��ddd�|jt	��d��j�|jt	��d�y#1swY�PxYw)Nr�z!<\w+\.Barrier at .*: waiters=0/3>c�(���j��yr)r�)rHr�s��rrkz!BarrierTests.test_repr.<locals>.f�s����L�L��!rr�z!<\w+\.Barrier at .*: waiters=2/3>z<\w+\.Barrier at .*: broken>)rFrr�rVrWrr!r"rPr�rJ)rrkrvr%rHr�s    @@rrXzBarrierTests.test_repr�s�����"�"�1�%���&�&������g��(L�M�	"�
��
�1�a�[��+�+�G�,A�,A�B���$�$��)��C�
���T�'�]�A�
C�
�L�L��!��	
����g��=�	?�	�
�
������g��8�	:�!�[�s�6D�
/D�DN)rl)r7r8r9rvrGr?rCrMrTrTrZr\r`rerjrorsr�ryr|rXr(rrrDrD�sf���	
�A��N�M���.�D��%�
;��-�00�> 0�D�-� �
:rrD)r�rr	�_threadrrr�unittestr��testr�test.supportr�
skipUnless�has_fork_supportr�r
�objectr�TestCaser;rKr�r�r�r�rr:r@rDr(rr�<module>r�s����
�
��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

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists