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__/_test_eintr.cpython-312.opt-2.pyc

�

'Μg�F��,�	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlmZddlmZdZej&d��Zej*eed�d�Gd	�d
ej.��Zej*eed�d�Gd�de��Zej*eed�d�Gd
�de��Zej*eed�d�Gd�de��Zej*eed�d�ej*eed�d�Gd�de���Zej*eed�d�Gd�de��ZGd�de�Zedk(rej@�yy)�N)�support)�	os_helper)�
socket_helperg{�G�z�?c#�tK�	|5	|��	ddd�y#|j��xYw#1swYyxYw�w�N)�kill)�procs �-/usr/local/lib/python3.12/test/_test_eintr.py�
kill_on_errorr#s7����Q�	
�	��J�
���	��I�I�K���
��s �8�,��	8�)�,�5�8�	setitimerzrequires setitimer()c�H�eZdZ	dZdZdZd�Zd�Zed��Z	d�Z
d�Zd�Zy	)
�
EINTRBaseTestg�������?g�������?c�.�|xjdz
c_y�N�)�signals)�self�signum�frames   r
�
sighandlerzEINTRBaseTest.sighandler:s��������c�6�d|_tjtj|j�|_tj
tj|j|j�tjddtj��y)NriXT)�exit�file)
r�signal�SIGALRMr�orig_handlerr�ITIMER_REAL�signal_delay�
signal_period�faulthandler�dump_traceback_later�sys�
__stderr__�rs r
�setUpzEINTRBaseTest.setUp=sf�����"�M�M�&�.�.�$�/�/�J�������+�+�T�->�->��+�+�	-�
	�)�)�'��/2�~�~�	?rc�N�tjtjdd�y�Nr)rrr�rr
�
stop_alarmzEINTRBaseTest.stop_alarmHs������+�+�Q��2rc��|j�tjtj|j�t	j
�yr)r*rrrr!�cancel_dump_traceback_laterr%s r
�tearDownzEINTRBaseTest.tearDownLs0�������
�
�f�n�n�d�&7�&7�8��0�0�2rc�X�tjdf|z}tj|fi|��S)Nz-c)r#�
executable�
subprocess�Popen)r�args�kw�cmd_argss    r
r0zEINTRBaseTest.subprocessQs+���N�N�D�)�D�0������/�B�/�/rc�J�|j||jtz
�yr)�assertGreaterEqual�
sleep_time�	CLOCK_RES)r�elapseds  r
�check_elapsed_timez EINTRBaseTest.check_elapsed_timeUs���������9�)D�ErN)
�__name__�
__module__�__qualname__rr r7rr&�staticmethodr*r-r0r:r)rr
rr.sF��'��L��M��J��	?��3��3�3�
0�Frrc��eZdZ	d�Zd�Zd�Zejee	d�d�d��Z
d�Zd�Zejee	d	�d
�d��Z
d�Zd
�Zy)�OSEINTRTestc�B�d|jz}|j|�S)Nzimport time; time.sleep(%r))r7r0)r�codes  r
�new_sleep_processzOSEINTRTest.new_sleep_process]s��,�t���>�����t�$�$rc��d}t|�D�cgc]}|j���}}t|�D]	}|��|D]}|j��ycc}w)N�)�rangerC�wait)r�	wait_func�num�_�	processesr	s      r
�_test_wait_multiplezOSEINTRTest._test_wait_multipleasV����7<�S�z�B�z�!�T�+�+�-�z�	�B��s��A��K���D��I�I�K���	Cs�Ac�B�|jtj�yr)rL�osrGr%s r
�	test_waitzOSEINTRTest.test_waitjs��� � ����)r�wait3zrequires wait3()c�(�|jd��y)Nc�,�tjd�Sr()rNrPr)rr
�<lambda>z(OSEINTRTest.test_wait3.<locals>.<lambda>os�����!�r)rLr%s r
�
test_wait3zOSEINTRTest.test_wait3ms��� � �!4�5rc�h�|j�}||j�|j�yr)rC�pidrG)rrHr	s   r
�_test_wait_singlezOSEINTRTest._test_wait_singleqs%���%�%�'���$�(�(���	�	�rc�(�|jd��y)Nc�.�tj|d�Sr()rN�waitpid�rVs r
rSz*OSEINTRTest.test_waitpid.<locals>.<lambda>xs��2�:�:�c�1�+=r�rWr%s r
�test_waitpidzOSEINTRTest.test_waitpidws�����=�>r�wait4zrequires wait4()c�(�|jd��y)Nc�.�tj|d�Sr()rNr^r[s r
rSz(OSEINTRTest.test_wait4.<locals>.<lambda>|s��2�8�8�C��+;rr\r%s r
�
test_wait4zOSEINTRTest.test_wait4zs�����;�<rc�"�tj�\}}|jtj|�gd�}dj	dddd|zd|j
zddd	d
df
�}|j
|t|�|g��}t|�5tj|�|D]1}|j|tj|t|����3|j|j�d
�ddd�y#1swYyxYw)N)shellosworldsspam�
zimport os, sys, time�zwr = int(sys.argv[1])�
datas = %r�sleep_time = %rzfor data in datas:z$    # let the parent block on read()�    time.sleep(sleep_time)z    os.write(wr, data)��pass_fdsr)
rN�pipe�
addCleanup�close�joinr7r0�strr�assertEqual�read�lenrG)r�rd�wr�datasrBr	�datas       r
�	test_readzOSEINTRTest.test_read~s���������B�������"�%�
.���y�y�"��#��5� �����/�� �2�(�$�
������t�S��W��t��<��
�4�
 ��H�H�R�L���� � ��r�w�w�r�3�t�9�'=�>�����T�Y�Y�[�!�,�	!�
 �
 �s
