Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_mmap.cpython-38.opt-1.pyc
U

>��g�t�@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/e�eejdP�dQ�dRdS��Z0dTS)U�	MmapTestscCstj�t�rt�t�dS�N)�os�path�existsrr��self�r�-/opt/cppython/lib/python3.8/test/test_mmap.py�setUpszMmapTests.setUpcCs(zt�t�Wntk
r"YnXdSr)r
rr�OSErrorrrrr�tearDownszMmapTests.tearDowncCs�ttd�}zJ|�dt�|�d�|�dtd�|��t�|��dt�}W5|��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�z|�d�Wntk
�rVYnjX|�
t|�d�|�
t|jdd�ttd�}z |�dd�|�
|��d�W5|��X|�
|��d�|��dS)Nzbw+��foo��rs�3�bars3��sfoobars	[A-Za-z]+zregex match on mmap failed!��*������rb)�openr�close�write�PAGESIZE�flushr
�fileno�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|�W5QRXttd����}tj|��|tjd�}|�|dd�d|d�zd||dd�<Wntk
r�YnX|�d�zd|d	<Wntk
r�YnX|�d�z|�	d	d	�|�d
�Wntk
r�YnX|�d�z|�	d	d	�|�
d�Wntk
�r0YnX|�d�z|�d|�Wn*tk
�rdYn tk
�rxYnX|�d
�ttd��}|�|�
�d|d�W5QRXW5QRXttd���}zt�|��|d�}Wn.tk
�rtj�d��r|�d�Yn"Xtj�d��s&|�d�|��tj�d��r\ttd��}|�|�W5QRXW5QRXttd��V}tj|��|tjd�}d||dd�<|�|dd�d|d�|��|��W5QRXttd��}|�
�}W5QRX|�|d|d�ttd���}tj|��|tjd�}d||dd�<|�|dd�d|d�|��ttd��}|�|�
�d|d�W5QRX|�t|jd|�|��W5QRXttd�� }|jttj|��|dd�W5QRXtjdk�r�ttd��*}|jttj|��|tjtjtjd�W5QRXtjttdd	�B}ttd��^}ztj|��||d�}Wntk
�rdYn*X|�t|jd�|�t|j
d	�|��W5QRXdS)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&�truncateZACCESS_WRITEr)ZACCESS_COPYr0r
�nameZMAP_PRIVATE�	PROT_READ�getattr�PermissionError)r�mapsize�fpr>r?�stuffrTrrr�test_access_parameter{s�




�
����$�zMmapTests.test_access_parametercCs|�ttjdd�dS)N����)r0rr
rrrr�test_bad_file_desc�szMmapTests.test_bad_file_descc	Cs�ttd��4}d}t|�}|�|�|��t�|��|�}W5QRXt|d�D]R}t||d�D]>}|||�}|�|�	|�|�	|��|�|�	|d�d�qbqP|�
�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_findc	Cs�ttd��4}d}t|�}|�|�|��t�|��|�}W5QRX|�|�d�d�|�|�d�d�|�|�ddd�d�|�|�dd�d�|�|�ddd�d�|�|�ddd	�d�|�|�t	d��d�dS)
Nri�one two ones�onersones�r!rrf)
r%rr/r'r)r
r*r-r.�	bytearray�rr>rlrmr?rrr�
test_find_ends
zMmapTests.test_find_endc	Cs�ttd��4}d}t|�}|�|�|��t�|��|�}W5QRX|�|�d�d�|�|�d�d�|�|�ddd�d�|�|�ddd�d�|�|�dd	d�d�|�|�dd	d�d�|�|�t	d��d�dS)
Nrirprqrrsone rr!rfr)
r%rr/r'r)r
r*r-�rfindrsrtrrr�
test_rfind%s
zMmapTests.test_rfindc	Csdttd��}|�dd�W5QRXttd��,}tj|��dtjd�}|��|��W5QRXdS)Nri�rHr$rI)r%rr'r
r*rVr&�rr>�mfrrr�test_double_close7szMmapTests.test_double_closec
Cs�ttd��}|�dd�W5QRXttd��J}t�|��d��.}|�t|�dd�|�|�d�dd�W5QRXW5QRXdS)Nrirx�mzrb+rz Map size should equal file size.)r%rr'r
r*r-r/rYryrrr�test_entire_fileAs�zMmapTests.test_entire_filec
Csrttd��}|�dd�W5QRXttd��:}tj|��ddtjd��}|�t|jd�W5QRXW5QRXdS)	NrGir|r$rrx��offsetrJi�8)	r%rr'r
r*rVr0r1r2ryrrr�test_length_0_offsetKs
zMmapTests.test_length_0_offsetc	CsXttd��}|�dd�W5QRXttd�� }|jttj|��ddd�W5QRXdS)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��T}|�d�|��t�|��d�}|�ddd�|�|dd�dd�|��W5QRXd}t	t
|��D]�}t	t
|��D]�}t	t
|�t||��D]v}|d|�||||�|||d�}t�d	t
|��}||dd�<|�|||�|�|dd�|�|��q�q�qtt�d	d
�}dd	ddd
g}	t�
|	|	|	�D]6\}
}}z|�|
||�Wntk
�rtYnX�qBd
ddddddg}	|	D] \}
}}|�t|j|
||��q�|��t�d	d�}|�t|jddd�|�t|jddd�|�t|jddd�|�ddd�|�ddd�dS)Nris
ABCDEabcderF�rs
ABCDEABCDEz'Map move should have duplicated front 5�
0123456789r!�di����r)r!r!r!)r!r!r)r!rr!)rr!r!)r!rr)rr!r)rrr!r)r%rr'r)r
r*�mover-r&rkr/�max�	itertools�productr:r0)rr>rzrl�dest�src�countZexpectedr?Zoffsets�sourcer=rrr�	test_moveasL
,
�zMmapTests.test_movecCs^t�dt�}tt�D]}|�||dd�qtt�D]$}|d@}|||<|�|||�q4dS)Nr!rz+anonymously mmap'ed contents should be zero�)r
r(rkr-)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!�rrr�rrQr�rf�	i���)	r
�
addCleanupr&r'�bytesrkr8r-rY�rr?rrr�
test_read_all�s"






