2Tm(8SSKJrJrJrJrJrJrJr SSKJ r SSK J r J r SSK Jr SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKr\ "S5r\R6rS\R8"5S3rSS jr\(a\R>"S 5e"S S \R@5r!"S S\R@5r"\#S:Xa\RH"5 gg))requires_2G_4G gc_collect cpython_only is_emscriptenis_apple) import_module)TESTFNunlink)assert_python_okNmmappython_ _test_mmapc|SR[R"[RUS95n[ SU3$)N)k_)joinrandomchoicesstringascii_uppercasetagname_prefix)lengthsuffixs 5/opt/alt/python313/lib64/python3.13/test/test_mmap.pyrandom_tagnamers3 WWV^^F$:$:fE FF Qvh ''z.incompatible with Emscripten's mmap emulation.cb\rSrSrSrSrSrSr\R"\ RS:HS5S5r \R"\ RS:HS5S 5r \R"\ RS:gS 5S 5rS rS rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!\RD"\#"\$S5S 5S!5r%S"r&S#r'S$r(\RD"\ RS:HS%5S&5r)\*\RD"\ RS:HS%5S'55r+\RD"\ RS:HS%5S(5r,\RD"\ RS:HS%5S)5r-S*r.S+r/S,r0S-r1S.r2S/r3S0r4S1r5\RD"\#"\$RHS25S35S45r6\RD"\ RS:HS%5S55r7\RD"\ RS:HS%5S65r8\RD"\ RS:HS%5S75r9\RD"\ RS:HS%5S85r:S9r;\RD"\ RS:HS%5\RD"\#"\$RHS:5S;5S<55r)? MmapTests#c[RR[5(a"[5 ggN)ospathexistsr r selfs rsetUpMmapTests.setUp%s& 77>>& ! ! IIf  "rcZ[R"[5 g![a gf=fr$)r%r r OSErrorr(s rtearDownMmapTests.tearDown)s%  IIf    s  **c [[S5nURS[-5 URS5 URS[S- -5 UR 5 [ R UR 5S[-5nUR5 [[U55nURURS5[5 UR[U5S[-5 URUSS5 URUSSS5 UR[UR[U55 UR[UR [U5S5 SUS'S U[S-[S-S-&URUSS5 URUSSS 5 URU[S - [S -S 5 UR 5 ["R$"SU5nUcUR'S5 OFUR)S5upVXe- nURU[5 URU[S-5 UR+UR-55 URUR/SS5S5 URUR15S5 URUR/SS 5S5 URUR15S5 URUR/SS5[U55 URUR15[U55 URR.S5 URR.S S5 URR.[U5*S - S5 UR5S5 UR[U5S5 URR.SS5 [[S5nUR/SS5 URUR15S5 UR5 URUR75S5 UR5 g!UR5 f=f!UR5 f=f![8a NGf=f)Nzbw+foors3bars3sfoobars [A-Za-z]+zregex match on mmap failed!*rb)openr writePAGESIZEflushrfilenoclosestrtype assertEqualfindlen assertRaises IndexError __getitem__ __setitem__researchfailspan assertTrueseekableseektell ValueErrorresizesize SystemError)r)fmtpmatchstartendrs r test_basicMmapTests.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 4AJE[F   UH -   S(Q, /  % 1q) 1% A+ 2& 1s1v. 3q6* *affb1 *affa3 *affs1vgai; , HHSM   SVS )   j!&&#q 9VT"A q!   3/   QVVXs +  a GGIZ %    s*A?R!S .2R6!R36S SSc jSn[[S5nURSU-5 SSS5 [[S5n[RUR 5U[R S9nUR USSSU-S5 SU-USS&URS5 SUS 'URS5 URS S 5 URS 5 URS5 URS S 5 URS 5 URS5 URS U-5 URS 5 [[S5nUR UR5SU-S5 SSS5 SSS5 [[S5n[RUR 5US-5n[RR!S5(dURS5 UR#5 [RR!S5(a*[[S5nUR'U5 SSS5 SSS5 [[S5n[RUR 5U[R(S9nSU-USS&UR USSSU-S5 UR+5 UR#5 SSS5 [[S5nUR5nSSS5 UR WSU-S5 [[S5n[RUR 5U[R,S9nS U-USS&UR USSS U-S5 UR+5 [[S5nUR UR5SU-S5 SSS5 UR/[URS U-5 UR#5 SSS5 [[S5nUR/[$[RUR 5USS9 SSS5 [0R2S:XGa)[[S5nUR/[$[RUR 5U[R4[R6[R(S9 SSS5 [R6[9[SS 5-n[[S5n[RUR 5XS9nUR/[URS5 UR/[URS 5 UR#5 SSS5 gg!,(df  GN=f![a GN f=f![a GNf=f![a GNf=f![a GNf=f![a GN[a GNf=f!,(df  GN=f!,(df  GN=f![$a9 [RR!S5(aURS5 GNpf=f!,(df  GN5=f!,(df  GN?=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GN=f![:a GNf=f!,(df  g=f)N wbar>accessz#Readonly memory map data incorrect.bz$Able to write to readonly memory maprabcdr4z"Able to resize readonly memory mapz*Readonly memory map data file was modifiedr+br7winz1Opening 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)flagsprotrg PROT_EXECrqsabcdef)r?r r@rrC ACCESS_READrGrP TypeErrorrT write_byterWrYreadsysplatform startswithrDrVtruncate ACCESS_WRITErB ACCESS_COPYrJr%name MAP_PRIVATE PROT_READgetattrPermissionError)r)mapsizefprZr[stuffrqs rtest_access_parameterMmapTests.test_access_parameters &$ 2 HHT'\ " &$ 1 !((*gd6F6F GA   QqT4<1V W BG|! @A B! @A Bq!  @A Bq!  T" @A @7#  >?fd#r  DL!MO$_ h&% A IIahhj'!)4||..u55IIQR ||&&u--&%(AJJw')#!*&% A !((*gd6G6G HAS U GGIfd#r  DL!WY$   i1W9 = GGI!&% A   j$))QXXZQR  S! 77g fe$!!*diiW(,(8(8'+~~d>O>O"Q% >>GD+q$AADfe$ !((*g AA %%i)D%%iqAGGI%$ W            $#_ n R <<**511IIPQ  R)(#! *!  $#! ! %$'%$sV&A X+ V8X+&W +X+=#W X+2#W+X+'W<;!X+%XX+!Z#'X= A9ZZZ5A3Z'Z9?A3[2%[ <[+4[/ A \&\$("\ A\$& V58 WX+WX+ WX+WX+ W($X+'W((X++ W95X+8W99X+< XX+ XX+XX+ X( #X++ X:=?Z<Z?ZZ Z Z Z$' Z69 [ [ [ [,/ [> \ \!\$ \!!\$$ \2ntztrackfd not present on Windowsc Sn[[S5nURSU-5 SSS5 SGHnURUS9 [[S5n[R UR 5USS9nU(aUR 5 UR[U5U5 UR[5nUR5 SSS5 URWRR[R5 UR[5 UR!US -5 SSS5 UR[5 UR!US -5 SSS5 URUR"S5 UR%['S 55 ['S 5US 'UR)5 [[S 5nURUR+S 5S5 SSS5 URUR-5S5 UR/S5 URUR-5S5 URUR15['S 55 SSS5 SSS5 URWR"S5 UR[2R4"[5R6U5 SSS5 GM g!,(df  GN=f!,(df  GN/=f!,(df  GN=f!,(df  GN=f!,(df  GN?=f!,(df  N=f!,(df  N=f!,(df  GMC=f)N@rdre)TF)close_original_fdrkFtrackfdr4XYr>rnsXaYar7rT)r?r r@subTestrrCrDrGrIrJr-rX exceptionerrnoEBADFrVrWclosedrvordrBrwrUrT read_byter%statst_size)r)rXrZrr[err_cms rtest_trackfd_parameter MmapTests.test_trackfd_parametersR &$ 1 GGDI  !, 0AB&%(A188:tUCq,GGI((Q6!..w76FFH8(()9)9)?)?M!..z:HHTAX.;!..z:HHTQY/;((59 SX."3x! !&$/1 ,,QVVAY@0((15q ((15((CA-D)2  40  !8!8$?7CB"- 87;:::0/#DC)(CBsK)M%$M:AM K; AM $L 9M L +A,M "L1 9BM ;MAM%) K8; L M LM  L.)M 1 M;M  M M M" M%% M5 cSn[RSUSS9nUR[5 UR5 SSS5 UR[5 UR US-5 SSS5 UR [U5U5 [S5US'US[S5:XdeSSS5 g!,(df  N=f!,(df  Nf=f!,(df  g=f)Nrr;Frr4ar) rrJr-rXrVrWrGrIrr)rXr[s rtest_trackfd_neg1MmapTests.test_trackfd_neg13s YYr4Y /1""7+,"":.#/   SVT *s8AaDQ43s8# ##0 /++..0 /s:C"CC"C1AC" C C" C C"" C0ztrackfd only fails on WindowscSnUR[5 [RSUSS9 SSS5 UR[5 [RSUSS9 SSS5 g!,(df  NB=f!,(df  g=f)Nrr;TrF)rJrur)r)rXs r$test_no_trackfd_parameter_on_windows.MmapTests.test_no_trackfd_parameter_on_windows?sf   y ) IIb$I -*   y ) IIb$I .* )* ) ) )sA* A;* A8; B cPUR[[RSS5 g)N)rJr-rr(s rtest_bad_file_descMmapTests.test_bad_file_descHs '499b$7rc [[S5nSn[U5nURU5 UR 5 [ R UR 5U5nSSS5 [WS-5Hpn[XSS-5H[nWXVnURWRU5URU55 URURUS-5S5 M] Mr WR5 g!,(df  N=f)Nwb+saabaacdeefaar7xr;) r?r rIr@rBrrCrangerGrHrD)r)rZdatanr[r^finishslices rtest_tougher_findMmapTests.test_tougher_findLs&% A2DD A GGDM GGI !((*a(A !1Q3ZEs+U,   %0@A   !5r:,  ! s AC?? D c [[S5nSn[U5nURU5 UR 5 [ R UR 5U5nSSS5 URWRS5S5 URURS5S5 URURSSS5S5 URURSS5S5 URURSSS5S5 URURSSS 5S5 URUR[S55S5 [W*S- US-5H\n[U*S- US-5HBnS H9nWRXuU5nURURXuU5XXV45 M; MD M^ g!,(df  GNz=f) Nr one two onesoneronesr;r7r)osonstwors) r?r rIr@rBrrCrGrH bytearrayr) r)rZrrr[ijpexpecteds r test_find_endMmapTests.test_find_end^s &% A"DD A GGDM GGI !((*a(A ! + !, 2.2 *A. 2.2 2.3  & 12A6r!tQqS!AA2a41%=A#yyq1H$$QVVA!_hA J>&"! s AG G&c [R[R-n[RnSn[Rn[SS5H[n[RSX&S--XS9n[RSX&S--XS9nURSS 5 SSS5 SSS5 M] g![ an[ R"S5UeSnAff=f!,(df  ND=f!,(df  M=f) Nrzmmap flags unavailableir;r7)rprqisfor) rr MAP_ANONYMOUSrArAttributeErrorunittestSkipTestrrH) r)rprA PROT_NONErerguardfms r'test_find_does_not_access_beyond_buffer1MmapTests.test_find_does_not_access_beyond_bufferus E$$t'9'99E}}HIIq$A2xq51!&8;@YYr84x#8%*rf)r?r r@rrCrtrDr)rZmfs rtest_double_closeMmapTests.test_double_closes} &% A GGEDL !!&$ 1188:uT5E5EFB HHJ HHJ !  sBAB* B'* B8c[[S5nURSS-5 SSS5 [[S5n[RUR 5S5nUR [ U5SS5 UR URS5SS-5 SSS5 SSS5 g!,(df  N=f!,(df  N(=f!,(df  g=f)Nrrmzrb+rz Map size should equal file size.)r?r r@rrCrGrIrwrs rtest_entire_fileMmapTests.test_entire_files &% A GGEDL !!&% A YYqxxz1 %   SWe-O P   RWWU^UT\ :&! ! & %! s/B5%C#AC$C5 C C C C%c[[S5nURSS-5 SSS5 [[S5n[RUR 5SS[R S9nUR [URS5 SSS5 SSS5 g!,(df  N=f!,(df  N(=f!,(df  g=f) Nrdirr>rroffsetrgi8) r?r r@rrCrtrJrKrLrs rtest_length_0_offsetMmapTests.test_length_0_offsets &$ 1 GGY$& ' &$ 1188:qt?O?OPTV!!*bnneDQ  QP s.B$3C1"B5C$ B25 C ?C Cc :[[S5nURSS-5 SSS5 [[S5nUR[[ R UR 5SSS9 SSS5 g!,(df  N[=f!,(df  g=f)Nrdirw+brir)r?r r@rJrVrrCr)rZs rtest_length_0_large_offset$MmapTests.test_length_0_large_offsetsu&$ 1 GGFTM " &% A   j$))QXXZ%/  1!  ! sA;4B ; B  Bc ~[[S5nURS5 UR5 [R UR 5S5nUR SSS5 URUSSSS5 UR5 SSS5 Sn[[U55Hn[[U55Hn[[U5[XE5- 5HqnUSUX5XV--X4U-S-n[R S [U55nX8SS&UR XEU5 URUSSU5 UR5 Ms M M [R S S 5n/S Qn [R"XU 5Hupn UR XU 5 M /S Qn U H(upn UR[UR XU 5 M* UR5 [R S S 5nUR[UR SSS5 UR[UR S SS 5 UR[UR SS S 5 UR SSS 5 UR SSS5 g!,(df  GN=f![a GM%f=f)Nrs ABCDEabcdercrs ABCDEABCDEz'Map move should have duplicated front 5 0123456789r;d)ir;rr7r))r;r;r;)r;r;r)r;rr;)rr;r;)r;rr)rr;r)rrr;r7r4)r?r r@rBrrCmoverGrDrrImax itertoolsproductrVrJ) r)rZrrdestsrccountrr[offsetssourcerXs r test_moveMmapTests.test_moves; &% A GGM " GGI188:r*B GGAq!    RUM3\ ] HHJ!#d)$DSY'"3t9s4~#=>E#ET{Tci-@@4U CTTH "c$i0AaDFF4e,$$QqT84GGI ?(% IIb# '"+"3"3Gg"N F$ vT*#O 7") F$   j!&&& E#*  IIb!  *affaA6 *affaA6 *affaA6 q!Q q!QW! 8  sA?JJ- J*- J<;J<c[RS[5n[[5HnURXSS5 M [[5H nUS-nX1U'URXU5 M" g)Nr;rz+anonymously mmap'ed contents should be zero)rrArrG)r)r[xbs rtest_anonymousMmapTests.test_anonymoussj IIb( #xA   QT1J L!xADAaD   QT1 %!rc D[RSS5nURUR5 UR[ [ S555 UR S5 URUR5[ [ S555 UR S5 URUR5[ [ SS555 UR S5 URUR5S5 UR S5 URURS5[ [ SS555 UR S5 URURS5[ [ SS555 UR S5 URURS 5[ [ SS555 UR S 5 URURS 5[ [ S S555 g) Nr;rrrr3rnrr i) r addCleanuprDr@bytesrrTrGrwr)r[s r test_read_allMmapTests.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:rc0[RSS5nURUR5 UR[UR S5 UR[UR S5 UR[UR /SQ5 g)Nr;rfoog@)r7r4r3)rrrDrJrurwrs rtest_read_invalid_argMmapTests.test_read_invalid_argsd IIb"    )QVVU3 )QVVS1 )QVVY7rc T[[[S555n[RS[ U55nXSS&UR USSU5 SSSSSS[ RSSS S 4 nUH2nUH)nUSSHnUR X$XV2XXV25 M M+ M4 g Nr;rr7r3i,rii)rreversedrrrIrGrxmaxsize)r)sr[indicesr^stopsteps rtest_extended_getslice MmapTests.test_extended_getslices (5:& ' IIb#a& !! 1q!dAq"c3;;BTJE#ABKD$$QT%7%&T%79( rc [[[S555n[RS[ U55nSSSSSS[ R SSS S 4 nUHnUHwnUSSHknXSS&URUSSU5 [U5nXtXV2n[[U55nXXEU2'XXEU2'URUSS[U55 Mm My M gr) rr rrrIrxr rGlist) r)r r[r r^rrLrs rtest_extended_set_del_slice%MmapTests.test_extended_set_del_slice's (5:& ' IIb#a& !dAq"c3;;BTJE#ABKDaD$$QqT1-QA4_-D $0D)-eo&)-eo&$$QqT584( rcURSU-5 URS5 URSUS- -5 UR5 [RUR5S5$)Nr1r2r3r)r@rBrrC)r)rZhalfsizes rmake_mmap_fileMmapTests.make_mmap_file;sT !"  (Q,'(  yy!((*a((rc [[S5nUR5 [[S5nUR[S[ R UR 5S[ RS9 SSS5 g!,(df  g=f)Nrr>zcannot mmap an empty filerrf)r?r rDassertRaisesRegexrVrrCrtrs rtest_empty_fileMmapTests.test_empty_fileCsa &%   &$ 1  " ":#>#'99ahhj!*.*:*: # <  s AA== B cn[[S5n[RnUR X5nUR 5 UR 5 US-n[[S5nSHJn[RUR 5XES9nURSS5 URSS5 ML UR 5 [[S5n[RUR 5XB- US9nURUSSS 5 UR 5 URS 5 UR[U5S 5 UR[URS S5 URUSSS 5 [[S 5nURSS5 URUR5US -5 UR 5 URUR!5US -5 UR 5 UR 5 [$R&"[5 g![[[4a GMf=f!["a Nef=f![(a gf=f!UR 5 [$R&"[5 f![(a ff=f=f) Nrr4rk)rr;Nrrr7r3r2r<r=r>)r?r rALLOCATIONGRANULARITYrrDrCrGrVru OverflowErrorrWrIrJrTrUrXrYr%r r-)r)rZrr[rrs r test_offsetMmapTests.test_offsetLs4 &% 4 11H##Q1A GGJ GGJlGVU#A(+ !((*g EA$$Q*$$Q*) GGIVU#A !((*g&8 JA   QqVV , GGI ;   Q-!!*affc1=  1Q0&q!   8c>:   8c>: GGI GGI  &!K#I}=  .   GGI  &!  sAI7.4H:"BI7#I4CI7I':II7II7 I$!I7#I$$I7' I43I47J4 J$#J4$ J1.J40J11J4cN"SS[R5nU"[5 g)Nc\rSrSrSrSrg)*MmapTests.test_subclass..anon_mmapicL[RR"US/UQ70UD6$)Nr;)r__new__)klassargskwargss rr(2MmapTests.test_subclass..anon_mmap.__new__s#yy((DTDVDDrN)__name__ __module__ __qualname____firstlineno__r(__static_attributes__r-rr anon_mmapr&s Err3)rrA)r)r3s r test_subclassMmapTests.test_subclasss E  E (rrzneeds mmap.PROT_READc|Sn[[S5nURSU-5 SSS5 [[S5n[RUR 5U[R S9nUR [URS5 SSS5 g!,(df  Nz=f!,(df  g=f)Nrcrdrer>rsr)r?r r@rrCrrJru)r)rrrZr[s rtest_prot_readonlyMmapTests.test_prot_readonlys &$ 2 HHT'\ " &$ 1 !((*gDNN CA   i% 8    sBAB- B*- B;cLUR[R[5 gr$)assertIsrerrorr-r(s r test_errorMmapTests.test_errors djj'*rc*Sn[[S5nURS[U5-5 SSS5 [[S5n[R UR 5[U55nSSS5 [ [U55HYnURWR5U5 URX5 URUR5US-5 M[ UR[WRS5 URUSSU5 URS5 [ [U55HhnURUR5U5 URUR5X5 URUR5US-5 Mj UR[UR5 URS5 URURS5S 5 URUR5S 5 URS5 URS 5 URUR5S 5 URUSSS 5 UR[S 55 URUR5S5 URUSSS5 UR[URS5 g!,(df  GN=f!,(df  GN=f)Nrrdrrkr7xrr3s345r9r6s 012bar6789sbazrs 012barbaz9sba)r?r r@rIrrCrrGrUrvrJrVrTrrwr)r)rrrZr[rs rtest_io_methodsMmapTests.test_io_methodss, &$ 2 HHT#d)^ $ &% A !((*c$i0A!s4y!A   QVVXq ) LL !   QVVXqs +" *allG< 1t$ q s4y!A   QVVXq )   Q[[]DG 4   QVVXqs +" *akk2 q  F+ 1% q   1% 1}-  &!" 1% 1}- *aggu5=  sK1 .L1 L LcSHn[RSS5nURU5 URUSU5 URS5 URUR 5U5 UR 5 M g)N)rr;r7r)rrvrGrTrrD)r)rr[s rtest_non_ascii_byteMmapTests.test_non_ascii_bytese A "a A LLO   QqT1 % FF1I   Q[[]A . GGI !rzrequires Windowsc*SnSn[U5[U5:Xde[5n[5n[RS[U5US9nXSS&[RS[U5US9nX&SS&URUSSU5 URUSSU5 UR 5 UR 5 [RS[U5US9nXSS&[RS[U5US9nX&SS&URUSSU5 URUSSU5 UR 5 UR 5 UR [ S5 [RSSSS9 SSS5 g!,(df  g=f)Nrs abcdefghijr;tagnamerIrr7)rIrrrGrDrru)r)data1data2tagname1tagname2m1m2s r test_tagnameMmapTests.test_tagnamesT5zSZ'''!#!#YYr3u:xY 81 YYr3u:xY 81 A& A&    YYr3u:xY 81 YYr3u:xY 81 A& A&     # #Iy 9 IIb!QI ': 9 9s %F Fc[RSS5n[5n[RSSUS9nUR[R"U5[R"U55 g)Nr;rrH)rr assertGreaterrx getsizeof)r)rNrIrOs r test_sizeofMmapTests.test_sizeofsRYYr3  " YYr3Y 0 3==,cmmB.?@rc [5n[RSSUS9n[RSSUS9SS UR5 [[S5nUR S5 SSS5 [[S5n[RUR 5S5nUR5 URS5 USS UR5 g! N=f!,(df  N=f! N3=f! N4=f) Nr;rHrds xxxxxxxxxxrkr)rrrDr?r r@rCrW)r)rIr[rrZs rtest_crasher_on_windows!MmapTests.test_crasher_on_windowss!" IIb$I 0  IIb$I 0 3  &$ 2 HHW    IIahhj! $    HHQK  aD  %       s/C C'8C8 C? C$' C58C<?Dc [R"5nUR[5 [RUR 5S5nSSS5 UR 5 g!,(df  N=f!UR 5 f=fNrc)socketrJr-rrCrD)r)r r[s rtest_invalid_descriptor!MmapTests.test_invalid_descriptors] MMO ""7+IIahhj"-, GGI,+ GGIs"A;%A*A;* A84A;;B c[RSS5nURUR5 SSS5 URWR5 g!,(df  N*=f)Nr;rc)r assertFalserrRrs rtest_context_managerMmapTests.test_context_managersB YYr2 !   QXX & ! s A A%c<UR[5n[RSS5n[e!,(df  O=fSSS5 O!,(df  O=fUR WR [S5 UR WRS5 g)Nr;rcz)wrong exception raised in context managerzcontext manager failed)rJ Exceptionrr-assertIsInstancerrRr)r)excr[s rtest_context_manager_exception(MmapTests.test_context_manager_exceptionsn   y )S2r"a #""* ) ) cmmWI K ":;sA4 A A Ac[RSS5n[R"U5nURU"5U5 A[ 5 URU"5S5 g)Nr;r)rweakrefrefr:r)r)mmwrs r test_weakrefMmapTests.test_weakrefsG YYr2  [[_ bdB   bdD!rc8[RSS5nURURS5S5 URURS5S5 URURS5S5 URURS 5S 5 g) Nr;rrrrr7syzr4pythonr9)rrGr@)r)rns r0test_write_returning_the_number_of_bytes_written:MmapTests.test_write_returning_the_number_of_bytes_written'ss YYr2  #* $+ %!, ),a0rc[RSS5nURUR5 URS5 UR S5 URURS5S5 UR[UR5 UR[URS5 UR[URS 5 g![ a UR S5 Nf=f) Nr;i rYrzresizing not supportedrr:ri) rrrDrwrWrYskipTestrGrJrVrrvr@rs rtest_resize_past_posMmapTests.test_resize_past_pos.s IIb$    t  4 HHTN S) *akk2 *allB7 *aggv6  4 MM2 3 4sCC76C7c[RSS5nUR[5 X- SSS5 UR[5 US- SSS5 g!,(df  N2=f!,(df  g=f)Nr;rr4)rrJrurs rtest_concat_repeat_exception&MmapTests.test_concat_repeat_exception;sW IIb"    y ) E*   y ) E* )* ) ) )sAA. A+. A<cj[RSS5nURUR5 URS5 UR 5nUR U5 [ RRS5(a,UR[URS[S55 gg)Nr;rrs)linuxandroidr7) rrrDr@rB assertIsNonerxryrzrJr-rI)r)rnresults rtest_flush_return_value!MmapTests.test_flush_return_valueBsYYr2  !  &! << " "#7 8 8   grxxC N C 9rc h[R"S5n[R"S5nSn[SU55n[XC5GHupVSU-nXe- nSn SUS-US -US -4n [ [ S 5n U R U5 U R5 [R"X5GHIup[[U 5n[RU R5UUUS 9nURU 5 UR[U55nUR!U5 UR#UR%S 5U 5 UR#UR%S5['U55 UR#UR%S5['U 55 UR#UR%S5['U55 SSS5 UR[W55nUR!U5 GML SSS5 GM g!,(df  NL=f!,(df  GM=f)Nzr\S+), length=(?P\d+), pos=(?P\d+), offset=(?P\d+)>z)2rrXi@Bic3p# UH,nUS-[R-[R-v M. g7f)r4N)rr ).0rs r &MmapTests.test_repr..Xs5NDL!A)C)CC445DLs46re)ACCESS_DEFAULTrtr}r|rrcrrnr)rgrrgrposr)rNcompiletuplezipr?r r@rBrrrrrCrTr]reprassertIsNotNonerGgrouprE)r)open_mmap_repr_patclosed_mmap_repr_patmapsizesrrrrraccesses positionsrrgraccintrnr]s r test_reprMmapTests.test_reprOsZZ '( "zz*DE:NDLNN"75OF'>D%F7HFBJ 619=Ife$ #,#4#4X#IKF$T62F299;#)*0*0#268 2 8 8b B,,U3((X)>G((X)>F L((U);SXF((X)>F L2166tBx@E((/$J%$ 622 %$s&O 4#3#34d; 4#3#3X>E 4#3#3XtDdK 4#3#3Q:DA 4#3#3Q=tDO N N N I I N Ns/!H+5!H=4"I44I!+ H:= I  I! I0c [nSU-n[S[U555n[RSU5nX4SS&UR U5 UR [ U5U5 UR USUUSU5 g)zqIf the mmap is backed by the pagefile ensure a resize up can happen and that the original data is still in place r4c3N# UHn[R"S5v M g7frNr getrandbitsrrs rrCMmapTests.test_resize_up_when_mapped_to_pagefile.. F4EqV''**4E#%r;NrArrrrWrGrIr) start_sizenew_sizerr[s r&test_resize_up_when_mapped_to_pagefile0MmapTests.test_resize_up_when_mapped_to_pagefiles{  z>FE*4EFF IIb* %!  Q* ;Jkz):;rc [nUS-n[S[U555n[RSU5nX4SS&UR U5 UR [ U5U5 UR USUUSU5 g)zIf the mmap is backed by the pagefile ensure a resize down up can happen and that a truncated form of the original data is still in place r4c3N# UHn[R"S5v M g7frrrs rrEMmapTests.test_resize_down_when_mapped_to_pagefile..rrr;Nrrs r(test_resize_down_when_mapped_to_pagefile2MmapTests.test_resize_down_when_mapped_to_pagefilesz  ?FE*4EFF IIb* %!  Q* 9HtIX7rc>S[-n[n[[S5nURU5 [R UR 5U5n[R UR 5U5nUR [5 URU5 SSS5 UR [5 URU5 SSS5 UR5 URU5 URUR5U5 UR[R"UR 55RU5 UR5 g!,(df  N=f!,(df  N=f!UR5 f=f)zaIf more than one mapping is held against a named file on Windows, neither mapping can be resized r4rN)rAr?r r{rrCrJr-rWrDrGrXr%rr)r)r reduced_sizerZrNrOs r+test_resize_fails_if_mapping_held_elsewhere5MmapTests.test_resize_fails_if_mapping_held_elsewheres \    : 188:z2B188:z2B""7+ ,',""7+ ,', HHJ IIl #   RWWY 5   RWWQXXZ088, G GGI,+++ GGIs=AF E(!F >E9BF ( E62F 9 FF FcS[-n[n[5nSn[S[U555n[R SXS9n[R SXS9nXVSU&UR USUU5 UR [5 URU5 SSS5 UR UR5U5 UR USUU5 UR USUU5 g!,(df  NY=f)zIf a more than one mapping exists of the same name, none of them can be resized: they'll raise an Exception and leave the original mapping intact r4rc3N# UHn[R"S5v M g7frrrs rrUMmapTests.test_resize_succeeds_with_error_for_second_named_mapping..s G4FqV''**4Frr;rHN) rArrrrrGrJr-rWrX)r)rrrI data_lengthrrNrOs r8test_resize_succeeds_with_error_for_second_named_mappingBMmapTests.test_resize_succeeds_with_error_for_second_named_mappings \  !# GE+4FGG YYr:Y 7 YYr:Y 7.MmapClosedByIntContextiNcXlgr$rf)r)rgs r__init__TMmapTests.test_mmap_closed_by_int_scenarios..MmapClosedByIntContext.__init__s$ rcP^[[S5UlURR[R "S55 URR 5 [RURR5SURS9m"U4SjS5nTU4$)Nrrrfc">\rSrSrU4SjrSrg)`MmapTests.test_mmap_closed_by_int_scenarios..MmapClosedByIntContext.__enter__..Xic&>TR5 gr])rDrs r __index__jMmapTests.test_mmap_closed_by_int_scenarios..MmapClosedByIntContext.__enter__..X.__index__s !rr-N)r.r/r0r1rr2)r[srrrs ""rr) r?r rZr@r randbytesrBrrCrg)r)rr[s @r __enter__UMmapTests.test_mmap_closed_by_int_scenarios..MmapClosedByIntContext.__enter__spfe, V--c23 IIdffmmos4;;IG"" 1v rc8URR5 gr$)rZrD)r)exc_type exc_value tracebacks r__exit__TMmapTests.test_mmap_closed_by_int_scenarios..MmapClosedByIntContext.__exit__s r)rgrZ)returnN)r.r/r0r1rrrr2r-rrMmapClosedByIntContextrs %  rrzmmap closed or invalidNr4r1r7s 1111111111s11111) rrtr|r}rrrVrwrHrrv)r)rread_access_modeswrite_access_modesrgr[rs r!test_mmap_closed_by_int_scenarios+MmapTests.test_mmap_closed_by_int_scenarioss   ,                         (F'/6A++J8PQacFR0(/6A++J8PQacBKR0(/6A++J8PQacBlOR0(/6A++J8PQb13m$R0(/6A++J8PQFF13KR0(/6A++J8PQFF4AC(R0/+(2)F'/6A++J8PQ"+AacBKR0(/6A++J8PQ&.AacBlOR0(/6A++J8PQ'/Ab13m$R0(/6A++J8PQFF1a%R0(/6A++J8PQLL%R0/#)/RQ0/ RQ0/ RQ0/ RQ0/ RQ0/ RQ0/ RQ0/ RQ0/ RQ0/ RQ0/ RQ0/sM0 M)M0N N$N<N8 N&"N8:OO !O9PO.)PP$P3P$Q / P79Q Q-* Q7Q-R(Q?6RR5'R#R5S1SS M- (M00 M?  N N N# & N5 0N88 O O O O+ . O= 8P P  P! P$$ P4 7 Q Q  Q  Q* %Q-- Q< ? R R R # R2 -R55 S  S S S) _protectztest needs debug buildcSSKJn [R"S5n[ SX!5up4nUR UR 5S5 UR UR 5S5 g)Nr)r a import faulthandler import mmap import os import sys from contextlib import suppress # Prevent logging access violations to stderr. faulthandler.disable() PAGESIZE = mmap.PAGESIZE PAGE_NOACCESS = 0x01 with open(sys.argv[1], 'bw+') as f: f.write(b'A'* PAGESIZE) f.flush() m = mmap.mmap(f.fileno(), PAGESIZE) m._protect(PAGE_NOACCESS, 0, PAGESIZE) with suppress(OSError): m.read(PAGESIZE) assert False, 'mmap.read() did not raise' with suppress(OSError): m.read_byte() assert False, 'mmap.read_byte() did not raise' with suppress(OSError): m.readline() assert False, 'mmap.readline() did not raise' with suppress(OSError): m.write(b'A'* PAGESIZE) assert False, 'mmap.write() did not raise' with suppress(OSError): m.write_byte(0) assert False, 'mmap.write_byte() did not raise' with suppress(OSError): m[0] # test mmap_subscript assert False, 'mmap.__getitem__() did not raise' with suppress(OSError): m[0:10] # test mmap_subscript assert False, 'mmap.__getitem__() did not raise' with suppress(OSError): m[0:10:2] # test mmap_subscript assert False, 'mmap.__getitem__() did not raise' with suppress(OSError): m[0] = 1 assert False, 'mmap.__setitem__() did not raise' with suppress(OSError): m[0:10] = b'A'* 10 assert False, 'mmap.__setitem__() did not raise' with suppress(OSError): m[0:10:2] = b'A'* 5 assert False, 'mmap.__setitem__() did not raise' with suppress(OSError): m.move(0, 10, 1) assert False, 'mmap.move() did not raise' with suppress(OSError): list(m) # test mmap_item assert False, 'mmap.__getitem__() did not raise' with suppress(OSError): m.find(b'A') assert False, 'mmap.find() did not raise' with suppress(OSError): m.rfind(b'A') assert False, 'mmap.rfind() did not raise' z-cr)test.support.os_helperr textwrapdedentr rGstrip)r)r codertstdoutstderrs rtest_access_violations MmapTests.test_access_violations's\ 2@ @ B.dDAF - -rr-N)>r.r/r0r1r*r.r`rrskipIfr%r~rrrrrrrrrrrrrrrrrrrrr"r4 skipUnlesshasattrrr7r<r@rErPrrUrZr_rcrirprtryr|rrrrrrrrrr2r-rrr!r!#s= ]~@D__RWW_&FG @H @D__RWW_&FG $H $__RWW_&EF/G/8$K. ' 8$; E1-^ &;*8 95()<7r {35KL9M9+ 6DD*<=(>(< D*<=A>A D*<=>4D*<= > " <"1 7 D"0HI6HEIE$D*<= <> <D*<= 8> 8D*<=>.D*<=1>1(T&lD*<= J79QRF.S>F.rr!c\rSrSrSrSrSrSrSrSr \ R"\ R\:S5S 5r\ R"\ R\:S5S 5rS rg ) LargeMmapTestsirc"[[5 gr$r r r(s rr*LargeMmapTests.setUpt vrc"[[5 gr$rr(s rr.LargeMmapTests.tearDownwrrc[RSSS:Xd [(a[SS[ S5-5 [ [ S5nURU5 URU5 UR5 U$![[[4a? UR5 O![[4a Of=f[R"S5ef=f)Nr3rl largefilez-test requires %s bytes and a long time to runrz*filesystem does not have largefile support)rxryr rrEr?r rTr@rBr-r!rVrDrr)r) num_zeroestailrZs r_make_test_fileLargeMmapTests._make_test_filezs << u $ [?#kBRR T   R FF:  GGDM GGI  3 R  ]+  ##$PQ Q  Rs0 2BCB'&C'B:7C9B::CcURSS5n[RUR5SS[RS9nUR USS5 SSS5 SSS5 g!,(df  N=f!,(df  g=f)Nl rlri )rrrCrtrGr)rZr[s rtest_large_offset LargeMmapTests.test_large_offsetsi  ! !+t 4188:qTEUEUVZ[  9r2W5 4VV5 4s#3A>A-A>- A; 7A>> B cURSS5n[RS:aUR[5 [ R UR 5S[ RS9 SSS5 UR[5 [ R UR 5S[ RS9 SSS5 [ R UR 5S[ RS9nURUR5S5 SSS5 SSS5 g!,(df  N=f!,(df  N=f!,(df  N9=f!,(df  g=f)Nlrrrfrr) rrxr rJr!rrCrtrVrGrXrs rtest_large_filesize"LargeMmapTests.test_large_filesizes  ! !+t 4{{[(&&}5IIahhj+d>N>NIO6&&z2IIahhj!D4D4DIE3188:wt7G7GHA  ;7I5 46522HH5 4sR*E2D)/E 2D:>9E7!E E) D7 3E: E E E E E*cZSnU[U5S-- nU[U5-nURX25n[RUR5S[RS9nUR XcUU5 SSS5 SSS5 g!,(df  N=f!,(df  g=f)Ns DEARdear r4rrf)rIrrrCrtrG)r)boundaryrr^r_rZr[s r_test_around_boundary$LargeMmapTests._test_around_boundarys3t9>)c$i  ! !% .!188:q1A1ABa  t4C/ .BB/ .s#2B%B :B B B B*z!test cannot run on 32-bit systemsc.UR[5 gr$)rrr(s rtest_around_2GBLargeMmapTests.test_around_2GB ""3'rc.UR[5 gr$)rrr(s rtest_around_4GBLargeMmapTests.test_around_4GBr rr-N)r.r/r0r1r*r.rrrrrrrxr rrr r2r-rrrrrsx"3 85s*,OP(Q(s*,OP(Q(rr__main__)rc)% test.supportrrrrrrr test.support.import_helperr rr r test.support.script_helperr rrr%rNrrr^rrxrrlrrAgetpidrrrTestCaser!rr.mainr-rrrs517  V ==299;-z2(    L MML.!!L.^":(X&&:(z z MMOr