Sindbad~EG File Manager
�
'Μg7,���� ddlZddlZddlZddlZddlZddlZddlZddlmZm Z m
Z
ddlmZddlmZddl
mZmZddlZddlZdZedzZGd�d �ZGd
�de�Zd�ZGd
�deej0�Zej4eed�d�Gd�deej0��Zd�ZGd�deej0�ZGd�deej0�Zd�Z e!dk(rejD�yy)�N)�requires�
bigmemtest�requires_resource)�
SHORT_TIMEOUT)�
socket_helper)�TESTFN�unlinkly*�2c�"�eZdZd�Zed��Zy)�
LargeFileTestc��tjjt�rd}nd}|j t|�5}tj
|j
��tj}|tdzk(r
ddd�y|dk(r|jd�|jd�|jt�|jd�|j�|jtj
|j
��tjtdz�ddd�y#1swYyxYw)N�r+bzw+b�r�z�a)�os�path�existsr�open�fstat�fileno�stat�ST_SIZE�size�write�seek�flush�assertEqual)�self�mode�f�current_sizes �0/usr/local/lib/python3.12/test/test_largefile.py�setUpzLargeFileTest.setUps���
�7�7�>�>�&�!��D��D�
�Y�Y�v�t�
$���8�8�A�H�H�J�/����=�L��t�A�v�%��%�
$�
�q� �����
�
�F�F�1�I�
�F�F�4�L�
�G�G�D�M�
�G�G�I����R�X�X�a�h�h�j�1�$�,�,�?��a��H�%�
$�
$�s�AD;�
B(D;�;Ec��|jtd�5 ddd�tjt�tjdk(s|jd��t
t�y#1swY�WxYw)N�wbrz0File was not truncated by opening with mode "wb")rrrrr�failureExceptionr �TESTFN2)�clss r#�
tearDownClasszLargeFileTest.tearDownClass-sY��
�X�X�f�d�
#��$��w�w�v��t�|�|�,��1��&�&�(8�9�
9��w��$�
#�s�A/�/A8N)�__name__�
__module__�__qualname__r$�classmethodr*��r#rrs��I�(���r0rc�p�eZdZ eedd��d��Zd�Zd�Zd�Zd�Z d �Z
eedd��d
��Zy)�TestFileMethods�F)r�memuse�dry_runc��|jtd�5}|jt|j ��t
dz�|j|j
�t
dz�ddd�y#1swYyxYw)N�rbr)rrr�len�readr�tell�r�_sizer!s r#�test_large_readzTestFileMethods.test_large_read>sX���Y�Y�v�t�
$�����S�����]�D�1�H�5����Q�V�V�X�t�a�x�0�%�
$�
$�s�AA8�8Bc��|jtjt�tjt
dz�y)Nr)rrrrrr)rs r#�test_osstatzTestFileMethods.test_osstatEs'�������������6��Q��?r0c�>�|jtd�5}|j|j�d�|j|j d�d�|j|j�d�|jd�|j|j�d�|jdd�|j|j�d�|jd�|j|j�d�|jdd�|j|j�d�|jdd�|j|j�d�|jdd�|j|j�d�|jdd�|j|j�tdzdz�|jdd�|j|j�tdzd z
�|jtdz
d�|j|j�d�|jt�|j|j�t�|j|j d�d
�|jtdz
d�|j|j d�d�|j|j�d�ddd�y#1swYyxYw)Nr7rrr�*�Tr3����
r)rrrr:r9rr�rr!s r#�test_seek_readzTestFileMethods.test_seek_readHs+��
�Y�Y�v�t�
$�����Q�V�V�X�q�)����Q�V�V�A�Y��-����Q�V�V�X�q�)�
�F�F�1�I����Q�V�V�X�q�)�
�F�F�1�a�L����Q�V�V�X�q�)�
�F�F�2�J����Q�V�V�X�r�*�
�F�F�2�q�M����Q�V�V�X�r�*�
�F�F�2�q�M����Q�V�V�X�r�*�
�F�F�1�a�L����Q�V�V�X�r�*�
�F�F�1�a�L����Q�V�V�X�t�a�x�!�|�4�
�F�F�3��N����Q�V�V�X�t�a�x�"�}�5�
�F�F�D�5��7�A�����Q�V�V�X�q�)�
�F�F�4�L����Q�V�V�X�t�,����Q�V�V�A�Y��-�
�F�F�D�5��7�A�����Q�V�V�A�Y��-����Q�V�V�X�q�)�9%�
$�
$�s�K3L�Lc�4�|jtd�5}|jtj|j�dd�d�|jtj|j�dd�d�|jtj|j�dd�d�|jtj|j�dd�d�|jtj|j�dd�tdzdz�|jtj|j�dd�tdzdz
�|jtj|j�tdz
d�d�|jtj|j�td�t�|j|jd�d �ddd�y#1swYyxYw)
Nr7rrArrBr3rCrDr)rrrr�lseekrrr9rEs r#�
test_lseekzTestFileMethods.test_lseekgsd��
�Y�Y�v�t�
$�����R�X�X�a�h�h�j�!�Q�7��;����R�X�X�a�h�h�j�"�a�8�"�=����R�X�X�a�h�h�j�"�a�8�"�=����R�X�X�a�h�h�j�!�Q�7��<����R�X�X�a�h�h�j�!�Q�7��a����B����R�X�X�a�h�h�j�#�q�9�4��6�"�9�E����R�X�X�a�h�h�j�4�%��'�1�=�q�A����R�X�X�a�h�h�j�$��:�D�A����Q�V�V�A�Y��-�%�
$�
$�s�G.H�Hc���|jtd�5}t|d�stjd��|jdd�|j
|j�tdz�tdz
}|j|�|j�|j
|j�|�|jdd�|j
|j�|�|dz}|jd�|j|�|j
|j�d�|jdd�|j
|j�|�|jd�|jd�|j
|j�d�|jd�|j
t|j��d�ddd�y#1swYyxYw) Nr�truncatez.open().truncate() not available on this systemrr3rrDrA)rr�hasattr�unittest�SkipTestrrr:rrKr8r9)rr!�newsizes r#�
test_truncatezTestFileMethods.test_truncatetsm��
�Y�Y�v�u�
%���1�j�)��'�'�)9�:�:�
�F�F�1�a�L����Q�V�V�X�t�A�v�.��R�i�G�
�F�F�7�O�
�J�J�L����Q�V�V�X�w�/�
�F�F�1�a�L����Q�V�V�X�w�/�
�q�L�G�
�F�F�2�J�
�J�J�w�����Q�V�V�X�r�*�
�F�F�1�a�L����Q�V�V�X�w�/�
�F�F�1�I�
�J�J�q�M����Q�V�V�X�q�)�
�F�F�1�I�
���S�����]�A�.�?&�
%�
%�s�GG,�,G5c���dD]Q}|jtd�5}|j|�|j|j ��ddd��Sy#1swY�^xYw)N)i���l�r7)rrr�
assertTrue�seekable)r�posr!s r#�
test_seekablezTestFileMethods.test_seekable�sJ��-�C����6�4�(�A����s������
�
��-�)�(�-�(�(�s�1A�A! c�H�|jtd�5}|j|jdtj
�d�|jt
|j��tdz�ddd�|jtd�5}|j|jdtj�d�|jt
|j��tdz
�ddd�|jtd�5}|j|jdtj�tdz
�|jt
|j��d�ddd�y#1swY�� xYw#1swY��xYw#1swYyxYw) Nr7rr�����r3�)rrrrr�SEEK_CURr8r9r�SEEK_SET�SEEK_ENDr;s r#�test_seek_readallz!TestFileMethods.test_seek_readall�s���Y�Y�v�t�
$�����Q�V�V�A�r�{�{�3�Q�7����S�����]�D�1�H�5�%��Y�Y�v�t�
$�����Q�V�V�B����4�b�9����S�����]�D�2�I�6�%��Y�Y�v�t�
$�����Q�V�V�B����4�d�Q�h�?����S�����]�A�.�%�
$�%�
$��%�
$��%�
$�s&�A!E?�A!F�A!F�?F �F�F!N)r+r,r-rrr=r?rFrIrPrVr_r/r0r#r2r27s\����T�!�U�3�1�4�1�@�*�>.� /�D.��T�!�U�3�/�4�/r0r2c������fd�}|S)Nc�������fd�}|S)Nc�0��ttd�stjd��tjt
jj���j�kr*t�dzdz�}tjd|�d����|i|��S)N�
disk_usagezrequires shutil.disk_usageiz required z MiB of free disk space)
rL�shutilrMrNrcrr�realpath�free�int)�args�kwargs�hsize�funr�requireds ���r#�wrapperz6skip_no_disk_space.<locals>.decorator.<locals>.wrapper�s�����6�<�0��'�'�(D�E�E�� � ����!1�!1�$�!7�8�=�=��H��H�t�O�d�2�3���'�'���w�&=�>�@�@���'��'�'r0r/)rkrmrrls` ��r#� decoratorz%skip_no_disk_space.<locals>.decorator�s��� (��r0r/)rrlrns`` r#�skip_no_disk_spacero�s��� ��r0c�j�eZdZeej
�Zeeedz�e d�d���Z
y)�TestCopyfile�@�cpuc���tjjt�}t j
tt�|jtjjt�|�ttd�5}|j|jd�d�|j|dz
�|j|j�d�ddd�y#1swYyxYw)Nr7��z�a)rr�getsizerrd�copyfiler(rrr9r)rrr!s r#�test_itzTestCopyfile.test_it�s���
�w�w���v�&�������(����������1�4�8�
�'�4�
�A����Q�V�V�A�Y�(<�=�
�F�F�4�!�8�����Q�V�V�X�';�<�!�
�
�s
�AC$�$C-N)r+r,r-�staticmethod�iorrorrrrzr/r0r#rqrq�s<������ �D����s�
�+��u�� =��,� =r0rq�sendfilezsendfile not supportedc���eZdZeej
�ZeZ�fd�Z�fd�Z d�Z
eee
dz�ed�d���Z�xZS)�TestSocketSendfilec�0��t�|��d|_y�N)�superr$�thread�r� __class__s �r#r$zTestSocketSendfile.setUp�s���
��
����r0c���t�|��|j�-|jj|j�d|_yyr�)r��tearDownr��join�timeoutr�s �r#r�zTestSocketSendfile.tearDown�s:���
�����;�;�"��K�K���T�\�\�*��D�K�#r0c������fd�}tj��|j�j�tj||f���_�j
j
��j�y)Nc���|5|j�\}}|j�j�|5ttd�5}�j�j� |j
d�}|s ddd�ddd�ddd�y|j|��?#1swYnxYwddd�n#1swYnxYwddd�y#1swYyxYw)Nr&i)�accept�
settimeoutr�rr(�wait�recvr)�sock�conn�_r!�chunk�eventrs ��r#�runz*TestSocketSendfile.tcp_server.<locals>.run�s������+�+�-���a�������-��4���.�!��J�J�t�|�|�,�� $� � �%� 0��$�"�/�T�������� �/�.��T�T�T�����sF�1C�B7�1B"�7B7�?C�B"�"B+�'B7�. C�7C �<C�C)�targetrh)� threading�Eventr�r��Threadr��start�set)rr�r�r�s` @r#�
tcp_serverzTestSocketSendfile.tcp_server�sU���
'����!��������%��&�&�c���A���������
� � �r0rrrsc�*�tj�}tjd|f�5}|j |�tj
d|f�5}t
td�5}|j|�ddd�ddd�ddd�|j�tjjt�}|jtjjt�|�t
td�5}|j|jd�d�|j!|dz
�|j|j�d�ddd�y#1swY��xYw#1swY��xYw#1swY��xYw#1swYyxYw)N�z 127.0.0.1r7rurvrw)r�find_unused_port�socket�
create_serverr��create_connectionrrr}r�rrrxrr(r9r)r�portr��clientr!rs r#rzzTestSocketSendfile.test_it�s ���-�-�/��
�
!�
!�2�t�*�
-���O�O�D�!��)�)�;��*=�>�&��&�$�'�1��O�O�A�&�(�?�.�
�
�
���w�w���v�&�����������1�4�8�
�'�4�
�A����Q�V�V�A�Y�(<�=�
�F�F�4�!�8�����Q�V�V�X�';�<�!�
�
(�'��?�>��.�
-��!�
�sH�)E=�E1�&E%�8E1�E=�AF �%E.�*E1�1E: �6E=�=F� F)r+r,r-r{r|rrr�r$r�r�rorrrrz�
__classcell__)r�s@r#rr�sQ������� �D��G����*���s�
�+��u��=��,�=r0rc�r� ddl}|j|j|j�t
jdddk(st
jdk(rtddtt�z�yttdd��} |jd �|jd
�|j� |j'�t)t�y#ttf$rY��wxYw#tt f$rt#j$d��wxYw#|j'�t)t�wxYw)Nrr[�win�darwin� largefilez-test requires %s bytes and a long time to runr&)� bufferingrR�xz*filesystem does not have largefile support)�signal�SIGXFSZ�SIG_IGN�ImportError�AttributeError�sys�platformr�strrrrrrr�OSError�
OverflowErrorrMrN�closer )r�r!s r#�setUpModuler�s���
�� �
�
�f�n�n�f�n�n�5��|�|�B�Q��5� �C�L�L�H�$<���@�3�t�9�L� N�
����+�� �
�F�F�:��
�G�G�D�M�
�G�G�I�
�G�G�I��6�N��5
��(�
��
��*��'� 9��#�#�%8�9�
9� 9��
�G�G�I��6�N�s)�*C�2C-�C*�)C*�-%D�D�!D6c�0�eZdZeej
�Zy)�CLargeFileTestN)r+r,r-r{r|rr/r0r#r�r�+s������ �Dr0r�c�0�eZdZeej
�Zy)�PyLargeFileTestN)r+r,r-r{�pyiorr/r0r#r�r�/s���� � �"�Dr0r�c�@�tt�tt�yr�)r rr(r/r0r#�tearDownModuler�3s��
�6�N�
�7�Or0�__main__)#rrr�rMr�rdr��test.supportrrrrr�test.support.os_helperrr r|�_pyior�rr(rr2ro�TestCaserq�skipIfrLrr�r�r�r�r+�mainr/r0r#�<module>r�s���
��
��
�
��@�@�&�&�1� ����
�3�,����@v/�m�v/�p�=�=�(�"3�"3�=�&����W�R��,�,�.F�G�3=���(9�(9�3=�H�3=�l!�H!�_�h�&7�&7�!�#�o�x�'8�'8�#��
�z���H�M�M�O�r0
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists