Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_mmap.cpython-39.opt-2.pyc

a

��g|�@s�ddlmZmZmZmZmZmZmZmZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZed�ZejZGdd�de	j�ZGdd�de	j�Zedkr�e	��dS)	�)�TESTFN�
import_module�unlink�requires�_2G�_4G�
gc_collect�cpython_onlyN�mmapc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Ze�eed-�d.�d/d0��Zd1d2�Zd3d4�Zd5d6�Z e�e!j"d7kd8�d9d:��Z#e$e�e!j"d7kd8�d;d<���Z%e�e!j"d7kd8�d=d>��Z&e�e!j"d7kd8�d?d@��Z'dAdB�Z(dCdD�Z)dEdF�Z*dGdH�Z+e�,e!j"d7kdI�dJdK��Z-dLdM�Z.dNdO�Z/dPdQ�Z0e�eejdR�dS�dTdU��Z1dVS)W�	MmapTestscCstj�t�rt�t�dS�N)�os�path�existsrr��self�r�*/usr/local/lib/python3.9/test/test_mmap.py�setUpszMmapTests.setUpcCs&zt�t�Wnty Yn0dSr)r
rr�OSErrorrrrr�tearDownszMmapTests.tearDowncCs�ttd�}zR|�dt�|�d�|�dtd�|��t�|��dt�}W|��n
|��0tt	|��}|�
|�d�t�|�
t|�dt�|�
|dd�|�
|dd�d�|�
t|jt|��|�
t|jt|�d�d|d<d	|tdtdd�<|�
|dd�|�
|dd�d
�|�
|tdtd�d
�|��t�d|�}|du�rr|�d�n2|�d�\}}||}|�
|t�|�
|td�|�dd�|�
|��d�|�dd�|�
|��d�|�dd�|�
|��t|��|�
t|jd�|�
t|jdd�|�
t|jt|�dd�z|�d�Wnt�y\Ynr0|�
t|�d�|�
t|jdd�ttd�}z(|�dd�|�
|��d�W|��n
|��0|�
|��d�|��dS)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�SystemError�size)r�f�m�tp�match�start�end�lengthrrr�
test_basicsd



