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_mmap.cpython-312.pyc

�

'ΜgA����ddlmZmZmZmZmZmZddlmZddl	m
Z
mZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZed�Zej,Zde
j.��d�Zdd�Zerej4d	��Gd
�dej6�ZGd�d
ej6�Zedk(rej>�yy)�)�requires�_2G�_4G�
gc_collect�cpython_only�
is_emscripten)�
import_module)�TESTFN�unlinkN�mmap�python_�
_test_mmapc��djtjtj|���}t
�d|��S)N�)�k�_)�join�random�choices�string�ascii_uppercase�tagname_prefix)�length�suffixs  �+/usr/local/lib/python3.12/test/test_mmap.py�random_tagnamers3��
�W�W�V�^�^�F�$:�$:�f�E�
F�F��
�Q�v�h�'�'�z.incompatible with Emscripten's mmap emulation.c���eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zej6eed�d�d��Zd�Zd�Z d�Z!ej6e"jFdk(d�d ��Z$e%ej6e"jFdk(d�d!���Z&ej6e"jFdk(d�d"��Z'ej6e"jFdk(d�d#��Z(d$�Z)d%�Z*d&�Z+d'�Z,d(�Z-d)�Z.d*�Z/d+�Z0ej6eej:d,�d-�d.��Z1ej6e"jFdk(d�d/��Z2ej6e"jFdk(d�d0��Z3ej6e"jFdk(d�d1��Z4ej6e"jFdk(d�d2��Z5d3�Z6y4)5�	MmapTestsc�~�tjjt�rtjt�yy�N)�os�path�existsr
r��selfs r�setUpzMmapTests.setUp"s#��
�7�7�>�>�&�!��I�I�f��"rc�V�	tjt�y#t$rYywxYwr!)r"rr
�OSErrorr%s r�tearDownzMmapTests.tearDown&s%��	��I�I�f����	��	�s��	(�(c�	�ttd�}	|jdtz�|jd�|jdtdz
z�|j	�t
j|j
�dtz�}|j�tt|��}|j|jd�t�|jt|�dtz�|j|dd�|j|ddd�|jt|jt|��|jt|j t|�d�d|d<d	|tdztdzdz|j|dd�|j|ddd
�|j|tdz
tdzd
�|j	�t#j$d|�}|�|j'd�nH|j)d�\}}||z
}|j|t�|j|tdz�|j+dd�|j|j-�d�|j+dd�|j|j-�d�|j+dd�|j|j-�t|��|jt.|j*d�|jt.|j*dd�|jt.|j*t|�dz
d�	|j1d�|jt|�d�|jt.|j*dd�ttd�}	|j+dd�|j|j-�d�|j�|j|j3�d�|j�y#|j�wxYw#|j�wxYw#t4$rY�FwxYw)Nzbw+��foo��rs�3�bars3��sfoobars	[A-Za-z]+zregex match on mmap failed!��*������rb)�openr
�write�PAGESIZE�flushr�fileno�close�str�type�assertEqual�find�len�assertRaises�
IndexError�__getitem__�__setitem__�re�search�fail�span�seek�tell�
ValueError�resize�size�SystemError)r&�f�m�tp�match�start�endrs        r�
test_basiczMmapTests.test_basic,s|��
�����	�
�G�G�E�8�O�$�
�G�G�F�O�
�G�G�E�H�Q�J�'�)�
�G�G�I��	�	�!�(�(�*�a�(�l�3�A�
�G�G�I���a��\�����������2�����Q���8��,�����1��q�!�����1�Q���+�	
���*�a�m�m�S��V�<����*�a�m�m�S��V�U�C���!��(.��(�A�+�x��{�1�}�%�	
����1��w�'�����1�Q���*�����8�A�:��1��5�}�E�	���	��	�	�,��*���=��I�I�3�4����A��J�E�3��5�[�F����U�H�-����S�(�Q�,�/�	
���q����������1�%�	���r�!���������2�&�	���q����������3�q�6�*�	
���*�a�f�f�b�1�	
���*�a�f�f�a��3�	
���*�a�f�f�s�1�v�g�a�i��;�	,�
�H�H�S�M�
���S��V�S�)����j�!�&�&�#�q�9��V�T�"�A�
����q�!��� � �����3�/����	����Q�V�V�X�s�+�	���	��_
�G�G�I��X���	��%�	�
�		�s*�A?Q	�7Q3�2Q�	Q�Q0�3	Q?�>Q?c
��
�d}ttd�5}|jd|z�ddd�ttd�5}tj|j	�|tj
��}|j
|ddd|zd�	d|z|dd|jd�	d|d	<|jd�	|jd	d	�|jd
�|jd�	|jd	d	�|jd�|jd�	|jd|z�|jd
�ttd�5}|j
|j�d|zd�ddd�ddd�ttd�5}	tj|j	�|dz�}tjj!d�s|jd�|j#�tjj!d�r*ttd�5}|j'|�ddd�ddd�ttd�5}tj|j	�|tj(��}d|z|dd|j
|ddd|zd�|j+�|j#�ddd�ttd�5}|j�}ddd�|j
d|zd�ttd�5}tj|j	�|tj,��}d|z|dd|j
|ddd|zd�|j+�ttd�5}|j
|j�d|zd�ddd�|j/t|jd|z�|j#�ddd�ttd�5}|j/t$tj|j	�|d��ddd�t0j2dk(�r0ttd�5}|j/t$tj|j	�|tj4tj6tj(��ddd�tj6t9tdd	�z}ttd�5}	tj|j	�||��}|j/t|jd�|j/t|jd	�|j#�ddd�yy#1swY���xYw#t$rY��wxYw#t$rY��wxYw#t$rY���wxYw#t$rY���wxYw#t$rY���t$rY���wxYw#1swY���xYw#1swY���xYw#t$$r4tjj!d�r|jd�Y��_wxYw#1swY��$xYw#1swY��)xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��_xYw#1swY���xYw#t:$rY��@wxYw#1swYyxYw)N�
�wb�ar9��accessz#Readonly memory map data incorrect.�bz$Able to write to readonly memory mapr�abc�dr/z"Able to resize readonly memory mapz*Readonly memory map data file was modified�r+br2�winz1Opening mmap with size+1 should raise ValueError.z0Opening mmap with size+1 should work on Windows.�cz5Write-through memory map memory not updated properly.z8Write-through memory map data file not updated properly.z4Copy-on-write memory map data not written correctly.z4Copy-on-write test data file should not be modified.��posix)�flags�protr_�	PROT_EXEC�risabcdef)r:r
r;rr>�ACCESS_READrBrK�	TypeErrorrM�
write_byterPrR�read�sys�platform�
startswithr?rO�truncate�ACCESS_WRITEr=�ACCESS_COPYrEr"�name�MAP_PRIVATE�	PROT_READ�getattr�PermissionError)r&�mapsize�fprSrT�stuffris       r�test_access_parameterzMmapTests.test_access_parameter�s�����
�&�$�
�2��H�H�T�'�\�"� �
�&�$�
�1��	�	�!�(�(�*�g�d�6F�6F�	�G�A����Q�q�T�4��<�1V�W�
B��G�|��!���	�	�@�A�
B���!���	�	�@�A�
B����q���������	�	�@�A�
B����q������T�"��	�	�@�A�
@�����7��#��	�	�>�?��f�d�#�r�� � �����D��L�!M�O�$�_ �h�&�%�
 �A�

��I�I�a�h�h�j�'�!�)�4���|�|�.�.�u�5��I�I�Q�R����	��|�|�&�&�u�-��&�%�(�A��J�J�w�'�)�#!�*�&�%�
 �A��	�	�!�(�(�*�g�d�6G�6G�	�H�A���<�A�a�D����Q�q�T�4��<�J�
L�
�G�G�I�
�G�G�I�!��&�$�
�1��F�F�H�E� ������W��I�	K��&�%�
 �A��	�	�!�(�(�*�g�d�6F�6F�	�G�A���<�A�a�D����Q�q�T�4�'�>�S�
U�
�G�G�I��f�d�#�r�� � �����D��L�!W�Y�$�
���i����1�W�9�=�
�G�G�I�!��&�%�
 �A����j�$�)�)�Q�X�X�Z��QR��S�!��7�7�g���f�e�$���!�!�*�d�i�i�����W�(,�(8�(8�'+�~�~�d�>O�>O�"�Q�%��>�>�G�D�+�q�$A�A�D��f�e�$����	�	�!�(�(�*�g�D�	�A�A�
�%�%�i����)�D��%�%�i����q�A��G�G�I�%�$��W �
���
��
���
��
���
��
���
��
���
���
��
��$�#��_ �
��n�
R�
�<�<�*�*�5�1��I�I�P�Q��

R��)�(��#!�
 ��*!�
 �� �
��$�#��!�
 ��!�
 ��
%�$��'�����%�$�s��V.�AX#�V;�X#�)W�.X#�#W�#X#�5#W+�X#�*W;�>!X#�%X�X#�$Y=�&'X0�
A/Y=�<Y0�Y=�.A6Z
�<Z�;A6Z1�1%Z$�<Z1�*7Z>�
A#[�*[(�,&[�A[(�.V8�;	W�X#�W�X#�	W�X#�W�X#�	W(�$X#�'W(�(X#�+	W8�4X#�7W8�8X#�;	X�X#�X�X#�X�X#�X 	�X#�#X-�09Y-�)Y=�,Y-�-Y=�0Y:	�5Y=�=Z�
Z�Z!�$Z.	�)Z1�1Z;�>[�[�	[%�![(�$[%�%[(�([1c�P�|jttjdd�y)N����)rEr)rr%s r�test_bad_file_desczMmapTests.test_bad_file_descs�����'�4�9�9�b�$�7rc��ttd�5}d}t|�}|j|�|j	�t
j|j
�|�}ddd�tdz�D]o}t||dz�D][}||}|jj|�|j|��|j|j|dz�d��]�qj�y#1swY��xYw)N�wb+saabaacdeefaar2�xr6)r:r
rDr;r=rr>�rangerBrCr?)r&rS�data�nrTrW�finish�slices        r�test_tougher_findzMmapTests.test_tougher_finds����&�%�
 �A�2�D��D�	�A�
�G�G�D�M�
�G�G�I��	�	�!�(�(�*�a�(�A�
!��1�Q�3�Z�E���q��s�+���U�V�,��� � �������	�	�%�0@�A�� � �������!5�r�:�,� �
	
���	�!�
 �s�AC=�=Dc
���ttd�5}d}t|�}|j|�|j	�t
j|j
�|�}ddd�|jjd�d�|j|jd�d�|j|jddd�d�|j|jdd�d�|j|jddd�d�|j|jddd	�d�|j|jtd��d�tdz
|dz�D][}t|dz
|dz�D]C}d
D]<}j|||�}|j|j|||�||||f��>�E�]y#1swY��sxYw)Nr��one two ones�oner�ones�r6r2r�)�osonstwor��s)r:r
rDr;r=rr>rBrC�	bytearrayr�)	r&rSr�r�rT�i�j�p�expecteds	         r�
test_find_endzMmapTests.test_find_end"s���
�&�%�
 �A�"�D��D�	�A�
�G�G�D�M�
�G�G�I��	�	�!�(�(�*�a�(�A�!�	
���������+���������!�,���������2�.��2���������*�A�.���������2�.��2���������2�.��3�������	�&� 1�2�A�6���r�!�t�Q�q�S�!�A��A�2�a�4��1��%��=�A�#�y�y��A�q�1�H��$�$�Q�V�V�A�q�!�_�h��A�q�	�J�>�&�"�!�
 �s�AG�Gc���	tjtjz}tj}d}tj}tdd�D]d}tjd||dzz||��5}tjd||dzz||��5}|jdd	�ddd�ddd��fy#t
$r}t
jd�|�d}~wwxYw#1swY�;xYw#1swY��xYw)
Nrzmmap flags unavailableir6r2)rhriisfor�)
rrw�
MAP_ANONYMOUSr<rx�AttributeError�unittest�SkipTestr�rC)	r&rhr<�	PROT_NONErx�er��guard�fms	         r�'test_find_does_not_access_beyond_bufferz1MmapTests.test_find_does_not_access_beyond_buffer9s���	E��$�$�t�'9�'9�9�E��}�}�H��I����I��q�$��A����2�x�1�q�5�1�!&�Y��8�;@��Y�Y�r�8�q�4�x�#8�%*���<�?A��G�G�E�2�&�<�8�8� ���	E��#�#�$<�=�1�D��	E��
<�<��8�8�s<�AB9�3 C,�C �&C,�9	C�C�C� C)�%C,�,C5	c���ttd�5}d}t|�}|j|�|j	�t
j|j
�|�}ddd�|jjd�d�|j|jd�d�|j|jddd�d�|j|jddd�d�|j|jdd	d�d�|j|jdd	d�d�|j|jtd��d�y#1swY��xYw)
Nr�r�r�r�sone rr6r�r2)
r:r
rDr;r=rr>rB�rfindr�)r&rSr�r�rTs     r�
test_rfindzMmapTests.test_rfindIs��
�&�%�
 �A�"�D��D�	�A�
�G�G�D�M�
�G�G�I��	�	�!�(�(�*�a�(�A�!�	
��������!�,��������)�1�-���������B�/��3���������B�/��3���������B�/��3���������B�/��4��������6�!2�3�Q�7�!�
 �s�AE%�%E/c�h�ttd�5}|jddz�ddd�ttd�5}tj|j	�dtj
��}|j
�|j
�ddd�y#1swY�wxYw#1swYyxYw)Nr��r]r9r^)r:r
r;rr>rlr?�r&rS�mfs   r�test_double_closezMmapTests.test_double_close[s}��
�&�%�
 �A�
�G�G�E�D�L�!�!��&�$�
�1����1�8�8�:�u�T�5E�5E��F�B��H�H�J��H�H�J� �
�!�
 �� �
�s�B�AB(�B%�(B1c��ttd�5}|jddz�ddd�ttd�5}tj|j	�d�5}|jt
|�dd�|j|jd�ddz�ddd�ddd�y#1swY��xYw#1swY�xYw#1swYyxYw)Nr�r��mzrb+rz Map size should equal file size.)r:r
r;rr>rBrDror�s   r�test_entire_filezMmapTests.test_entire_filees���
�&�%�
 �A�
�G�G�E�D�L�!�!��&�%�
 �A�
�Y�Y�q�x�x�z�1�
%�����S��W�e�-O�P����R�W�W�U�^�U�T�\�:�&�!�
 �!�
 ��&�
%��!�
 �s/�B5�%C
�#AC�$C
�5B>�C
	�C
�
Cc��ttd�5}|jddz�ddd�ttd�5}tj|j	�ddtj
��5}|j
t|jd�ddd�ddd�y#1swY��xYw#1swY�xYw#1swYyxYw)	Nr\ir�r9rr���offsetr_i�8)	r:r
r;rr>rlrErFrGr�s   r�test_length_0_offsetzMmapTests.test_length_0_offsetos���
�&�$�
�1�
�G�G�Y�$�&�'� ��&�$�
�1����1�8�8�:�q��t�?O�?O��P�TV��!�!�*�b�n�n�e�D�Q� �
� �
��Q�P�� �
�s.�B'�6B?�4"B3�B?�'B0�3B<	�8B?�?Cc�,�ttd�5}|jddz�ddd�ttd�5}|jtt
j
|j
�dd��ddd�y#1swY�YxYw#1swYyxYw)Nr\i��r��w+bri��r�)r:r
r;rErOrr>�r&rSs  r�test_length_0_large_offsetz$MmapTests.test_length_0_large_offset{su���&�$�
�1�
�G�G�F�T�M�"� ��&�%�
 �A����j�$�)�)�Q�X�X�Z��%/�
�
1�!�
 � �
��!�
 �s�A>�7B
�>B�
Bc	�p�ttd�5}|jd�|j�tj	|j�d�}|j
ddd�|j|dddd�|j�ddd�d}tt|��D]�}tt|��D]�}tt|�t||�z
�D]u}|d|||||zz|||zdz}tj	d	t|��}||dd|j
|||�|j|dd|�|j��w����tj	d	d
�}gd�}	tj|	|	|	�D]\}
}}	|j
|
||��gd�}	|	D])\}
}}|jt|j|
||��+|j�tj	d	d
�}|jt|jddd�|jt|jd
dd
�|jt|jdd
d
�|j
ddd
�|j
ddd�y#1swY��
xYw#t$rY��wxYw)Nr�s
ABCDEabcder[�rs
ABCDEABCDEz'Map move should have duplicated front 5�
0123456789r6�d)i����r6rr2r�))r6r6r6)r6r6r)r6rr6)rr6r6)r6rr)rr6r)rrr6r2r/)r:r
r;r=rr>�moverBr?r�rD�max�	itertools�productrOrE)r&rSr�r��dest�src�countr�rT�offsets�sourcerQs            r�	test_movezMmapTests.test_move�sQ��
�&�%�
 �A�
�G�G�M�"�
�G�G�I����1�8�8�:�r�*�B��G�G�A�q�!�����R��U�M�3\�]��H�H�J�!����#�d�)�$�D��S��Y�'��"�3�t�9�s�4��~�#=�>�E�#�E�T�{�T�#�c�%�i�-@�@�4��U�
��CT�T�H��	�	�"�c�$�i�0�A��A�a�D��F�F�4��e�,��$�$�Q�q�T�8�4��G�G�I�
?�(�%�
�I�I�b�#���'��"+�"3�"3�G�W�g�"N��F�D�$�
����v�t�T�*�#O�7��")��F�D�$����j�!�&�&�&�$��E�#*�	
���	��I�I�b�!������*�a�f�f�a��A�6����*�a�f�f�a��A�6����*�a�f�f�a��A�6�	���q�!�Q��	���q�!�Q��W!�
 ��8�
��
�s�A?J�J(�J%�(	J5�4J5c���tjdt�}tt�D]}|j||dd��tt�D]!}|dz}|||<|j|||��#y)Nr6rz+anonymously mmap'ed contents should be zero�)rr<r�rB)r&rT�x�bs    r�test_anonymouszMmapTests.test_anonymous�sp���I�I�b�(�#���x��A����Q�q�T�1�J�
L�!��x��A��D��A��A�a�D����Q�q�T�1�%�!rc	�D�tjdd�}|j|j�|jt	td���|j
d�|j|j�t	td���|j
d�|j|j�t	tdd���|j
d�|j|j�d�|j
d�|j|jd�t	tdd���|j
d�|j|jd�t	tdd���|j
d�|j|jd	�t	tdd���|j
d
�|j|jd�t	td
d���y)Nr6�rr�rr.rfr�r��	i���)	r�
addCleanupr?r;�bytesr�rMrBro�r&rTs  r�
test_read_allzMmapTests.test_read_all�sh���I�I�b�"��������� �	
����e�B�i� �!�	���q�	��������5��r��#3�4�	���q�	��������5��q�"��#6�7�	���r�
��������3�'�	���q�	���������u�U�1�b�\�':�;�	���q�	���������U�5��B�<�%8�9�	���q�	���������U�5��B�<�%8�9�	���q�	���������e�E�!�R�L�&9�:rc�0�tjdd�}|j|j�|jt|j
d�|jt|j
d�|jt|j
gd��y)Nr6r��foog@)r2r/r.)rr�r?rErmror�s  r�test_read_invalid_argzMmapTests.test_read_invalid_arg�sd���I�I�b�"��������� ����)�Q�V�V�U�3����)�Q�V�V�S�1����)�Q�V�V�Y�7rc�R�tttd���}tjdt	|��}||dd|j|dd|�ddddddtjddd	d
f}|D]1}|D]*}|ddD] }|j||||�||||���"�,�3y�N�r6rr2r.�i,r�i��i���)r��reversedr�rrDrBrp�maxsize)r&�srT�indicesrW�stop�steps       r�test_extended_getslicez MmapTests.test_extended_getslice�s����(�5��:�&�'���I�I�b�#�a�&�!����!������1��q�!��d�A�q�"�c�3�;�;��B��T�J���E���#�A�B�K�D��$�$�Q�u�T�$��%7�%&�u�T�$��%7�9�(� �rc��tttd���}tjdt	|��}ddddddt
jddd	d
f}|D]�}|D]{}|ddD]q}||dd|j|dd|�t|�}||||�}tt|��}|||||�<|||||�<|j|ddt|���s�}��yr�)	r�r�r�rrDrpr�rB�list)	r&r�rTr�rWr�r��Lr�s	         r�test_extended_set_del_slicez%MmapTests.test_extended_set_del_slice�s����(�5��:�&�'���I�I�b�#�a�&�!���d�A�q�"�c�3�;�;��B��T�J���E���#�A�B�K�D��A�a�D��$�$�Q�q�T�1�-��Q��A��U�4��_�-�D� ��$��0�D�)-�A�e�D��o�&�)-�A�e�D��o�&��$�$�Q�q�T�5��8�4�(� �rc���|jd|z�|jd�|jd|dz
z�|j�tj|j�d�S)Nr,r-r.r)r;r=rr>)r&rS�halfsizes   r�make_mmap_filezMmapTests.make_mmap_file�sT��	�����!�"�	�����	����(�Q�,�'�(�	���
��y�y�!�(�(�*�a�(�(rc	��ttd�}|j�ttd�5}|jtdt
j
|j
�dt
j��ddd�y#1swYyxYw)Nr�r9zcannot mmap an empty filerr^)r:r
r?�assertRaisesRegexrOrr>rlr�s  r�test_empty_filezMmapTests.test_empty_filesa���&�%� ��	���	�
�&�$�
�1��"�"�:�#>�#'�9�9�a�h�h�j�!�*.�*:�*:�
#�
<� �
�
�s�AB�B	c�n�ttd�}	tj}|j	||�}|j�|j�|dz}ttd�}dD]M}	tj|j
�||��}|jdd�|jdd��O|j�ttd�}tj|j
�||z
|��}|j|ddd	�|j�	|jd
�|jt|�d
�|jt|jdd�|j|ddd	�ttd�}|jdd�|j|j�|d
z�|j�|j|j!�|d
z�|j�|j�	t%j&t�y#tttf$rY���wxYw#t"$rY�awxYw#t($rYywxYw#|j�	t%j&t�w#t($rYwwxYwxYw)
Nr�r/rc)r�r6Nr�rr2r.r-r7r8r9)r:r
r�ALLOCATIONGRANULARITYr�r?r>rBrOrm�
OverflowErrorrPrDrErMrNrQrRr"rr))r&rSr�rTr{r�s      r�test_offsetzMmapTests.test_offsets:���&�%� ��4	��1�1�H��#�#�Q��1�A�
�G�G�J�
�G�G�J���l�G��V�U�#�A�(��+��	�	�!�(�(�*�g�f�	�E�A��$�$�Q��*��$�$�Q��*�)�
�G�G�I��V�U�#�A��	�	�!�(�(�*�g��&8��	�J�A����Q�q��V�V�,�
�G�G�I�
;�����
�
� � ��Q���-��!�!�*�a�f�f�c�1�=�� � ��1�Q���0����&�����q�!��� � �����8�c�>�:����	�� � �����8�c�>�:�
�G�G�I�
�G�G�I�
��	�	�&�!��K#�I�}�=������
��
��.�
��
��
�G�G�I�
��	�	�&�!���
��
�s��AI9�/8I�'BI9�*I�;CI9�&I*�I�I9�I�I9�	I'�$I9�&I'�'I9�*	I6�5I6�9J4�J%�$J4�%	J1�.J4�0J1�1J4c�N�Gd�dtj�}|t�y)Nc��eZdZd�Zy)�*MmapTests.test_subclass.<locals>.anon_mmapc�J�tjj|dg|��i|��S)Nr6)r�__new__)�klass�args�kwargss   rr�z2MmapTests.test_subclass.<locals>.anon_mmap.__new__Ks#���y�y�(�(���D�T�D�V�D�DrN)�__name__�
__module__�__qualname__r��rr�	anon_mmapr�Js��
Err�)rr<)r&r�s  r�
test_subclasszMmapTests.test_subclassIs��	E��	�	�	E�	�(�rrxzneeds mmap.PROT_READc�n�d}ttd�5}|jd|z�ddd�ttd�5}tj|j	�|tj
��}|j
t|jd�ddd�y#1swY�xxYw#1swYyxYw)Nr[r\r]r9rkr�)r:r
r;rr>rxrErm)r&r{r|rSrTs     r�test_prot_readonlyzMmapTests.test_prot_readonlyOs�����
�&�$�
�2��H�H�T�'�\�"� �
�&�$�
�1��	�	�!�(�(�*�g�D�N�N�	�C�A����i����%�8� �
� �
��
�
�s�B�AB+�B(�+B4c�L�|jtjt�yr!)�assertIsr�errorr)r%s r�
test_errorzMmapTests.test_errorXs���
�
�d�j�j�'�*rc��d}ttd�5}|jdt|�z�ddd�ttd�5}tj	|j�t|��}ddd�t
t|��D]Y}|jj�|�|j||�|j|j�|dz��[|jtjd�|j|dd|�|jd�t
t|��D]h}|j|j�|�|j|j�||�|j|j�|dz��j|jt|j�|jd�|j|jd�d	�|j|j�d
�|jd�|jd�|j|j�d
�|j|ddd�|jtd
��|j|j�d�|j|ddd�|jt|jd�y#1swY���xYw#1swY���xYw)Nr�r\r�rcr2�xrr.s345r4r1s
012bar6789sbazr�s
012barbaz9sba)r:r
r;rDrr>r�rBrNrnrErOrM�	read_byteror�)r&r�r|rSrTr�s      r�test_io_methodszMmapTests.test_io_methods[s0����
�&�$�
�2��H�H�T�#�d�)�^�$� �
�&�%�
 �A��	�	�!�(�(�*�c�$�i�0�A�!��s�4�y�!�A����Q�V�V�X�q�)�
�L�L��a��!����Q�V�V�X�q��s�+�"�	
���*�a�l�l�G�<�����1��t�$�	���q�	��s�4�y�!�A����Q�V�V�X�q�)����Q�[�[�]�D��G�4����Q�V�V�X�q��s�+�"�	
���*�a�k�k�2�	���q�	���������F�+��������1�%�	���q�	�	������������1�%�����1��}�-�	���	�&�!�"��������1�%�����1��}�-����*�a�g�g�u�5�= �
��
 �
 �s�K/�	.K<�/K9�<Lc��dD]}tjdd�}|j|�|j|d|�|jd�|j|j	�|�|j���y)N)���r�r6r2r)rrnrBrMrr?)r&r�rTs   r�test_non_ascii_bytezMmapTests.test_non_ascii_byte}se�� �A��	�	�"�a� �A�
�L�L��O����Q�q�T�1�%�
�F�F�1�I����Q�[�[�]�A�.�
�G�G�I�
!r�ntzrequires Windowsc�D�d}d}t|�t|�k(sJ�t�}t�}tjdt|�|��}||ddtjdt|�|��}||dd|j|dd|�|j|dd|�|j	�|j	�tjdt|�|��}||ddtjdt|�|��}||dd|j|dd|�|j|dd|�|j	�|j	�|jtd�5tjddd��ddd�y#1swYyxYw)Nr�s
abcdefghijr6��tagnamerr�r2)rDrrrBr?r�rm)r&�data1�data2�tagname1�tagname2�m1�m2s       r�test_tagnamezMmapTests.test_tagname�s\�������5�z�S��Z�'�'�'�!�#��!�#���Y�Y�r�3�u�:�x�Y�
8����1��
�Y�Y�r�3�u�:�x�Y�
8����1������A���&�����A���&�
���
�
���
��Y�Y�r�3�u�:�x�Y�
8����1��
�Y�Y�r�3�u�:�x�Y�
8����1������A���&�����A���&�
���
�
���
�
�
#�
#�I�y�
9��I�I�b�!�Q�I�'�:�
9�
9�s�4F�Fc���tjdd�}t�}tjdd|��}|jtj|�tj|��y)Nr6r�r)rr�
assertGreaterrp�	getsizeof)r&rrrs    r�test_sizeofzMmapTests.test_sizeof�sR���Y�Y�r�3�
�� �"��
�Y�Y�r�3��Y�
0�����3�=�=��,�c�m�m�B�.?�@rc��t�}tjdd|��}	tjdd|��dd|j�ttd�5}|jd�ddd�ttd�}tj|j
�d�}|j�	|jd�	|dd|j�y#Y��xYw#1swY�}xYw#Y�.xYw#Y�/xYw)	Nr6��r�r\s
xxxxxxxxxxrcr)rrr?r:r
r;r>rP)r&rrTr|rSs     r�test_crasher_on_windowsz!MmapTests.test_crasher_on_windows�s���!�"���I�I�b�$��I�0��	��I�I�b�$��I�0��3�	
���	��&�$�
�2��H�H�W�� �������I�I�a�h�h�j�!�$��	���	�	�
�H�H�Q�K�	�
�a�D�	
���	��%	��� �
��	���	��s/�C&�C-�>C9�D�&C*�-C6�9C=�Dc��tj�}	|jt�5tj|j	�d�}ddd�|j�y#1swY�xYw#|j�wxYw�Nr[)�socketrEr)rr>r?)r&r�rTs   r�test_invalid_descriptorz!MmapTests.test_invalid_descriptor�s]��

�M�M�O��	��"�"�7�+��I�I�a�h�h�j�"�-��,�
�G�G�I�,�+��
�G�G�I�s"�A5�%A)�A5�)A2�.A5�5Bc���tjdd�5}|j|j�ddd�|jj�y#1swY�%xYw)Nr6r[)r�assertFalse�closed�
assertTruer�s  r�test_context_managerzMmapTests.test_context_manager�sB��
�Y�Y�r�2�
�!����Q�X�X�&��������!��
�s�A�A c�(�|jt�5}tjdd�5}t�#1swYnxYw	ddd�n#1swYnxYw|j	j
td�|j
jd�y)Nr6r[z)wrong exception raised in context managerzcontext manager failed)rE�	Exceptionrr)�assertIsInstance�	exceptionr#r")r&�excrTs   r�test_context_manager_exceptionz(MmapTests.test_context_manager_exception�sn��
�
�
�y�
)�S����2�r�"�a��
�#�"��"�*�
)�
)��	
���c�m�m�W�I�	K�������":�;s�A
�4�=	�A
�
Ac���tjdd�}tj|�}|j|�|�~t	�|j|�d�y)Nr6r�)r�weakref�refr�r)r&�mm�wrs   r�test_weakrefzMmapTests.test_weakref�sG��
�Y�Y�r�2�
��
�[�[��_���
�
�b�d�B������
�
�b�d�D�!rc�8�tjdd�}|j|jd�d�|j|jd�d�|j|jd�d�|j|jd	�d
�y)Nr6r�rrr�r2syzr/�pythonr4)rrBr;)r&r.s  r�0test_write_returning_the_number_of_bytes_writtenz:MmapTests.test_write_returning_the_number_of_bytes_written�ss��
�Y�Y�r�2�
��������#���*�������$���+�������%��!�,�������)�,�a�0rc���tjdd�}|j|j�|jd�	|j	d�|j|jd�d�|jt|j�|jt|jd�|jt|jd	�y#t
$r|j
d�Y��wxYw)
Nr6i rr�zresizing not supported�rr5ra)
rr�r?rorPrR�skipTestrBrErOrrnr;r�s  r�test_resize_past_poszMmapTests.test_resize_past_pos�s����I�I�b�$��������� �	���t��	4�
�H�H�T�N�	
��������S�)����*�a�k�k�2����*�a�l�l�B�7����*�a�g�g�v�6���	4��M�M�2�3�	4�s�C�C6�5C6c���tjdd�}|jt�5||zddd�|jt�5|dzddd�y#1swY�-xYw#1swYyxYw)Nr6r�r/)rrErmr�s  r�test_concat_repeat_exceptionz&MmapTests.test_concat_repeat_exception�sY���I�I�b�"���
�
�
�y�
)�
��E�*�
�
�
�y�
)�
��E�*�
)�*�
)��
)�
)�s�A�A*�A'�*A3c�`�tjdd�}|j|j�|jd�|j	�}|j|�tjjd�r,|jt|jdtd��yy)Nr6r�r2�linuxr2)rr�r?r;r=�assertIsNonerprqrrrEr)rD)r&r.�results   r�test_flush_return_valuez!MmapTests.test_flush_return_values~���Y�Y�r�2�
��������!�
�������������&�!��<�<�"�"�7�+�
���g�r�x�x��C�	�N�C�,rc
�V�tjd�}tjd�}d}td�|D��}t||�D�]�\}}d|z}||z
}d}	d|dz|d	z|d
zf}
t	t
d�5}|j
|�|j�tj|	|
�D�]L\}}
tt|�}tj|j�|||��5}|j|
�|jt|��}|j!|�|j#|j%d
�|�|j#|j%d�t'|��|j#|j%d�t'|
��|j#|j%d�t'|��ddd�|jt��}|j!|���O	ddd����y#1swY�DxYw#1swY���xYw)Nzr<mmap.mmap closed=False, access=(?P<access>\S+), length=(?P<length>\d+), pos=(?P<pos>\d+), offset=(?P<offset>\d+)>z<mmap.mmap closed=True>)�2r�ri@Bi���c3�jK�|]+}|dztjztjz���-y�w)r/N)rr�)�.0r{s  r�	<genexpr>z&MmapTests.test_repr.<locals>.<genexpr>s6����N�DL��!�A���)C�)C�C��4�4�5�DL�s�13r])�ACCESS_DEFAULTrlrurtrr[r�rfr�)r_r�r_r�posr�)rI�compile�tuple�zipr:r
r;r=r�r�ryrr>rMrV�repr�assertIsNotNonerB�groupr@)r&�open_mmap_repr_pat�closed_mmap_repr_pat�mapsizesr�r�r{r�r�accesses�	positionsr|r_rE�accintr.rVs                 r�	test_reprzMmapTests.test_reprs����Z�Z�
'�(�� "�z�z�*D�E��:���N�DL�N�N��"�7�H�5�O�F�G��'�>�D��v�%�F�7�H��F�B�J���	�6�1�9�=�I��f�e�$����������
�#,�#4�#4�X�y�#I�K�F�C�$�T�6�2�F����2�9�9�;�#)�*0�*0�#�2�68������ 2� 8� 8��b�� B���,�,�U�3��(�(����X�)>��G��(�(����X�)>��F��L��(�(����U�);�S��X�F��(�(����X�)>��F��L�2�1�6�6�t�B�x�@�E��(�(��/�$J�%�$�
 6�2�2��%�$�s&�=A6H�3CH	�6H�H
�H�H(	�madvisez
needs madvisec��dtz}tjd|�}|jtd�5|j	tj
|�ddd�|jtd�5|j	tj
d�ddd�|jtd�5|j	tj
dd�ddd�|jtd�5|j	tj
ttj�ddd�|j|j	tj
�d�|j|j	tj
t�d�|j|j	tj
t|�d�|j|j	tj
dd�d�|j|j	tj
d|�d�y#1swY���xYw#1swY���xYw#1swY��qxYw#1swY��,xYw)Nr/r6zmadvise start out of boundszmadvise length invalidrzmadvise length too large)
r<rr�rOrS�MADV_NORMALr�rpr�rB)r&rQrTs   r�test_madvisezMmapTests.test_madvise7s����8�|���I�I�b�$���
�
#�
#�J�0M�
N�
�I�I�d�&�&��-�O�
�
#�
#�J�0M�
N�
�I�I�d�&�&��+�O�
�
#�
#�J�0H�
I�
�I�I�d�&�&��2�.�J�
�
#�
#�M�3M�
N�
�I�I�d�&�&��#�+�+�>�O�������4�#3�#3�4�d�;�������4�#3�#3�X�>��E�������4�#3�#3�X�t�D�d�K�������4�#3�#3�Q��:�D�A�������4�#3�#3�Q��=�t�D�O�
N��
N�
N��
I�
I��
N�
N�s/�!H+�5!H8�4"I�44I�+H5�8I�I�Ic��t}d|z}td�t|�D��}tjd|�}||dd|j	|�|jt
|�|�|j|d||d|�y)z�If the mmap is backed by the pagefile ensure a resize up can happen
        and that the original data is still in place
        r/c3�FK�|]}tjd����y�w�r�N�r�getrandbits�rBrs  rrCzCMmapTests.test_resize_up_when_mapped_to_pagefile.<locals>.<genexpr>Q�����F�4E�q�V�'�'��*�4E���!r6N�r<r�r�rrPrBrD�r&�
start_size�new_sizer�rTs     r�&test_resize_up_when_mapped_to_pagefilez0MmapTests.test_resize_up_when_mapped_to_pagefileJs}��
�
��z�>���F�E�*�4E�F�F���I�I�b�*�%����!��	���������Q���*�����;�J���k�z�):�;rc��t}|dz}td�t|�D��}tjd|�}||dd|j	|�|jt
|�|�|j|d||d|�y)z�If the mmap is backed by the pagefile ensure a resize down up can happen
        and that a truncated form of the original data is still in place
        r/c3�FK�|]}tjd����y�wrYrZr\s  rrCzEMmapTests.test_resize_down_when_mapped_to_pagefile.<locals>.<genexpr>`r]r^r6Nr_r`s     r�(test_resize_down_when_mapped_to_pagefilez2MmapTests.test_resize_down_when_mapped_to_pagefileYs|��
�
���?���F�E�*�4E�F�F���I�I�b�*�%����!��	���������Q���*�����9�H��t�I�X��7rc�(�dtz}t}ttd�}|j|�	tj	|j�|�}tj	|j�|�}|j
t�5|j|�ddd�|j
t�5|j|�ddd�|j�|j|�|j|j�|�|jtj|j��j|�|j�y#1swY��xYw#1swY��xYw#|j�wxYw)zqIf more than one mapping is held against a named file on Windows, neither
        mapping can be resized
        r/r�N)r<r:r
rsrr>rEr)rPr?rBrQr"�stat�st_size)r&ra�reduced_sizerSrrs      r�+test_resize_fails_if_mapping_held_elsewherez5MmapTests.test_resize_fails_if_mapping_held_elsewherehs��
��\�
��������	�
�
�:��	����1�8�8�:�z�2�B����1�8�8�:�z�2�B��"�"�7�+��	�	�,�'�,��"�"�7�+��	�	�,�'�,��H�H�J��I�I�l�#����R�W�W�Y��5����R�W�W�Q�X�X�Z�0�8�8�,�G�
�G�G�I�,�+��+�+��
�G�G�I�s=�AE?�E'�!E?�>E3�BE?�'E0�,E?�3E<�8E?�?Fc��dtz}t}t�}d}td�t|�D��}tj	d||��}tj	d||��}||d||j|d||�|j
t�5|j|�ddd�|j|j�|�|j|d||�|j|d||�y#1swY�TxYw)z�If a more than one mapping exists of the same name, none of them can
        be resized: they'll raise an Exception and leave the original mapping intact
        r/r�c3�FK�|]}tjd����y�wrYrZr\s  rrCzUMmapTests.test_resize_succeeds_with_error_for_second_named_mapping.<locals>.<genexpr>�s����G�4F�q�V�'�'��*�4F�r^r6rN)
r<rr�r�rrBrEr)rPrQ)r&rarjr�data_lengthr�rrs        r�8test_resize_succeeds_with_error_for_second_named_mappingzBMmapTests.test_resize_succeeds_with_error_for_second_named_mapping�s���
��\�
���!�#�����G�E�+�4F�G�G��
�Y�Y�r�:�w�Y�
7��
�Y�Y�r�:�w�Y�
7����<�K������L�[�)�4�0�
�
�
�w�
'��I�I�l�#�(��������J�/�����L�[�)�4�0�����L�[�)�4�0�	(�
'�s�C;�;Dc	�	�Gd�d�}tjtjtjtjg}tjtjtjg}|D�]�}||�5\}}|jtd�5||�ddd�ddd�||�5\}}|jtd�5||�dddd�ddd�||�5\}}|jtd�5||�dd�ddd�ddd�||�5\}}|jtd�5|d|�d�ddd�ddd�||�5\}}|jtd�5|j|��ddd�ddd�||�5\}}|jtd�5|jdd	|��ddd�ddd����|D�]T}||�5\}}|jtd�5d
||�dddd�ddd�||�5\}}|jtd�5d||�dd�<ddd�ddd�||�5\}}|jtd�5d|d|�d�<ddd�ddd�||�5\}}|jtd�5|jd	d|��ddd�ddd�||�5\}}|jtd�5|j|��ddd�ddd���Wy#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��xxYw#1swY��}xYw#1swY��RxYw#1swY��WxYw#1swY��#xYw#1swY��(xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��zxYw#1swY��xYw#1swY��IxYw#1swY��NxYw#1swY��xYw#1swY��txYw)zj
        gh-103987: Test that mmap objects raise ValueError
                for closed mmap files
        c� �eZdZdd�Zd�Zd�Zy)�KMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContextNc��||_yr!r^)r&r_s  r�__init__zTMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__init__�s	��$��rc�R��ttd�|_|jjt	j