zMmapTests.test_read_allcCsRt�dd�}|�|j�|�t|jd�|�t|jd�|�t|jdddg�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,rfi��i���)r��reversedrkr
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�rkr
r/rZr�r-�list)	rr�r?r�rBr�r��Lrlrrr�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	CsJttd�}|��ttd��$}|jtdtj|��dtjd�W5QRXdS)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]P}z$tj|�	�||d�}|�
dd�Wnttt
fk
r�YqFX|�
dd�qF|��ttd�}tj|�	�|||d�}|�
|dd�d	�|��z|�d
�Wntk
�rYn~X|�
t|�d
�|�t|jdd�|�
|dd�d	�ttd�}|�dd�|�
|��|d
�|��|�
|��|d
�|��W5|��zt�t�Wntk
�r�YnXXdS)
Nr�rrN)rfr!Nr�rrrrr"r#r$)r%rr&r
rrr
ZALLOCATIONGRANULARITYr�r*r-r:rW�
OverflowErrorr;r<r/r0r8r9r=)rr>r�r?rbrrrr�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�)r
r()rr�rrr�
test_subclass&szMmapTests.test_subclassr_zneeds mmap.PROT_READc	Cshd}ttd��}|�d|�W5QRXttd��,}tj|��|tjd�}|�t|jd�W5QRXdS)NrFrGrHr$rUr�)r%rr'r
r*r_r0rW)rrbrcr>r?rrr�test_prot_readonly,szMmapTests.test_prot_readonlycCs|�tjt�dSr)�assertIsr
�errorrrrrr�
test_error5szMmapTests.test_errorc	Cs�d}ttd��}|�dt|��W5QRXttd��}t�|��t|��}W5QRXtt|��D]6}|�|��|�|�	||�|�|��|d�qb|�
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�rGrjrNr�xrrs345rrs
012bar6789sbazr�s
012barbaz9sba)r%rr'r/r
r*rkr-r9rXr0r:r8�	read_byterYrs)rrlrcr>r?�irrr�test_io_methods8s8



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_sizeofc	Cs�tjdddd�}ztjdddd�dd�WnYnX|��ttd��}|�d�W5QRXttd�}t�|��d	�}|��z|�d	�WnYnXz|dd�WnYnX|��dS)
Nr!i�r�r��rGs
xxxxxxxxxxrNr)r
r&r%rr'r*r;)rr?rcr>rrr�test_crasher_on_windows�s(
z!MmapTests.test_crasher_on_windowsc	CsBt��}z*|�t��t�|��d�}W5QRXW5|��XdS)NrF)�socketr&r0rr
r*)rr�r?rrr�test_invalid_descriptor�s
z!MmapTests.test_invalid_descriptorc	Cs4t�dd��}|�|j�W5QRX|�|j�dS)Nr!rF)r
ZassertFalse�closed�
assertTruer�rrr�test_context_manager�szMmapTests.test_context_managerc
CsT|�t��"}t�dd��
}t�W5QRXW5QRX|�|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�rrjrsyzr�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�Wntk
rN|�d�YnX|�|�d�d�|�t	|j
�|�t	|jd�|�t	|jd	�dS)
Nr!i r�rgzresizing 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_posc	CsLt�dd�}|�t��||W5QRX|�t��|dW5QRXdS)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_value�madvisez
needs madvisec	Cs(dt}t�d|�}|�td��|�tj|�W5QRX|�td��|�tjd�W5QRX|�td��|�tjdd�W5QRX|�td��|�tjttj�W5QRX|�	|�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_madvise�szMmapTests.test_madviseN)1r�r�r�rrrErerhrorurwr{r}r�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�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�rrrrrrrszLargeMmapTests.setUpcCstt�dSrr�rrrrrszLargeMmapTests.tearDowncCs�tjdd�dkstjdkr.tddtd��ttd�}z |�|�|�|�|��WnJt	t
tfk
r�z|��Wnt	t
fk
r�YnXt
�d��YnX|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_files 
�


zLargeMmapTests._make_test_filec
CsP|�dd��:}tj|��ddtjd��}|�|dd�W5QRXW5QRXdS)Nl��� rlr~i���� )r�r
r*rVr-�rr>r?rrr�test_large_offsetsz LargeMmapTests.test_large_offsetc
Cs�|�dd���}tjdkrp|�t��tj|��dtjd�W5QRX|�t��tj|��dtjd�W5QRXtj|��dtjd��}|�	|�
�d�W5QRXW5QRXdS)Nl��r�r�rIrrx)r�rZr�r0r�r
r*rVr:r-r=r�rrr�test_large_filesizes
  z"LargeMmapTests.test_large_filesizec
Csrd}|t|�d}|t|�}|�||��<}tj|��dtjd��}|�|||�|�W5QRXW5QRXdS)Ns  DEARdear  rrrI)r/r�r
r*rVr-)r�boundaryr�rBrCr>r?rrr�_test_around_boundary,sz$LargeMmapTests._test_around_boundaryz!test cannot run on 32-bit systemscCs|�t�dSr)r�rrrrr�test_around_2GB4szLargeMmapTests.test_around_2GBcCs|�t�dSr)r�rrrrr�test_around_4GB8szLargeMmapTests.test_around_4GBN)r�r�r�rrr�r�r�r�r�r�rZr�rr�r�rrrrr�s
r��__main__)Ztest.supportrrrrrrrr	r�r
r4r�r�rZr�r
r(ZTestCaserr�r��mainrrrr�<module>s$(t=

F1le Man4ger