HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_mmap.cpython-37.opt-2.pyc
B

��g+o�@s�ddlmZmZmZmZmZmZmZmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZed�ZejZGdd�de
j�ZGdd�de
j�Zdd	�Zed
kr�e�dS)�)	�TESTFN�run_unittest�
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�Ze�
eed�d�dd��Ze�
eed�d�dd��Ze�
eed�d�dd��Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Ze�
eed/�d0�d1d2��Zd3d4�Zd5d6�Z d7d8�Z!e�
ej"d9kd:�d;d<��Z#e$e�
ej"d9kd:�d=d>���Z%e�
ej"d9kd:�d?d@��Z&e�
ej"d9kd:�dAdB��Z'dCdD�Z(dEdF�Z)dGdH�Z*dIdJ�Z+e�,ej"d9kdK�dLdM��Z-dNdO�Z.dPS)Q�	MmapTestscCstj�t�rt�t�dS)N)�os�path�existsrr)�self�r�*/usr/local/lib/python3.7/test/test_mmap.py�setUpszMmapTests.setUpcCs(yt�t�Wntk
r"YnXdS)N)r
rr�OSError)rrrr�tearDownszMmapTests.tearDowncCs�ttd�}zJ|�dt�|�d�|�dtd�|��t�|��dt�}Wd|��Xtt	|��}|�
|�d�t�|�
t|�dt�|�
|dd�|�
|dd�d�|�
t|jt|��|�
t|jt|�d�d|d<d	|tdtdd�<|�
|dd�|�
|dd�d
�|�
|tdtd�d
�|��t�d|�}|dk�rj|�d�n2|�d�\}}||}|�
|t�|�
|td�|�dd�|�
|��d�|�dd�|�
|��d�|�dd�|�
|��t|��|�
t|jd�|�
t|jdd�|�
t|jt|�dd�y|�d�Wntk
�rVYnjX|�
t|�d�|�
t|jdd�ttd�}z |�dd�|�
|��d�Wd|��X|�
|��d�|��dS)Nzbw+�sfoo��rs�3sbars3��sfoobars	[A-Za-z]+zregex match on mmap failed!��*���ii�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|�WdQRXttd����}tj|��|tjd�}|�|dd�d|d�yd||dd�<Wntk
r�YnX|�d�yd|d	<Wntk
r�YnX|�d�y|�	d	d	�|�d
�Wntk
r�YnX|�d�y|�	d	d	�|�
d�Wntk
�r0YnX|�d�y|�d|�Wn*tk
�rdYn tk
�rxYnX|�d
�ttd��}|�|�
�d|d�WdQRXWdQRXttd���}yt�|��|d�}Wn.tk
�rtj�d��r|�d�Yn"Xtj�d��s&|�d�|��tj�d��r\ttd��}|�|�WdQRXWdQRXttd��V}tj|��|tjd�}d||dd�<|�|dd�d|d�|��|��WdQRXttd��}|�
�}WdQRX|�|d|d�ttd���}tj|��|tjd�}d||dd�<|�|dd�d|d�|��ttd��}|�|�
�d|d�WdQRX|�t|jd|�|��WdQRXttd�� }|jttj|��|dd�WdQRXtjdk�r|ttd��*}|jttj|��|tjtjtjd�WdQRXtjttdd	�B}ttd��B}tj|��||d�}|�t|jd�|�t|j
d	�|��WdQRXdS)N�
�wb�ar)�accessz#Readonly memory map data incorrect.�bz$Able to write to readonly memory maprsabc�drz"Able to resize readonly memory mapz*Readonly memory map data file was modifiedzr+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�protrDZ	PROT_EXEC)rLsabcdef)r rr!rr$�ACCESS_READr(�	TypeErrorr1r3�
write_byter6r7�readr5�sys�platform�
startswithr%�truncateZACCESS_WRITEr#ZACCESS_COPYr+r
�nameZMAP_PRIVATE�	PROT_READ�getattr)r�mapsize�fpr9r:ZstuffrLrrr�test_access_parameterzs�





