Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_sched.cpython-311.pyc
�

�Ke�����ddlZddlZddlZddlZddlZddlmZddlmZej	Z
Gd�d��ZGd�dej��Ze
dkrej��dSdS)	�N)�support)�threading_helperc�&�eZdZd�Zd�Zd�Zd�ZdS)�Timerc�R�tj��|_d|_d|_dS�Nr)�	threading�	Condition�_cond�_time�_stop��selfs �9/usr/local/apps/python3/lib/python3.11/test/test_sched.py�__init__zTimer.__init__s$���(�*�*��
���
���
�
�
�c�R�|j5|jcddd��S#1swxYwYdS�N)rrrs r�timez
Timer.timess��
�Z�	�	��:�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�� � c���|dksJ�|j5||jz
}|j|kr0|j|_|j���|j|k�0||_ddd��dS#1swxYwYdSr)rrr
�wait�r�ts  r�sleepzTimer.sleeps����A�v�v�v�v�
�Z�	�	�
���O�A��*�q�.�.�!�Z��
��
���!�!�!��*�q�.�.��D�J�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A
A*�*A.�1A.c��|dksJ�|j5|xj|z
c_|j���ddd��dS#1swxYwYdSr)rr
�
notify_allrs  r�advancez
Timer.advance"s����A�v�v�v�v�
�Z�	$�	$��J�J�!�O�J�J��J�!�!�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$s�*A�A�AN)�__name__�
__module__�__qualname__rrrr�rrrr
sP���������
���
���$�$�$�$�$rrc��eZdZd�Zd�Zej��d���Zd�Zd�Z	ej��d���Z
d�Zd�Zd	�Z
d
�Zd�ZdS)
�TestCasec���g��fd�}tjtjtj��}dD]}|�|d||f��}�|���|��gd���dS)Nc�.����|��Sr��append��x�ls �r�<lambda>z%TestCase.test_enter.<locals>.<lambda>-����������r)��?皙�����?�333333�?皙�����?皙�����?�)r1r0r/r.r-��sched�	schedulerrr�enter�run�assertEqual�r�funr5r)�zr*s     @r�
test_enterzTestCase.test_enter+s������#�#�#�#���O�D�I�t�z�:�:�	�*�	1�	1�A�����1�c�A�4�0�0�A�A��
�
��������5�5�5�6�6�6�6�6rc���g��fd�}tjtjtj��}dD]}|�|d||f��}�|���|��gd���dS)Nc�.����|��Srr&r(s �rr+z(TestCase.test_enterabs.<locals>.<lambda>6r,r�皙�����?�{�G�z�?���Q��?�{�G�z�?�{�G�z�?r2)rDrCrBrAr@)r4r5rr�enterabsr7r8r9s     @r�
test_enterabszTestCase.test_enterabs4s������#�#�#�#���O�D�I�t�z�:�:�	�/�	4�	4�A��"�"�1�a��q�d�3�3�A�A��
�
��������:�:�:�;�;�;�;�;rc�8�tj��}|j}t��}t	j|j|j��}|�dd|d��|�dd|d��tj
|j���}|���|�
d��|�|�t ���d��|�|�����dD]}|�|dz
d||f��}�|�
d��|�|�t ���d��|�|�t ���d��|�|�����|�
d��|�|�t ���d	��|�|�����|�
d��|�|�t ���d
��|�|�����|�
d��t'j|��|�|�����|�|���d
��dS)Nr2�r2��rI��target��timeout)���rQrOrP��)�queue�Queue�putrr4r5rrr6r	�Threadr7�startrr8�get�TIMEOUT�
assertTrue�emptyr�join_thread)r�qr:�timerr5rr)r;s        r�test_enter_concurrentzTestCase.test_enter_concurrent=sw���K�M�M���e�������O�E�J���<�<�	�����1�c�4�(�(�(�����1�c�4�(�(�(���I�M�2�2�2��	���	�	�	�
�
�
�a����������w��/�/��3�3�3�������	�	�"�"�"��	5�	5�A�����A��q�#��t�4�4�A�A�
�
�
�a����������w��/�/��3�3�3�������w��/�/��3�3�3�������	�	�"�"�"�
�
�
�a����������w��/�/��3�3�3�������	�	�"�"�"�
�
�
�a����������w��/�/��3�3�3�������	�	�"�"�"�
�
�
�d�����$�Q�'�'�'�������	�	�"�"�"���������q�)�)�)�)�)rc	���g��fd�}tjtjtj��}gd�gd�fgd�gd�fgd�gd�fgd�gd�fg}|D]�\}}|�||���5|D]}|�d|||f���|���|��|��|�|�	������
��ddd��n#1swxYwY��dS)	Nc�.����|��Srr&r(s �rr+z(TestCase.test_priority.<locals>.<lambda>]r,r)r2rQrIrOrP)rPrOrIrQr2)rQrPrIr2rO)r2rQrIrQr2)r2r2rQrQrI)�
priorities�expectedrD)r4r5rr�subTestrEr7r8rZr[�clear)rr:r5�casesrbrc�priorityr*s       @r�
test_priorityzTestCase.test_priority[s~�����#�#�#�#���O�D�I�t�z�:�:�	��_�_�o�o�o�.�
�_�_�o�o�o�.�
�_�_�o�o�o�.�
�_�_�o�o�o�.�	
��%*�		�		� �J������h��G�G�
�
� *�I�I�H��&�&�t�X�s�X�K�H�H�H�H��
�
����� � ��H�-�-�-����	��� 1� 1�2�2�2����	�	�	�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��		�		s�.BC>�>D	�D	c�H�	�g�	�	fd�}tjtjtj��}tj��}|�|dzd|d��}|�|dzd|d��}|�|dzd|d��}|�|d	zd|d
��}|�|dzd|d��}|�|��|�|��|���|��	gd
���dS)Nc�.����|��Srr&r(s �rr+z&TestCase.test_cancel.<locals>.<lambda>sr,rrDr2)rDrC)rCrB)rBrA)rAr@)r@)rCrBrA)r4r5rrrE�cancelr7r8)
rr:r5�now�event1�event2�event3�event4�event5r*s
         @r�test_cancelzTestCase.test_cancelqs�����#�#�#�#���O�D�I�t�z�:�:�	��i�k�k���#�#�C�$�J��3��@�@���#�#�C�$�J��3��@�@���#�#�C�$�J��3��@�@���#�#�C�$�J��3��@�@���#�#�C�$�J��3��@�@������ � � ����� � � ��
�
��������.�.�.�/�/�/�/�/rc�d�tj��}|j}t��}t	j|j|j��}|���}|�|dzd|d��}|�|dzd|d��}|�|dzd|d��}|�|dzd|d��}	|�|d	zd|d
��}
tj
|j���}|���|�
d��|�|�t ���d��|�|�����|�|��|�|	��|�
d��|�|�����|�
d��|�|�t ���d	��|�|�����|�
d��|�|�t ���d��|�|�����|�
d
��t)j|��|�|�����|�|���d��dS)Nr2rHrQ)rQrO)rOrP)rPrIrJrKrMrR)rSrTrUrr4r5rrrEr	rVr7rWrr8rXrYrZr[rkrr\)rr]r:r^r5rlrmrnrprqrors            r�test_cancel_concurrentzTestCase.test_cancel_concurrent�s����K�M�M���e�������O�E�J���<�<�	��j�j�l�l���#�#�C�!�G�Q��T�:�:���#�#�C�!�G�Q��T�:�:���#�#�C�!�G�Q��T�:�:���#�#�C�!�G�Q��T�:�:���#�#�C�!�G�Q��T�:�:����I�M�2�2�2��	���	�	�	�
�
�
�a����������w��/�/��3�3�3�������	�	�"�"�"����� � � ����� � � �
�
�
�a����������	�	�"�"�"�
�
�
�a����������w��/�/��3�3�3�������	�	�"�"�"�
�
�
�a����������w��/�/��3�3�3�������	�	�"�"�"�
�
�
�d�����$�Q�'�'�'�������	�	�"�"�"���������q�)�)�)�)�)rc�`�g}tj��}|�dd|jd��|�dd|jd��}|�dd|jd��|�|��|���|�|ddg��dS)Nr2)�a)�b)�crvrx)r4r5rEr'rkr7r8)r�eventsr5rws    r�test_cancel_correct_eventz"TestCase.test_cancel_correct_event�s������O�%�%�	����1�a����7�7�7����q�!�V�]�F�;�;�����1�a����7�7�7���������
�
��������#�s��,�,�,�,�,rc���g��fd�}tjtjtj��}|�|�����dD]}|�|d||f��}�|�|�����|���|�|�����dS)Nc�.����|��Srr&r(s �rr+z%TestCase.test_empty.<locals>.<lambda>�r,rr?r2)	r4r5rrrZr[rE�assertFalser7r9s     @r�
test_emptyzTestCase.test_empty�s������#�#�#�#���O�D�I�t�z�:�:�	����	���)�)�*�*�*�/�	4�	4�A��"�"�1�a��q�d�3�3�A�A�������*�*�+�+�+��
�
�������	���)�)�*�*�*�*�*rc���	�g�	�	fd�}tjtjtj��}tj��}|�|dzd|��}|�|dzd|��}|�|dzd|��}|�|dzd|��}|�|dzd|��}|�|j|||||g��dS)Nc�.����|��Srr&r(s �rr+z%TestCase.test_queue.<locals>.<lambda>�r,rr@r2rDrCrArB)r4r5rrrEr8rS)
rr:r5rl�e5�e1�e2�e4�e3r*s
         @r�
test_queuezTestCase.test_queue�s������#�#�#�#���O�D�I�t�z�:�:�	��i�k�k��
�
�
��d�
�A�s�
3�
3��
�
�
��d�
�A�s�
3�
3��
�
�
��d�
�A�s�
3�
3��
�
�
��d�
�A�s�
3�
3��
�
�
��d�
�A�s�
3�
3��	
�����2�r�2�r�2�*>�?�?�?�?�?rc	����g��fd�}tj��}tjtjtj��}|�|d|��|�|d|d���|�|d|d���|�|d|dddi���|���|��d	ifdifdifdddifg��dS)
Nc�6����||f��dSrr&)rvrw�seqs  �rr:z&TestCase.test_args_kwargs.<locals>.fun�s����J�J��1�v�����rr2)r2rQ)�argument)rvrw�foorI)r��kwargsr!)rr4r5rrEr7�assertCountEqual)rr:rlr5r�s    @r�test_args_kwargszTestCase.test_args_kwargs�s�����	�	�	�	�	��i�k�k���O�D�I�t�z�:�:�	����3��3�'�'�'����3��3���8�8�8����3��3���<�<�<����3��3����
��K�K�K��
�
�������c�
��H�
�R�L�
���
�e�Q�Z� �	$
�	�	�	�	�	rc���g��fd�}tjtjtj��}dD]}|�|d||f���|�d���|��g��dS)Nc�.����|��Srr&r(s �rr+z0TestCase.test_run_non_blocking.<locals>.<lambda>�r,r)�
�	���r2F)�blockingr3)rr:r5r)r*s    @r�test_run_non_blockingzTestCase.test_run_non_blocking�s������#�#�#�#���O�D�I�t�z�:�:�	�!�	-�	-�A��O�O�A�q�#��t�,�,�,�,��
�
�u�
�%�%�%�����B�����rN)rrr r<rFr�requires_working_threadingr_rhrrrtrzr~r�r�r�r!rrr#r#)s�������7�7�7�<�<�<�1��0�2�2�*�*�3�2�*�:���,
0�
0�
0�1��0�2�2�*�*�3�2�*�>	-�	-�	-�	+�	+�	+�@�@�@����& � � � � rr#�__main__)rSr4r	r�unittest�testr�test.supportr�
SHORT_TIMEOUTrYrr#r�mainr!rr�<module>r�s�����������������������������)�)�)�)�)�)��
��$�$�$�$�$�$�$�$�8u �u �u �u �u �x� �u �u �u �p�z����H�M�O�O�O�O�O��r