d��|jj
�tj|jj�d|j���G�fd�d�}�|fS)Nr�r�r^c���eZdZ�fd�Zy)�`MmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__enter__.<locals>.Xc�&���j�yr)r?r�s �r�	__index__zjMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__enter__.<locals>.X.__index__�s������	�!rN)r�r�r�ry)rTs�r�Xrw�s���"rrz)
r:r
rSr;r�	randbytesr=rr>r_)r&rzrTs  @r�	__enter__zUMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__enter__�sp����f�e�,��������V�-�-�c�2�3��������I�I�d�f�f�m�m�o�s�4�;�;�I�G��"�"�
�1�v�
rc�8�|jj�yr!)rSr?)r&�exc_type�	exc_value�	tracebacks    r�__exit__zTMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__exit__�s�������r)�returnN)r�r�r�rtr|r�r�rr�MmapClosedByIntContextrr�s��
%�
�
rr�zmmap closed or invalidN�r/r��1r2s
1111111111s11111)rrlrtrurDr�rOrorCr�rn)r&r��read_access_modes�write_access_modesr_rTrzs       r�!test_mmap_closed_by_int_scenariosz+MmapTests.test_mmap_closed_by_int_scenarios�s���	�	�,
������������	
��
���������
��(�F�'��/�6�A�q��+�+�J�8P�Q��a�c�F�R�0�(��/�6�A�q��+�+�J�8P�Q��a�c�B�K�R�0�(��/�6�A�q��+�+�J�8P�Q��a�c�B��l�O�R�0�(��/�6�A�q��+�+�J�8P�Q��b�1�3��m�$�R�0�(��/�6�A�q��+�+�J�8P�Q��F�F�1�3�K�R�0�(��/�6�A�q��+�+�J�8P�Q��F�F�4��A�C�(�R�0�/�+(�2)�F�'��/�6�A�q��+�+�J�8P�Q�"+�A�a�c�B�K�R�0�(��/�6�A�q��+�+�J�8P�Q�&.�A�a�c�B��l�O�R�0�(��/�6�A�q��+�+�J�8P�Q�'/�A�b�1�3��m�$�R�0�(��/�6�A�q��+�+�J�8P�Q��F�F�1�a���%�R�0�(��/�6�A�q��+�+�J�8P�Q��L�L���%�R�0�/�#)�/R�Q��0�/��
R�Q��0�/��
R�Q��0�/��
R�Q��0�/��
R�Q��0�/��
R�Q��0�/��R�Q��0�/��
R�Q��0�/��
R�Q��0�/��
R�Q��0�/��
R�Q��0�/�s��M7� M*�+M7�N�N�(N�N+�N�(N+�O�N8�(O�O�O�1O�	O9�#O,�<O9�P�7P�P�P-�4P �P-�Q�4P:�Q�Q!�4Q�
Q!�%Q;�?Q.�Q;�*M4�/M7�7N	�N�	N�N	�N(�#N+�+N5	�8O�=O�O	�O�O�O)	�,O6�1O9�9P	�P�P�P	� P*�%P-�-P7	�:Q�?Q�Q	�Q�Q!�!Q+	�.Q8�3Q;�;R	N)7r�r�r�r'r*rYr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
skipUnless�hasattrrr�rrrr"rvrrrrrr$r*r0r3r7r9r>rRrVrcrfrkror�r�rrrr s�����\�|@�D8��$K�.
'� 8�$�;�
E�1�-�^
&�;�*8�9�5�()�<�7�r��X�����{�3�5K�L�9�M�9�+� 6�D��X������D��*<�=�(�>�(�<��X������D��*<�=�A�>��A��X������D��*<�=��>��4�X������D��*<�=�	�>�	�"�
<�"�1�7��D�"0�H�X�������I�6��H�E�I�E�$�X������D��*<�=�<�>�<��X������D��*<�=�8�>�8��X������D��*<�=��>��.�X������D��*<�=�1�>�1�(T&rrc���eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	jeje
kDd�d��Ze	jeje
kDd�d	��Zy
)�LargeMmapTestsc�"�tt�yr!�rr
r%s rr'zLargeMmapTests.setUp��	���v�rc�"�tt�yr!r�r%s rr*zLargeMmapTests.tearDown�r�rc��tjdddk(stjdk(rtddtd�z�t	t
d�}	|j
|�|j|�|j�|S#tttf$r=	|j�n#ttf$rYnwxYwtjd��wxYw)	Nr.rd�darwin�	largefilez-test requires %s bytes and a long time to run�r�z*filesystem does not have largefile support)rprqrr@r:r
rMr;r=r)r�rOr?r�r�)r&�
num_zeroes�tailrSs    r�_make_test_filezLargeMmapTests._make_test_file�s����<�<����u�$�����(@��[�?�#�k�BR�R�
T������		R�
�F�F�:��
�G�G�D�M�
�G�G�I����
��
�3�	R�
����	���]�+�
��
���#�#�$P�Q�Q�	R�s0�2B�C�B-�,C�-B?�<C�>B?�?Cc��|jdd�5}tj|j�ddtj��5}|j	|dd�ddd�ddd�y#1swY�xYw#1swYyxYw)Nl��� rlr�i���� )r�rr>rlrB�r&rSrTs   r�test_large_offsetz LargeMmapTests.test_large_offsetsi��
�
!�
!�+�t�
4�����1�8�8�:�q��T�EU�EU��V�Z[�� � ��9��r�2�W�5�
4�V�V��5�
4�s#�6A<�	A0�A<�0A9	�5A<�<Bc���|jdd�5}tjdkr�|jt�5t
j|j
�dt
j��ddd�|jt�5t
j|j
�dt
j��ddd�t
j|j
�dt
j��5}|j|j�d�ddd�ddd�y#1swY��xYw#1swY�{xYw#1swY�*xYw#1swYyxYw)Nl��r�r�r^rr�)r�rpr�rEr�rr>rlrOrBrQr�s   r�test_large_filesizez"LargeMmapTests.test_large_filesize	s���
�
!�
!�+�t�
4���{�{�[�(��&�&�}�5��I�I�a�h�h�j�+�d�>N�>N�I�O�6��&�&�z�2��I�I�a�h�h�j�!�D�4D�4D�I�E�3����1�8�8�:�w�t�7G�7G��H�A�� � �����;�7�I�5�
4�6�5��2�2��H�H��5�
4�sR�)E�5D1�1E�5D=�<E�?!E	� E�1D:	�6E�=E	�E�	E	�E�Ec�P�d}|t|�dzz
}|t|�z}|j||�5}tj|j�dtj��5}|j||||�ddd�ddd�y#1swY�xYw#1swYyxYw)Ns  DEARdear  r/rr^)rDr�rr>rlrB)r&�boundaryr�rWrXrSrTs       r�_test_around_boundaryz$LargeMmapTests._test_around_boundarys������3�t�9��>�)���c�$�i���
�
!�
!�%��
.�!����1�8�8�:�q��1A�1A��B�a�� � ��5���t�4�C�/�
.�B�B��/�
.�s#�5B�)B�?B�B	�B�B%z!test cannot run on 32-bit systemsc�.�|jt�yr!)r�rr%s r�test_around_2GBzLargeMmapTests.test_around_2GB����"�"�3�'rc�.�|jt�yr!)r�rr%s r�test_around_4GBzLargeMmapTests.test_around_4GB#r�rN)r�r�r�r'r*r�r�r�r�r�r�rpr�rr�r�r�rrr�r��s|�����"3�

8�5��X������s�*�,O�P�(�Q�(��X������s�*�,O�P�(�Q�(rr��__main__)r[) �test.supportrrrrrr�test.support.import_helperr	�test.support.os_helperr
rr�r"rIr�rrrrpr,rr<�getpidrrr��TestCaserr�r��mainr�rr�<module>r�s�����5�1��	�	��
�
�
�
���V����=�=���9�2�9�9�;�-�z�2��(��
�(�
�
�L�
M�M�I&��!�!�I&�V:(�X�&�&�:(�z�z���H�M�M�O�r

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