$zMmapTests.test_access_parametercCs|�ttjdd�dS)N���i)r+rr)rrrr�test_bad_file_desc�szMmapTests.test_bad_file_descc	Cs�ttd��4}d}t|�}|�|�|��t�|��|�}WdQRXxft|d�D]V}xPt||d�D]>}|||�}|�|�	|�|�	|��|�|�	|d�d�qfWqRW|�
�dS)Nzwb+saabaacdeefaar�xr)r rr*r!r#rr$�ranger(r)r%)rr9�data�nr:r=Zfinish�slicerrr�test_tougher_find�s
zMmapTests.test_tougher_findcCs�ttd�}d}t|�}|�|�|��t�|��|�}|��|�|�	d�d�|�|�	d�d�|�|�	ddd�d�|�|�	dd�d�|�|�	ddd�d�|�|�	ddd	�d�|�|�	t
d��d�dS)
Nzwb+sone two onessonersones�rrr[)r rr*r!r#rr$r%r(r)�	bytearray)rr9r_r`r:rrr�
test_find_end
s

zMmapTests.test_find_endcCs�ttd�}d}t|�}|�|�|��t�|��|�}|��|�|�	d�d�|�|�	d�d�|�|�	ddd�d�|�|�	ddd�d�|�|�	dd	d�d�|�|�	dd	d�d�|�|�	t
d��d�dS)
Nzwb+sone two onessonercsone rrr[r)r rr*r!r#rr$r%r(�rfindrd)rr9r_r`r:rrr�
test_rfind s

zMmapTests.test_rfindcCs\ttd�}|�dd�|��ttd�}tj|��dtjd�}|��|��|��dS)Nzwb+irCr)rD)r rr!r%rr$rM)rr9�mfrrr�test_double_close3s

zMmapTests.test_double_close�statzneeds os.stat()cCsvttd�}|�dd�|��ttd�}t�|��d�}|�t|�dd�|�|�d�dd�|��|��dS)Nzwb+i�mzrb+rz Map size should equal file size.)	r rr!r%rr$r(r*rP)rr9rhrrr�test_entire_file@s

zMmapTests.test_entire_filec
Csrttd��}|�dd�WdQRXttd��:}tj|��ddtjd��}|�t|jd�WdQRXWdQRXdS)	NrBirkrri)�offsetrDi�8)	r rr!rr$rMr+r,r-)rr9rhrrr�test_length_0_offsetOs
zMmapTests.test_length_0_offsetc	CsXttd��}|�dd�WdQRXttd�� }|jttj|��ddd�WdQRXdS)NrBi��rkzw+bri�)rm)r rr!r+r5rr$)rr9rrr�test_length_0_large_offset\s
z$MmapTests.test_length_0_large_offsetc	Cs2ttd�}|�d�|��t�|��d�}|�ddd�|�|dd�dd�|��|��d}x�t	t
|��D]�}x�t	t
|��D]�}x�t	t
|�t||��D]v}|d|�||||�|||d�}t�d	t
|��}||dd�<|�|||�|�|dd�|�|��q�Wq�WqrWt�d	d
�}dd	ddd
g}	xHt�
|	|	|	�D]6\}
}}y|�|
||�Wntk
�r~YnX�qLWd
ddddddg}	x(|	D] \}
}}|�t|j|
||��q�W|��t�d	d�}|�t|jddd�|�t|jddd�|�t|jddd�|�ddd�|�ddd�dS)Nzwb+s
ABCDEabcderA�rs
ABCDEABCDEz'Map move should have duplicated front 5s
0123456789r�di����r)rrr)rrr)rrr)rrr)rrr)rrr)rrrr)r rr!r#rr$Zmover(r%r^r*�max�	itertools�productr5r+)rr9rhr_�dest�src�countZexpectedr:Zoffsets�sourcer8rrr�	test_movegsH

,
zMmapTests.test_movecCsft�dt�}x"tt�D]}|�||dd�qWx0tt�D]$}|d@}|||<|�|||�q:WdS)Nrrz+anonymously mmap'ed contents should be zero�)rr"r^r()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�rrc�rrIrpr[�	i���)	r�
addCleanupr%r!�bytesr^r3r(rP)rr:rrr�
test_read_all�s"






zMmapTests.test_read_allcCsRt�dd�}|�|j�|�t|jd�|�t|jd�|�t|jdddg�dS)Nrr~�foog@rrr)rr�r%r+rNrP)rr:rrr�test_read_invalid_arg�s
zMmapTests.test_read_invalid_argcCs�tttd���}t�dt|��}||dd�<|�|dd�|�ddddddtjddd	d
f}xP|D]H}xB|D]:}x4|dd�D]$}|�||||�||||��q~WqlWqbWdS)N�rrrr�i,r[i��i���)r��reversedr^rr*r(rQ�maxsize)r�sr:�indicesr=�stop�steprrr�test_extended_getslice�s

