Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.11/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.11/test/__pycache__/_test_eintr.cpython-311.pyc

�

SԚgG��|�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlmZddlmZdZejd���Zejeed��d	��Gd
�dej����Zejeed��d	��Gd�d
e����Zejeed��d	��Gd�de����Zejeed��d	��Gd�de����Zejeed��d	��ejeed��d��Gd�de������Zejeed��d	��Gd�de����ZGd�de��Zedkrej ��dSdS)a�
This test suite exercises some system calls subject to interruption with EINTR,
to check that it is actually handled transparently.
It is intended to be run by the main test suite within a child process, to
ensure there is no background thread running (so that signals are delivered to
the correct thread).
Signals are generated in-process using setitimer(ITIMER_REAL), which allows
sub-second periodicity (contrarily to signal()).
�N)�support)�	os_helper)�
socket_helperg{�G�z�?c#�K�|5	|V�n#|����xYw	ddd��dS#1swxYwYdS)zGContext manager killing the subprocess if a Python exception is raised.N)�kill)�procs �-/usr/local/lib/python3.11/test/_test_eintr.py�
kill_on_errorr
"s�����
���	��J�J�J�J��	��I�I�K�K�K�����
���������������������s�4��4�#�4�8�8�	setitimerzrequires setitimer()c�R�eZdZdZdZdZdZd�Zd�Ze	d���Z
d�Zd�Zd	�Z
d
S)�
EINTRBaseTestz Base class for EINTR tests. g�������?g�������?c�&�|xjdz
c_dS�N�)�signals)�self�signum�frames   r	�
sighandlerzEINTRBaseTest.sighandler9s�����������c��d|_tjtj|j��|_tjtj|j|j��tj
ddtj���dS)NriXT)�exit�file)
r�signal�SIGALRMr�orig_handlerr�ITIMER_REAL�signal_delay�
signal_period�faulthandler�dump_traceback_later�sys�
__stderr__�rs r	�setUpzEINTRBaseTest.setUp<su�����"�M�&�.�$�/�J�J������+�T�->��+�	-�	-�	-�
	�)�'��/2�~�	?�	?�	?�	?�	?�	?rc�F�tjtjdd��dS�Nr)rrr�rr	�
