python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_mmap.cpython-312.opt-2.pyc

ΑeddlmZmZmZmZmZmZddlmZddl	m
Z
mZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZedZej,Zde
j.dZddZerej4d	Gd
dej6ZGdd
ej6Zedk(rej>yy))requires_2G_4G
gc_collectcpython_only
is_emscripten)
import_module)TESTFNunlinkNmmappython_
_test_mmapcdjtjtj|}t
d|S)N)k_)joinrandomchoicesstringascii_uppercasetagname_prefix)lengthsuffixs  B/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_mmap.pyrandom_tagnamers3
WWV^^F$:$:fE
FF
Qvh''z.incompatible with Emscripten's mmap emulation.ceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZej6eedddZdZdZ dZ!ej6e"jFdk(dd Z$e%ej6e"jFdk(dd!Z&ej6e"jFdk(dd"Z'ej6e"jFdk(dd#Z(d$Z)d%Z*d&Z+d'Z,d(Z-d)Z.d*Z/d+Z0ej6eej:d,d-d.Z1ej6e"jFdk(dd/Z2ej6e"jFdk(dd0Z3ej6e"jFdk(dd1Z4ej6e"jFdk(dd2Z5d3Z6y4)5	MmapTestsc~tjjtrtjtyyN)ospathexistsr
rselfs rsetUpzMmapTests.setUp"s#
77>>&!IIf"rcV	tjty#t$rYywxYwr!)r"rr
OSErrorr%s rtearDownzMmapTests.tearDown&s%	IIf		s	((c	ttd}	|jdtz|jd|jdtdz
z|j	t
j|j
dtz}|jtt|}|j|jdt|jt|dtz|j|dd|j|ddd|jt|jt||jt|j t|dd|d<d	|tdztdzdz|j|dd|j|ddd
|j|tdz
tdzd
|j	t#j$d|}||j'dnH|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*ddttd}	|j+dd|j|j-d|j|j|j3d|jy#|jwxYw#|jwxYw#t4$rYFwxYw)Nzbw+foors3bars3sfoobars	[A-Za-z]+zregex match on mmap failed!*rb)openr
writePAGESIZEflushrfilenoclosestrtypeassertEqualfindlenassertRaises
IndexError__getitem____setitem__researchfailspanseektell
ValueErrorresizesizeSystemError)r&fmtpmatchstartendrs        r
test_basiczMmapTests.test_basic,s|
	
GGE8O$
GGFO
GGEHQJ')
GGI		!((*a(l3A
GGIa\2Q8,1q!1Q+	
*ammSV<*ammSVUC!(.(A+x{1}%	
1w'1Q*8A:15}E				,*=II34AJE35[FUH-S(Q,/	
q1%	r!2&	q3q6*	
*affb1	
*affa3	
*affs1vgai;	,
HHSM
SVS)j!&&#q9VT"A
q!  3/	QVVXs+		_
GGIX	%	
		s*A?Q	7Q32Q	QQ03	Q?>Q?c

d}ttd5}|jd|zdddttd5}tj|j	|tj
}|j
|ddd|zd	d|z|dd|jd	d|d	<|jd	|jd	d	|jd
|jd	|jd	d	|jd|jd	|jd|z|jd
ttd5}|j
|jd|zdddddddttd5}	tj|j	|dz}tjj!ds|jd|j#tjj!dr*ttd5}|j'|ddddddttd5}tj|j	|tj(}d|z|dd|j
|ddd|zd|j+|j#dddttd5}|j}ddd|j
d|zdttd5}tj|j	|tj,}d|z|dd|j
|ddd|zd|j+ttd5}|j
|jd|zdddd|j/t|jd|z|j#dddttd5}|j/t$tj|j	|ddddt0j2dk(r0ttd5}|j/t$tj|j	|tj4tj6tj(dddtj6t9tdd	z}ttd5}	tj|j	||}|j/t|jd|j/t|jd	|j#dddyy#1swYxYw#t$rYwxYw#t$rYwxYw#t$rYwxYw#t$rYwxYw#t$rYt$rYwxYw#1swYxYw#1swYxYw#t$$r4tjj!dr|jdY_wxYw#1swY$xYw#1swY)xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swY_xYw#1swYxYw#t:$rY@wxYw#1swYyxYw)N
wbar9accessz#Readonly memory map data incorrect.bz$Able to write to readonly memory maprabcdr/z"Able to resize readonly memory mapz*Readonly memory map data file was modifiedr+br2winz1Opening 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)flagsprotr_	PROT_EXECrisabcdef)r:r
r;rr>ACCESS_READrBrK	TypeErrorrM
write_byterPrRreadsysplatform
startswithr?rOtruncateACCESS_WRITEr=ACCESS_COPYrEr"nameMAP_PRIVATE	PROT_READgetattrPermissionError)r&mapsizefprSrTstuffris       rtest_access_parameterzMmapTests.test_access_parameters
&$
	#2HHT'\"	#
