403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Python313/Lib/test/__pycache__/test_mmap.cpython-313.opt-1.pyc
�

��i	����SSKJrJrJrJrJrJrJr SSKJ	r	 SSK
JrJr SSK
Jr SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKr\	"S5r\R6rS\R8"5S3rSS	jr\(a\R>"S
5e"SS\R@5r!"S
S\R@5r"\#S:Xa\RH"5 gg)�)�requires�_2G�_4G�
gc_collect�cpython_only�
is_emscripten�is_apple)�
import_module)�TESTFN�unlink)�assert_python_okN�mmap�python_�
_test_mmapc�|�SR[R"[RUS95n[
SU3$)N�)�k�_)�join�random�choices�string�ascii_uppercase�tagname_prefix)�length�suffixs  �#C:\Python313\\Lib\test\test_mmap.py�random_tagnamers3��
�W�W�V�^�^�F�$:�$:�f�E�
F�F��
�Q�v�h�'�'�z.incompatible with Emscripten's mmap emulation.c�"�\rSrSrSrSrSrSr\R"\
RS:HS5S5r\R"\
RS:HS5S	5r
\R"\
RS:gS
5S5rS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"\#"\$RHS25S35S45r6S5r7\RD"\
RS6:HS75S85r8S9r9\RD"\
RS:HS%5S:5r:\RD"\
RS:HS%5S;5r;S<r<\RD"\
RS:HS%5\RD"\#"\$RHS=5S>5S?55r=S@r>gA)B�	MmapTests�#c��[RR[5(a"[5 gg�N)�os�path�existsrr��selfs r�setUp�MmapTests.setUp%s&��
�7�7�>�>�&�!�!��I�I�f��"rc�Z�[R"[5 g![a gf=fr$)r%rr�OSErrorr(s r�tearDown�MmapTests.tearDown)s%��	��I�I�f����	��	�s��
*�*c�	�[[S5nURS[-5 URS5 URS[S-
-5 UR	5 [
RUR
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/SS5S5 URUR15S5 URUR/SS5[U55 URUR15[U55 URR.S5 URR.SS5 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+��foo��rs�3�bars3��sfoobars	[A-Za-z]+zregex match on mmap failed!��*������rb)�openr�write�PAGESIZE�flushr�fileno�close�str�type�assertEqual�find�len�assertRaises�
IndexError�__getitem__�__setitem__�re�search�fail�span�
assertTrue�seekable�seek�tell�
ValueError�resize�size�SystemError)r)�f�m�tp�match�start�endrs        r�
test_basic�MmapTests.test_basic/s���
�����	�
�G�G�E�8�O�$�
�G�G�F�O�
�G�G�E�H�Q�J�'�)�
�G�G�I��	�	�!�(�(�*�a�(�l�3�A�
�G�G�I���a��\�����������2�����Q���8��,�����1��q�!�����1�Q���+�	
���*�a�m�m�S��V�<����*�a�m�m�S��V�U�C���!��(.��(�A�+�x��{�1�}�%�	
����1��w�'�����1�Q���*�����8�A�:��1��5�}�E�	���	��	�	�,��*���=��I�I�3�4����A��J�E��[�F����U�H�-����S�(�Q�,�/�	
����
�
��%��������1��q�)��������1�%��������A���+��������2�&��������1��s�1�v�.��������3�q�6�*�	
���*�a�f�f�b�1�	
���*�a�f�f�a��3�	
���*�a�f�f�s�1�v�g�a�i��;�	,�
�H�H�S�M�
���S��V�S�)����j�!�&�&�#�q�9��V�T�"�A�
����q�!��� � �����3�/����	����Q�V�V�X�s�+�	���	��a
�G�G�I��Z���	��%�	�
�		�s*�A?R!�S�.2R6�!R3�6S�
S�Sc�j�Sn[[S5nURSU-5 SSS5 [[S5n[RUR	5U[R
S9nUR
USSSU-S5 SU-USS&URS5 SUS	'URS5 URS	S	5 URS
5 URS5 URS	S	5 URS5 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,S9nSU-USS&UR
USSSU-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 GN�f=f![a GN�f=f![a GN�[a GN�f=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 GN�f=f!,(df   g=f)N�
�wb�ar>��accessz#Readonly memory map data incorrect.�bz$Able to write to readonly memory mapr�abc�dr4z"Able to resize readonly memory mapz*Readonly memory map data file was modified�r+br7�winz1Opening 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)�flags�protrg�	PROT_EXEC�rqsabcdef)r?rr@rrC�ACCESS_READrGrP�	TypeErrorrT�
write_byterWrY�read�sys�platform�
startswithrDrV�truncate�ACCESS_WRITErB�ACCESS_COPYrJr%�name�MAP_PRIVATE�	PROT_READ�getattr�PermissionError)r)�mapsize�fprZr[�stuffrqs       r�test_access_parameter�MmapTests.test_access_parameter�s�����
�&�$�
�2��H�H�T�'�\�"� �
�&�$�
�1��	�	�!�(�(�*�g�d�6F�6F�	�G�A����Q�q�T�4��<�1V�W�
B��G�|��!���	�	�@�A�
B���!���	�	�@�A�
B����q�!��������	�	�@�A�
B����q�!�����T�"��	�	�@�A�
@�����7��#��	�	�>�?��f�d�#�r�� � �����D��L�!M�O�$�_ �h�&�%�
 �A�

��I�I�a�h�h�j�'�!�)�4���|�|�.�.�u�5�5��I�I�Q�R����	��|�|�&�&�u�-�-��&�%�(�A��J�J�w�'�)�#!�*�&�%�
 �A��	�	�!�(�(�*�g�d�6G�6G�	�H�A���<�A�a�D����Q�q�T�4��<�J�
L�
�G�G�I�
�G�G�I�!��&�$�
�1��F�F�H�E� ������W��I�	K��&�%�
 �A��	�	�!�(�(�*�g�d�6F�6F�	�G�A���<�A�a�D����Q�q�T�4�'�>�S�
U�
�G�G�I��f�d�#�r�� � �����D��L�!W�Y�$�
���i����1�W�9�=�
�G�G�I�!��&�%�
 �A����j�$�)�)�Q�X�X�Z��QR��S�!��7�7�g���f�e�$���!�!�*�d�i�i�����W�(,�(8�(8�'+�~�~�d�>O�>O�"�Q�%��>�>�G�D�+�q�$A�A�D��f�e�$����	�	�!�(�(�*�g�	�A�A�
�%�%�i����)�D��%�%�i����q�A��G�G�I�%�$��W �
���
��
���
��
���
��
���
��
���
���
��
��$�#��_ �
��n�
R�
�<�<�*�*�5�1�1��I�I�P�Q��

R��)�(��#!�
 ��*!�
 �� �
��$�#��!�
 ��!�
 ��
%�$��'�����%�$�s��V&�AX+�V8�X+�&W	�+X+�=#W� X+�2#W+�X+�'W<�;!X+�%X�X+�!Z�#'X=�
A9Z�Z�Z�5A3Z'�Z9�?A3[�2%[�<[�+4[/�A \�&\$�("\�
A\$�&
V5�8
W�X+�W�X+�	
W�X+�W�X+�
W(�$X+�'W(�(X+�+
W9�5X+�8W9�9X+�<
X�X+�		X�X+�X�X+�
X(	�#X+�+
X:�=?Z�<Z�?Z�Z�
Z	�
Z�
Z$�'
Z6�9
[�
[	�[�
[,�/
[>�
\�
\!�\$� \!�!\$�$
\2�ntztrackfd not present on Windowsc
���Sn[[S5nURSU-5 SSS5 SGH�nURUS9 [[S5n[R	UR5USS9nU(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 ['S5US	'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_fdrkF��trackfdr4�X�Yr>rnsXaYar7rT)r?rr@�subTestrrCrDrGrIrJr-rX�	exception�errno�EBADFrVrW�closedrv�ordrBrwrUrT�	read_byter%�stat�st_size)r)rXrZr�r[�err_cms      r�test_trackfd_parameter� MmapTests.test_trackfd_parametersR����
�&�$�
�1�
�G�G�D��I�� �!,�����0A��B��&�%�(�A����1�8�8�:�t�U��C�q�,��G�G�I��(�(��Q���6�!�.�.�w�7�6��F�F�H�8��(�(��)9�)9�)?�)?����M�!�.�.�z�:��H�H�T�A�X�.�;�!�.�.�z�:��H�H�T�Q�Y�/�;��(�(����5�9����S��X�.�"�3�x��!�����	�!�&�$�/�1� �,�,�Q�V�V�A�Y��@�0��(�(�����1�5����q�	��(�(�����1�5��(�(������C��A�-D�)�2� � ����4�0�� � ������!8�!8�$�?�7C�B�"-� �
��8�7��;�:��:�:��0�/��#D�C��)�(��C�B�s��K)�M%�$M�:AM	�K;�AM	�$L
�9M	�L�+A,M	�"L1�9BM	�;M�AM%�)
K8�;
L
�M	�
L�M	�
L.�)M	�1
M�;M	�
M
�
M�
M"�M%�%
M5	c��Sn[RSUSS9nUR[5 UR5 SSS5 UR[5 URUS-5 SSS5 UR
[U5U5 [S5US'SSS5 g!,(df   Nr=f!,(df   NQ=f!,(df   g=f)Nr�r;Fr�r4�ar)	rrJr-rXrVrWrGrIr��r)rXr[s   r�test_trackfd_neg1�MmapTests.test_trackfd_neg13s�����
�Y�Y�r�4��Y�
/�1��"�"�7�+�����,��"�"�:�.�������#�/����S��V�T�*��s�8�A�a�D�
0�
/�+�+��.�.��0�
/�s9�C
�B+�C
�B<�11C
�+
B9	�5C
�<
C
	�C
�
Cztrackfd only fails on Windowsc��SnUR[5 [RSUSS9 SSS5 UR[5 [RSUSS9 SSS5 g!,(df   NB=f!,(df   g=f)Nr�r;Tr�F)rJrur)r)rXs  r�$test_no_trackfd_parameter_on_windows�.MmapTests.test_no_trackfd_parameter_on_windows?sf����
�
�
�y�
)��I�I�b�$��I�-�*�
�
�
�y�
)��I�I�b�$��I�.�*�
)�*�
)��
)�
)�s�A*�A;�*
A8�;
B	c�P�UR[[RSS5 g)N����)rJr-rr(s r�test_bad_file_desc�MmapTests.test_bad_file_descHs�����'�4�9�9�b�$�7rc� �[[S5nSn[U5nURU5 UR	5 [
RUR
5U5nSSS5 [WS-5Hpn[XSS-5H[nWXVnURWRU5URU55 URURUS-5S5 M] Mr WR5 g!,(df   N�=f)N�wb+saabaacdeefaar7�xr;)r?rrIr@rBrrC�rangerGrHrD)r)rZ�data�nr[r^�finish�slices        r�test_tougher_find�MmapTests.test_tougher_findLs����&�%�
 �A�2�D��D�	�A�
�G�G�D�M�
�G�G�I��	�	�!�(�(�*�a�(�A�
!��1�Q�3�Z�E����s�+���U�,��� � �������	�	�%�0@�A�� � �������!5�r�:�,� �
	
���	�!�
 �s�AC?�?
D
c
���[[S5nSn[U5nURU5 UR	5 [
RUR
5U5nSSS5 URWRS5S5 URURS5S5 URURSSS5S5 URURSS5S5 URURSSS5S5 URURSSS	5S5 URUR[S55S5 [W*S-
US-5H\n[U*S-
US-5HBnS
H9nWRXuU5nURURXuU5X�XV45 M; MD M^ g!,(df   GNz=f)Nr��one two ones�oner�ones�r;r7r�)�osonstwor��s)r?rrIr@rBrrCrGrH�	bytearrayr�)	r)rZr�r�r[�i�j�p�expecteds	         r�
test_find_end�MmapTests.test_find_end^s���
�&�%�
 �A�"�D��D�	�A�
�G�G�D�M�
�G�G�I��	�	�!�(�(�*�a�(�A�!�	
���������+���������!�,���������2�.��2���������*�A�.���������2�.��2���������2�.��3�������	�&� 1�2�A�6���r�!�t�Q�q�S�!�A��A�2�a�4��1��%��=�A�#�y�y��q�1�H��$�$�Q�V�V�A�!�_�h�A�	�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_ANONYMOUSrAr��AttributeError�unittest�SkipTestr�rH)	r)rprA�	PROT_NONEr��er��guard�fms	         r�'test_find_does_not_access_beyond_buffer�1MmapTests.test_find_does_not_access_beyond_bufferus���	E��$�$�t�'9�'9�9�E��}�}�H��I����I��q�$��A����2�x�q�5�1�!&��8�;@��Y�Y�r�8�4�x�#8�%*��<�?A��G�G�E�2�&�<�8�8� ���	E��#�#�$<�=�1�D��	E��
<�<��8�8�s<�AB1�.C+�	C�C+�1
C�;C�C�
C(�$C+�+
C:	c���[[S5nSn[U5nURU5 UR	5 [
RUR
5U5nSSS5 URWRS5S5 URURS5S5 URURSSS5S5 URURSSS5S5 URURSS	S5S5 URURSS	S5S5 URUR[S55S5 g!,(df   GN=f)
Nr�r�r�r�sone rr;r�r7)
r?rrIr@rBrrCrG�rfindr�)r)rZr�r�r[s     r�
test_rfind�MmapTests.test_rfind�s��
�&�%�
 �A�"�D��D�	�A�
�G�G�D�M�
�G�G�I��	�	�!�(�(�*�a�(�A�!�	
��������!�,��������)�1�-���������B�/��3���������B�/��3���������B�/��3���������B�/��4��������6�!2�3�Q�7�!�
 �s�AE%�%
E4c�v�[[S5nURSS-5 SSS5 [[S5n[RUR	5S[R
S9nUR
5 UR
5 SSS5 g!,(df   Ny=f!,(df   g=f)Nr��rer>rf)r?rr@rrCrtrD�r)rZ�mfs   r�test_double_close�MmapTests.test_double_close�s}��
�&�%�
 �A�
�G�G�E�D�L�!�!��&�$�
�1����1�8�8�:�u�T�5E�5E��F�B��H�H�J��H�H�J� �
�!�
 �� �
�s�B�AB*�
B'�*
B8c���[[S5nURSS-5 SSS5 [[S5n[RUR	5S5nUR[
U5SS5 URURS5SS-5 SSS5 SSS5 g!,(df   N�=f!,(df   N(=f!,(df   g=f)Nr�r��mzrb+rz Map size should equal file size.)r?rr@rrCrGrIrwr�s   r�test_entire_file�MmapTests.test_entire_file�s���
�&�%�
 �A�
�G�G�E�D�L�!�!��&�%�
 �A�
�Y�Y�q�x�x�z�1�
%�����S��W�e�-O�P����R�W�W�U�^�U�T�\�:�&�!�
 �!�
 ��&�
%��!�
 �s/�B5�%C�#AC�$C�5
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)	Nrdir�r>rr���offsetrgi�8)	r?rr@rrCrtrJrKrLr�s   r�test_length_0_offset�MmapTests.test_length_0_offset�s���
�&�$�
�1�
�G�G�Y�$�&�'� ��&�$�
�1����1�8�8�:�q��t�?O�?O��P�TV��!�!�*�b�n�n�e�D�Q� �
� �
��Q�P�� �
�s.�B$�3C�1"B5�C�$
B2�5
C	�?C�
Cc	�:�[[S5nURSS-5 SSS5 [[S5nUR[[
R
UR
5SSS9 SSS5 g!,(df   N[=f!,(df   g=f)Nrdi��r��w+bri��r�)r?rr@rJrVrrC�r)rZs  r�test_length_0_large_offset�$MmapTests.test_length_0_large_offset�su���&�$�
�1�
�G�G�F�T�M�"� ��&�%�
 �A����j�$�)�)�Q�X�X�Z��%/�
�
1�!�
 � �
��!�
 �s�A;�4B�;
B	�
Bc	�~�[[S5nURS5 UR5 [R	UR5S5nUR
SSS5 URUSSSS5 UR5 SSS5 Sn[[U55H�n[[U55H�n[[U5[XE5-
5HqnUSUX5XV--X4U-S-n[R	S	[U55nX8SS&UR
XEU5 URUSSU5 UR5 Ms M� M� [R	S	S
5n/SQn	[R"X�U	5Hup�nUR
X�U5 M /SQn	U	H(up�nUR[URX�U5 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)Nr�s
ABCDEabcderc�rs
ABCDEABCDEz'Map move should have duplicated front 5�
0123456789r;�d)i����r;rr7r�))r;r;r;)r;r;r)r;rr;)rr;r;)r;rr)rr;r)rrr;r7r4)r?rr@rBrrC�moverGrDr�rI�max�	itertools�productrVrJ)r)rZr�r��dest�src�countr�r[�offsets�sourcerXs            r�	test_move�MmapTests.test_move�s;��
�&�%�
 �A�
�G�G�M�"�
�G�G�I����1�8�8�:�r�*�B��G�G�A�q�!�����R��U�M�3\�]��H�H�J�!����#�d�)�$�D��S��Y�'��"�3�t�9�s�4�~�#=�>�E�#�E�T�{�T�c�i�-@�@�4�U�
��CT�T�H��	�	�"�c�$�i�0�A��a�D��F�F�4�e�,��$�$�Q�q�T�8�4��G�G�I�
?�(�%�
�I�I�b�#���'��"+�"3�"3�G�g�"N��F�$�
����v�T�*�#O�7��")��F�$����j�!�&�&�&��E�#*�	
���	��I�I�b�!������*�a�f�f�a��A�6����*�a�f�f�a��A�6����*�a�f�f�a��A�6�	���q�!�Q��	���q�!�Q��W!�
 ��8�
��
�s�A?J�J-�
J*�-
J<�;J<c���[RS[5n[[5HnURXSS5 M [[5H nUS-nX1U'URXU5 M" g)Nr;rz+anonymously mmap'ed contents should be zero�)rrAr�rG)r)r[�x�bs    r�test_anonymous�MmapTests.test_anonymous�sj���I�I�b�(�#���x��A����Q�T�1�J�
L�!��x��A��D��A��a�D����Q�T�1�%�!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 URURS5[	[S
S555 g)Nr;�rr�rr3rnr�r��	i���)	r�
addCleanuprDr@�bytesr�rTrGrw�r)r[s  r�
test_read_all�MmapTests.test_read_all�sh���I�I�b�"��������� �	
����e�B�i� �!�	���q�	��������5��r��#3�4�	���q�	��������5��q�"��#6�7�	���r�
��������3�'�	���q�	���������u�U�1�b�\�':�;�	���q�	���������U�5��B�<�%8�9�	���q�	���������U�5��B�<�%8�9�	���q�	���������e�E�!�R�L�&9�:rc�0�[RSS5nURUR5 UR[UR
S5 UR[UR
S5 UR[UR
/SQ5 g)Nr;r��foog@)r7r4r3)rr�rDrJrurwr�s  r�test_read_invalid_arg�MmapTests.test_read_invalid_argsd���I�I�b�"��������� ����)�Q�V�V�U�3����)�Q�V�V�S�1����)�Q�V�V�Y�7rc�T�[[[S555n[RS[	U55nXSS&URUSSU5 SSSSSS[RSSS	S
4nUH2nUH)nUSSHnURX$XV2XXV25 M M+ M4 g�N�r;rr7r3�i,r�i��i���)r��reversedr�rrIrGrx�maxsize)r)�sr[�indicesr^�stop�steps       r�test_extended_getslice� MmapTests.test_extended_getslices����(�5��:�&�'���I�I�b�#�a�&�!���!������1��q�!��d�A�q�"�c�3�;�;��B��T�J���E���#�A�B�K�D��$�$�Q�T��%7�%&�T��%7�9�(� �rc��[[[S555n[RS[	U55nSSSSSS[
RSSS	S
4nUH�nUHwnUSSHknXSS&URUSSU5 [U5nXtXV2n[[U55nX�XEU2'X�XEU2'URUSS[U55 Mm My M� gr)	r�r
r�rrIrxrrG�list)	r)rr[r
r^rr�Lr�s	         r�test_extended_set_del_slice�%MmapTests.test_extended_set_del_slice's����(�5��:�&�'���I�I�b�#�a�&�!���d�A�q�"�c�3�;�;��B��T�J���E���#�A�B�K�D��a�D��$�$�Q�q�T�1�-��Q��A��4�_�-�D� ��$��0�D�)-�e��o�&�)-�e��o�&��$�$�Q�q�T�5��8�4�(� �rc���URSU-5 URS5 URSUS-
-5 UR5 [RUR5S5$)Nr1r2r3r)r@rBrrC)r)rZ�halfsizes   r�make_mmap_file�MmapTests.make_mmap_file;sT��	�����!�"�	�����	����(�Q�,�'�(�	���
��y�y�!�(�(�*�a�(�(rc
��[[S5nUR5 [[S5nUR[S[
R
UR
5S[
RS9 SSS5 g!,(df   g=f)Nr�r>zcannot mmap an empty filerrf)r?rrD�assertRaisesRegexrVrrCrtr�s  r�test_empty_file�MmapTests.test_empty_fileCsa���&�%� ��	���	�
�&�$�
�1��"�"�:�#>�#'�9�9�a�h�h�j�!�*.�*:�*:�
#�
<� �
�
�s�AA=�=
Bc�n�[[S5n[RnUR	X5nUR5 UR5 US-n[[S5nSHJn[RUR
5XES9nURSS5 URSS5 ML UR5 [[S5n[RUR
5XB-
US9nURUSSS	5 UR5 URS
5 UR[U5S
5 UR[URSS5 URUSSS	5 [[S5nURSS5 URUR5US
-5 UR5 URUR!5US
-5 UR5 UR5 [$R&"[5 g![[[4a GM�f=f!["a Nef=f![(a gf=f!UR5 [$R&"[5 f![(a ff=f=f)
Nr�r4rk)r�r;Nr�rr7r3r2r<r=r>)r?rr�ALLOCATIONGRANULARITYrrDrCrGrVru�
OverflowErrorrWrIrJrTrUrXrYr%rr-)r)rZrr[r�r�s      r�test_offset�MmapTests.test_offsetLs4���&�%� ��4	��1�1�H��#�#�Q�1�A�
�G�G�J�
�G�G�J���l�G��V�U�#�A�(��+��	�	�!�(�(�*�g�	�E�A��$�$�Q��*��$�$�Q��*�)�
�G�G�I��V�U�#�A��	�	�!�(�(�*�g�&8��	�J�A����Q�q��V�V�,�
�G�G�I�
;�����
�
� � ��Q���-��!�!�*�a�f�f�c�1�=�� � ��1�Q���0����&�����q�!��� � �����8�c�>�:����	�� � �����8�c�>�:�
�G�G�I�
�G�G�I�
��	�	�&�!��K#�I�}�=������
��
��.�
��
��
�G�G�I�
��	�	�&�!���
��
�s��AI7�.4H:�"BI7�#I�4CI7�I'�:I�I7�I�I7�
I$�!I7�#I$�$I7�'
I4�3I4�7J4�	J$�#J4�$
J1�.J4�0J1�1J4c�N�"SS[R5nU"[5 g)Nc��\rSrSrSrSrg)�*MmapTests.test_subclass.<locals>.anon_mmapi�c�L�[RR"US/UQ70UD6$)Nr;)r�__new__)�klass�args�kwargss   rr(�2MmapTests.test_subclass.<locals>.anon_mmap.__new__�s#���y�y�(�(���D�T�D�V�D�Dr�N)�__name__�
__module__�__qualname__�__firstlineno__r(�__static_attributes__r-rr�	anon_mmapr&�s��
Err3)rrA)r)r3s  r�
test_subclass�MmapTests.test_subclass�s��	E��	�	�	E�	�(�rr�zneeds mmap.PROT_READc�|�Sn[[S5nURSU-5 SSS5 [[S5n[RUR	5U[R
S9nUR
[URS5 SSS5 g!,(df   Nz=f!,(df   g=f)Nrcrdrer>rsr)r?rr@rrCr�rJru)r)r�r�rZr[s     r�test_prot_readonly�MmapTests.test_prot_readonly�s�����
�&�$�
�2��H�H�T�'�\�"� �
�&�$�
�1��	�	�!�(�(�*�g�D�N�N�	�C�A����i����%�8� �
� �
��
�
�s�B�AB-�
B*�-
B;c�L�UR[R[5 gr$)�assertIsr�errorr-r(s r�
test_error�MmapTests.test_error�s���
�
�d�j�j�'�*rc�*�Sn[[S5nURS[U5-5 SSS5 [[S5n[R	UR5[U55nSSS5 [
[U55HYnURWR5U5 URX5 URUR5US-5 M[ UR[WRS5 URUSSU5 URS5 [
[U55HhnURUR5U5 URUR5X5 URUR5US-5 Mj UR[UR5 URS5 URURS5S	5 URUR5S
5 URS5 URS5 URUR5S
5 URUSSS5 UR[S
55 URUR5S5 URUSSS5 UR[URS5 g!,(df   GN�=f!,(df   GN�=f)Nr�rdr�rkr7�xrr3s345r9r6s
012bar6789sbazr�s
012barbaz9sba)r?rr@rIrrCr�rGrUrvrJrVrTr�rwr�)r)r�r�rZr[r�s      r�test_io_methods�MmapTests.test_io_methods�s,����
�&�$�
�2��H�H�T�#�d�)�^�$� �
�&�%�
 �A��	�	�!�(�(�*�c�$�i�0�A�!��s�4�y�!�A����Q�V�V�X�q�)�
�L�L���!����Q�V�V�X�q��s�+�"�	
���*�a�l�l�G�<�����1��t�$�	���q�	��s�4�y�!�A����Q�V�V�X�q�)����Q�[�[�]�D�G�4����Q�V�V�X�q��s�+�"�	
���*�a�k�k�2�	���q�	���������F�+��������1�%�	���q�	�	������������1�%�����1��}�-�	���	�&�!�"��������1�%�����1��}�-����*�a�g�g�u�5�= �
��
 �
 �s�K1�	.L�1
L�
Lc��SH�n[RSS5nURU5 URUSU5 URS5 URUR	5U5 UR5 M� g)N)���r�r;r7r)rrvrGrTr�rD)r)r�r[s   r�test_non_ascii_byte�MmapTests.test_non_ascii_byte�se�� �A��	�	�"�a� �A�
�L�L��O����Q�q�T�1�%�
�F�F�1�I����Q�[�[�]�A�.�
�G�G�I�
!rzrequires Windowsc��SnSn[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)Nr�s
abcdefghijr;��tagnamerIr�r7)rrrIrGrDrru)r)�data1�data2�tagname1�tagname2�m1�m2s       r�test_tagname�MmapTests.test_tagname�s>������!�#��!�#���Y�Y�r�3�u�:�x�Y�
8���1��
�Y�Y�r�3�u�:�x�Y�
8���1������A���&�����A���&�
���
�
���
��Y�Y�r�3�u�:�x�Y�
8���1��
�Y�Y�r�3�u�:�x�Y�
8���1������A���&�����A���&�
���
�
���
�
�
#�
#�I�y�
9��I�I�b�!�Q�I�'�:�
9�
9�s�E*�*
E8c���[RSS5n[5n[RSSUS9nUR[R"U5[R"U55 g)Nr;r�rH)rr�
assertGreaterrx�	getsizeof)r)rNrIrOs    r�test_sizeof�MmapTests.test_sizeof�sR���Y�Y�r�3�
�� �"��
�Y�Y�r�3��Y�
0�����3�=�=��,�c�m�m�B�.?�@rc��[5n[RSSUS9n[RSSUS9SS UR5 [[S5nURS5 SSS5 [[S5n[RUR
5S5nUR5 URS5 USS UR5 g! N�=f!,(df   N�=f! N3=f! N4=f)	Nr;��rH�rds
xxxxxxxxxxrkr)rrrDr?rr@rCrW)r)rIr[r�rZs     r�test_crasher_on_windows�!MmapTests.test_crasher_on_windows�s���!�"���I�I�b�$��I�0��	��I�I�b�$��I�0��3�	
���	��&�$�
�2��H�H�W�� �������I�I�a�h�h�j�!�$��	���	�	�
�H�H�Q�K�	�
�a�D�	
���	��%	��� �
��	���	��s/�C �C'�8C8�
C?� C$�'
C5�8C<�?Dc� �[R"5nUR[5 [RUR	5S5nSSS5 UR5 g!,(df   N=f!UR5 f=f�Nrc)�socketrJr-rrCrD)r)rr[s   r�test_invalid_descriptor�!MmapTests.test_invalid_descriptors]��

�M�M�O��	��"�"�7�+��I�I�a�h�h�j�"�-��,�
�G�G�I�,�+��
�G�G�I�s"�A;�%A*�A;�*
A8�4A;�;B
c���[RSS5nURUR5 SSS5 URWR5 g!,(df   N*=f)Nr;rc)r�assertFalser�rRr�s  r�test_context_manager�MmapTests.test_context_managersB��
�Y�Y�r�2�
�!����Q�X�X�&��������!��
�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-�assertIsInstancer�rRr�)r)�excr[s   r�test_context_manager_exception�(MmapTests.test_context_manager_exceptionsn��
�
�
�y�
)�S����2�r�"�a��
�#�"��"�*�
)�
)��	
���c�m�m�W�I�	K�������":�;s�A�4�
A	�A�
Ac���[RSS5n[R"U5nURU"5U5 A[	5 URU"5S5 g)Nr;r�)r�weakref�refr:r)r)�mm�wrs   r�test_weakref�MmapTests.test_weakrefsG��
�Y�Y�r�2�
��
�[�[��_���
�
�b�d�B������
�
�b�d�D�!rc�8�[RSS5nURURS5S5 URURS5S5 URURS5S5 URURS	5S
5 g)Nr;r�rrr�r7syzr4�pythonr9)rrGr@)r)rns  r�0test_write_returning_the_number_of_bytes_written�:MmapTests.test_write_returning_the_number_of_bytes_written'ss��
�Y�Y�r�2�
��������#���*�������$���+�������%��!�,�������)�,�a�0rc���[RSS5nURUR5 URS5 UR	S5 URURS5S5 UR[UR5 UR[URS5 UR[URS	5 g![
a UR
S5 N�f=f)
Nr;i rYr�zresizing not supported�rr:ri)
rr�rDrwrWrY�skipTestrGrJrVr�rvr@r�s  r�test_resize_past_pos�MmapTests.test_resize_past_pos.s����I�I�b�$��������� �	���t��	4�
�H�H�T�N�	
��������S�)����*�a�k�k�2����*�a�l�l�B�7����*�a�g�g�v�6���	4��M�M�2�3�	4�s�C�C7�6C7c��[RSS5nUR[5 X- SSS5 UR[5 US- SSS5 g!,(df   N2=f!,(df   g=f)Nr;r�r4)rrJrur�s  r�test_concat_repeat_exception�&MmapTests.test_concat_repeat_exception;sW���I�I�b�"���
�
�
�y�
)�
�E�*�
�
�
�y�
)�
��E�*�
)�*�
)��
)�
)�s�A�A.�
A+�.
A<c�j�[RSS5nURUR5 URS5 UR	5nURU5 [RRS5(a,UR[URS[S55 gg)Nr;r�rs��linux�androidr7)rr�rDr@rB�assertIsNonerxryrzrJr-rI)r)rn�results   r�test_flush_return_value�!MmapTests.test_flush_return_valueBs����Y�Y�r�2�
��������!�
�������������&�!��<�<�"�"�#7�8�8�
���g�r�x�x��C�	�N�C�9rc
�h�[R"S5n[R"S5nSn[SU55n[XC5GH�upVSU-nXe-
nSn	SUS-US	-US
-4n
[	[
S5nUR
U5 UR5 [R"X�5GHIup�[[U5n[RUR5UUUS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<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>)�2r�rXi@Bi���c3�p# �UH,nUS-[R-[R-v� M. g7f)r4N)rr )�.0r�s  r�	<genexpr>�&MmapTests.test_repr.<locals>.<genexpr>Xs5���N�DL��!�A���)C�)C�C��4�4�5�DL�s�46re)�ACCESS_DEFAULTrtr}r|rrcr�rnr�)rgr�rgr�posr�)rN�compile�tuple�zipr?rr@rBr�r�r�rrCrTr]�repr�assertIsNotNonerG�grouprE)r)�open_mmap_repr_pat�closed_mmap_repr_pat�mapsizesr�r�r�r�r�accesses�	positionsr�rgr��accintrnr]s                 r�	test_repr�MmapTests.test_reprOs����Z�Z�
'�(�� "�z�z�*D�E��:���N�DL�N�N��"�7�5�O�F��'�>�D��%�F�7�H��F�B�J���	�6�1�9�=�I��f�e�$����������
�#,�#4�#4�X�#I�K�F�$�T�6�2�F����2�9�9�;�#)�*0�*0�#�2�68������ 2� 8� 8��b�� B���,�,�U�3��(�(����X�)>��G��(�(����X�)>��F��L��(�(����U�);�S��X�F��(�(����X�)>��F��L�2�1�6�6�t�B�x�@�E��(�(��/�$J�%�$�
 6�2�2��%�$�s&�<A2H!�.CH	�
8H!�
H
�H!�!
H1	�madvisez
needs madvisec���S[-n[RSU5nUR[S5 UR	[R
U5 SSS5 UR[S5 UR	[R
S5 SSS5 UR[S5 UR	[R
SS5 SSS5 UR[S5 UR	[R
[[R5 SSS5 URUR	[R
5S5 URUR	[R
[5S5 URUR	[R
[U5S5 URUR	[R
SS5S5 URUR	[R
SU5S5 g!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN@=f)Nr4r;zmadvise start out of boundszmadvise length invalidrzmadvise length too large)
rArrrVr��MADV_NORMALr!rxrrGr�s   r�test_madvise�MmapTests.test_madvisess����8�|���I�I�b�$���
�
#�
#�J�0M�
N�
�I�I�d�&�&��-�O�
�
#�
#�J�0M�
N�
�I�I�d�&�&��+�O�
�
#�
#�J�0H�
I�
�I�I�d�&�&��2�.�J�
�
#�
#�M�3M�
N�
�I�I�d�&�&��#�+�+�>�O�������4�#3�#3�4�d�;�������4�#3�#3�X�>��E�������4�#3�#3�X�t�D�d�K�������4�#3�#3�Q��:�D�A�������4�#3�#3�Q��=�t�D�O�
N��
N�
N��
I�
I��
N�
N�s/�!H+�5!H=�4"I�44I!�+
H:�=
I�
I�!
I0c�N�[nSU-n[R"U5n[RSU5nX4SS&[R
R
S5(a0UR[5 URU5 SSS5 O[URU5 UR[U5U5 URUSUU5 URXASSX!-
-5 SSS5 g!,(df   N=f![a N&f=f!,(df   g=f)zqIf the mmap is backed by the pagefile ensure a resize up can happen
and that the original data is still in place
r4r;Nrr1)
rAr�	randbytesrrxryrzrJrVrWrGrIrY�r)�
start_size�new_sizer�r[s     r� test_resize_up_anonymous_mapping�*MmapTests.test_resize_up_anonymous_mapping�s����
��z�>�����
�+��
�Y�Y�r�:�
&�!��a�D��|�|�&�&�';�<�<��&�&�z�2��H�H�X�&�3�2�V��H�H�X�&��$�$�S��V�X�6��$�$�Q�{�
�^�T�:��$�$�Q�{�^�U�h�>S�5T�U�'�
&�
3�2��
#�����'�
&�sH�>D�6C5�	D�D�#A	D�5
D	�?D�
D�D�D�D�
D$rozrequires Posixc��[nSU-n[R"U5n[RSU[RS9nX4SS&URU5 UR
[U5U5 UR
USUU5 UR
XASSX!-
-5 SSS5 g![a Nf=f!,(df   g=f)Nr4r;)rpr1)	rArr�rrrWrGrIrYr�s     r�(test_resize_up_private_anonymous_mapping�2MmapTests.test_resize_up_private_anonymous_mapping�s����
��z�>�����
�+��
�Y�Y�r�:�T�-=�-=�Y�
>�!��a�D�
R�����"�� � ��Q���2�� � ��;�J���6�� � ��;���(�:O�1P�Q�?�
>���
��
��	?�
>�s1�B>�B.�A	B>�.
B;�8B>�:B;�;B>�>
Cc�*�S[-nUS-n[R"U5n[RSU5nX4SS&UR	U5 UR[
U5U5 URUSSUSU5 [RRS5(a0UR[5 UR	U5 SSS5 OSSS5 g!,(df   N=f![a N&f=f!,(df   g=f)z�If 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
r4r;Nr)
rArr�rrWrGrIrxryrzrJrVrYr�s     r�"test_resize_down_anonymous_mapping�,MmapTests.test_resize_down_anonymous_mapping�s�����\�
���?�����
�+��
�Y�Y�r�:�
&�!��a�D�

-�����"�� � ��Q���2�� � ��1��t�I�X��7��<�<�*�*�+?�@�@��*�*�:�6�����,�7�6�A�'�
&�7�6���
��
��	'�
&�sH�D�C4�A,D�>C#�
D�#
C1	�-D�4
D�>D�D�D�
Dc�>�S[-n[n[[S5nURU5 [R	UR5U5n[R	UR5U5nUR
[5 URU5 SSS5 UR
[5 URU5 SSS5 UR5 URU5 URUR5U5 UR[R"UR55RU5 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
r4r�N)rAr?rr{rrCrJr-rWrDrGrXr%r�r�)r)r��reduced_sizerZrNrOs      r�+test_resize_fails_if_mapping_held_elsewhere�5MmapTests.test_resize_fails_if_mapping_held_elsewhere�s��
��\�
��������	�
�
�:��	����1�8�8�:�z�2�B����1�8�8�:�z�2�B��"�"�7�+��	�	�,�'�,��"�"�7�+��	�	�,�'�,��H�H�J��I�I�l�#����R�W�W�Y��5����R�W�W�Q�X�X�Z�0�8�8�,�G�
�G�G�I�,�+��+�+��
�G�G�I�s=�AF
�E(�!F
�>E9�BF
�(
E6�2F
�9
F�F
�
Fc��S[-n[n[5nSn[S[U555n[R	SXS9n[R	SXS9nXVSU&URUSUU5 UR
[5 URU5 SSS5 URUR5U5 URUSUU5 URUSUU5 g!,(df   NY=f)z�If 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
r4r�c3�N# �UHn[R"S5v� M g7f)r�N)r�getrandbits)r�rs  rr��UMmapTests.test_resize_succeeds_with_error_for_second_named_mapping.<locals>.<genexpr>�s ���G�4F�q�V�'�'��*�*�4F�s�#%r;rHN)
rArr�r�rrGrJr-rWrX)r)r�r�rI�data_lengthr�rNrOs        r�8test_resize_succeeds_with_error_for_second_named_mapping�BMmapTests.test_resize_succeeds_with_error_for_second_named_mapping�s���
��\�
���!�#�����G�E�+�4F�G�G��
�Y�Y�r�:�Y�
7��
�Y�Y�r�:�Y�
7���<�K������L�[�)�4�0�
�
�
�w�
'��I�I�l�#�(��������J�/�����L�[�)�4�0�����L�[�)�4�0�	(�
'�s�
C2�2
Dc	��	�"SS5n[R[R[R[R/n[R[R[R/nUGH�nU"U5upVUR[S5 XV"5 SSS5 SSS5 U"U5upVUR[S5 XV"5S SSS5 SSS5 U"U5upVUR[S5 XV"5SS2 SSS5 SSS5 U"U5upVUR[S5 USU"5S2 SSS5 SSS5 U"U5upVUR[S5 URU"55 SSS5 SSS5 U"U5upVUR[S5 URSS	U"55 SSS5 SSS5 GM� UGHNnU"U5upVUR[S5 S
XV"5S&SSS5 SSS5 U"U5upVUR[S5 SXV"5SS2'SSS5 SSS5 U"U5upVUR[S5 SUSU"5S2'SSS5 SSS5 U"U5upVUR[S5 URS	SU"55 SSS5 SSS5 U"U5upVUR[S5 URU"55 SSS5 SSS5 GMQ g!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GNp=f!,(df   GNz=f!,(df   GNL=f!,(df   GNV=f!,(df   GN&=f!,(df   GM�=f!,(df   GN=f!,(df   GN=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GM�=f)zR
gh-103987: Test that mmap objects raise ValueError
        for closed mmap files
c�*�\rSrSrSSjrSrSrSrg)�KMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContexti�Nc��Xlgr$rf)r)rgs  r�__init__�TMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__init__�s��$�rc�P^�[[S5UlURR[R
"S55 URR
5 [RURR5SURS9m"U4SjS5nTU4$)Nr�r�rfc�">�\rSrSrU4SjrSrg)�`MmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__enter__.<locals>.Xic�&>�TR5 gr])rDr�s �r�	__index__�jMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__enter__.<locals>.X.__index__s������	�!rr-N)r.r/r0r1r�r2)r[s�rr�r�s
���"�"rr�)
r?rrZr@rr�rBrrCrg)r)r�r[s  @r�	__enter__�UMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__enter__�sp����f�e�,��������V�-�-�c�2�3��������I�I�d�f�f�m�m�o�s�4�;�;�I�G��"�"�
�1�v�
rc�8�URR5 gr$)rZrD)r)�exc_type�	exc_value�	tracebacks    r�__exit__�TMmapTests.test_mmap_closed_by_int_scenarios.<locals>.MmapClosedByIntContext.__exit__s�������r)rgrZ)�returnN)r.r/r0r1r�r�r�r2r-rr�MmapClosedByIntContextr��s��
%�
�
rr�zmmap closed or invalidN�r4r��1r7s
1111111111s11111)rrtr|r}r�rrVrwrHr�rv)r)r��read_access_modes�write_access_modesrgr[r�s       r�!test_mmap_closed_by_int_scenarios�+MmapTests.test_mmap_closed_by_int_scenarios�s���	�	�,
������������	
��
���������
��(�F�'��/�6�A��+�+�J�8P�Q��a�c�F�R�0�(��/�6�A��+�+�J�8P�Q��a�c�B�K�R�0�(��/�6�A��+�+�J�8P�Q��a�c�B��l�O�R�0�(��/�6�A��+�+�J�8P�Q��b�1�3��m�$�R�0�(��/�6�A��+�+�J�8P�Q��F�F�1�3�K�R�0�(��/�6�A��+�+�J�8P�Q��F�F�4��A�C�(�R�0�/�+(�2)�F�'��/�6�A��+�+�J�8P�Q�"+�A�a�c�B�K�R�0�(��/�6�A��+�+�J�8P�Q�&.�A�a�c�B��l�O�R�0�(��/�6�A��+�+�J�8P�Q�'/�A�b�1�3��m�$�R�0�(��/�6�A��+�+�J�8P�Q��F�F�1�a���%�R�0�(��/�6�A��+�+�J�8P�Q��L�L���%�R�0�/�#)�/R�Q��0�/��
R�Q��0�/��
R�Q��0�/��
R�Q��0�/��
R�Q��0�/��
R�Q��0�/��R�Q��0�/��
R�Q��0�/��
R�Q��0�/��
R�Q��0�/��
R�Q��0�/�s��M0�
M�)M0�N�
N�$N�<N8�
N&�"N8�:O�O
�!O�9P�O.�)P�P$�P�3P$�Q	�/
P7�9Q	�Q-�*
Q�7Q-�R�(Q?�6R�R5�'R#�R5�S�1S�S�
M-�(M0�0
M?	�
N�N�
N#	�&
N5�0N8�8
O	�

O�O�
O+	�.
O=�8P�
P	�
P!�P$�$
P4	�7
Q�Q	�	
Q	�
Q*�%Q-�-
Q<	�?
R�	R�
R 	�#
R2�-R5�5
S	�
S�S�
S)	�_protectztest needs debug buildc���SSKJn [R"S5n[	SX!5up4nURUR
5S5 URUR
5S5 g)Nr)ra�

            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�textwrap�dedentr
rG�strip)r)r�code�rt�stdout�stderrs      r�test_access_violations� MmapTests.test_access_violationsIs\��	2����@ �@
��B.�d�D�A���F���������-���������-rr-N)?r.r/r0r1r*r.r`r�r��skipIfr%r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrr"r4�
skipUnless�hasattrrr7r<r@rErPrrUrZr_rcrirprtryr|r�r�r�r�r�r�r�r�r�r�r2r-rrr!r!#s!����]�~@�D�_�_�R�W�W��_�&F�G� @�H� @�D�_�_�R�W�W��_�&F�G�	$�H�	$��_�_�R�W�W��_�&E�F�/�G�/�8��$K�.
'� 8�$�;�
E�1�-�^
&�;�*8�9�5�()�<�7�r������{�3�5K�L�9�M�9�+� 6�D�������D��*<�=�(�>�(�<�
������D��*<�=�A�>��A�������D��*<�=��>��4������D��*<�=�	�>�	�"�
<�"�1�7��D�"0�H�������I�6��H�E�I�E�$V�2������G�+�-=�>�R�?�R� -�,������D��*<�=��>��.������D��*<�=�1�>�1�(T&�l������D��*<�=�
�������J�7�9Q�R�F.�S�>�F.rr!c���\rSrSrSrSrSrSrSrSr	\
R"\R\:�S5S	5r\
R"\R\:�S5S
5rSrg)
�LargeMmapTestsi�c�"�[[5 gr$�rrr(s rr*�LargeMmapTests.setUp��	���v�rc�"�[[5 gr$r�r(s rr.�LargeMmapTests.tearDown�r�rc��[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 run�r�z*filesystem does not have largefile support)rxryr	rrEr?rrTr@rBr-r!rVrDr�r�)r)�
num_zeroes�tailrZs    r�_make_test_file�LargeMmapTests._make_test_file�s����<�<����u�$����[�?�#�k�BR�R�
T������		R�
�F�F�:��
�G�G�D�M�
�G�G�I����
��
�3�	R�
����	���]�+�
��
���#�#�$P�Q�Q�	R�s0�2B�C�B'�&C�'B:�7C�9B:�:Cc��URSS5n[RUR5SS[RS9nUR	USS5 SSS5 SSS5 g!,(df   N=f!,(df   g=f)Nl��� rlr�i���� )r�rrCrtrG�r)rZr[s   r�test_large_offset� LargeMmapTests.test_large_offset�si��
�
!�
!�+�t�
4�����1�8�8�:�q��T�EU�EU��V�Z[�� � ��9��r�2�W�5�
4�V�V��5�
4�s#�3A>�A-�A>�-
A;	�7A>�>
Bc���URSS5n[RS:a�UR[5 [
RUR
5S[
RS9 SSS5 UR[5 [
RUR
5S[
RS9 SSS5 [
RUR
5S[
RS9nURUR5S5 SSS5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   N9=f!,(df   g=f)Nl��r�r�rfrr�)r�rxrrJr!rrCrtrVrGrXr�s   r�test_large_filesize�"LargeMmapTests.test_large_filesize�s���
�
!�
!�+�t�
4���{�{�[�(��&�&�}�5��I�I�a�h�h�j�+�d�>N�>N�I�O�6��&�&�z�2��I�I�a�h�h�j�!�D�4D�4D�I�E�3����1�8�8�:�w�t�7G�7G��H�A�� � �����;�7�I�5�
4�6�5��2�2��H�H��5�
4�sR�*E�2D)�/E�2D:�>9E�7!E�E�)
D7	�3E�:
E	�E�
E	�E�
E*c�Z�SnU[U5S--
nU[U5-nURX25n[RUR5S[RS9nURXcUU5 SSS5 SSS5 g!,(df   N=f!,(df   g=f)Ns  DEARdear  r4rrf)rIr�rrCrtrG)r)�boundaryr�r^r_rZr[s       r�_test_around_boundary�$LargeMmapTests._test_around_boundary�s������3�t�9��>�)���c�$�i���
�
!�
!�%�
.�!����1�8�8�:�q��1A�1A��B�a�� � ����t�4�C�/�
.�B�B��/�
.�s#�2B�%B�:B�
B	�B�
B*z!test cannot run on 32-bit systemsc�.�UR[5 gr$)r�rr(s r�test_around_2GB�LargeMmapTests.test_around_2GB�����"�"�3�'rc�.�UR[5 gr$)r�rr(s r�test_around_4GB�LargeMmapTests.test_around_4GB�rrr-N)r.r/r0r1r*r.r�r�r�r�r�r�rxrrrrr2r-rrr�r��sx�����"3�

8�5�������s�*�,O�P�(�Q�(�������s�*�,O�P�(�Q�(rr��__main__)rc)%�test.supportrrrrrrr	�test.support.import_helperr
r�rr�test.support.script_helperr
r�r�r%rNr�rr^rrxr�rlrrA�getpidrrr��TestCaser!r�r.�mainr-rr�<module>rs������5�1�7���	�	��
�
�
�
����V����=�=���2�9�9�;�-�z�2��(��
�
�
�L�
M�M�n.��!�!�n.�b#:(�X�&�&�:(�z�z���M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit