Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_mmap.cpython-34.pyo

�
f fDj�@sddlmZmZmZmZmZmZmZmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZed�ZejZGdd�de
j�ZGdd�de
j�Zdd	�Zed
kr�e�ndS)�)	�TESTFN�run_unittest�
import_module�unlink�requires�_2G�_4G�
gc_collect�cpython_onlyN�mmapc@szeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zej
eed�d�dd��Zej
eed�d�dd��Zej
eed�d�dd��Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zej
eed/�d0�d1d2��Zd3d4�Zd5d6�Z d7d8�Z!ej
ej"d9kd:�d;d<��Z#e$ej
ej"d9kd:�d=d>���Z%ej
ej"d9kd:�d?d@��Z&ej
ej"d9kd:�dAdB��Z'dCdD�Z(dEdF�Z)dGdH�Z*dIS)J�	MmapTestscCs&tjjt�r"tjt�ndS)N)�os�path�existsrr)�self�r�3/opt/alt/python34/lib64/python3.4/test/test_mmap.py�setUpszMmapTests.setUpcCs*ytjt�Wntk
r%YnXdS)N)r
rr�OSError)rrrr�tearDowns
zMmapTests.tearDowncCs�ttd�}z]|jdt�|jd�|jdtd�|j�tj|j�dt�}Wd|j�Xtt	|��}|j
|jd�t�|j
t|�dt�|j
|dd�|j
|dd�d�|j
t|jt|��|j
t|jt|�d�d|d<d	|tdtdd�<|j
|dd�|j
|dd�d
�|j
|tdtd�d
�|j�tjd|�}|dkr�|jd�nC|jd�\}}||}|j
|t�|j
|td�|jdd�|j
|j�d�|jdd�|j
|j�d�|jdd�|j
|j�t|��|j
t|jd�|j
t|jdd�|j
t|jt|�dd�y|jd�Wntk
r	Yn�X|j
t|�d�|j
t|jdd�ttd�}z*|jdd�|j
|j�d�Wd|j�X|j
|j�d�|j�dS)Nzbw+ssfoo��rs�3sbars3��sfoobars	[A-Za-z]+zregex match on mmap failed!��*ii�rb�3r���)�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�mZtp�match�start�endZlengthrrr�
test_basicsd

 
"

$
zMmapTests.test_basicc~Cs�d}ttd��}|jd|�WdQXttd���}tj|j�|dtj�}|j|dd�d|d�yd||dd�<Wntk
r�YnX|jd�yd|d	<Wntk
r�YnX|jd�y!|j	d	d	�|jd
�Wntk
r"YnX|jd�y!|j	d	d	�|j
d�Wntk
reYnX|jd�y|jd|�Wn#tk
r�Yntk
r�YnX|jd
�ttd��$}|j|j
�d|d�WdQXWdQXttd���}y tj|j�|d�}Wn4tk
r^tjjd�rZ|jd�nYn-Xtjjd�s�|jd�n|j�tjjd�r�ttd��}|j|�WdQXnWdQXttd��q}tj|j�|dtj�}d||dd�<|j|dd�d|d�|j�|j�WdQXttd��}|j
�}WdQX|j|d|d�ttd���}tj|j�|dtj�}d||dd�<|j|dd�d|d�|j�ttd��$}|j|j
�d|d�WdQX|jt|jd|�|j�WdQXttd��,}|jttj|j�|dd�WdQXtjdkrttd��A}|jttj|j�|dtjdtjdtj�WdQXtjttdd	�B}ttd��[}tj|j�|d|�}|jt|jd�|jt|j
d	�|j�WdQXndS)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�protZ	PROT_EXECsabcdef)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:ZstuffrJrrr�test_access_parameterzs�!!










 

!
!

+	zMmapTests.test_access_parametercCs|jttjdd�dS)Nri���)r+rr)rrrr�test_bad_file_desc�szMmapTests.test_bad_file_desccCs�ttd��H}d}t|�}|j|�|j�tj|j�|�}WdQXx�t|d�D]s}xjt||d�D]U}|||�}|j|j	|�|j	|��|j|j	|d�d�q�WqjW|j
�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|�}|j|�|j�tj|j�|�}|j�|j|j	d�d�|j|j	d�d�|j|j	ddd	�d�|j|j	dd�d�|j|j	ddd
�d�|j|j	ddd�d�dS)
Nzwb+sone two onessonersones�rrrrrYr)
r rr*r!r#rr$r%r(r))rr9r]r^r:rrr�
test_find_end
s