&$
1	O1		!((*gd6F6F	GAQqT4<1VW
BG|!		@A
B!		@A
Bq		@A
BqT"		@A
@7#		>?fd#
Or  DL!MO
O_1	Oh&%
 	(A

IIahhj'!)4||..u5IIQR	||&&u-&%((AJJw'(#	(*&%
 	A		!((*gd6G6G	HA<AaDQqT4<J
L
GGI
GGI	&$
	1FFHE	WI	K&%
 	A		!((*gd6F6F	GA<AaDQqT4'>S
U
GGIfd#
Yr  DL!WY
Y
i1W9=
GGI	&%
 	TAj$))QXXZQRS	T77gfe$
Q!!*diiW(,(8(8'+~~d>O>O"Q
Q>>GD+q$AADfe$	
		!((*gD	AA
%%i)D%%iqAGGI	
	
W	#	#











O
O_1	O1	On
R
<<**51IIPQ

R((#	(	(*				
Y
Y			T	T

Q
Q'	
	
sV.AX#V;X#)W.X##W#X#5#W+X#*W;>!X#%XX#$Y=&'X0
A/Y=<Y0Y=.A6Z
<Z;A6Z11%Z$<Z1*7Z>
A#[*[(,&[A[(.V8;	WX#WX#	WX#WX#	W($X#'W((X#+	W84X#7W88X#;	XX#XX#XX#X 	X##X-09Y-)Y=,Y--Y=0Y:	5Y==Z
ZZ!$Z.	)Z11Z;>[[	[%![($[%%[(([1cP|jttjddy)N)rEr)rr%s rtest_bad_file_desczMmapTests.test_bad_file_descs'499b$7rcttd5}d}t|}|j||j	t
j|j
|}dddtdzD]o}t||dzD][}||}|jj||j||j|j|dzd]qjy#1swYxYw)Nwb+saabaacdeefaar2xr6)r:r
rDr;r=rr>rangerBrCr?)r&rSdatanrTrWfinishslices        rtest_tougher_findzMmapTests.test_tougher_finds&%
 	)A2DD	A
GGDM
GGI		!((*a(A
	)1Q3Z	;Eqs+
;UV,  		%0@A  !5r:
;	;
	
		)	)sAC==Dc
ttd5}d}t|}|j||j	t
j|j
|}ddd|jjdd|j|jdd|j|jdddd|j|jddd|j|jdddd|j|jddd	d|j|jtddtdz
|dzD][}t|dz
|dzD]C}d
D]<}j|||}|j|j|||||||f>E]y#1swYsxYw)Nrone two onesoneronesr6r2r)osonstwors)r:r
rDr;r=rr>rBrC	bytearrayr)	r&rSrrrTijpexpecteds	         r
test_find_endzMmapTests.test_find_end"s
&%
 	)A"DD	A
GGDM
GGI		!((*a(A	)	
+!,2.2*A.2.22.3	& 12A6r!tQqS!	KAA2a41%
K=KA#yyAq1H$$QVVAq!_hAq	JK
K	K	)	)sAGGc	tjtjz}tj}d}tj}tddD]d}tjd||dzz||5}tjd||dzz||5}|jdd	ddddddfy#t
$r}t
jd|d}~wwxYw#1swY;xYw#1swYxYw)
Nrzmmap flags unavailableir6r2)rhriisfor)
rrw
MAP_ANONYMOUSr<rxAttributeErrorunittestSkipTestrrC)	r&rhr<	PROT_NONErxerguardfms	         r'test_find_does_not_access_beyond_bufferz1MmapTests.test_find_does_not_access_beyond_buffer9s	E$$t'9'99E}}HIIq$	'A2x1q51!&Y8
';@YYr8q4x#8%*<'?AGGE2&'
'
'	'	E##$<=1D	E
''
'
's<AB93 C,C &C,9	CCC C)%C,,C5	cttd5}d}t|}|j||j	t
j|j
|}ddd|jjdd|j|jdd|j|jdddd|j|jdddd|j|jdd	dd|j|jdd	dd|j|jtddy#1swYxYw)
Nrrrrsone rr6rr2)
r:r
rDr;r=rr>rBrfindr)r&rSrrrTs     r
test_rfindzMmapTests.test_rfindIs 
&%
 	)A"DD	A
GGDM
GGI		!((*a(A	)	
!,)1-B/3B/3B/3B/46!23Q7	)	)sAE%%E/chttd5}|jddzdddttd5}tj|j	dtj
}|j
|j
dddy#1swYwxYw#1swYyxYw)Nrr]r9r^)r:r
r;rr>rlr?r&rSmfs   rtest_double_closezMmapTests.test_double_close[s
&%
 	"A
GGEDL!	"&$
	1188:uT5E5EFBHHJHHJ			"	"		sBAB(B%(B1cttd5}|jddzdddttd5}tj|j	d5}|jt
|dd|j|jdddzddddddy#1swYxYw#1swYxYw#1swYyxYw)Nrrmzrb+rz Map size should equal file size.)r:r
r;rr>rBrDrors   rtest_entire_filezMmapTests.test_entire_filees
&%
 	"A
GGEDL!	"&%
 	;A
YYqxxz1
%	;)+SWe-OPRWWU^UT\:	;	;	;	"	"	;	;	;	;s/B5%C
#AC$C
5B>C
	C

Ccttd5}|jddzdddttd5}tj|j	ddtj
5}|j
t|jdddddddy#1swYxYw#1swYxYw#1swYyxYw)	Nr\irr9rroffsetr_i8)	r:r
r;rr>rlrErFrGrs   rtest_length_0_offsetzMmapTests.test_length_0_offsetos
&$
	(1
GGY$&'	(&$
	E1188:qt?O?OP
ETV!!*bnneD
E	E	E	(	(
E
E	E	Es.B'6B?4"B3B?'B03B<	8B??Cc,ttd5}|jddzdddttd5}|jtt
j
|j
dddddy#1swYYxYw#1swYyxYw)Nr\irw+brir)r:r
r;rErOrr>r&rSs  rtest_length_0_large_offsetz$MmapTests.test_length_0_large_offset{s&$
	#1
GGFTM"	#&%
 	1Aj$))QXXZ%/

1	1	1	#	#	1	1sA>7B
>B
Bc	pttd5}|jd|jtj	|jd}|j
ddd|j|dddd|jdddd}tt|D]}tt|D]}tt|t||z
D]u}|d|||||zz|||zdz}tj	d	t|}||dd|j
||||j|dd||jwtj	d	d
}gd}	tj|	|	|	D]\}
}}	|j
|
||gd}	|	D])\}
}}|jt|j|
||+|jtj	d	d
}|jt|jddd|jt|jd
dd
|jt|jdd
d
|j
ddd
|j
dddy#1swY
xYw#t$rYwxYw)Nrs
ABCDEabcder[rs
ABCDEABCDEz'Map move should have duplicated front 5
0123456789r6d)ir6rr2r))r6r6r6)r6r6r)r6rr6)rr6r6)r6rr)rr6r)rrr6r2r/)r:r
r;r=rr>moverBr?rrDmax	itertoolsproductrOrE)r&rSrrdestsrccountrrToffsetssourcerQs            r	test_movezMmapTests.test_movesr
&%
 	A
GGM"
GGI188:r*BGGAq!RUM3\]HHJ	#d)$	DSY'
"3t9s4~#=>E#ET{T#c%i-@@4U
CTTH		"c$i0AAaDFF4e,$$QqT84GGI

	
IIb#'"+"3"3GWg"N	FD$
vtT*	7")	FFD$j!&&&$E	F	
	IIb!*affaA6*affaA6*affaA6	q!Q	q!QW		8