stop_alarmzEINTRBaseTest.stop_alarmGs �����+�Q��2�2�2�2�2rc��|���tjtj|j��t	j��dS�N)r)rrrr �cancel_dump_traceback_laterr$s r	�tearDownzEINTRBaseTest.tearDownKs>���������
�f�n�d�&7�8�8�8��0�2�2�2�2�2rc�H�tjdf|z}tj|fi|��S)Nz-c)r"�
executable�
subprocess�Popen)r�args�kw�cmd_argss    r	r0zEINTRBaseTest.subprocessPs,���N�D�)�D�0�����/�/�B�/�/�/rc�L�|�||jtz
��dSr+)�assertGreaterEqual�
sleep_time�	CLOCK_RES)r�elapseds  r	�check_elapsed_timez EINTRBaseTest.check_elapsed_timeTs%��������9�)D�E�E�E�E�ErN)�__name__�
__module__�__qualname__�__doc__rrr7rr%�staticmethodr)r-r0r:r(rr	r
r
-s�������'�'��L��M��J����	?�	?�	?��3�3��\�3�3�3�3�
0�0�0�F�F�F�F�Frr
c���eZdZdZd�Zd�Zd�Zeje	e
d��d��d���Zd�Zd	�Z
eje	e
d
��d��d���Zd
�Zd�ZdS)�OSEINTRTestz  EINTR tests for the os module. c�@�d|jz}|�|��S)Nzimport time; time.sleep(%r))r7r0)r�codes  r	�new_sleep_processzOSEINTRTest.new_sleep_process\s ��,�t��>�����t�$�$�$rc���d}�fd�t|��D��}t|��D]}|���
|D]}|����dS)N�c�8��g|]}������Sr()rD)�.0�_rs  �r	�
<listcomp>z3OSEINTRTest._test_wait_multiple.<locals>.<listcomp>bs%���B�B�B�!�T�+�+�-�-�B�B�Br)�range�wait)r�	wait_func�num�	processesrIrs`     r	�_test_wait_multiplezOSEINTRTest._test_wait_multiple`sq�����B�B�B�B�u�S�z�z�B�B�B�	��s���	�	�A��I�K�K�K�K��	�	�D��I�I�K�K�K�K�	�	rc�D�|�tj��dSr+)rP�osrLr$s r	�	test_waitzOSEINTRTest.test_waitis��� � ���)�)�)�)�)r�wait3zrequires wait3()c�2�|�d���dS)Nc�*�tjd��Sr')rRrTr(rr	�<lambda>z(OSEINTRTest.test_wait3.<locals>.<lambda>ns����!���r)rPr$s r	�
test_wait3zOSEINTRTest.test_wait3ls ��� � �!4�!4�5�5�5�5�5rc�v�|���}||j��|���dSr+)rD�pidrL)rrMrs   r	�_test_wait_singlezOSEINTRTest._test_wait_singleps6���%�%�'�'���	�$�(�����	�	�����rc�2�|�d���dS)Nc�,�tj|d��Sr')rR�waitpid�rZs r	rWz*OSEINTRTest.test_waitpid.<locals>.<lambda>ws��2�:�c�1�+=�+=�r�r[r$s r	�test_waitpidzOSEINTRTest.test_waitpidvs �����=�=�>�>�>�>�>r�wait4zrequires wait4()c�2�|�d���dS)Nc�,�tj|d��Sr')rRrbr_s r	rWz(OSEINTRTest.test_wait4.<locals>.<lambda>{s��2�8�C��+;�+;�rr`r$s r	�
test_wait4zOSEINTRTest.test_wait4ys �����;�;�<�<�<�<�<rc�X�tj��\}}|�tj|��gd�}d�dddd|zd|jzddd	d
df
��}|�|t|��|g���}t|��5tj|��|D]8}|�	|tj
|t|�������9|�	|���d
��ddd��dS#1swxYwYdS)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)
rR�pipe�
addCleanup�close�joinr7r0�strr
�assertEqual�read�lenrL)r�rd�wr�datasrCr�datas       r	�	test_readzOSEINTRTest.test_read}sn��������B������"�%�%�%�
.�-�-���y�y�"��#��5� ����/�� �2�(�$�
�������t�S��W�W��t��<�<��
�4�
 �
 �	-�	-��H�R�L�L�L��
?�
?��� � ��r�w�r�3�t�9�9�'=�'=�>�>�>�>����T�Y�Y�[�[�!�,�,�,�		-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�A8D�D#�&D#c���tj��\}}|�tj|��dtjz}d�dddd|jzdtjzddd	d
dddd
ddddddf��}|�|t|��|g���}t|��5tj|��d}|t|��kr@|tj|t|��|d���z
}|t|��k�@|�|���d��ddd��dS#1swxYwYdS)N�xrgzimport io, os, sys, timerhzrd = int(sys.argv[1])rjzdata = 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))rlr)rRrnrorpr�
PIPE_MAX_SIZErqr7r0rrr
ru�write�
memoryviewrsrL)rrvrwryrCr�writtens       r	�
test_writezOSEINTRTest.test_write�s���������B������"�%�%�%��g�+�+���y�y�&��#����/���!6�6�"��/�$��&�9�3�(��*��>�;�'
����,���t�S��W�W��t��<�<��
�4�
 �
 �	-�	-��H�R�L�L�L��G��C��I�I�%�%��2�8�B�
�4�(8�(8����(B�C�C�C���C��I�I�%�%����T�Y�Y�[�[�!�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�8BE�E�EN)r;r<r=r>rDrPrS�unittest�
skipUnless�hasattrrRrXr[rarerzr�r(rr	rArAXs�������*�*�%�%�%����*�*�*��X�����W�-�-�/A�B�B�6�6�C�B�6����?�?�?��X�����W�-�-�/A�B�B�=�=�C�B�=�-�-�-�:$-�$-�$-�$-�$-rrAc�*�eZdZdZejeed��d��d���Zd�Z	ejeejd��d��d���Z
d	�Zd
�Zd�Z
ejeejd��d
��d���Zd�Zejdd��ejeed��d��d�����Zd�Zejejdkd��d���Zd�Zejejdkd��d���ZdS)�SocketEINTRTestz$ EINTR tests for the socket module. �
socketpairzneeds socketpair()c���tj��\}}|�|j��gd�}d�ddddt|j��zdt|j��zd|zd	|jzdd
dddd
dddf��}|�	��}|�
|t|��|g���}t|��5|���|D]/}|�
|||t|�������0|�
|���d��ddd��dS#1swxYwYdS)N)r|�y�zrg�import os, socket, sys, timerh�fd = int(sys.argv[1])�family = %s�sock_type = %srirjz)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)rlr)�socketr�rorprq�int�family�typer7�filenor0rrr
rsrurL)	r�	recv_funcrvrwrxrC�fdrrys	         r	�
_test_recvzSocketEINTRTest._test_recv�s����"�$�$���B������!�!�!�#�"�"���y�y�*��#��C��	�N�N�*��s�2�7�|�|�+��5� ����/��7����$�6�,�&�!
����&�Y�Y�[�[�����t�S��W�W��t��<�<��
�4�
 �
 �	-�	-��H�H�J�J�J��
A�
A��� � ��y�y��S��Y�Y�'?�'?�@�@�@�@����T�Y�Y�[�[�!�,�,�,�		-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�A/E�E�Ec�N�|�tjj��dSr+)r�r��recvr$s r	�	test_recvzSocketEINTRTest.test_recv��������
�*�+�+�+�+�+r�recvmsgzneeds recvmsg()c�2�|�d���dS)Nc�8�|�|��dSr')r���sockrys  r	rWz.SocketEINTRTest.test_recvmsg.<locals>.<lambda>�s��4�<�<��+=�+=�a�+@�r)r�r$s r	�test_recvmsgzSocketEINTRTest.test_recvmsg�s�����@�@�A�A�A�A�Arc�b�tj��\}}|�|j��dtjdzz}d�ddddt|j��zdt|j	��zd	|j
zd
tjdzzdddd
dddddddddddddf��}|���}|�|t|��|g���}t|��5|���d}|t|��krJ||t!|��|d���}	||	�t|��n|	z
}|t|��k�J|�|���d��ddd��dS#1swxYwYdS)NsxyzrFrgr�rhr�r�r�rjzdata = b"xyz" * %sr}z)rd = socket.fromfd(fd, family, sock_type)r�zwith rd:z$    # let the parent block on send()rkz'    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))rlr)r�r�rorpr�
SOCK_MAX_SIZErqr�r�r�r7r�r0rrr
rur�rsrL)
r�	send_funcrvrwryrCr�rr��sents
          r	�
_test_sendzSocketEINTRTest._test_send�s����"�$�$���B������!�!�!���.�!�3�4���y�y�*��#��C��	�N�N�*��s�2�7�|�|�+����/� �G�$9�Q�$>�?�"��7����2�(��5��%�F��'�>�C�1
����6�Y�Y�[�[�����t�S��W�W��t��<�<��
�4�
 �
 �	-�	-��H�H�J�J�J��G��C��I�I�%�%� �y��Z��%5�%5�g�h�h�%?�@�@�����3�t�9�9�9�$�>���C��I�I�%�%�
���T�Y�Y�[�[�!�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�;BF$�$F(�+F(c�N�|�tjj��dSr+)r�r��sendr$s r	�	test_sendzSocketEINTRTest.test_sendr�rc�N�|�tjj��dSr+)r�r��sendallr$s r	�test_sendallzSocketEINTRTest.test_sendall!s������
�-�.�.�.�.�.r�sendmsgzneeds sendmsg()c�2�|�d���dS)Nc�.�|�|g��Sr+)r�r�s  r	rWz.SocketEINTRTest.test_sendmsg.<locals>.<lambda>&s��4�<�<���+?�+?�r)r�r$s r	�test_sendmsgzSocketEINTRTest.test_sendmsg$s�����?�?�@�@�@�@�@rc�<�tjtjdf��}|�|j��|���d}d�dddtjzd|zd|jzdd	d
ddf
��}|�	|��}t|��5|���\}}|���|�|�
��d��ddd��dS#1swxYwYdS)
Nrrrgzimport socket, timerhz	host = %rz	port = %srjz# let parent block on accept()r~z,with socket.create_connection((host, port)):rk)r��
create_serverr�HOSTrorp�getsocknamerqr7r0r
�acceptrsrL)rr��portrCr�client_sockrIs       r	�test_acceptzSocketEINTRTest.test_accept(sT���#�]�%7��$;�<�<������
�#�#�#����!�!�!�$���y�y�!���-�,�,��$�����/��,�$�:�(�
�������t�$�$��
�4�
 �
 �	-�	-�!�[�[�]�]�N�K�����������T�Y�Y�[�[�!�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�0AD�D�D�
rF�mkfifozneeds mkfifo()c�B�tj}tj|��	tj|��n/#t
$r"}|�d|z��Yd}~nd}~wwxYw|�tj|��d�ddd|zd|j	zdddd|f	��}|�
|��}t|��5||��|�|�
��d	��ddd��dS#1swxYwYdS)
Nzos.mkfifo(): %srg�import os, timerhz	path = %arjz# let the parent blockr~r)r�TESTFN�unlinkrRr��PermissionError�skipTestrorqr7r0r
rsrL)r�do_open_close_reader�do_open_close_writer�filename�erCrs       r	�
_test_openzSocketEINTRTest._test_openDs����#��	���"�"�"�	1��I�h�������	1�	1�	1��M�M�+�a�/�0�0�0�0�0�0�0�0�����	1�������	�(�(�3�3�3��y�y����(�"����/��$�$�� �

�
�
�����t�$�$��
�4�
 �
 �	-�	-� � ��*�*�*����T�Y�Y�[�[�!�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s'�7�
A#�A�A#�4D�D�Dc�N�t|d��}|���dS)N�w)�openrp)r�path�fps   r	�python_openzSocketEINTRTest.python_opencs ��
�$��_�_��
���
�
�
�
�
r�darwinz+hangs under macOS; see bpo-25234, bpo-35363c�<�|�d|j��dS)Nzfp = open(path, 'r')
fp.close())r�r�r$s r	�	test_openzSocketEINTRTest.test_opengs-��	
���:��(�	*�	*�	*�	*�	*rc�l�tj|tj��}tj|��dSr+)rRr��O_WRONLYrp)rr�r�s   r	�os_openzSocketEINTRTest.os_openms&��
�W�T�2�;�
'�
'��
�������rc�<�|�d|j��dS)Nz,fd = os.open(path, os.O_RDONLY)
os.close(fd))r�r�r$s r	�test_os_openzSocketEINTRTest.test_os_openqs,��	
���G���	&�	&�	&�	&�	&rN)r;r<r=r>r�r�r�r�r�r�r�r�r�r�r�r�r�requires_freebsd_versionrRr�r��skipIfr"�platformr�r�r�r(rr	r�r��s������.�.��X������6�6�8L�M�M�!-�!-�N�M�!-�F,�,�,��X������	�:�:�<M�N�N�B�B�O�N�B�,-�,-�,-�\,�,�,�/�/�/��X������	�:�:�<M�N�N�A�A�O�N�A�-�-�-�8&�W�%�b�!�,�,��X�����X�.�.�0@�A�A�-�-�B�A�-�,�-�:����X�_�S�\�X�-�B�D�D�*�*�D�D�*�����X�_�S�\�X�-�B�D�D�&�&�D�D�&�&�&rr�c��eZdZdZd�ZdS)�
TimeEINTRTestz" EINTR tests for the time module. c���tj��}tj|j��|���tj��|z
}|�|��dSr+)�time�	monotonic�sleepr7r)r:�r�t0�dts   r	�
test_sleepzTimeEINTRTest.test_sleep|s]��
�^�
�
���
�4�?�#�#�#�������
�^�
�
��
"������#�#�#�#�#rN)r;r<r=r>r�r(rr	r�r�xs)������,�,�$�$�$�$�$rr��pthread_sigmaskzneed signal.pthread_sigmask()c��eZdZdZd�Zejeed��d��d���Z	ejeed��d��d���Z
dS)	�SignalEINTRTestz$ EINTR tests for the signal module. c��tj}tj��}tj|d���}|�tj||��d�ddtj��zdt
|��zd|jzddf��}tjtj	|g��}|�tjtj
|g��tj��}|�
|��}t|��5||��tj��|z
}	ddd��n#1swxYwY|�|���d	��dS)
Nc��dSr+r()r2s r	rWz/SignalEINTRTest.check_sigwait.<locals>.<lambda>�s��$�rrgr�zpid = %szsignum = %srjr~zos.kill(pid, signum)r)r�SIGUSR1rR�getpidrorqr�r7r��	SIG_BLOCK�SIG_UNBLOCKr�r�r0r
rsrL)
rrMrrZ�old_handlerrC�old_maskr�rr�s
          r	�
check_sigwaitzSignalEINTRTest.check_sigwait�s�������i�k�k���m�F�,>�,>�?�?������
�v�{�;�;�;��y�y�������$��C��K�K�'����/�$�"�

�����)�&�*:�V�H�E�E������.��0B�V�H�M�M�M�
�^�
�
�����t�$�$��
�4�
 �
 �	'�	'��I�f������!�!�B�&�B�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	
��������a�(�(�(�(�(s�!"E�E�E�sigwaitinfozneed signal.sigwaitinfo()c�6�d�}|�|��dS)Nc�0�tj|g��dSr+)rr��rs r	rMz3SignalEINTRTest.test_sigwaitinfo.<locals>.wait_func�s�����x�(�(�(�(�(r�r��rrMs  r	�test_sigwaitinfoz SignalEINTRTest.test_sigwaitinfo�s-��	)�	)�	)�	
���9�%�%�%�%�%r�sigtimedwaitc�6�d�}|�|��dS)Nc�2�tj|gd��dS)Ng^@)rr�r�s r	rMz4SignalEINTRTest.test_sigtimedwait.<locals>.wait_func�s������%�0�0�0�0�0rr�r�s  r	�test_sigtimedwaitz!SignalEINTRTest.test_sigtimedwait�s-��	1�	1�	1�	
���9�%�%�%�%�%rN)r;r<r=r>r�r�r�r�rr�r�r(rr	r�r��s�������/�.�)�)�)�6�X������7�7�4�6�6�&�&�6�6�&��X������8�8�4�6�6�&�&�6�6�&�&�&rr�c�x�eZdZdZd�Zejejdkd��ej	e
ed��d��d�����Zej	e
ed��d	��d
���Z
ej	e
ed��d��d
���Zej	e
ed��d��d���ZdS)�SelectEINTRTestz$ EINTR tests for the select module. c���tj��}tjggg|j��tj��|z
}|���|�|��dSr+)r�r��selectr7r)r:r�s   r	�test_selectzSelectEINTRTest.test_select�sc��
�^�
�
���
�b�"�b�$�/�2�2�2�
�^�
�
��
"������������#�#�#�#�#rr�z(poll may fail on macOS; see issue #28087�pollzneed select.pollc�
�tj��}tj��}|�|jdz��tj��|z
}|���|�|��dS�Ng@�@)r�r�r�r�r7r)r:�r�pollerr�r�s    r	�	test_pollzSelectEINTRTest.test_poll�sq�������
�^�
�
�����D�O�c�)�*�*�*�
�^�
�
��
"������������#�#�#�#�#r�epollzneed select.epollc�8�tj��}|�|j��t	j��}|�|j��t	j��|z
}|���|�	|��dSr+)
r�rrorpr�r�r�r7r)r:rs    r	�
test_epollzSelectEINTRTest.test_epoll�s~������������%�%�%�
�^�
�
�����D�O�$�$�$�
�^�
�
��
"������������#�#�#�#�#r�kqueuezneed select.kqueuec�<�tj��}|�|j��t	j��}|�dd|j��t	j��|z
}|���|�	|��dSr)
r�rrorpr�r��controlr7r)r:)rrr�r�s    r	�test_kqueuezSelectEINTRTest.test_kqueue�s�������������%�%�%�
�^�
�
�����t�Q���0�0�0�
�^�
�
��
"������������#�#�#�#�#r�devpollzneed select.devpollc�>�tj��}|�|j��t	j��}|�|jdz��t	j��|z
}|���|�	|��dSr)
r�rrorpr�r�r�r7r)r:rs    r	�test_devpollzSelectEINTRTest.test_devpoll�s�����!�!�������%�%�%�
�^�
�
�����D�O�c�)�*�*�*�
�^�
�
��
"������������#�#�#�#�#rN)r;r<r=r>r�r�r�r"r�r�r�r�rrrrr(rr	r�r��s8������.�.�$�$�$��X�_�S�\�X�-�?�A�A��X������0�0�2D�E�E�$�$�F�E�A�A�$��X������1�1�3F�G�G�$�$�H�G�$��X������2�2�4H�I�I�$�$�J�I�$��X������3�3�5J�K�K�$�$�L�K�$�$�$rr�c�p�eZdZd�Zejej��dkd��d���Zd�Z	dS)�
FNTLEINTRTestc��|�tjtj��d�ddtjzd|zd|jzf��}t
j��}|�|��}t|��5ttjd��5}	t
j��|z
}|dkrtd	|z���	||tj
tjz��||tj��t
jd
��n#t"$rYnwxYw��||tj
��t
j��|z
}|���|�|��ddd��n#1swxYwY|���ddd��dS#1swxYwYdS)Nrgzimport fcntl, timezwith open('%s', 'wb') as f:z   fcntl.%s(f, fcntl.LOCK_EX)z   time.sleep(%s)�wbTgN@z failed to sync child in %.1f secg{�G�z�?)rorr�r�rqr7r�r�r0r
r��	Exception�fcntl�LOCK_EX�LOCK_NB�LOCK_UNr��BlockingIOErrorr)r:rL)r�	lock_func�	lock_namerC�
start_timer�fr�s        r	�_lockzFNTLEINTRTest._lock�sF�����	�(�)�*:�;�;�;��y�y� �)�I�,<�<�+�i�7��$�/�1�	3�4�4��
�^�%�%�
����t�$�$��
�4�
 �
 �	�	��i�&��-�-�
,��	���)�)�J�6�B��D�y�y�'�(J�R�(O�P�P�P��!�	�!�U�]�U�]�%B�C�C�C�!�	�!�U�]�3�3�3��
�4�(�(�(�(��*����������	��	�!�U�]�+�+�+��^�%�%�
�2�����!�!�!��'�'��+�+�+�#
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,�$
�I�I�K�K�K�'	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s\�G�.0F�A
D-�,F�-
D:�7F�9D:�:AF�G�F#	�#G�&F#	�'G�G�G�AIXzAIX returns PermissionErrorc�F�|�tjd��dS)N�lockf)rrr r$s r	�
test_lockfzFNTLEINTRTest.test_lockfs���
�
�5�;��(�(�(�(�(rc�F�|�tjd��dS)N�flock)rrr#r$s r	�
test_flockzFNTLEINTRTest.test_flocks���
�
�5�;��(�(�(�(�(rN)
r;r<r=rr�r�r��systemr!r$r(rr	rr�sn���������@�X�_�_�X�_�&�&�%�/�1N�O�O�)�)�P�O�)�)�)�)�)�)rr�__main__)!r>�
contextlibr rrRr�r�rr�r0r"r�r��testr�test.supportrrr8�contextmanagerr
r�r��TestCaser
rAr�r�r�r�rr;�mainr(rr	�<module>r-s{����������������	�	�	�	�����
�
�
�
�
�
�
�
�
�
�
�
�����
�
�
�
���������������"�"�"�"�"�"�&�&�&�&�&�&�

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

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