z MmapTests.test_extended_getslicec	Cs�tttd���}t�dt|��}ddddddtjddd	d
f}x�|D]�}x�|D]�}x�|dd�D]z}||dd�<|�|dd�|�t|�}||||�}tt|��}|||||�<|||||�<|�|dd�t|��q^WqLWqBWdS)Nr�rrrrr�i,r[i��i���)	r�r�r^rr*rQr�r(�list)	rr�r:r�r=r�r��Lr_rrr�test_extended_set_del_slice�s

z%MmapTests.test_extended_set_del_slicecCsB|�d|�|�d�|�d|d�|��t�|��d�S)Nrsfoorr)r!r#rr$)rr9�halfsizerrr�make_mmap_file�s

zMmapTests.make_mmap_filec	CsJttd�}|��ttd��$}|jtdtj|��dtjd�WdQRXdS)Nzw+brzcannot mmap an empty filer)rD)r rr%ZassertRaisesRegexr5rr$rM)rr9rrr�test_empty_file�s
zMmapTests.test_empty_filecCs�ttd�}�z�tj}|�||�}|��|��|d}ttd�}xXdD]P}y$tj|��||d�}|�dd�Wntt	t
fk
r�YqHX|�dd�qHW|��ttd�}tj|��|||d�}|�|dd�d	�|��y|�d
�Wntk
�rYn~X|�t
|�d
�|�t|jdd�|�|dd�d	�ttd�}|�dd�|�|��|d
�|��|�|��|d
�|��Wd|��yt�t�Wntk
�r�YnXXdS)
Nzw+brzr+b)r[rN)rmrrrsfooiir)r rrZALLOCATIONGRANULARITYr�r%r$r(r5rN�
OverflowErrorr6r7r*r+r3r4r8r
rr)rr9r�r:rXrmrrr�test_offset�sL




