Sindbad~EG File Manager
�
SԚg�( � � � d Z ddlZddlZddlZddlZddlZddlZddlZddlm Z m
Z
mZ ddlmZ ddlm
Z
ddlmZmZ ddlZddlZdZedz Z G d � d
� � Z G d� de� � Zd
� Z G d� deej � � Z ej eed� � d� � G d� deej � � � � Zd� Z G d� deej � � Z G d� deej � � Z d� Z!e"dk r ej# � � dS dS )z9Test largefile support on system where this makes sense.
� N)�requires�
bigmemtest�requires_resource)�
SHORT_TIMEOUT)�
socket_helper)�TESTFN�unlinkl y* �2c �* � e Zd Zd� Zed� � � ZdS )�
LargeFileTestc �� � t j � t � � rd}nd}| � t |� � 5 }t j |� � � � � t j }|t dz k r d d d � � d S |dk r|�
d� � |� d� � |� t � � |�
d� � |� � � | �
t j |� � � � � t j t dz � � d d d � � d S # 1 swxY w Y d S )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.11/test/test_largefile.py�setUpzLargeFileTest.setUp s� � �
�7�>�>�&�!�!� ��D�D��D�
�Y�Y�v�t�
$�
$� I���8�A�H�H�J�J�/�/���=�L��t�A�v�%�%�� I� I� I� I� I� I� I� I�
�q� � �����
�
�
�
�F�F�1�I�I�I�
�F�F�4�L�L�L�
�G�G�D�M�M�M�
�G�G�I�I�I����R�X�a�h�h�j�j�1�1�$�,�?��a��H�H�H� I� I� I� I� I� I� I� I� I� I� I� I���� I� I� I� I� I� Is �AE*�CE*�*E.�1E.c � � | � t d� � 5 d d d � � n# 1 swxY w Y t j t � � t j dk s| � d� � �t
t � � d S )N�wbr z0File was not truncated by opening with mode "wb")r r r r r �failureExceptionr �TESTFN2)�clss r# �
tearDownClasszLargeFileTest.tearDownClass- s� � �
�X�X�f�d�
#�
#� � �� � � � � � � � � � � ���� � � � ��w�v���t�|�,��1�1��&�&� (8� 9� 9�
9��w�����s �*�.�.N)�__name__�
__module__�__qualname__r$ �classmethodr* � � r# r r sA � � � � � �I� I� I�( �� � �[�� � r0 r c �^ � e Zd ZdZ eedd�� � d� � � Zd� Zd� Zd� Z d � Z
d
� ZdS )�TestFileMethodszWTest that each file function works as expected for large
(i.e. > 2 GiB) files.
� F)r �memuse�dry_runc �H � | � t d� � 5 }| � t |� � � � � t
dz � � | � |� � � t
dz � � d d d � � d S # 1 swxY w Y d S )N�rbr )r r r �len�readr �tell)r �_sizer! s r# �test_large_readzTestFileMethods.test_large_read>