Your IP : 216.73.216.213


Current Path : /opt/alt/python311/lib64/python3.11/test/test_importlib/__pycache__/
Upload File :
Current File : //opt/alt/python311/lib64/python3.11/test/test_importlib/__pycache__/test_locks.cpython-311.pyc

�

�0�i:���ddlmZejd��ZddlZddlZddlZddlZddl	m
Z
ddlmZddl	m
Z
ejd���Gd	�d
��Zd�e���D��Zejee
je���\ZZGd
�d��Zd�e���D��Zejeee���\ZZGd�d��Zejee���\ZZd�Zedkrej��dSdS)�)�util�	importlibN)�support)�threading_helper)�
lock_testsT)�modulec�J�eZdZed���ZdZdZdZdZdZ	dZ
dZdZdZ
dS)�ModuleLockAsRLockTestsc�,�|�d��S)N�	some_lock��LockType)�clss �E/opt/alt/python311/lib64/python3.11/test/test_importlib/test_locks.py�<lambda>zModuleLockAsRLockTests.<lambda>s��s�|�|�K�'@�'@��N)�__name__�
__module__�__qualname__�classmethod�locktype�test__is_owned�test_try_acquire�test_try_acquire_contended�	test_with�test_timeout�test_release_save_unacquired�test_recursion_count�	test_repr�test_locked_repr�rrr
r
sW�������{�@�@�A�A�H��N���!%���I��L�#'� ����I����rr
c�.�i|]\}}||jj��Sr!)�
_bootstrap�_ModuleLock��.0�kind�	splitinits   r�
<dictcomp>r)&s4��3�3�3�!�$�	��I�(�4�3�3�3rr
c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�DeadlockAvoidanceTestsc��	tj��|_tjd��dS#t
$rd|_YdSwxYw)Ng���ư>)�sys�getswitchinterval�old_switchintervalr�setswitchinterval�AttributeError��selfs r�setUpzDeadlockAvoidanceTests.setUp1s[��	+�&)�&;�&=�&=�D�#��%�h�/�/�/�/�/���	+�	+�	+�&*�D�#�#�#�#�	+���s�,0�A�Ac�J�|j�tj|j��dSdS�N)r/r-r0r2s r�tearDownzDeadlockAvoidanceTests.tearDown8s-���"�.��!�$�"9�:�:�:�:�:�/�.rc��������	�d��fd�t���D�����fd�t���D���|r�}n�dz
}tj|���g�	�fd������	fd�}tj||��5	ddd��n#1swxYwY��t
�	��|���	S)N�
c�T��g|]$}��t|������%Sr!)r�str)r&�ir3s  �r�
<listcomp>zFDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.<listcomp>>s+���>�>�>�1����s�1�v�v�&�&�>�>�>rc�<��g|]}�|�|dz�zf��S)�r!)r&r<�NLOCKS�lockss  ��rr=zFDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.<listcomp>?s/���H�H�H�Q�%��(�E�1�Q�3��,�/�0�H�H�Hrr?c�T��	|���dS#�j$rYdSwxYw)zOTry to acquire the lock. Return True on success,
            False on deadlock.TF)�acquire�
DeadlockError)�lockr3s �r�_acquirezDDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>._acquireGsC���
��������t���%�
�
�
��u�u�
���s��
'�'c�������\}}�|��}�����|��}��||f��|r|���|r|���dSdSr6)�pop�wait�append�release)�a�b�ra�rbrF�barrier�pairs�resultss    ����r�fz=DeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.fQs�����9�9�;�;�D�A�q���!���B��L�L�N�N�N���!���B��N�N�B��8�$�$�$��
��	�	�����
��	�	������
�
r)�range�	threading�Barrierr�Bunch�assertEqual�len)
r3�create_deadlock�NTHREADSrSr@rFrPrArQrRs
`   @@@@@@r�run_deadlock_avoidance_testz2DeadlockAvoidanceTests.run_deadlock_avoidance_test<sK�����������>�>�>�>��f�
�
�>�>�>��H�H�H�H�H�%��-�-�H�H�H���	"��H�H���z�H��#�H�-�-����	�	�	�	�	�		�		�		�		�		�		�		�		��
�a��
*�
*�	�	��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����W���x�0�0�0��s�B�B�Bc��|�d��}|�d��}|�|d��|�|�d��t	|��|z
��dS)NT�TFr?�TT)r\�count�assertGreaterEqualrXrY)r3rR�nb_deadlockss   r�
test_deadlockz$DeadlockAvoidanceTests.test_deadlock`sq���2�2�4�8�8���}�}�]�3�3������a�0�0�0�������|�4�4�c�'�l�l�\�6Q�R�R�R�R�Rrc���|�d��}|�|�d��d��|�|�d��t|����dS)NFr^rr_)r\rXr`rY)r3rRs  r�test_no_deadlockz'DeadlockAvoidanceTests.test_no_deadlockise���2�2�5�9�9��������}�5�5�q�9�9�9�������|�4�4�c�'�l�l�C�C�C�C�CrN)rrrr4r7r\rcrer!rrr+r+/sh������+�+�+�;�;�;�"�"�"�HS�S�S�D�D�D�D�Drr+c�.�i|]\}}||jj��Sr!)r#�_DeadlockErrorr%s   rr)r)os4��8�8�8�&�t�Y���-�<�8�8�8r)rrDc�0�eZdZed���Zd�Zd�ZdS)�
LifetimeTestsc��|jjSr6)�initr#r2s r�	bootstrapzLifetimeTests.bootstrap{s
���y�#�#rc��d}|�||jj��|j�|��}|�||jj��tj|��}~tj��|�||jj��|�	|����dS)N�xyzzy)
�assertNotInrl�
_module_locks�_get_module_lock�assertIn�weakref�refr�
gc_collect�assertIsNone)r3�namerE�wrs    r�test_lock_lifetimez LifetimeTests.test_lock_lifetimes���������t�~�;�<�<�<��~�.�.�t�4�4���
�
�d�D�N�8�9�9�9�
�[��
�
������������t�~�;�<�<�<����"�"�$�$�����rc��tj��|�dt|jj��|jj��dS)Nr)rrurXrYrlrpr2s r�test_all_lockszLifetimeTests.test_all_locks�sL�����������C��� <�=�=���5�	7�	7�	7�	7�	7rN)rrr�propertyrlryr{r!rrririysK������
�$�$��X�$�	 �	 �	 �7�7�7�7�7rri)rkc�d�tj��}tjtjg|�R�dSr6)r�threading_setup�unittest�addModuleCleanup�threading_cleanup)�thread_infos r�setUpModuler��s3��"�2�4�4�K���.�@�O�;�O�O�O�O�O�Or�__main__) �test.test_importlibr�	test_util�import_importlibrkr-rUrrs�testr�test.supportrr�requires_working_threadingr
�items�
LOCK_TYPES�	test_both�
RLockTests�Frozen_ModuleLockAsRLockTests�Source_ModuleLockAsRLockTestsr+�DEADLOCK_ERRORS�Frozen_DeadlockAvoidanceTests�Source_DeadlockAvoidanceTestsri�Frozen_LifetimeTests�Source_LifetimeTestsr�r�mainr!rr�<module>r�s"��1�1�1�1�1�1�!�y�!�+�.�.��
�
�
�
�������������������)�)�)�)�)�)�������,��+�4�8�8�8�8���������(3�3�%)�Z�Z�\�\�3�3�3�
�
�Y��/��1F�",�.�.�.����
=D�=D�=D�=D�=D�=D�=D�=D�@8�8�*.�*�*�,�,�8�8�8��
�Y��/�",�'6�8�8�8����7�7�7�7�7�7�7�7�2�Y���T�2�2�2����P�P�P�
�z����H�M�O�O�O�O�O��r