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

�Ke����	ddlZddlZddlZddlZddlZddlmZddlmZm	Z	ddl
mZddlm
Z
mZed��Zd�Ze��ZGd�d	��Zd
�Zd�ZGd�d
ej��Zedkrej��dSdS)�N)�Process)�verbose�cpython_only)�
import_module)�TESTFN�unlink�fcntlc
���	tjd}n#t$rd}YnwxYwtj�d��stjdkrNt
jd��dkrd}d}nd}d}t
j||z|zd	zd
d
d
tj
d
��}n�tj�d��r%t
jdd
d
d
tj
d
d
��}n^tjd
vr&t
jdtj
d
d
d
d
d
d
��}n*t
jd	|zd	ztj
d
d
d
d
d
��}|r$trtdt|����|S)N�qq�ll)�netbsd�freebsd�openbsd�darwin�l��i�lxxxx�hhr�gnukfreebsd�qqihhi)zhp-uxB�	unixware7�hhllliiz
struct.pack: )�os�O_LARGEFILE�AttributeError�sys�platform�
startswith�struct�calcsize�packr	�F_WRLCKr�print�repr)�	start_len�off_t�pid_t�lockdatas    �9/usr/local/apps/python3/lib/python3.11/test/test_fcntl.py�get_lockdatar+sy���
����	�	�������	�	�	�����
	���� @�A�A�R��<�8�#�#��?�3���1�$�$��E��E�E��E��E��;�u�u�}�u�4�t�;�Q��1�$�}�a�1�1���	��	 �	 ��	/�	/�R��;�x��A�q�%�-��A�F�F���	��0�	0�	0��;�y�%�-��A�q�!�Q��J�J����;�t�I�~�d�2�E�M�1�a��A�q�Q�Q���3��	3��/�4��>�>�2�2�2��Os�� � c��eZdZd�Zd�ZdS)�BadFilec��||_dS�N��fn)�selfr1s  r*�__init__zBadFile.__init__3s