zMmapTests.test_find_endcCsttd�}d}t|�}|j|�|j�tj|j�|�}|j�|j|j	d�d�|j|j	d�d�|j|j	ddd	�d�|j|j	ddd
�d�|j|j	ddd�d�|j|j	ddd�d
�dS)Nzwb+sone two onessonerasone rrrrrYrrYr)
r rr*r!r#rr$r%r(�rfind)rr9r]r^r:rrr�
test_rfinds


zMmapTests.test_rfindcCs|ttd�}|jdd�|j�ttd�}tj|j�ddtj�}|j�|j�|j�dS)	Nzwb+r�rArrBii)r rr!r%rr$rK)rr9�mfrrr�test_double_close1s
!

zMmapTests.test_double_close�statzneeds os.stat()cCs�ttd�}|jdd�|j�ttd�}tj|j�d�}|jt|�d	d�|j|jd
�dd�|j�|j�dS)Nzwb+rre�mzrb+rz Map size should equal file size.iiii)	r rr!r%rr$r(r*rN)rr9rfrrr�test_entire_file>s

zMmapTests.test_entire_filecCs�ttd��}|jd
d�WdQXttd��M}tj|j�ddddtj��}|jt|jd	�WdQXWdQXdS)Nr@irrirr�offsetrBi�8i)	r rr!rr$rKr+r,r-)rr9rfrrr�test_length_0_offsetMs
*zMmapTests.test_length_0_offsetcCsjttd��}|jdd�WdQXttd��,}|jttj|j�ddd�WdQXdS)Nr@i��rizw+brrki�)r rr!r+r5rr$)rr9rrr�test_length_0_large_offsetZs
z$MmapTests.test_length_0_large_offsetcCs�ttd�}|jd�|j�tj|j�d�}|jddd�|j|dd�dd�|j�|j�d}x�t	t
|��D]�}x�t	t
|��D]�}x�t	t
|�t||��D]�}|d|�||||�|||d�}tjdt
|��}||dd�<|j|||�|j|dd�|�|j�q�Wq�Wq�Wtjd
d
�}dddd	d
g}	xRtj
|	|	|	�D];\}
}}y|j|
||�Wq�tk
r�Yq�Xq�Wdddddd d"g}	x3|	D]+\}
}}|jt|j|
||�qW|j�tjd#d	�}|jt|jddd�|jt|jd	dd	�|jt|jdd	d	�|jddd	�|jddd�dS)$Nzwb+s
ABCDEabcder?�rs
ABCDEABCDEz'Map move should have duplicated front 5s
0123456789r�drrri����rrrr)rrrrr)rrrrr)rrrrr)rrrr)rrrr)rrrr)rrrr)r rr!r#rr$Zmover(r%r\r*�max�	itertools�productr5r+)rr9rfr]�dest�src�countZexpectedr:Zoffsets�sourcer8rrr�	test_moveesH



&4%
	 
zMmapTests.test_movecCs�tjdt�}x+tt�D]}|j||dd�qWx<tt�D].}|d@}|||<|j|||�qMWdS)Nrrz+anonymously mmap'ed contents should be zero�r)rr"r\r()rr:�x�brrr�test_anonymous�s

zMmapTests.test_anonymouscCs�tjdd�}|j|j�|jttd���|jd�|j|j�ttd���|jd�|j|j�ttdd���|jd�|j|j�d�|jd�|j|jd�ttdd���|jd�|j|jd
�ttdd���|jd�|j|jd�ttdd���|jd
�|j|jd�ttd
d���dS)Nrrerra�rrGrnr�	rrrrYi���)	r�
addCleanupr%r!�bytesr\r3r(rN)rr:rrr�
test_read_all�s"
"
%

(
(
(
zMmapTests.test_read_allcCsqtjdd�}|j|j�|jt|jd�|jt|jd�|jt|jdddg�dS)Nrre�foog@rrr)rr~r%r+rLrN)rr:rrr�test_read_invalid_arg�s
zMmapTests.test_read_invalid_argc
Cs�tttd���}tjd	t|��}||dd�<|j|dd�|�d}xd|D]\}xS|D]K}xB|dd�D]0}|j||||�||||��q�WqtWqgWdS)N�rrr��,r�rrrY�������)
rNrrr�r�rrYr�r�)r�reversedr\rr*r()r�sr:�indicesr<�stop�steprrr�test_extended_getslice�s

