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

�Ke]�� �ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
ddlmZddlm
Z
	ejn#e$rejd���wxYwe
d���d�ZGd	�d
ej��Zedkrej��dSdS)�N)�cpython_only�requires_subprocess�requires_working_socket)�threading_helper)�TESTFNzselect.poll not definedT)�modulec�N�g}|D]\}}||zr|�|��� |S)N)�append)�ready�flag�match�fd�modes     �8/usr/local/apps/python3/lib/python3.11/test/test_poll.py�find_ready_matchingrs>���E������D��$�;�	��L�L�������L�c���eZdZd�Zd�Ze��d���Zd�Zed���Z	e
jd���Ze
jed��e
jd�����Zd	S)
�	PollTestsc�
�tj��}d}d}t|��}g}g}i}i}t|��D]�}	t	j��\}
}|�|
��|�|
tj��|�|tj	��|�
|
��|�
|��|||
<|
||<��g}|�r�|���}
t|
tj	��}|std���tj|��}t	j||��|���}
t|
tj��}|std���tj|��}
t	j|
|��}|�t|��|��|�
|��t	j||
��t	j|
��|�||
��|�|
��|�||
��|���|�||g|z��dS)N�s This is a test.zno pipes ready for writingzno pipes ready for reading)�select�poll�len�range�os�pipe�register�modify�POLLIN�POLLOUTr
r�RuntimeError�random�choice�write�read�assertEqual�close�
unregister�remove)�self�p�	NUM_PIPES�MSG�MSG_LEN�readers�writers�r2w�w2r�i�rd�wr�bufsr�
ready_writers�
ready_readers�bufs                 r�
test_poll1zPollTests.test_poll1!sF��
�K�M�M���	�!���c�(�(�����������y�!�!�	�	�A��W�Y�Y�F�B��
�J�J�r�N�N�N�
�H�H�R���'�'�'�
�J�J�r�6�>�*�*�*��N�N�2�����N�N�2�����C��G��C��G�G����	$��F�F�H�H�E�/��v�~�F�F�M� �
A�"�#?�@�@�@���}�-�-�B��H�R������F�F�H�H�E�/��v�}�E�E�M� �
A�"�#?�@�@�@���}�-�-�B��'�"�g�&�&�C����S��X�X�w�/�/�/��K�K������H�S��W������"����
�L�L�#�b�'�#�#�#�
�L�L�"�����N�N�3�r�7�#�#�#�'�	$�*	
�����u�y�0�1�1�1�1�1rc�F�tj��\}}tj|��tj|��tj��}|�|��|���}|�|d|tjf��ttd��5}|�
��}tj��}|�|��|���}|�|dd|��ddd��n#1swxYwY|���}|�|d|tjf��tjt��tj��}|�t|j|��|�t|j|��tj��}|�t|jd��tj��}Gd�d��}Gd�d��}	|�t|j|��d��|�t|j|	��d��dS)Nr�w�c��eZdZdS)�,PollTests.test_poll_unit_tests.<locals>.NopeN)�__name__�
__module__�__qualname__�rr�Noper?qs�������DrrDc��eZdZd�ZdS)�.PollTests.test_poll_unit_tests.<locals>.Almostc��dS)N�filenorC)r*s rrHz5PollTests.test_poll_unit_tests.<locals>.Almost.filenous���xrN)r@rArBrHrCrr�AlmostrFts#������
 �
 �
 �
 �
 rrI)rrr'rrrr&�POLLNVAL�openrrH�unlink�assertRaises�	TypeErrorr(�KeyError)
r*�FDr<r+�r�fr�pollsterrDrIs
          r�test_poll_unit_testszPollTests.test_poll_unit_testsRsz����	�	���A�
������
�������K�M�M��	�
�
�2����
�F�F�H�H������1���F�O�4�5�5�5�
�&�#�
�
�	*�!������B���
�
�A�
�J�J�q�M�M�M������A����Q�q�T�!�W�b�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�
�F�F�H�H������1���F�O�4�5�5�5�
�	�&����
�K�M�M�����)�Q�Z��3�3�3����)�Q�\�1�5�5�5�
�K�M�M�����(�A�L�!�4�4�4��;�=�=��	�	�	�	�	�	�	�	�	 �	 �	 �	 �	 �	 �	 �	 �	
���)�X�%6������B�B�B����)�X�%6�����!�D�D�D�D�Ds�8A3D7�7D;�>D;c�p�d}tj|dtjd���}|�|��|j}tj��}|�|t
j��dD]�}|�|��}|gkr�|d\}}|t
j	zr0|�
��}	|	dkr|�d���h|t
jzr0|�
��}	|	sdS|�|	d����|�d	|z����dS)
Nz?for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; doneTr)�shell�stdout�bufsize)ri�i�i�i@i�>���rYrYrYrYrYrYrYrYrYrz6error: pipe seems to be closed, but still returns datastesting...
z,Unexpected return value from select.poll: %s)
�
subprocess�Popen�PIPE�enterContextrWrrrr�POLLHUP�readline�failr&)
r*�cmd�procr+rS�tout�fdlistr�flags�lines
          r�
test_poll2zPollTests.test_poll2~sJ��O�����4�
��()�+�+�+�����$�����K���;�=�=�����1�f�m�-�-�-�A�	S�	S�D��]�]�4�(�(�F��"�����q�	�I�B���v�~�%�

S��z�z�|�|���3�;�;��I�I�V�W�W�W�����&�
S��z�z�|�|�����E�E�� � ���7�7�7���	�	�H�6�Q�R�R�R�R�%	S�	Src���tj��}|�d��|�t|jd��d}|dkr|�d��|�t|jdd��|�t|jdd��|�t|jdd��|�t|jdd��dS)N�l�zOverflow must have occurredrrY)rrrrM�
OverflowErrorr`�
ValueErrorr)r*rS�xs   r�
test_poll3zPollTests.test_poll3�s����;�=�=�����!�������-����@�@�@�����6�6��I�I�3�4�4�4�	
���*�h�&7��B�?�?�?����-��):�A�w�G�G�G����*�h�o�q�"�=�=�=����-���!�W�E�E�E�E�Erc��ddlm}m}m}t	j��}|�d��|�t|jd|dz��|�t|j	d|dz��|�t|j|dz��|�t|j|dz��dS)Nr)�	USHRT_MAX�INT_MAX�UINT_MAXri)
�	_testcapirprqrrrrrrMrkr)r*rprqrrrSs     r�test_poll_c_limitszPollTests.test_poll_c_limits�s���:�:�:�:�:�:�:�:�:�:��;�=�=�����!����	
���-��):�A�y�1�}�M�M�M����-���!�Y��]�K�K�K����-����!��D�D�D����-����1��E�E�E�E�Erc���tj��\}}|�tj|��|�tj|��g}t	d��D]K}tj|��}|�tj|��|�|���Ltj��}|D]"}|�	|tj
���#tj|j���}|�
��	tjd��|D]}|�|���|�	|tj��|�t&|j��tj|d��|���dS#tj|d��|���wxYw)N�
)�targetg�?�spam)rr�
addCleanupr'r�dupr
rrrr�	threading�Thread�start�time�sleepr(r rMr!r$�join)r*rQr<�rfdsr3rrS�ts        r�test_threaded_pollzPollTests.test_threaded_poll�s����w�y�y���1������!�$�$�$������!�$�$�$����r���	�	�A������B��O�O�B�H�b�)�)�)��K�K��O�O�O�O��;�=�=���	1�	1�B����b�&�-�0�0�0�0���H�M�2�2�2��	���	�	�	�
	��J�s�O�O�O��
(�
(���#�#�B�'�'�'�'����a���0�0�0����l�H�M�:�:�:�
�H�Q�� � � �
�F�F�H�H�H�H�H��
�H�Q�� � � �
�F�F�H�H�H�H���s
�A.F4�4+Gz!Threading required for this test.c�p�dD�]1}tj��\}}tj��}|�|tj��t
j|j|f���}|���|�	d���|�
|�����tj|d��|�	��|�
|�����tj|��tj|����3dS)N)Ni���rYg�g��������g0��.�+�)rw�argsg�������?)�timeoutrx)rrrrrrr{r|r}r��
assertTrue�is_aliver$�assertFalser')r*�
timeout_msrQr<rS�poll_threads      r�!test_poll_blocks_with_negative_msz+PollTests.test_poll_blocks_with_negative_ms�s��A�	�	�J��7�9�9�D�A�q��{�}�}�H����a���/�/�/�#�*�(�-�z�m�T�T�T�K����������S��)�)�)��O�O�K�0�0�2�2�3�3�3�
�H�Q�� � � ����������[�1�1�3�3�4�4�4��H�Q�K�K�K��H�Q�K�K�K�K�#	�	rN)r@rArBr:rTrrgrnrrtr�reap_threadsr��unittest�
skipUnlessr{r�rCrrrrs�������/2�/2�/2�b'E�'E�'E�X����S�S���S�8F�F�F�"�	F�	F��\�	F��"���#�"��6�X���$G�H�H��"���#�"�I�H���rr�__main__)rrZr"rr{r~r��test.supportrrrr�test.support.os_helperrr�AttributeError�SkipTestr�TestCaserr@�mainrCrr�<module>r�sb��
�	�	�	�����
�
�
�
�
�
�
�
�����������������������*�)�)�)�)�)�)�)�)�)�)�)�7�
�K�K�K���7�7�7�
�(�
�5�
6�
6�6�7������t�$�$�$�$����I�I�I�I�I��!�I�I�I�X�z����H�M�O�O�O�O�O��s	�<�A