sA?JJ(J%(	J54J5ctjdt}ttD]}|j||ddttD]!}|dz}|||<|j|||#y)Nr6rz+anonymously mmap'ed contents should be zero)rr<rrB)r&rTxbs    rtest_anonymouszMmapTests.test_anonymouss|IIb(#x	LAQqT1J
L	Lx	&ADAAaDQqT1%	&rc	Dtjdd}|j|j|jt	td|j
d|j|jt	td|j
d|j|jt	tdd|j
d|j|jd|j
d|j|jdt	tdd|j
d|j|jdt	tdd|j
d|j|jd	t	tdd|j
d
|j|jdt	td
dy)Nr6rrrr.rfrr	i)	r
addCleanupr?r;bytesrrMrBror&rTs  r
test_read_allzMmapTests.test_read_allshIIb" 	
eBi !	q	5r#34	q	5q"#67	r
3'	q	uU1b\':;	q	U5B<%89	q	U5B<%89	q	eE!RL&9:rc0tjdd}|j|j|jt|j
d|jt|j
d|jt|j
gdy)Nr6rfoog@)r2r/r.)rrr?rErmrors  rtest_read_invalid_argzMmapTests.test_read_invalid_argsdIIb" )QVVU3)QVVS1)QVVY7rcRtttd}tjdt	|}||dd|j|dd|ddddddtjddd	d
f}|D]1}|D]*}|ddD] }|j||||||||",3yNr6rr2r.i,rii)rreversedrrrDrBrpmaxsize)r&srTindicesrWstopsteps       rtest_extended_getslicez MmapTests.test_extended_getslices(5:&'IIb#a&!!1q!dAq"c3;;BTJ	9E
9#ABK9D$$QuT$%7%&uT$%799
9	9rctttd}tjdt	|}ddddddt
jddd	d
f}|D]}|D]{}|ddD]q}||dd|j|dd|t|}||||}tt|}|||||<|||||<|j|ddt|s}yr)	rrrrrDrprrBlist)	r&rrTrrWrrLrs	         rtest_extended_set_del_slicez%MmapTests.test_extended_set_del_slices(5:&'IIb#a&!dAq"c3;;BTJ
	5E
5#ABK
5DAaD$$QqT1-QAU4_-D $0D)-AeDo&)-AeDo&$$QqT584
5
5
	5rc|jd|z|jd|jd|dz
z|jtj|jdS)Nr,r-r.r)r;r=rr>)r&rShalfsizes   rmake_mmap_filezMmapTests.make_mmap_filesT	!"		(Q,'(	
yy!((*a((rc	ttd}|jttd5}|jtdt
j
|j
dt
jdddy#1swYyxYw)Nrr9zcannot mmap an empty filerr^)r:r
r?assertRaisesRegexrOrr>rlrs  rtest_empty_filezMmapTests.test_empty_filesj&% 		
&$
	<1"":#>#'99ahhj!*.*:*:
#
<	<	<	<sABB	cnttd}	tj}|j	||}|j|j|dz}ttd}dD]M}	tj|j
||}|jdd|jddO|jttd}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&ty#tttf$rYwxYw#t"$rYawxYw#t($rYywxYw#|j	t%j&tw#t($rYwwxYwxYw)
Nrr/rc)rr6Nrrr2r.r-r7r8r9)r:r
rALLOCATIONGRANULARITYrr?r>rBrOrm
OverflowErrorrPrDrErMrNrQrRr"rr))r&rSrrTr{rs      rtest_offsetzMmapTests.test_offsets?&% 4	11H##Q1A
GGJ
GGJlGVU#A(
++		!((*gf	EA$$Q*$$Q*
+
GGIVU#A		!((*g&8	JAQqVV,
GGI
;
  Q-!!*affc1=  1Q0&q!  8c>:	  8c>:
GGI
GGI
		&!K#I}=

.


GGI
		&!

sAI9/8I'BI9*I;CI9&I*II9II9	I'$I9&I''I9*	I65I69J4J%$J4%	J1.J40J11J4cNGddtj}|ty)NceZdZdZy)*MmapTests.test_subclass.<locals>.anon_mmapcJtjj|dg|i|S)Nr6)r__new__)klassargskwargss   rrz2MmapTests.test_subclass.<locals>.anon_mmap.__new__Ks#yy((DTDVDDrN)__name__
__module____qualname__rrr	anon_mmaprJs
Err)rr<)r&rs  r
test_subclasszMmapTests.test_subclassIs	E			E	(rrxzneeds mmap.PROT_READcnd}ttd5}|jd|zdddttd5}tj|j	|tj
}|j
t|jddddy#1swYxxYw#1swYyxYw)Nr[r\r]r9rkr)r:r
r;rr>rxrErm)r&r{r|rSrTs     rtest_prot_readonlyzMmapTests.test_prot_readonlyOs
&$
	#2HHT'\"	#
&$
	91		!((*gDNN	CAi%8	9	9	#	#	9	9sBAB+B(+B4cL|jtjtyr!)assertIsrerrorr)r%s r
test_errorzMmapTests.test_errorXs

djj'*rcd}ttd5}|jdt|zdddttd5}tj	|jt|}dddt
t|D]Y}|jj||j|||j|j|dz[|jtjd|j|dd||jdt
t|D]h}|j|j||j|j|||j|j|dzj|jt|j|jd|j|jdd	|j|jd
|jd|jd|j|jd
|j|ddd|jtd
|j|jd|j|ddd|jt|jdy#1swYxYw#1swYxYw)Nrr\rrcr2xrr.s345r4r1s
012bar6789sbazrs
012barbaz9sba)r:r
r;rDrr>rrBrNrnrErOrM	read_byteror)r&rr|rSrTrs      rtest_io_methodszMmapTests.test_io_methods[sJ
&$
	%2HHT#d)^$	%
&%
 	1A		!((*c$i0A	1s4y!	,AQVVXq)
LLa!QVVXqs+	,	
*allG<1t$	q	s4y!	,AQVVXq)Q[[]DG4QVVXqs+	,	
*akk2	q	F+1%	q		1%1}-		&!"1%1}-*aggu5=	%	%	1	1sK/	.K</K9<LcdD]}tjdd}|j||j|d||jd|j|j	||jy)N)rr6r2r)rrnrBrMrr?)r&rrTs   rtest_non_ascii_bytezMmapTests.test_non_ascii_byte}sj 	A		"a A
LLOQqT1%
FF1IQ[[]A.
GGI
	rntzrequires Windowscd}d}t}t}tjdt||}||ddtjdt||}||dd|j|dd||j|dd||j	|j	tjdt||}||ddtjdt||}||dd|j|dd||j|dd||j	|j	y)Nrs