z MmapTests.test_extended_getslicec	
Cstttd���}tjd	t|��}d}x�|D]�}x�|D]�}x�|dd�D]�}||dd�<|j|dd�|�t|�}||||�}tt|��}|||||�<|||||�<|j|dd�t|��qaWqJWq=WdS)Nr�rrrr��,rr�rrrY�������)
rNrrr�r�rrYr�r�)rr�r\rr*r(�list)	rr�r:r�r<r�r��Lr]rrr�test_extended_set_del_slice�s

z%MmapTests.test_extended_set_del_slicecCsS|jd|�|jd�|jd|d�|j�tj|j�d�S)Nssfoorr)r!r#rr$)rr9�halfsizerrr�make_mmap_file�s


zMmapTests.make_mmap_filecCs`ttd�}|j�ttd��2}|jtdtj|j�ddtj�WdQXdS)Nzw+brzcannot mmap an empty filerrB)r rr%ZassertRaisesRegexr5rr$rK)rr9rrr�test_empty_file�s
	zMmapTests.test_empty_filecCsBttd�}z�tj}|j||�}|j�|j�|d}ttd�}xwdd
dgD]f}y2tj|j�|d|�}|jdd�Wntt	t
fk
r�YqjX|jdd�qjW|j�ttd�}tj|j�||d|�}|j|dd�d�|j�y|jd	�Wntk
rXYn�X|jt
|�d	�|jt|jd
d�|j|dd�d�ttd�}|jdd�|j|j�|d	�|j�|j|j�|d	�|j�Wd|j�ytjt�Wntk
r<YnXXdS)Nzw+brzr+brrkrrsfooiirrYr)r rrZALLOCATIONGRANULARITYr�r%r$r(r5rL�
OverflowErrorr6r7r*r+r3r4r8r
rr)rr9r�r:rVrkrrr�test_offset�sL	



"




zMmapTests.test_offsetcCs'Gdd�dtj�}|t�dS)Nc@seZdZdd�ZdS)z*MmapTests.test_subclass.<locals>.anon_mmapc_stjj|d||�S)Nrr)r�__new__)�klass�args�kwargsrrrr�-sz2MmapTests.test_subclass.<locals>.anon_mmap.__new__N)�__name__�
__module__�__qualname__r�rrrr�	anon_mmap,sr�)rr")rr�rrr�
test_subclass+szMmapTests.test_subclassrTzneeds mmap.PROT_READcCs�d}ttd��}|jd|�WdQXttd�}tj|j�|dtj�}|jt|jd�|j�dS)Nr?r@rArrJr�)	r rr!rr$rTr+rLr%)rrVrWr9r:rrr�test_prot_readonly1s!zMmapTests.test_prot_readonlycCs|jtjt�dS)N)�assertIsr�errorr)rrrr�
test_error;szMmapTests.test_errorcCs.d}ttd��}|jdt|��WdQXttd�}tj|j�t|��}|j�x[tt|��D]G}|j|j	�|�|j
||�|j|j	�|d�qW|jt|j
d
�|j|dd�|�|j
d�xdtt|��D]P}|j|j	�|�|j|j�||�|j|j	�|d�qW|jt|j�|j
d�|j|jd�d�|j|j	�d	�|j
d�|jd
�|j|j	�d	�|j|dd�d�|j
d�|jt|jd
�dS)Ns
0123456789r@r[zr+brrrs345rsbars
012bar6789ra�x)r rr!r*rr$r%r\r(r4rMr+r5r3�	read_byterN)rr]rWr9r:�irrr�test_io_methods>s6





zMmapTests.test_io_methodscCsuxndD]f}tjdd�}|j|�|j|d|�|jd�|j|j�|�|j�qWdS)N���rxrr)r�r�rxr)rrMr(r3r�r%)rrzr:rrr�test_non_ascii_byte_s


zMmapTests.test_non_ascii_byte�ntzrequires WindowscCsXd}d}tjdt|�dd�}||dd�<tjdt|�dd�}||dd�<|j|dd�|�|j|dd�|�|j�|j�tjd	t|�dd�}||dd�<tjd
t|�dd�}||dd�<|j|dd�|�|j|dd�|�|j�|j�dS)Ns
0123456789s
abcdefghijr�tagnamer�Zboorrrr)rr*r(r%)rZdata1Zdata2�m1�m2rrr�test_tagnamehs$


zMmapTests.test_tagnamecCsdtjdd�}d}tjddd|�}|jtj|�tj|�t|�d�dS)Nrror�r�rr)rr(rO�	getsizeofr*)rr�r�r�rrr�test_sizeof�s
zMmapTests.test_sizeofcCs�tjdddd�}y$tjdddd�dd�WnYnX|j�ttd��}|jd
�WdQXttd	�}tj|j�d
�}|j�y|jd
�WnYnXy|dd�WnYnX|j�dS)Nri�r�r�i�r@r[r?zr+brrrs
xxxxxxxxxx)rr%r rr!r$r6)rr:rWr9rrr�test_crasher_on_windows�s($

z!MmapTests.test_crasher_on_windowscCsPtj�}z2|jt��tj|j�d�}WdQXWd|j�XdS)Nr?)�socketr+rrr$r%)rr�r:rrr�test_invalid_descriptor�s
"z!MmapTests.test_invalid_descriptorc	Cs?tjdd��}|j|j�WdQX|j|j�dS)Nrr?r)rZassertFalse�closed�
assertTrue)rr:rrr�test_context_manager�szMmapTests.test_context_managercCsf|jt��(}tjdd��
}t�WdQXWdQX|j|jtd�|j|jd�dS)Nrr?z)wrong exception raised in context managerzcontext manager failedr)r+�	ExceptionrrZassertIsInstanceZ	exceptionr�r�)r�excr:rrr�test_context_manager_exception�sz(MmapTests.test_context_manager_exceptioncCsUtjdd�}tj|�}|j|�|�~t�|j|�d�dS)Nrrer)r�weakref�refr�r	)rZmm�wrrrr�test_weakref�szMmapTests.test_weakrefN)+r�r�r�rrr>rXrZr`rbrdrg�unittest�
skipUnless�hasattrr
rjrlrmrwr{r�r�r�r�r�r�r�r�rr�r�r�r�rSr�r
r�r�r�r�r�r�rrrrrsD^}
''
'1	9'
!	'*''	rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	j
eje
kd
�dd��Ze	j
eje
kd
�dd��ZdS)�LargeMmapTestscCstt�dS)N)rr)rrrrr�szLargeMmapTests.setUpcCstt�dS)N)rr)rrrrr�szLargeMmapTests.tearDowncCs�tjdd�dks(tjdkrBtddtd��nttd�}y(|j|�|j|�|j�WnPt	t
fk
r�y|j�Wnt	t
fk
r�YnXtj
d��YnX|S)	NrrE�darwinZ	largefilez-test requires %s bytes and a long time to runlzw+bz*filesystem does not have largefile support)rOrPrr&r rr3r!r#rr�r%r�ZSkipTest)rZ
num_zeroes�tailr9rrr�_make_test_file�s(

zLargeMmapTests._make_test_filecCsc|jdd��K}tj|j�ddddtj��}|j|dd�WdQXWdQXdS)	Nl��� rrklrBi���� )r�rr$rKr()rr9r:rrr�test_large_offset�s*z LargeMmapTests.test_large_offsetcCs�|jdd���}tjdkr�|jt��$tj|j�ddtj�WdQX|jt��$tj|j�ddtj�WdQXntj|j�ddtj��}|j	|j
�d�WdQXWdQXdS)Nl��r�lrBri)r�rO�maxsizer+r�rr$rKr5r(r8)rr9r:rrr�test_large_filesize�s%($z"LargeMmapTests.test_large_filesizecCs�d}|t|�d}|t|�}|j||��K}tj|j�ddtj��!}|j|||�|�WdQXWdQXdS)Ns  DEARdear  rrrB)r*r�rr$rKr()r�boundaryr�r<r=r9r:rrr�_test_around_boundary�s$z$LargeMmapTests._test_around_boundaryz!test cannot run on 32-bit systemscCs|jt�dS)N)r�r)rrrr�test_around_2GB�szLargeMmapTests.test_around_2GBcCs|jt�dS)N)r�r)rrrr�test_around_4GBszLargeMmapTests.test_around_4GBN)r�r�r�rrr�r�r�r�r�r�rOr�rr�r�rrrrr��s'r�cCsttt�dS)N)rrr�rrrr�	test_mainsr��__main__)Ztest.supportrrrrrrrr	r
r�r
r/rqr�rOr�rr"ZTestCaserr�r�r�rrrr�<module>s @	���=