�A,D�Dc��tj�\}}|jtj|�dtj
z}dj
dddd|jzdtj
zddd	d
dddd
ddddddf�}|j|t|�|g��}t|�5tj|�d}|t|�kr4|tj|t|�|d�z
}|t|�kr�4|j|j�d�ddd�y#1swYyxYw)N�xrczimport io, os, sys, timerdzrd = int(sys.argv[1])rfzdata = b"x" * %s�data_len = len(data)z!# let the parent block on write()�time.sleep(sleep_time)zread_data = io.BytesIO()z+while len(read_data.getvalue()) < data_len:z%    chunk = os.read(rd, 2 * data_len)z    read_data.write(chunk)zvalue = read_data.getvalue()zif value != data:z0    raise Exception("read error: %s vs %s bytes"z-                    % (len(value), data_len))rhr)rNrjrkrlr�
PIPE_MAX_SIZErmr7r0rnrrq�write�
memoryviewrorG)rrrrsrurBr	�writtens       r
�
test_writezOSEINTRTest.test_write�s&��������B�������"�%��g�+�+�+���y�y�&��#�����/���!6�!6�6�"��/�$��&�9�3�(��*��>�;�'
���,���t�S��W��t��<��
�4�
 ��H�H�R�L��G��C��I�%��2�8�8�B�
�4�(8���(B�C�C���C��I�%����T�Y�Y�[�!�,�!�
 �
 �s�6AD9� D9�9EN)r;r<r=rCrLrO�unittest�
skipUnless�hasattrrNrTrWr]rarvrr)rr
r@r@Ys���*�%��*��X�����W�-�/A�B�6�C�6��?��X�����W�-�/A�B�=�C�=�-�:$-rr@c�$�eZdZ	ejeed�d�d��Zd�Zejeejd�d�d��Z	d�Z
d	�Zd
�Zejeejd�d�d
��Z
d�Zej dd�ejeed�d�d���Zd�Zej(ej,dk(d�d��Zd�Zej(ej,dk(d�d��Zy)�SocketEINTRTest�
socketpairzneeds socketpair()c�x�tj�\}}|j|j�gd�}dj	ddddt|j�zdt|j�zd|zd	|jzdd
dddd
dddf�}|j�}|j|t|�|g��}t|�5|j�|D]$}|j|||t|����&|j|j�d�ddd�y#1swYyxYw)N)rx�y�zrc�import os, socket, sys, timerd�fd = int(sys.argv[1])�family = %s�sock_type = %srerfz)wr = socket.fromfd(fd, family, sock_type)�os.close(fd)zwith wr:z    for data in datas:z(        # let the parent block on recv()z        time.sleep(sleep_time)z        wr.sendall(data)rhr)�socketr�rkrlrm�int�family�typer7�filenor0rnrrorqrG)	r�	recv_funcrrrsrtrB�fdr	rus	         r
�
_test_recvzSocketEINTRTest._test_recv�s���"�"�$���B�������!�#���y�y�*��#��C��	�	�N�*��s�2�7�7�|�+��5� �����/��7����$�6�,�&�!
���&�Y�Y�[�����t�S��W��t��<��
�4�
 ��H�H�J���� � ��y��S��Y�'?�@�����T�Y�Y�[�!�,�	!�
 �
 �s
�
AD0�0D9c�V�|jtjj�yr)r�r��recvr%s r
�	test_recvzSocketEINTRTest.test_recv��������
�
�*�*�+r�recvmsgzneeds recvmsg()c�(�|jd��y)Nc�*�|j|�dSr()r���sockrus  r
rSz.SocketEINTRTest.test_recvmsg.<locals>.<lambda>�s��4�<�<��+=�a�+@r)r�r%s r
�test_recvmsgzSocketEINTRTest.test_recvmsg�s�����@�Arc��tj�\}}|j|j�dtj
dzz}dj
ddddt|j�zdt|j�zd	|jzd
tj
dzzdddd
dddddddddddddf�}|j�}|j|t|�|g��}t|�5|j�d}|t|�kr6||t!|�|d�}	||	�t|�n|	z
}|t|�kr�6|j#|j%�d�ddd�y#1swYyxYw)NsxyzrErcr�rdr�r�r�rfzdata = b"xyz" * %sryz)rd = socket.fromfd(fd, family, sock_type)r�zwith rd:z$    # let the parent block on send()rgz'    received_data = bytearray(data_len)z	    n = 0z    while n < data_len:z8        n += rd.recv_into(memoryview(received_data)[n:])zif received_data != data:z0    raise Exception("recv error: %s vs %s bytes"z5                    % (len(received_data), data_len))rhr)r�r�rkrlr�
SOCK_MAX_SIZErmr�r�r�r7r�r0rnrrqr}rorG)
r�	send_funcrrrsrurBr�r	r~�sents
          r