abcdefghijr6tagname)rrrDrBr?)r&data1data2tagname1tagname2m1m2s       rtest_tagnamezMmapTests.test_tagnames!#!#YYr3u:xY
81
YYr3u:xY
81A&A&



YYr3u:xY
81
YYr3u:xY
81A&A&



rctjdd}t}tjdd|}|jtj|tj|t|zdzy)Nr6rrr2)rrrBrp	getsizeofrD)r&rrrs    rtest_sizeofzMmapTests.test_sizeofscYYr3
 "
YYr3Y
0r*r*S\9A=	?rct}tjdd|}	tjdd|dd|jttd5}|jddddttd}tj|j
d}|j	|jd	|dd|jy#YxYw#1swY}xYw#Y.xYw#Y/xYw)	Nr6rr\s
xxxxxxxxxxrcr)rrr?r:r
r;r>rP)r&rrTr|rSs     rtest_crasher_on_windowsz!MmapTests.test_crasher_on_windowss!"IIb$I0	IIb$I03	
	&$
	2HHW	IIahhj!$			
HHQK	
aD	
	%					s/C&C->C9D&C*-C69C=Dctj}	|jt5tj|j	d}ddd|jy#1swYxYw#|jwxYwNr[)socketrEr)rr>r?)r&rrTs   rtest_invalid_descriptorz!MmapTests.test_invalid_descriptorsd

MMO	""7+
.IIahhj"-
.
GGI
.
.
GGIs"A5%A)A5)A2.A55Bctjdd5}|j|jddd|jjy#1swY%xYw)Nr6r[)rassertFalseclosed
assertTruers  rtest_context_managerzMmapTests.test_context_managersI
YYr2
	'!QXX&	'!	'	'sAA c(|jt5}tjdd5}t#1swYnxYw	dddn#1swYnxYw|j	j
td|j
jdy)Nr6r[z)wrong exception raised in context managerzcontext manager failed)rE	Exceptionrr)assertIsInstance	exceptionr"r!)r&excrTs   rtest_context_manager_exceptionz(MmapTests.test_context_manager_exceptions


y
)	S2r"
a



				
cmmWI	K":;sA
4=	A

Actjdd}tj|}|j||~t	|j|dy)Nr6r)rweakrefrefrr)r&mmwrs   rtest_weakrefzMmapTests.test_weakrefsG
YYr2