�������c��|jSr/r0�r2s r*�filenozBadFile.fileno5s	���w�r4N)�__name__�
__module__�__qualname__r3r7�r4r*r-r-2s2�������������r4r-c���t|d��}	t�||��n#t$rYnwxYw|���dS#|���wxYw�N�wb+)�openr	�lockf�BlockingIOError�close��fname�cmd�fs   r*�try_lockf_on_other_process_failrG8sr���U�E���A��
���A�s�������
�
�
���
����	
���	�	�	�	�	�����	�	�	�	���s!�.�A�
;�A�;�A�A*c���t|d��}t�||��t�|tj��|���dSr=)r?r	r@�LOCK_UNrBrCs   r*�try_lockf_on_other_processrJAsL���U�E���A�	�K�K��3����	�K�K��5�=�!�!�!��G�G�I�I�I�I�Ir4c�J�eZdZd�Zd�Zd�Zd�Zd�Zed���Z	e
jej
���d��oej��dkd	��d
���Zd�Ze
jej��dkd
��d���Ze
jej��dkd
��d���Zed���Ze
jejdkd��d���Ze
jeed��oeed��d��d���ZdS)�	TestFcntlc��d|_dSr/)rFr6s r*�setUpzTestFcntl.setUpIs
������r4c��|jr%|jjs|j���tt��dSr/)rF�closedrBrrr6s r*�tearDownzTestFcntl.tearDownLs5���6�	�$�&�-�	��F�L�L�N�N�N��v�����r4c���ttd��|_t�|j���tjtj��}trtd|��t�|j���tj
t��}trtdt|����|j�
��dS�N�wbz#Status from fcntl with O_NONBLOCK: z!String from fcntl with F_SETLKW: )r?rrFr	r7�F_SETFLr�
O_NONBLOCKrr$�F_SETLKWr)r%rB�r2�rvs  r*�test_fcntl_filenozTestFcntl.test_fcntl_filenoQs����f�d�#�#���
�[�[�������%�-���
G�
G���	=��7��<�<�<�
�[�[�������%�.�(�
C�
C���	A��5�t�B�x�x�@�@�@���������r4c��ttd��|_t�|jtjt
j��}trtd|��t�|jtj	t��}trtdt|����|j���dSrS)
r?rrFr	rUrrVrr$rWr)r%rBrXs  r*�test_fcntl_file_descriptorz$TestFcntl.test_fcntl_file_descriptor\s����f�d�#�#���
�[�[������
�
>�
>���	=��7��<�<�<�
�[�[������
:�
:���	A��5�t�B�x�x�@�@�@���������r4c�L�|�t��5t�dtjtj��ddd��n#1swxYwY|�t��5t�t
d��tjtj��ddd��n#1swxYwY|�t��5t�dtjtj��ddd��n#1swxYwY|�t��5t�t
d��tjtj��ddd��dS#1swxYwYdS)N����spam)�assertRaises�
ValueErrorr	rUrrVr-�	TypeErrorr6s r*�test_fcntl_bad_filezTestFcntl.test_fcntl_bad_filegsN��
�
�
�z�
*�
*�	:�	:��K�K��E�M�2�=�9�9�9�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�
�
�
�z�
*�
*�	C�	C��K�K�����U�]�B�M�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�
�
�
�y�
)�
)�	>�	>��K�K���
�r�}�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�
�
�
�y�
)�
)�	G�	G��K�K��������
�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	GsG�1A�A�A�=>C�C�C�,1D)�)D-�0D-�>F�F� Fc�t�ddlm}m}|�t��5t
�|dzt
jtj��ddd��n#1swxYwY|�t��5t
�t|dz��t
jtj��ddd��n#1swxYwY|�t��5t
�|dz
t
jtj��ddd��n#1swxYwY|�t��5t
�t|dz
��t
jtj��ddd��dS#1swxYwYdS)Nr)�INT_MAX�INT_MIN�)
�	_testcapirerfr`�
OverflowErrorr	rUrrVr-)r2rerfs   r*�test_fcntl_bad_file_overflowz&TestFcntl.test_fcntl_bad_file_overflowqs���.�.�.�.�.�.�.�.�
�
�
�}�
-�
-�	C�	C��K�K��!��U�]�B�M�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�
�
�
�}�
-�
-�	L�	L��K�K���!��,�,�e�m�R�]�K�K�K�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L�
�
�
�}�
-�
-�	C�	C��K�K��!��U�]�B�M�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�
�
�
�}�
-�
-�	L�	L��K�K���!��,�,�e�m�R�]�K�K�K�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L�	L�	LsI�4A#�#A'�*A'�AC�C�C�:4D:�:D>�D>�AF-�-F1�4F1�arm�Linuxz2ARM Linux returns EINVAL for F_NOTIFY DN_MULTISHOTc���	tj}tj}n%#t$r|�d��YnwxYwtjt
j�t
j�	t����t
j��}	t�|||��tj|��dS#tj|��wxYw)Nz$F_NOTIFY or DN_MULTISHOT unavailable)
r	�F_NOTIFY�DN_MULTISHOTr�skipTestrr?�path�dirname�abspathr�O_RDONLYrB)r2rE�flags�fds    r*�test_fcntl_64_bitzTestFcntl.test_fcntl_64_bit~s���	B��.�C��&�E�E���	B�	B�	B��M�M�@�A�A�A�A�A�	B����
�W�R�W�_�_�R�W�_�_�V�%<�%<�=�=�r�{�
K�
K��	��K�K��C��'�'�'��H�R�L�L�L�L�L��B�H�R�L�L�L�L���s��=�=�C�C'c��ttd��|_|j���}t�|tj��t�|tj��t�|jtjtjz��t�|jtj��t�|tj	��t�|tj��|�
ttjdtj��|�
ttjdtj��dS)Nr>r^r_)
r?rrFr7r	�flock�LOCK_SHrI�LOCK_NB�LOCK_EXr`rarb)r2r7s  r*�
test_flockzTestFcntl.test_flock�s����f�e�$�$����������
���F�E�M�*�*�*�
���F�E�M�*�*�*�
���D�F�E�M�E�M�9�:�:�:�
���D�F�E�M�*�*�*�
���F�E�M�*�*�*�
���F�E�M�*�*�*����*�e�k�2�u�}�E�E�E����)�U�[�&�%�-�H�H�H�H�Hr4�AIXzAIX returns PermissionErrorc��ttd��|_tjtjz}t�|j|��ttt|f���}|�	��|�
��t�|jtj��|�|j
d��dS�Nr>)�target�argsr)r?rrFr	r|r{r@rrG�start�joinrI�assertEqual�exitcode�r2rE�ps   r*�test_lockf_exclusivezTestFcntl.test_lockf_exclusive�s����f�e�$�$����m�e�m�+��
���D�F�C� � � ��:�&�#��O�O�O��	���	�	�	�	������
���D�F�E�M�*�*�*������Q�'�'�'�'�'r4c��ttd��|_tjtjz}t�|j|��ttt|f���}|�	��|�
��t�|jtj��|�|j
d��dSr�)r?rrFr	rzr{r@rrJr�r�rIr�r�r�s   r*�test_lockf_sharezTestFcntl.test_lockf_share�s����f�e�$�$����m�e�m�+��
���D�F�C� � � ��5�V�S�M�J�J�J��	���	�	�	�	������
���D�F�E�M�*�*�*������Q�'�'�'�'�'r4c��ddl}|�ttj|jdztj��dS)Nrrg)rhr`rir	ryrerz)r2rhs  r*�test_flock_overflowzTestFcntl.test_flock_overflow�sE���������-���i�6G��6I��-�	)�	)�	)�	)�	)r4rz$F_GETPATH is only available on macosc	��ttd��|_tj�t���d��}t�|j���tj	tt|������}|�||��dS)NrTzutf-8)
r?rrFrrqrs�encoder	r7�	F_GETPATH�bytes�lenr�)r2�expected�ress   r*�test_fcntl_f_getpathzTestFcntl.test_fcntl_f_getpath�s���f�d�#�#����7�?�?�6�*�*�1�1�'�:�:���k�k�$�&�-�-�/�/�5�?�E�#�h�-�-�<P�<P�Q�Q������3�'�'�'�'�'r4�F_SETPIPE_SZ�F_GETPIPE_SZzAF_SETPIPE_SZ and F_GETPIPE_SZ are not available on all platforms.c�$�tj��\}}	t�|tj��}|dz}|dkrt	jd���t�|tj|��|�t�|tj��|��tj|��tj|��dS#tj|��tj|��wxYw)N�iz+default pipesize too small to perform test.)	r�piper	r��unittest�SkipTestr�r�rB)r2�test_pipe_r�test_pipe_w�pipesize_default�pipesizes     r*�test_fcntl_f_pipesizezTestFcntl.test_fcntl_f_pipesize�s���$&�7�9�9� ��[�	"�$�{�{�;��8J�K�K��'�1�,�H��#�~�~��'�A�C�C�C��K�K��U�%7��B�B�B����U�[�[��e�6H�I�I�%�
'�
'�
'�
�H�[�!�!�!��H�[�!�!�!�!�!��
�H�[�!�!�!��H�[�!�!�!�!���s�B#C%�%*DN)r8r9r:rNrQrZr\rcrrjr��skipIfr�machiner�systemrwr}r�r�r�rr��
skipUnless�hasattrr	r�r;r4r*rLrLGs	������������
	�	�	�	�	�	�G�G�G��
L�
L��\�
L��X�_������%�%�e�,�,�M����1B�1B�g�1M�<�>�>�
�
�>�>�
�I�I�I��X�_�_�X�_�&�&�%�/�1N�O�O�(�(�P�O�(��X�_�_�X�_�&�&�%�/�1N�O�O�(�(�P�O�(��)�)��\�)�
�X�_�S�\�X�-�/U�V�V�(�(�W�V�(��X�����~�&�&�I�7�7�5�.�+I�+I�K�M�M�"�"�M�M�"�"�"r4rL�__main__)rrr rr��multiprocessingr�test.supportrr�test.support.import_helperr�test.support.os_helperrrr	r+r)r-rGrJ�TestCaserLr8�mainr;r4r*�<module>r�sZ�������	�	�	�	�
�
�
�
�
�
�
�
�����#�#�#�#�#�#�.�.�.�.�.�.�.�.�4�4�4�4�4�4�1�1�1�1�1�1�1�1�	�
�g�������:�<�>�>����������������K"�K"�K"�K"�K"��!�K"�K"�K"�\�z����H�M�O�O�O�O�O��r4