�
_test_sendzSocketEINTRTest._test_send�sp���"�"�$���B�������!���.�.�!�3�4���y�y�*��#��C��	�	�N�*��s�2�7�7�|�+�����/� �G�$9�$9�Q�$>�?�"��7����2�(��5��%�F��'�>�C�1
���6�Y�Y�[�����t�S��W��t��<��
�4�
 ��H�H�J��G��C��I�%� ��Z��%5�g�h�%?�@�����3�t�9�$�>���C��I�%�
���T�Y�Y�[�!�,�!�
 �
 �s�8AE8� E8�8Fc�V�|jtjj�yr)r�r��sendr%s r
�	test_sendzSocketEINTRTest.test_sendr�rc�V�|jtjj�yr)r�r��sendallr%s r
�test_sendallzSocketEINTRTest.test_sendall"s������
�
�-�-�.r�sendmsgzneeds sendmsg()c�(�|jd��y)Nc�&�|j|g�Sr)r�r�s  r
rSz.SocketEINTRTest.test_sendmsg.<locals>.<lambda>'s��4�<�<���+?r)r�r%s r
�test_sendmsgzSocketEINTRTest.test_sendmsg%s�����?�@rc�
�tjtjdf�}|j	|j
�|j
�d}djdddtjzd|zd|jzdd	d
ddf
�}|j|�}t|�5|j�\}}|j�|j|j�d�ddd�y#1swYyxYw)
Nrrrczimport socket, timerdz	host = %rz	port = %srfz# let parent block on accept()rzz,with socket.create_connection((host, port)):rg)r��
create_serverr�HOSTrkrl�getsocknamermr7r0r�acceptrorG)rr��portrBr	�client_sockrJs       r
�test_acceptzSocketEINTRTest.test_accept)s����#�#�]�%7�%7��$;�<������
�
�#����!�!�$���y�y�!���-�,�,�,��$������/��,�$�:�(�
������t�$��
�4�
 �!�[�[�]�N�K���������T�Y�Y�[�!�,�!�
 �
 �s
�,AC9�9D�
rE�mkfifozneeds mkfifo()c��tj}tj|�	tj|�|jtj|�djddd|zd|jzdddd|f	�}|j|�}t|�5||�|j|j�d	�ddd�y#t
$r}|j
d|z�Yd}~��d}~wwxYw#1swYyxYw)
Nzos.mkfifo(): %src�import os, timerdz	path = %arfz# let the parent blockrzr)r�TESTFN�unlinkrNr��PermissionError�skipTestrkrmr7r0rrorG)r�do_open_close_reader�do_open_close_writer�filename�erBr	s       r
�
_test_openzSocketEINTRTest._test_openEs����#�#��	����"�	1��I�I�h��	
���	�(�(�(�3��y�y����(�"�����/��$�$�� �

�
�����t�$��
�4�
 � ��*����T�Y�Y�[�!�,�!�
 ��#�	1��M�M�+�a�/�0�0��	1��"!�
 �s#�C�")C>�	C;�C6�6C;�>Dc�<�t|d�}|j�y)N�w)�openrl)r�path�fps   r
�python_openzSocketEINTRTest.python_opends��
�$��_��
���
r�darwinz+hangs under macOS; see bpo-25234, bpo-35363c�<�|jd|j�y)Nzfp = open(path, 'r')
fp.close())r�r�r%s r
�	test_openzSocketEINTRTest.test_openhs��	
���:��(�(�	*rc�v�tj|tj�}tj|�yr)rNr��O_WRONLYrl)rr�r�s   r
�os_openzSocketEINTRTest.os_openns!��
�W�W�T�2�;�;�
'��
����rc�<�|jd|j�y)Nz,fd = os.open(path, os.O_RDONLY)
os.close(fd))r�r�r%s r
�test_os_openzSocketEINTRTest.test_os_openrs��	
���G����	&rN)r;r<r=r�r�r�r�r�r�r�r�r�r�r�r�r�requires_freebsd_versionrNr�r��skipIfr#�platformr�r�r�r)rr
r�r��sY��.��X������6�8L�M�!-�N�!-�F,��X�������	�:�<M�N�B�O�B�,-�\,�/��X�������	�:�<M�N�A�O�A�-�8&�W�%�%�b�!�,��X�����X�.�0@�A�-�B�-�-�:��X�_�_�S�\�\�X�-�B�D�*�D�*���X�_�_�S�\�\�X�-�B�D�&�D�&rr�c��eZdZ	d�Zy)�
TimeEINTRTestc���tj�}tj|j�|j	�tj�|z
}|j|�yr)�time�	monotonic�sleepr7r*r:�r�t0�dts   r
�
test_sleepzTimeEINTRTest.test_sleep}sG��
�^�^�
���
�
�4�?�?�#�����
�^�^�
��
"������#rN)r;r<r=r�r)rr
r�r�ys
��,�$rr��pthread_sigmaskzneed signal.pthread_sigmask()c��eZdZ	d�Zej
eed�d�d��Zej
eed�d�d��Z	y)�SignalEINTRTestc��tj}tj�}tj|d��}|j	tj||�djddtj�zdt
|�zd|jzddf�}tjtj|g�}|j	tjtj|g�|j|�}t|�5||�ddd�|j|j�d	�y#1swY�*xYw)
Nc��yrr))r2s r
rSz/SignalEINTRTest.check_sigwait.<locals>.<lambda>�s��$rrcr�zpid = %szsignum = %srfrzzos.kill(pid, signum)r)r�SIGUSR1rN�getpidrkrmr�r7r��	SIG_BLOCK�SIG_UNBLOCKr0rrorG)rrHrrV�old_handlerrB�old_maskr	s        r
�
check_sigwaitzSignalEINTRTest.check_sigwait�s��������i�i�k���m�m�F�,>�?������
�
�v�{�;��y�y�������$��C��K�'�����/�$�"�

����)�)�&�*:�*:�V�H�E������.�.��0B�0B�V�H�M����t�$��
�4�
 ��f��!�	