[[_

bdB

bdD!rc8tjdd}|j|jdd|j|jdd|j|jdd|j|jd	d
y)Nr6rrrrr2syzr/pythonr4)rrBr;)r&r-s  r0test_write_returning_the_number_of_bytes_writtenz:MmapTests.test_write_returning_the_number_of_bytes_writtenss
YYr2
#*$+%!,),a0rctjdd}|j|j|jd	|j	d|j|jdd|jt|j|jt|jd|jt|jd	y#t
$r|j
dYwxYw)
Nr6i rrzresizing not supportedrr5ra)
rrr?rorPrRskipTestrBrErOrrnr;rs  rtest_resize_past_poszMmapTests.test_resize_past_possIIb$ 	t	4
HHTN	
S)*akk2*allB7*aggv6	4MM23	4sCC65C6ctjdd}|jt5||zddd|jt5|dzdddy#1swY-xYw#1swYyxYw)Nr6rr/)rrErmrs  rtest_concat_repeat_exceptionz&MmapTests.test_concat_repeat_exceptionskIIb"


y
)	
E	


y
)	
E						sAA*A'*A3c`tjdd}|j|j|jd|j	}|j|tjjdr,|jt|jdtdyy)Nr6rr1linuxr2)rrr?r;r=assertIsNonerprqrrrEr)rD)r&r-results   rtest_flush_return_valuez!MmapTests.test_flush_return_values~YYr2
!
&!<<""7+
grxxC	NC,rc
Vtjd}tjd}d}td|D}t||D]\}}d|z}||z
}d}	d|dz|d	z|d
zf}
t	t
d5}|j
||jtj|	|
D]L\}}
tt|}tj|j|||5}|j|
|jt|}|j!||j#|j%d
||j#|j%dt'||j#|j%dt'|
|j#|j%dt'|ddd|jt}|j!|O	dddy#1swYDxYw#1swYxYw)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>)2rri@Bic3jK|]+}|dztjztjz-yw)r/N)rr).0r{s  r	<genexpr>z&MmapTests.test_repr.<locals>.<genexpr>s7N9@!A)C)CC445Ns13r])ACCESS_DEFAULTrlrurtrr[rrfr)r_rr_rposr)rIcompiletuplezipr:r
r;r=rrryrr>rMrVreprassertIsNotNonerBgroupr@)r&open_mmap_repr_patclosed_mmap_repr_patmapsizesrrr{rraccesses	positionsr|r_rDaccintr-rVs                 r	test_reprzMmapTests.test_reprsZZ
'( "zz*DE:NDLNN"7H5	0OFG'>Dv%F7HFBJ	619=Ife$
0
#,#4#4Xy#I0KFC$T62F299;#)*0*0#2
M68 2 8 8b B,,U3((X)>G((X)>FL((U);SXF((X)>FL
M166tBx@E((/0
0
0
	0
M
M
0
0s&=A6H3CH	6HH
HH(	madvisez
needs madvisecdtz}tjd|}|jtd5|j	tj
|ddd|jtd5|j	tj
dddd|jtd5|j	tj
ddddd|jtd5|j	tj
ttjddd|j|j	tj
d|j|j	tj
td|j|j	tj
t|d|j|j	tj
ddd|j|j	tj
d|dy#1swYxYw#1swYxYw#1swYqxYw#1swY,xYw)Nr/r6zmadvise start out of boundszmadvise length invalidrzmadvise length too large)
r<rrrOrRMADV_NORMALrrprrB)r&rQrTs   rtest_madvisezMmapTests.test_madvise5s8|IIb$

#
#J0M
N	.
IId&&-	.

#
#J0M
N	,
IId&&+	,

#
#J0H
I	/
IId&&2.	/

#
#M3M
N	?
IId&&#++>	?4#3#34d;4#3#3X>E4#3#3XtDdK4#3#3Q:DA4#3#3Q=tD	.	.	,	,	/	/	?	?s/!H+5!H84"I44I+H58IIIc	t}d|z}tdt|D}tjd|}||dd|j	||jt
|||j|d||d|y)Nr/c3FK|]}tjdywrNrgetrandbitsrArs  rrBzCMmapTests.test_resize_up_when_mapped_to_pagefile.<locals>.<genexpr>OFqV''*F!r6r<rrrrPrBrDr&
start_sizenew_sizerrTs     r&test_resize_up_when_mapped_to_pagefilez0MmapTests.test_resize_up_when_mapped_to_pagefileHs	
z>FE*4EFFIIb*%!	Q*;Jkz):;rc	t}|dz}tdt|D}tjd|}||dd|j	||jt
|||j|d||d|y)Nr/c3FK|]}tjdywrXrYr[s  rrBzEMmapTests.test_resize_down_when_mapped_to_pagefile.<locals>.<genexpr>^r\r]r6r^r_s     r(test_resize_down_when_mapped_to_pagefilez2MmapTests.test_resize_down_when_mapped_to_pagefileWs	
?FE*4EFFIIb*%!	Q*9HtIX7rc*	dtz}t}ttd}|j|	tj	|j|}tj	|j|}|j
t5|j|ddd|j
t5|j|ddd|j|j||j|j||jtj|jj||jy#1swYxYw#1swYxYw#|jwxYw)Nr/r)r<r:r
rsrr>rEr)rPr?rBrQr"statst_size)r&r`reduced_sizerSrrs      r+test_resize_fails_if_mapping_held_elsewherez5MmapTests.test_resize_fails_if_mapping_held_elsewherefs#	\
	