zMmapTests.test_basicc
Cs�d}ttd��}|�d|�Wd�n1s20Yttd����}tj|��|tjd�}|�|dd�d|d�zd||dd�<Wnty�Yn0|�d�zd|d	<Wnty�Yn0|�d�z|�	d	d	�|�d
�Wnt�yYn0|�d�z|�	d	d	�|�
d�Wnt�y>Yn0|�d�z|�d|�Wn&t�ypYnt�y�Yn0|�d
�ttd��&}|�|�
�d|d�Wd�n1�s�0YWd�n1�s�0Yttd���}zt�|��|d�}Wn,t�y@tj�d��r<|�d�Yn"0tj�d��sZ|�d�|��tj�d��r�ttd��}|�|�Wd�n1�s�0YWd�n1�s�0Yttd��`}tj|��|tjd�}d||dd�<|�|dd�d|d�|��|��Wd�n1�s80Yttd��}|�
�}Wd�n1�sl0Y|�|d|d�ttd���}tj|��|tjd�}d||dd�<|�|dd�d|d�|��ttd��&}|�|�
�d|d�Wd�n1�s0Y|�t|jd|�|��Wd�n1�sP0Yttd��*}|jttj|��|dd�Wd�n1�s�0Ytjdk�r�ttd��4}|jttj|��|tjtjtjd�Wd�n1�s�0Ytjttdd	�B}ttd��f}ztj|��||d�}Wnt�yFYn*0|�t|jd�|�t|j
d	�|��Wd�n1�s�0YdS)N�
�wb�ar$��accessz#Readonly memory map data incorrect.�bz$Able to write to readonly memory mapr�abc�drz"Able to resize readonly memory mapz*Readonly memory map data file was modified�r+br�winz0Opening mmap with size+1 should work on Windows.z1Opening mmap with size+1 should raise ValueError.�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�protrJZ	PROT_EXEC�rTsabcdef)r%rr&r
r)�ACCESS_READr-�	TypeErrorr6r8�
write_byter;r<�readr:�sys�platform�
startswithr*�truncate�ACCESS_WRITEr(�ACCESS_COPYr0r
�nameZMAP_PRIVATE�	PROT_READ�getattr�PermissionError)r�mapsize�fpr>r?�stuffrTrrr�test_access_parameter{s�,




�D
J�((���$(:�&zMmapTests.test_access_parametercCs|�ttjdd�dS)N����)r0rr
rrrr�test_bad_file_desc�szMmapTests.test_bad_file_desccCs�ttd��>}d}t|�}|�|�|��t�|��|�}Wd�n1sN0Yt|d�D]R}t||d�D]>}|||�}|�|�	|�|�	|��|�|�	|d�d�qvqd|�
�dS)N�wb+saabaacdeefaar�xr!)r%rr/r&r(r
r)�ranger-r.r*)rr>�data�nr?rBZfinish�slicerrr�test_tougher_finds
.zMmapTests.test_tougher_findcCs�ttd��>}d}t|�}|�|�|��t�|��|�}Wd�n1sN0Y|�|�d�d�|�|�d�d�|�|�ddd�d�|�|�dd�d�|�|�ddd�d�|�|�ddd	�d�|�|�t	d��d�dS)
Nrk�one two ones�onersones�r!rrh)
r%rr/r&r(r
r)r-r.�	bytearray�rr>rnror?rrr�
test_find_ends
.zMmapTests.test_find_endcCs�ttd��>}d}t|�}|�|�|��t�|��|�}Wd�n1sN0Y|�|�d�d�|�|�d�d�|�|�ddd�d�|�|�ddd�d�|�|�dd	d�d�|�|�dd	d�d�|�|�t	d��d�dS)
Nrkrrrsrtsone rr!rhr)
r%rr/r&r(r
r)r-�rfindrurvrrr�
test_rfind%s
.zMmapTests.test_rfindcCs�ttd��}|�dd�Wd�n1s.0Yttd��6}tj|��dtjd�}|��|��Wd�n1s~0YdS)Nrk�rHr$rI)r%rr&r
r)rVr*�rr>�mfrrr�test_double_close7s,zMmapTests.test_double_closec	Cs�ttd��}|�dd�Wd�n1s.0Yttd��h}t�|��d��8}|�t|�dd�|�|�d�dd�Wd�n1s�0YWd�n1s�0YdS)Nrkrz�mzrb+rz Map size should equal file size.)r%rr&r
r)r-r/rYr{rrr�test_entire_fileAs,�zMmapTests.test_entire_filec	Cs�ttd��}|�dd�Wd�n1s.0Yttd��X}tj|��ddtjd�� }|�t|jd�Wd�n1s�0YWd�n1s�0YdS)	NrGir~r$rrz��offsetrJi�8)	r%rr&r
r)rVr0r1r2r{rrr�test_length_0_offsetKs
,zMmapTests.test_length_0_offsetcCs�ttd��}|�dd�Wd�n1s.0Yttd��*}|jttj|��ddd�Wd�n1sr0YdS)NrGi��r~�w+bri��r�)r%rr&r0r:r
r)�rr>rrr�test_length_0_large_offsetWs,�z$MmapTests.test_length_0_large_offsetc	Cs$ttd��^}|�d�|��t�|��d�}|�ddd�|�|dd�dd�|��Wd�n1sn0Yd}t	t
|��D]�}t	t
|��D]�}t	t
|�t||��D]v}|d|�||||�|||d�}t�d	t
|��}||dd�<|�|||�|�|dd�|�|��q�q�q�t�d	d
�}gd�}	t�
|	|	|	�D]4\}
}}z|�|
||�Wnt�y�Yn0�qPgd�}	|	D] \}
}}|�t|j|
||��q�|��t�d	d
�}|�t|jddd�|�t|jd
dd
�|�t|jdd
d
�|�ddd
�|�ddd�dS)Nrks
ABCDEabcderF�rs
ABCDEABCDEz'Map move should have duplicated front 5�
0123456789r!�d)i����r!rrr�))r!r!r!)r!r!r)r!rr!)rr!r!)r!rr)rr!r)rrr!rr)r%rr&r(r
r)�mover-r*rmr/�max�	itertools�productr:r0)rr>r|rn�dest�src�countZexpectedr?�offsets�sourcer=rrr�	test_moveasD
&,
zMmapTests.test_movecCs^t�dt�}tt�D]}|�||dd�qtt�D]$}|d@}|||<|�|||�q4dS)Nr!rz+anonymously mmap'ed contents should be zero�)r
r'rmr-)rr?�x�brrr�test_anonymous�s�zMmapTests.test_anonymouscCs&t�dd�}|�|j�|�ttd���|�d�|�|��ttd���|�d�|�|��ttdd���|�d�|�|��d�|�d�|�|�d�ttdd���|�d�|�|�d�ttdd���|�d�|�|�d	�ttdd���|�d
�|�|�d�ttd
d���dS)Nr!�rrt�rrQr�rh�	i���)	r
�
addCleanupr*r&�bytesrmr8r-rY�rr?rrr�
test_read_all�s"