zMmapTests.test_offsetcCsGdd�dtj�}|t�dS)Nc@seZdZdd�ZdS)z*MmapTests.test_subclass.<locals>.anon_mmapc_stjj|df|�|�S)Nr)r�__new__)�klass�args�kwargsrrrr�/sz2MmapTests.test_subclass.<locals>.anon_mmap.__new__N)�__name__�
__module__�__qualname__r�rrrr�	anon_mmap.sr�)rr")rr�rrr�
test_subclass-szMmapTests.test_subclassrVzneeds mmap.PROT_READc	Csdd}ttd��}|�d|�WdQRXttd�}tj|��|tjd�}|�t|jd�|��dS)NrArBrCr)rLr�)	r rr!rr$rVr+rNr%)rrXrYr9r:rrr�test_prot_readonly3s
zMmapTests.test_prot_readonlycCs|�tjt�dS)N)�assertIsr�errorr)rrrr�
test_error=szMmapTests.test_errorc	Cs�d}ttd��}|�dt|��WdQRXttd�}t�|��t|��}|��xFtt|��D]6}|�|�	�|�|�
||�|�|�	�|d�q`W|�t|j
d�|�|dd�|�|�
d�xLtt|��D]<}|�|�	�|�|�|��||�|�|�	�|d�q�W|�t|j�|�
d�|�|�d�d	�|�|�	�d
�|�
d�|�d�|�|�	�d
�|�|dd�d�|�td
��|�|�	�d�|�|dd�d�|�t|jd�dS)Ns
0123456789rBr]zr+br�xrrs345rsbars
012bar6789sbazr�s
012barbaz9sba)r rr!r*rr$r%r^r(r4rOr+r5r3�	read_byterPrd)rr_rYr9r:�irrr�test_io_methods@s:




zMmapTests.test_io_methodscCsZxTdD]L}t�dd�}|�|�|�|d|�|�d�|�|��|�|��qWdS)N)���rzrrr)rrOr(r3r�r%)rr|r:rrr�test_non_ascii_bytecs


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)Ns
0123456789s
abcdefghijrr�)�tagnameZboo)rr*r(r%)rZdata1Zdata2�m1�m2rrr�test_tagnamels$zMmapTests.test_tagnamecCsHt�dd�}d}tjdd|d�}|�t�|�t�|�t|�d�dS)Nrrqr�)r�r)rr(rQ�	getsizeofr*)rr�r�r�rrr�test_sizeof�s
zMmapTests.test_sizeofc	Cs�tjdddd�}ytjdddd�dd�WnYnX|��ttd��}|�d�WdQRXttd�}t�|��d	�}|��y|�d	�WnYnXy|dd�WnYnX|��dS)
Nri�r�)r�i�rBs
xxxxxxxxxxzr+br)rr%r rr!r$r6)rr:rYr9rrr�test_crasher_on_windows�s(
z!MmapTests.test_crasher_on_windowsc	CsBt��}z*|�t��t�|��d�}WdQRXWd|��XdS)NrA)�socketr+rrr$r%)rr�r:rrr�test_invalid_descriptor�s
z!MmapTests.test_invalid_descriptorc	Cs4t�dd��}|�|j�WdQRX|�|j�dS)NrrA)rZassertFalse�closed�
assertTrue)rr:rrr�test_context_manager�szMmapTests.test_context_managerc
CsT|�t��"}t�dd��
}t�WdQRXWdQRX|�|jtd�|�|jd�dS)NrrAz)wrong exception raised in context managerzcontext manager failed)r+�	ExceptionrrZassertIsInstanceZ	exceptionr�r�)r�excr:rrr�test_context_manager_exception�s
z(MmapTests.test_context_manager_exceptioncCs>t�dd�}t�|�}|�|�|�~t�|�|�d�dS)Nrr~)r�weakref�refr�r	)r�mmZwrrrr�test_weakref�s
zMmapTests.test_weakrefcCsXt�dd�}|�|�d�d�|�|�d�d�|�|�d�d�|�|�d	�d
�dS)Nrr~rrr]rsyzrspythonr)rr(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�y|�d�Wntk
rN|�d�YnX|�|�d�d�|�t	|j
�|�t	|jd�|�t	|jd	�dS)
Nri i�izresizing not supported�rrsabc)
rr�r%rPr6r7ZskipTestr(r+r5r�rOr!)rr:rrr�test_resize_past_pos�s
zMmapTests.test_resize_past_posc	CsLt�dd�}|�t��||WdQRX|�t��|dWdQRXdS)Nrr~r)rr+rN)rr:rrr�test_concat_repeat_exception�s
z&MmapTests.test_concat_repeat_exceptionN)/r�r�r�rrr@rZr\rbrergri�unittest�
skipUnless�hasattrr
rlrnroryr}r�r�r�r�r�r�r�r�rr�r�r�r�rUr�r
r�r�r�r�r�r�r�ZskipIfr�r�rrrrrsJ^}

1	9
#			rc@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	�
eje
kd
�dd��Ze	�
eje
kd
�dd��ZdS)�LargeMmapTestscCstt�dS)N)rr)rrrrr�szLargeMmapTests.setUpcCstt�dS)N)rr)rrrrr�szLargeMmapTests.tearDowncCs�tjdd�dkstjdkr.tddtd��ttd�}y |�|�|�|�|��WnJt	t
tfk
r�y|��Wnt	t
fk
r�YnXt
�d��YnX|S)	NrrG�darwinZ	largefilez-test requires %s bytes and a long time to runlzw+bz*filesystem does not have largefile support)rQrRrr&r rr3r!r#rr�r5r%r�ZSkipTest)rZ
num_zeroes�tailr9rrr�_make_test_file�s


zLargeMmapTests._make_test_filec
CsP|�dd��:}tj|��ddtjd��}|�|dd�WdQRXWdQRXdS)Nl��� rl)rmrDi���� )r�rr$rMr()rr9r:rrr�test_large_offsetsz LargeMmapTests.test_large_offsetc
Cs�|�dd���}tjdkrp|�t��tj|��dtjd�WdQRX|�t��tj|��dtjd�WdQRXtj|��dtjd��}|�	|�
�d�WdQRXWdQRXdS)Nl��r�l)rDri)r�rQr�r+r�rr$rMr5r(r8)rr9r:rrr�test_large_filesizes
  z"LargeMmapTests.test_large_filesizec
Csrd}|t|�d}|t|�}|�||��<}tj|��dtjd��}|�|||�|�WdQRXWdQRXdS)Ns  DEARdear  rr)rD)r*r�rr$rMr()r�boundaryr�r=r>r9r:rrr�_test_around_boundarysz$LargeMmapTests._test_around_boundaryz!test cannot run on 32-bit systemscCs|�t�dS)N)r�r)rrrr�test_around_2GBszLargeMmapTests.test_around_2GBcCs|�t�dS)N)r�r)rrrr�test_around_4GB!szLargeMmapTests.test_around_4GBN)r�r�r�rrr�r�r�r�r�r�rQr�rr�r�rrrrr��sr�cCsttt�dS)N)rrr�rrrr�	test_main&sr��__main__)Ztest.supportrrrrrrrr	r
r�r
r/rsr�rQr�rr"ZTestCaserr�r�r�rrrr�<module>s&,^=