:	188:z2B188:z2B""7+
(		,'
(""7+
(		,'
(HHJIIl#RWWY5RWWQXXZ088,G
GGI
(
(
(
(
GGIs=AFE("F?E4BF(E1-F4E=9FFc	dtz}t}t}d}tdt|D}tj	d||}tj	d||}||d||j|d|||j
t5|j|ddd|j|j||j|d|||j|d||y#1swYTxYw)Nr/rc3FK|]}tjdywrXrYr[s  rrBzUMmapTests.test_resize_succeeds_with_error_for_second_named_mapping.<locals>.<genexpr>sGqV''*Gr]r6r)
r<rrrrrBrEr)rPrQ)r&r`rirdata_lengthrrrs        r8test_resize_succeeds_with_error_for_second_named_mappingzBMmapTests.test_resize_succeeds_with_error_for_second_named_mapping~s	\
!#GE+4FGG
YYr:wY
7
YYr:wY
7<KL[)40


w
'	$IIl#	$J/L[)40L[)40		$	$sC<<Dc			Gdd}tjtjtjtjg}tjtjtjg}|D]}||5\}}|jtd5||dddddd||5\}}|jtd5||ddddddd||5\}}|jtd5||dddddddd||5\}}|jtd5|d|ddddddd||5\}}|jtd5|j|dddddd||5\}}|jtd5|jdd|dddddd|D]T}||5\}}|jtd5d	||ddddddd||5\}}|jtd5d
||dd<dddddd||5\}}|jtd5d
|d|d<dddddd||5\}}|jtd5|jdd|dddddd||5\}}|jtd5|j|ddddddWy#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxxYw#1swY}xYw#1swYRxYw#1swYWxYw#1swY#xYw#1swY(xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYzxYw#1swYxYw#1swYIxYw#1swYNxYw#1swYxYw#1swYtxYw)Nc eZdZddZdZdZy)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	$rcRttd|_|jjt	j
d|jj
tj|jjd|jGfdd}|fS)Nrrr^ceZdZfdZy)`MmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__enter__.<locals>.Xc&jyr)r?rs r	__index__zjMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__enter__.<locals>.X.__index__s	!rN)rrrrx)rTsrXrvs"rry)
r:r
rSr;r	randbytesr=rr>r_)r&ryrTs  @r	__enter__zUMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__enter__spfe,V--c23IIdffmmos4;;IG""
1v
rc8|jjyr!)rSr?)r&exc_type	exc_value	tracebacks    r__exit__zTMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__exit__sr)returnN)rrrrsr{rrrrMmapClosedByIntContextrqs
%

rrzmmap closed or invalidr/r1r2s
1111111111s11111)rrlrtrurCrrOrorCrrn)r&rread_access_modeswrite_access_modesr_rTrys       r!test_mmap_closed_by_int_scenariosz+MmapTests.test_mmap_closed_by_int_scenariossg	
		,
	