�������a�(�!�
 �s�	E�E�sigwaitinfozneed signal.sigwaitinfo()c�,�d�}|j|�y)Nc�0�tj|g�yr)rr��rs r
rHz3SignalEINTRTest.test_sigwaitinfo.<locals>.wait_func�s������x�(r�r��rrHs  r
�test_sigwaitinfoz SignalEINTRTest.test_sigwaitinfo�s��	)�	
���9�%r�sigtimedwaitc�,�d�}|j|�y)Nc�2�tj|gd�y)Ng^@)rr�r�s r
rHz4SignalEINTRTest.test_sigtimedwait.<locals>.wait_func�s�������%�0rr�r�s  r
�test_sigtimedwaitz!SignalEINTRTest.test_sigtimedwait�s��	1�	
���9�%rN)
r;r<r=r�r�r�r�rr�r�r)rr
r�r��sf��/�)�2�X������7�4�6�&�6�&��X������8�4�6�&�6�&rr�c�Z�eZdZ	d�Zej
ejdk(d�eje	e
d�d�d���Zeje	e
d�d�d	��Zeje	e
d
�d�d��Z
eje	e
d
�d�d��Zy)�SelectEINTRTestc���tj�}tjggg|j�tj�|z
}|j	�|j|�yr)r�r��selectr7r*r:r�s   r
�test_selectzSelectEINTRTest.test_select�sM��
�^�^�
���
�
�b�"�b�$�/�/�2�
�^�^�
��
"����������#rr�z(poll may fail on macOS; see issue #28087�pollzneed select.pollc��tj�}tj�}|j|jdz�tj�|z
}|j�|j
|�y�Ng@�@)r�r�r�r�r7r*r:�r�pollerr�r�s    r
�	test_pollzSelectEINTRTest.test_poll�sY�������
�^�^�
�����D�O�O�c�)�*�
�^�^�
��
"����������#r�epollzneed select.epollc�0�tj�}|j|j�t	j
�}|j
|j�t	j
�|z
}|j�|j|�yr)
r�rrkrlr�r�r�r7r*r:r�s    r
�
test_epollzSelectEINTRTest.test_epoll�sb�������������%�
�^�^�
�����D�O�O�$�
�^�^�
��
"����������#r�kqueuezneed select.kqueuec�4�tj�}|j|j�t	j
�}|j
dd|j�t	j
�|z
}|j�|j|�yr)
r�rrkrlr�r��controlr7r*r:)rrr�r�s    r
�test_kqueuezSelectEINTRTest.test_kqueue�sf�������������%�
�^�^�
�����t�Q����0�
�^�^�
��
"����������#r�devpollzneed select.devpollc�6�tj�}|j|j�t	j
�}|j
|jdz�t	j
�|z
}|j�|j|�yr�)
r�rrkrlr�r�r�r7r*r:r�s    r
�test_devpollzSelectEINTRTest.test_devpoll�sh�����!��������%�
�^�^�
�����D�O�O�c�)�*�
�^�^�
��
"����������#rN)r;r<r=r�r�r�r#r�r�r�r�rrrr
r)rr
r�r��s���.�$��X�_�_�S�\�\�X�-�?�A��X������0�2D�E�$�F�A�$��X������1�3F�G�$�H�$��X������2�4H�I�$�J�$��X������3�5J�K�$�L�$rr�c�n�eZdZd�Zej
ej�dk(d�d��Zd�Z	y)�FCNTLEINTRTestc
��|jtjtj�t	j
�\}}t	j
�\}}||||fD]"}|jtj|��$tjdtj�d|�d|�d|�d|j�d��}|j|||g��}	t|	�5ttjd�5}
t	j|d	�}|j|d
�tj �}t	j"|d�||
t$j&�tj �|z
}
|j)�|j+|
�ddd�|	j-�ddd�y#1swY�"xYw#1swYyxYw)Nz;
            import fcntl, os, time
            with open('z%', 'wb') as f:
                fcntl.z,(f, fcntl.LOCK_EX)
                os.write(z%, b"ok")
                _ = os.read(z;, 2)  # wait for parent process
                time.sleep(z
)
        rh�wb�soksgo)rkrr�r�rNrjrl�textwrap�dedentr7r0rr�rpror�r�r|�fcntl�LOCK_EXr*r:rG)r�	lock_func�	lock_name�rd1�wr1�rd2�wr2r�rBr	�f�ok�
start_timer�s              r
�_lockzFCNTLEINTRTest._lock�s������	�(�(�)�*:�*:�;��7�7�9���S��7�7�9���S���S�#�&�B��O�O�B�H�H�b�)�'����$�!�(�(�)�*� �k�"���� �E�"� �O�O�,�-	�
 �
�����t�s�C�j��9��
�4�
 ��i�&�&��-���W�W�S�!�_��� � ��U�+�"�^�^�-�
�����e�$�
�!�U�]�]�+��^�^�%�
�2�����!��'�'��+�.� 
�I�I�K�#!�
 �-�-��!�
 �s%�%G�B"G�"G�G	�G�G�AIXzAIX returns PermissionErrorc�D�|jtjd�y)N�lockf)rrr r%s r
�
test_lockfzFCNTLEINTRTest.test_lockfs���
�
�5�;�;��(rc�D�|jtjd�y)N�flock)rrr#r%s r
�
test_flockzFCNTLEINTRTest.test_flocks���
�
�5�;�;��(rN)
r;r<r=rr�r�r��systemr!r$r)rr
rr�s>�� �H�X�_�_�_�X�_�_�&�%�/�1N�O�)�P�)�)rr�__main__)!�
contextlibr!rrNr�r�rr�r0r#rr�r��testr�test.supportrrr8�contextmanagerrr�r��TestCaserr@r�r�r�r�rr;�mainr)rr
�<module>r-s�������	��
�
�
��
�����"�&�

�	�����������W�V�[�1�3I�J�'F�H�%�%�'F�K�'F�T����W�V�[�1�3I�J�e-�-�e-�K�e-�P����W�V�[�1�3I�J�s&�m�s&�K�s&�l����W�V�[�1�3I�J�$�M�$�K�$�����W�V�[�1�3I�J�����W�V�%6�7�4�6�*&�m�*&�6�K�
*&�Z����W�V�[�1�3I�J�5$�m�5$�K�5$�p*)�]�*)�Z�z���H�M�M�O�r

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