zMmapTests.test_read_allcCsPt�dd�}|�|j�|�t|jd�|�t|jd�|�t|jgd��dS)Nr!r��foog@)rrr)r
r�r*r0rWrYr�rrr�test_read_invalid_arg�s
zMmapTests.test_read_invalid_argcCs�tttd���}t�dt|��}||dd�<|�|dd�|�ddddddtjddd	d
f}|D]@}|D]6}|dd�D]$}|�||||�||||��qxqhq`dS�N�r!rrr�i,rhi��i���)r��reversedrmr
r/r-rZ�maxsize)r�sr?�indicesrB�stop�steprrr�test_extended_getslice�s�z MmapTests.test_extended_getslicec	Cs�tttd���}t�dt|��}ddddddtjddd	d
f}|D]�}|D]�}|dd�D]z}||dd�<|�|dd�|�t|�}||||�}tt|��}|||||�<|||||�<|�|dd�t|��qXqHq@dSr�)	r�r�rmr
r/rZr�r-�list)	rr�r?r�rBr�r��Lrnrrr�test_extended_set_del_slice�sz%MmapTests.test_extended_set_del_slicecCsB|�d|�|�d�|�d|d�|��t�|��d�S)Nrrrr)r&r(r
r))rr>�halfsizerrr�make_mmap_file�s

zMmapTests.make_mmap_filec	Cs^ttd�}|��ttd��.}|jtdtj|��dtjd�Wd�n1sP0YdS)Nr�r$zcannot mmap an empty filerrI)r%rr*�assertRaisesRegexr:r
r)rVr�rrr�test_empty_file�s
�zMmapTests.test_empty_filecCs�ttd�}�z�tj}|�||�}|��|��|d}ttd�}dD]N}z$tj|��||d�}|�dd�Wntt	t
fy�YqF0|�dd�qF|��ttd�}tj|��|||d�}|�|dd�d	�|��z|�d
�Wnty�Yn~0|�t
|�d
�|�t|jdd�|�|dd�d	�ttd�}|�dd�|�|��|d
�|��|�|��|d
�|��W|��zt�t�Wnt�y�Yn0n.|��zt�t�Wnt�y�Yn00dS)
Nr�rrN)rhr!Nr�rrrrr"r#r$)r%rr
�ALLOCATIONGRANULARITYr�r*r)r-r:rW�
OverflowErrorr;r<r/r0r8r9r=r
rr)rr>r�r?rdr�rrr�test_offset�sV




�zMmapTests.test_offsetcCsGdd�dtj�}|t�dS)Nc@seZdZdd�ZdS)z*MmapTests.test_subclass.<locals>.anon_mmapc_stjj|dg|�Ri|��S)Nr!)r
�__new__)�klass�args�kwargsrrrr�(sz2MmapTests.test_subclass.<locals>.anon_mmap.__new__N)�__name__�
__module__�__qualname__r�rrrr�	anon_mmap'sr�)r
r')rr�rrr�
test_subclass&szMmapTests.test_subclassrazneeds mmap.PROT_READcCs�d}ttd��}|�d|�Wd�n1s20Yttd��6}tj|��|tjd�}|�t|jd�Wd�n1s�0YdS)NrFrGrHr$rUr�)r%rr&r
r)rar0rW)rrdrer>r?rrr�test_prot_readonly,s,zMmapTests.test_prot_readonlycCs|�tjt�dSr)�assertIsr
�errorrrrrr�
test_error5szMmapTests.test_errorcCs�d}ttd��"}|�dt|��Wd�n1s60Yttd��$}t�|��t|��}Wd�n1st0Ytt|��D]6}|�|��|�|�	||�|�|��|d�q�|�
t|j	d�|�|dd�|�|�d�tt|��D]<}|�|��|�|�|�
�||�|�|��|d�q�|�
t|j
�|�d�|�|�d�d	�|�|��d
�|�d�|�d�|�|��d
�|�|dd�d�|�td
��|�|��d�|�|dd�d�|�
t|jd�dS)Nr�rGrlrNr�xrrs345rrs
012bar6789sbazr�s
012barbaz9sba)r%rr&r/r
r)rmr-r9rXr0r:r8�	read_byterYru)rrnrer>r?�irrr�test_io_methods8s802



zMmapTests.test_io_methodscCsVdD]L}t�dd�}|�|�|�|d|�|�d�|�|��|�|��qdS)N)���r�r!rr)r
rXr-r8r�r*)rr�r?rrr�test_non_ascii_byteZs

zMmapTests.test_non_ascii_byte�ntzrequires WindowscCs�d}d}tjdt|�dd�}||dd�<tjdt|�dd�}||dd�<|�|dd�|�|�|dd�|�|��|��tjdt|�dd�}||dd�<tjdt|�dd�}||dd�<|�|dd�|�|�|dd�|�|��|��dS)Nr�s
abcdefghijr!r���tagnameZboo)r
r/r-r*)rZdata1Zdata2�m1�m2rrr�test_tagnamecs$zMmapTests.test_tagnamecCsHt�dd�}d}tjdd|d�}|�t�|�t�|�t|�d�dS)Nr!r�r�r�r)r
r-rZ�	getsizeofr/)rr�r�r�rrr�test_sizeof}s�zMmapTests.test_sizeofcCs�tjdddd�}ztjdddd�dd�WnYn0|��ttd��}|�d�Wd�n1sl0Yttd�}t�|��d	�}|��z|�d	�WnYn0z|dd�WnYn0|��dS)
Nr!��r�r��rGs
xxxxxxxxxxrNr)r
r*r%rr&r)r;)rr?rer>rrr�test_crasher_on_windows�s((
z!MmapTests.test_crasher_on_windowscCs^t��}zF|�t�� t�|��d�}Wd�n1s:0YW|��n
|��0dS)NrF)�socketr0rr
r)r*)rr�r?rrr�test_invalid_descriptor�s
0z!MmapTests.test_invalid_descriptorcCsHt�dd��}|�|j�Wd�n1s.0Y|�|j�dS)Nr!rF)r
ZassertFalse�closed�
assertTruer�rrr�test_context_manager�s*zMmapTests.test_context_managerc	Cs||�t��@}t�dd��}t�Wd�n1s20YWd�n1sP0Y|�|jtd�|�|jd�dS)Nr!rFz)wrong exception raised in context managerzcontext manager failed)r0�	Exceptionr
rZassertIsInstance�	exceptionr�r�)r�excr?rrr�test_context_manager_exception�s@
�z(MmapTests.test_context_manager_exceptioncCs>t�dd�}t�|�}|�|�|�~t�|�|�d�dS)Nr!r�)r
�weakref�refr�r)r�mm�wrrrr�test_weakref�s
zMmapTests.test_weakrefcCsXt�dd�}|�|�d�d�|�|�d�d�|�|�d�d�|�|�d	�d
�dS)Nr!r�r�rrlrsyzr�pythonr)r
r-r&)rr�rrr�0test_write_returning_the_number_of_bytes_written�s
z:MmapTests.test_write_returning_the_number_of_bytes_writtenz(cannot resize anonymous mmaps on WindowscCs�t�dd�}|�|j�|�d�z|�d�WntyL|�d�Yn0|�|�d�d�|�t	|j
�|�t	|jd�|�t	|jd	�dS)
Nr!i r�rizresizing not supported�r�r rL)
r
r�r*rYr;r<ZskipTestr-r0r:r�rXr&r�rrr�test_resize_past_pos�s
zMmapTests.test_resize_past_poscCstt�dd�}|�t��||Wd�n1s40Y|�t��|dWd�n1sf0YdS)Nr!r�r)r
r0rWr�rrr�test_concat_repeat_exception�s
&z&MmapTests.test_concat_repeat_exceptioncCsZt�dd�}|�|j�|�d�|��}|�|�tj�d�rV|�	t
|jdtd��dS)Nr!r�r��linuxr)r
r�r*r&r(ZassertIsNonerZr[r\r0rr/)rr��resultrrr�test_flush_return_value�s

z!MmapTests.test_flush_return_valuecCs�t�d�}t�d�}d}tdd�|D��}t||�D�]Z\}}d|}||}d}	d|d	|d
|df}
ttd���}|�|�|��t�	|	|
�D]�\}}
t
t|�}tj|��|||d
���}|�
|
�|�t|��}|�|�|�|�d�|�|�|�d�t|��|�|�d�t|
��|�|�d�t|��Wd�n1�sL0Y|�t|��}|�|�q�Wd�q41�s�0Yq4dS)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�r�i@Bi���css"|]}|dtjtjVqdS)rN)r
r�)�.0rdrrr�	<genexpr>�s��z&MmapTests.test_repr.<locals>.<genexpr>rH)ZACCESS_DEFAULTrVr_r^rrFr�rQrk)rJr�rJrD�posr�)r4�compile�tuple�zipr%rr&r(r�r�rbr
r)r8rA�reprZassertIsNotNoner-�groupr+)rZopen_mmap_repr_patZclosed_mmap_repr_patZmapsizesr�r�rdrnrDZaccessesZ	positionsrerJr�Zaccintr�rArrr�	test_repr�sB�
�


�

6zMmapTests.test_repr�madvisez
needs madvisecCsxdt}t�d|�}|�td��|�tj|�Wd�n1sD0Y|�td��|�tjd�Wd�n1s~0Y|�td�� |�tjdd�Wd�n1s�0Y|�td��"|�tjttj�Wd�n1s�0Y|�	|�tj�d�|�	|�tjt�d�|�	|�tjt|�d�|�	|�tjdd�d�|�	|�tjd|�d�dS)Nrr!zmadvise start out of boundszmadvise length invalidrzmadvise length too large)
r'r
r�r:r�ZMADV_NORMALr�rZr�r-)rr=r?rrr�test_madvises,,.0zMmapTests.test_madviseN)2r�r�r�rrrErgrjrqrwryr}rr�r�r�r�r�r�r�r�r�r�r�r��unittest�
skipUnless�hasattrr
r�r�r�r�r
r`r�r	r�r�r�r�r�r�r�ZskipIfr�r�r�r�r�rrrrrs`^


0	9
"	


		


$rc@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	�
eje
kd
�dd��Ze	�
eje
kd
�dd��ZdS)�LargeMmapTestscCstt�dSr�rrrrrrr&szLargeMmapTests.setUpcCstt�dSrr�rrrrr)szLargeMmapTests.tearDowncCs�tjdd�dkstjdkr.tddtd��ttd�}z |�|�|�|�|��WnFt	t
tfy�z|��Wnt	t
fy�Yn0t
�d��Yn0|S)	NrrO�darwinZ	largefilez-test requires %s bytes and a long time to run�r�z*filesystem does not have largefile support)rZr[rr+r%rr8r&r(rr�r:r*r�ZSkipTest)rZ
num_zeroes�tailr>rrr�_make_test_file,s 
�


zLargeMmapTests._make_test_filec	Csx|�dd��X}tj|��ddtjd�� }|�|dd�Wd�n1sL0YWd�n1sj0YdS)Nl��� rlr�i���� )r�r
r)rVr-�rr>r?rrr�test_large_offset=sz LargeMmapTests.test_large_offsetc	Cs|�dd���}tjdkr�|�t��&tj|��dtjd�Wd�n1sN0Y|�t��&tj|��dtjd�Wd�n1s�0Ytj|��dtjd�� }|�	|�
�d�Wd�n1s�0YWd�n1s�0YdS)Nl��r�r�rIrrz)r�rZr�r0r�r
r)rVr:r-r=rrrr�test_large_filesizeBs
44z"LargeMmapTests.test_large_filesizec	Cs�d}|t|�d}|t|�}|�||��Z}tj|��dtjd��$}|�|||�|�Wd�n1sn0YWd�n1s�0YdS)Ns  DEARdear  rrrI)r/r�r
r)rVr-)r�boundaryr�rBrCr>r?rrr�_test_around_boundaryPsz$LargeMmapTests._test_around_boundaryz!test cannot run on 32-bit systemscCs|�t�dSr)rrrrrr�test_around_2GBXszLargeMmapTests.test_around_2GBcCs|�t�dSr)rrrrrr�test_around_4GB\szLargeMmapTests.test_around_4GBN)r�r�r�rrr�rrrr�r�rZr�rrrrrrrr�$s
r��__main__)Ztest.supportrrrrrrrr	r�r
r4r�r�rZr�r
r'ZTestCaserr�r��mainrrrr�<module>s&(=

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