(	)F'/
6Aq++J8PQacF
(/
 6Aq++J8PQ acBK 
 (/
$6Aq++J8PQ$acBlO$
$(/
%6Aq++J8PQ%b13m$%
%(/
 6Aq++J8PQ FF13K 
 (/
)6Aq++J8PQ)FF4AC()
)
)+	)2)	&F'/
,6Aq++J8PQ,"+AacBK,
,(/
/6Aq++J8PQ/&.AacBlO/
/(/
06Aq++J8PQ0'/Ab13m$0
0(/
&6Aq++J8PQ&FF1a%&
&(/
&6Aq++J8PQ&LL%&
&
&#	&/


  
 
 
$$
$
$
%%
%
%
  
 
 
))
)
),,
,
,
//
/
/
00
0
0
&&
&
&
&&
&
&sM8!M+,M8NN)NN,N)N,ON9)OO O2O 
O:$O-=O:P8PPP.5P!P.Q5P;QQ"5QQ"&Q<Q/Q<+M50M88N	N
NN	N)$N,,N6	9O>OO	OO  O*	-O72O::P	PPP	!P+&P..P8	;QQQ	QQ""Q,	/Q94Q<<R	N)7rrrr'r*rYr~rrrrrrrrrrrrrrrrrrrr
skipUnlesshasattrrrrrrr"rvrrrrrr#r)r/r2r6r8r=rQrUrbrerjrnrrrrrr s\|@D8$K.
' 8$;
E1-^
&;*895()<7rX{35KL9M9+ 6DXD*<=>6XD*<=?>?XD*<=>4XD*<=	>	"
<"17D"0HXI6HEIE$XD*<=<><XD*<=8>8XD*<=>.XD*<=1>1(T&rrceZdZdZdZdZdZdZdZe	jeje
kDddZe	jeje
kDdd	Zy
)LargeMmapTestsc"ttyr!rr
r%s rr'zLargeMmapTests.setUp	vrc"ttyr!rr%s rr*zLargeMmapTests.tearDownrrctjdddk(stjdk(rtddtdzt	t
d}	|j
||j||j|S#tttf$r=	|jn#ttf$rYnwxYwtjdwxYw)	Nr.rddarwin	largefilez-test requires %s bytes and a long time to runrz*filesystem does not have largefile support)rprqrr@r:r
rMr;r=r)rrOr?rr)r&
num_zeroestailrSs    r_make_test_filezLargeMmapTests._make_test_files<<u$(@[?#kBRR
T		R
FF:
GGDM
GGI

3	R
	]+

##$PQQ	Rs02BCB-,C-B?<C>B??Cc|jdd5}tj|jddtj5}|j	|ddddddddy#1swYxYw#1swYyxYw)Nl rlri )rrr>rlrBr&rSrTs   rtest_large_offsetz LargeMmapTests.test_large_offsetsz

!
!+t
4	3188:qTEUEUV
3Z[  9r2
3	3	3
3
3	3	3s#6A<	A0A<0A9	5A<<Bc|jdd5}tjdkr|jt5t
j|j
dt
jddd|jt5t
j|j
dt
jdddt
j|j
dt
j5}|j|jdddddddy#1swYxYw#1swY{xYw#1swY*xYw#1swYyxYw)Nlrrr^rr)rrprrErrr>rlrOrBrQrs   rtest_large_filesizez"LargeMmapTests.test_large_filesizes

!
!+t
4		8{{[(&&}5PIIahhj+d>N>NIOP&&z2FIIahhj!D4D4DIEF188:wt7G7GH
8A  ;7
8		8		8PPFF
8
8		8		8sR)E5D11E5D=<E?!E	 E1D:	6E=E	E	E	EEcPd}|t|dzz
}|t|z}|j||5}tj|jdtj5}|j||||ddddddy#1swYxYw#1swYyxYw)Ns  DEARdear  r/rr^)rDrrr>rlrB)r&boundaryrrWrXrSrTs       r_test_around_boundaryz$LargeMmapTests._test_around_boundarys3t9>)c$i

!
!%
.	5!188:q1A1AB
5a  5t4
5	5	5
5
5	5	5s#5B)B?BB	BB%z!test cannot run on 32-bit systemsc.|jtyr!)rrr%s rtest_around_2GBzLargeMmapTests.test_around_2GB""3'rc.|jtyr!)rrr%s rtest_around_4GBzLargeMmapTests.test_around_4GB!rrN)rrrr'r*rrrrrrrprrrrrrrrrs|"3

85Xs*,OP(Q(Xs*,OP(Q(rr__main__)r[) test.supportrrrrrrtest.support.import_helperr	test.support.os_helperr
rrr"rIrrrrrpr+rr<getpidrrrTestCaserrrmainrrr<module>rs51		



V==9299;-z2(
(

L
MMG&!!G&R:(X&&:(zzHMMOr