HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/test/__pycache__/test_bz2.cpython-312.opt-2.pyc
�

�h�eܕ����ddlmZddlmZmZddlZddlZddlmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlmZddlmZddlmZddlZddlZej2d�Zdd	lmZmZmZdad
�ZGd�dej@�Z!Gd
�de!�Z"Gd�de!�Z#Gd�de!�Z$Gd�de!�Z%Gd�de!�Z&d�Z'e(dk(rejR�yy)�)�support)�
bigmemtest�_4GN)�BytesIO�DEFAULT_BUFFER_SIZE)�
import_helper)�threading_helper)�unlink�bz2)�BZ2File�
BZ2Compressor�BZ2Decompressorc��t�ttjd��atrt	j
dg|��Stj|�S)N�bunzip2)�input)�has_cmdline_bunzip2�bool�shutil�which�
subprocess�check_outputr�
decompress)�datas �4/opt/alt/python312/lib64/python3.12/test/test_bz2.py�ext_decompressrsC���"�"�6�<�<�	�#:�;����&�&�	�{�$�?�?��~�~�d�#�#�c	���eZdZ	gd�Zdj	e�ZdZdZdZdZ	e
d�Zeje
jj	eje
jj!e��d��D]8Zeed	�5Ze	ej+ee�e	d
�z
Z	d
d
d
�e	dkDs�8nej1ed��Zd
�Zd�Zy
#1swY�,xYw)�BaseTest)s root:x:0:0:root:/root:/bin/bash
sbin:x:1:1:bin:/bin:
sdaemon:x:2:2:daemon:/sbin:
sadm:x:3:4:adm:/var/adm:
slp:x:4:7:lp:/var/spool/lpd:
s sync:x:5:0:sync:/sbin:/bin/sync
s-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
s!halt:x:7:0:halt:/sbin:/sbin/halt
s"mail:x:8:12:mail:/var/spool/mail:
s"news:x:9:13:news:/var/spool/news:
s#uucp:x:10:14:uucp:/var/spool/uucp:
s operator:x:11:0:operator:/root:
s!games:x:12:100:games:/usr/games:
s,gopher:x:13:30:gopher:/usr/lib/gopher-data:
s(ftp:x:14:50:FTP User:/var/ftp:/bin/bash
s#nobody:x:65534:65534:Nobody:/home:
s.postfix:x:100:101:postfix:/var/spool/postfix:
s-niemeyer:x:500:500::/home/niemeyer:/bin/bash
s>postgres:x:101:102:PostgreSQL Server:/var/lib/pgsql:/bin/bash
s6mysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash
s#www:x:103:104::/var/www:/bin/false
rs�BZh91AY&SY.�N>_�@��n?��0���F��#&�F��Ц�MQ���4hh$�i4�4S�<Q�H���Շ���
��I��/Epu�]ɻDL
Q	1ߠ���2O9��7d�I�J�L#����/��#C��W����M��Xa<e�t�L�����˄.�����`n}�lh	E,�ZVH>���9gd6
�Պ��.K�v��xw�ߡ���|/";���ձ#A���o��y\�O煚��f8�2��"%�>V,��z⟣�"�E)I�^��r�U�2�6���U��0��^��DF����ݸ����ankR���3]���f��"6l$�j@���l1..�k�ls����E��
��k��n��Q�%y�v��z��̹zn7.G�]��B@�!8`sBZh9rE8P�sthis is not a valid bzip2 fileriz*.py�rbN���
compresslevelc�f�tj�\}|_tj|�y�N)�tempfile�mkstemp�filename�os�close)�self�fds  r�setUpzBaseTest.setUpRs"��$�,�,�.���D�M�
����rc�.�t|j�yr$)r
r'�r*s r�tearDownzBaseTest.tearDownVs���t�}�}�r)�__name__�
__module__�__qualname__�
TEXT_LINES�join�TEXT�DATA�
EMPTY_DATA�BAD_DATA�	test_size�	bytearray�BIG_TEXT�globr(�path�escape�dirname�__file__�fname�open�fh�readinto�
memoryviewr�compress�BIG_DATAr,r/�rrrr&s����
�J�.�8�8�J��D�^�D�4�J�0�H��I���"�H�����2�7�7�<�<�����B�G�G�O�O�H�4M�(N�PV�W�X���
�%��
�	G�"�����Z��%9�)�*�%E�F�F�I�	G��x���	�
�|�|�H�A�|�6�H���	G�	G�s�C�C	rc��eZdZ	d>d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1e2jf�d0��Z4d1�Z5d2�Z6d3�Z7d4�Z8d5�Z9d6�Z:d7�Z;d8�Z<d9�Z=d:�Z>d;�Z?d<�Z@y=)?�BZ2FileTestc��t|jd�5}|j|j|z�|j|�ddd�y#1swYyxYw)N�wb)rBr'�writer6)r*�streams�suffix�fs    r�createTempFilezBZ2FileTest.createTempFile]sG��
�$�-�-��
&�	�!�
�G�G�D�I�I��'�(�
�G�G�F�O�	�	�	�s�0A�Ac�8�|jttd�|jtttj
d�|jtttj
d�|jtttj
d�|jtttj
d��|jtttj
d��|jtttj
dd	�y)
Ngw��/�^@�z�rx�rbtrr!�
�r�)�assertRaises�	TypeErrorr�
ValueErrorr(�devnullr.s r�testBadArgszBZ2FileTest.testBadArgsbs������)�W�g�6����*�g�r�z�z�3�?����*�g�r�z�z�4�@����*�g�r�z�z�5�A����*�g�r�z�z���K����*�g�r�z�z���L�	
���)�W�b�j�j�#�q�Arc��|j�t|j�5}|jt|j
t
��|j|j�|j�ddd�y#1swYyxYwr$�	rQrr'rYrZ�read�float�assertEqualr5�r*�bz2fs  r�testReadzBZ2FileTest.testReadmsc������
�T�]�]�
#�	5�t����i����E�G�<����T�Y�Y�[�$�)�)�4�	5�	5�	5�s�AB�Bc���|jd|j��t|j�5}|j	t
|j�ddd�y#1swYyxYw)Nr�rNrO)rQr8rr'rY�OSErrorr`rcs  r�testReadBadFilezBZ2FileTest.testReadBadFilessP�����A�d�m�m��<�
�T�]�]�
#�	2�t����g�t�y�y�1�	2�	2�	2�s�!A�A&c�(�|jd��t|j�5}|jt|j
t
��|j|j�|jdz�ddd�y#1swYyxYw�N��rNr_rcs  r�testReadMultiStreamzBZ2FileTest.testReadMultiStreamxsl�����A��&�
�T�]�]�
#�	9�t����i����E�G�<����T�Y�Y�[�$�)�)�a�-�8�	9�	9�	9�s�AB�Bc��tj}t|j�t_	|j	d��t|j�5}|jt|jt��|j|j�|jdz�ddd�|t_y#1swY�xYw#|t_wxYwrk)
�_compression�BUFFER_SIZE�lenr6rQrr'rYrZr`rarbr5)r*�buffer_sizerds   r�testReadMonkeyMultiStreamz%BZ2FileTest.testReadMonkeyMultiStream~s���#�.�.��#&�t�y�y�>�� �	3������*�����'�
=�4��!�!�)�T�Y�Y���@�� � �����d�i�i�!�m�<�
=�(3�L�$�	
=�
=��(3�L�$�s$�'C�AC�.C�C�C�
Cc���|j|j��t|j�5}|j	|j�|j�ddd�y#1swYyxYw)N)rO�rQr8rr'rbr`r5rcs  r�testReadTrailingJunkz BZ2FileTest.testReadTrailingJunk�sT�����4�=�=��1�
�T�]�]�
#�	5�t����T�Y�Y�[�$�)�)�4�	5�	5�	5�s�+A&�&A/c���|jd|j��t|j�5}|j	|j�|jdz�ddd�y#1swYyxYw)Nrlrgrvrcs  r�testReadMultiStreamTrailingJunkz+BZ2FileTest.testReadMultiStreamTrailingJunk�sZ�����A�d�m�m��<�
�T�]�]�
#�	9�t����T�Y�Y�[�$�)�)�a�-�8�	9�	9�	9�s�.A*�*A3c��|j�t|j�5}|jt|j
t
��|j|jd�d�ddd�y#1swYyxYw)Nrr)rQrr'rYrZr`rarbrcs  r�	testRead0zBZ2FileTest.testRead0�sa������
�T�]�]�
#�	0�t����i����E�G�<����T�Y�Y�q�\�3�/�	0�	0�	0�s�AA:�:Bc���|j�t|j�5}d}	|jd�}|sn||z
}�|j	||j
�ddd�y#1swYyxYw)NrrV�rQrr'r`rbr5�r*rd�text�strs    r�testReadChunk10zBZ2FileTest.testReadChunk10�sp������
�T�]�]�
#�	.�t��D���i�i��m��������	�

���T�4�9�9�-�	.�	.�	.�s�:A)�)A2c���|jd��t|j�5}d}	|jd�}|sn||z
}�|j	||j
dz�ddd�y#1swYyxYw)NrlrmrrVr}r~s    r�testReadChunk10MultiStreamz&BZ2FileTest.testReadChunk10MultiStream�sy�����A��&�
�T�]�]�
#�	2�t��D���i�i��m��������	�

���T�4�9�9�q�=�1�	2�	2�	2�s�=A.�.A7c���|j�t|j�5}|j|j	d�|j
dd�ddd�y#1swYyxYw)N�d)rQrr'rbr`r5rcs  r�testRead100zBZ2FileTest.testRead100�sS������
�T�]�]�
#�	>�t����T�Y�Y�s�^�T�Y�Y�t��_�=�	>�	>�	>���/A�A'c�v�|j�t|j�5}|j�}|j	t|�d�|j
|jj|��|j|j�|j�ddd�y#1swYyxYw�Nr)rQrr'�peek�assertNotEqualrr�
assertTruer5�
startswithrbr`)r*rd�pdatas   r�testPeekzBZ2FileTest.testPeek�s�������
�T�]�]�
#�	5�t��I�I�K�E�����E�
�A�.��O�O�D�I�I�0�0��7�8����T�Y�Y�[�$�)�)�4�		5�	5�	5�s�BB/�/B8c��|j�t|j�5}d}t|�}|j	|j|�|�|j	||jd|�t|j�|z
}tt|j��}|j	|j|�|�|j	|d||j|d�ddd�y#1swYyxYw)N�)rQrr'r:rbrDr5rr)r*rd�n�bs    r�testReadIntozBZ2FileTest.testReadInto�s�������
�T�]�]�
#�	4�t��A��!��A����T�]�]�1�-�q�1����Q��	�	�"�1�
�.��D�I�I���"�A��#�d�i�i�.�)�A����T�]�]�1�-�q�1����Q�r��U�D�I�I�q�b�c�N�3�	4�	4�	4�s�CC7�7Dc��|j�t|j�5}|jt|j
d�|jD]"}|j|j�|��$	ddd�y#1swYyxYwr$�rQrr'rYrZ�readliner3rb�r*rd�lines   r�testReadLinezBZ2FileTest.testReadLine�sp������
�T�]�]�
#�	8�t����i�����=����
8��� � �����$�7�
8�	8�	8�	8�s�AB�Bc�(�|jd��t|j�5}|jt|j
d�|jdzD]"}|j|j�|��$	ddd�y#1swYyxYwrkr�r�s   r�testReadLineMultiStreamz#BZ2FileTest.testReadLineMultiStream�sz�����A��&�
�T�]�]�
#�	8�t����i�����=����!�+�
8��� � �����$�7�
8�	8�	8�	8�s�AB�Bc��|j�t|j�5}|jt|j
d�|j
|j�|j�ddd�y#1swYyxYwr$�rQrr'rYrZ�	readlinesrbr3rcs  r�
testReadLineszBZ2FileTest.testReadLines�sf������
�T�]�]�
#�	@�t����i�����>����T�^�^�-�t���?�	@�	@�	@�s�AA;�;Bc��|jd��t|j�5}|jt|j
d�|j
|j�|jdz�ddd�y#1swYyxYwrkr�rcs  r�testReadLinesMultiStreamz$BZ2FileTest.testReadLinesMultiStream�sp�����A��&�
�T�]�]�
#�	D�t����i�����>����T�^�^�-�t����/B�C�	D�	D�	D�s�AB�B	c���|j�t|j�5}|jt	t|��|j�ddd�y#1swYyxYwr$�rQrr'rb�list�iterr3rcs  r�testIteratorzBZ2FileTest.testIterator�sR������
�T�]�]�
#�	@�t����T�$�t�*�-�t���?�	@�	@�	@�r�c���|jd��t|j�5}|jt	t|��|jdz�ddd�y#1swYyxYwrkr�rcs  r�testIteratorMultiStreamz#BZ2FileTest.testIteratorMultiStream�s\�����A��&�
�T�]�]�
#�	D�t����T�$�t�*�-�t����/B�C�	D�	D�	D�s�2A#�#A,c���|j�t|j�}|j�|j	t
t|�|j	t
|j�yr$)rQrr'r)rYr[�nextr�rcs  r�testClosedIteratorDeadlockz&BZ2FileTest.testClosedIteratorDeadlock�sK�������t�}�}�%���
�
�����*�d�D�1����*�d�n�n�5rc��t|jd�5}|jt|j�|j	|j
�ddd�t
|jd�5}|jt|j��|j
�ddd�y#1swY�\xYw#1swYyxYw)N�wr�
rr'rYrZrMr5rBrbrr`�r*rdrPs   r�	testWritezBZ2FileTest.testWrite�s���
�T�]�]�C�
(�	"�D����i����4��J�J�t�y�y�!�	"��$�-�-��
&�	B�!����^�A�F�F�H�5�t�y�y�A�	B�	B�	"�	"��	B�	B�s�<B.�14B:�.B7�:Cc��t|jd�5}d}	|j|dz|dzdz}|sn|j|�|dz
}�2	ddd�t	|jd�5}|jt
|j��|j�ddd�y#1swY�\xYw#1swYyxYw)Nr�rrVr r)rr'r5rMrBrbrr`)r*rdr�r�rPs     r�testWriteChunks10zBZ2FileTest.testWriteChunks10�s���
�T�]�]�C�
(�	�D��A���i�i��"��a��c�2�X�.�����
�
�3���Q�����	��$�-�-��
&�	B�!����^�A�F�F�H�5�t�y�y�A�	B�	B�	�	��	B�	B�s�6B)�,4B5�)B2�5B>c�l�tj|jd��}t|jdd��5}|j|j�ddd�t
|jd�5}|j|j�|�ddd�y#1swY�IxYw#1swYyxYw)Nrlr!r�r)	rrFr5rr'rMrBrbr`)r*�expectedrdrPs    r� testWriteNonDefaultCompressLevelz,BZ2FileTest.testWriteNonDefaultCompressLevel
s����<�<��	�	��<�;��
�T�]�]�C�q�
9�	"�T��J�J�t�y�y�!�	"�
�$�-�-��
&�	1�!����Q�V�V�X�x�0�	1�	1�	"�	"��	1�	1�s�B�4!B*�B'�*B3c���t|jd�5}|jt|j�|j	|j
�ddd�|jtjdg�t|jd�5}|jt|j��|j�ddd�y#1swY�~xYw#1swYyxYw)Nr��ar)rr'rYrZ�
writelinesr3r[rBrbrr`r5r�s   r�testWriteLineszBZ2FileTest.testWriteLiness���
�T�]�]�C�
(�	-�D����i����9��O�O�D�O�O�,�	-�
	
���*�d�o�o��u�=�
�$�-�-��
&�	B�!����^�A�F�F�H�5�t�y�y�A�	B�	B�
	-�	-��	B�	B�s�<C�4C�C�C%c�X�t|jd�5}|jd�ddd�t|jd�5}|jt|jd�|jt|j
dg�ddd�y#1swY�lxYw#1swYyxYw)Nr�sabcrW�a)rr'rMrYrhr�rcs  r�testWriteMethodsOnReadOnlyFilez*BZ2FileTest.testWriteMethodsOnReadOnlyFiles���
�T�]�]�C�
(�	�D��J�J�v��	��T�]�]�C�
(�	@�D����g�t�z�z�4�8����g�t�����?�	@�	@�	�	��	@�	@�s�B�AB �B� B)c�^�t|jd�5}|jt|j�|j	|j
�ddd�t|jd�5}|jt|j�|j	|j
�ddd�t
|jd�5}|jt|j��|j
dz�ddd�y#1swY��xYw#1swY�kxYw#1swYyxYw)Nr�r�r�r�r�s   r�
testAppendzBZ2FileTest.testAppend#s���
�T�]�]�C�
(�	"�D����i����4��J�J�t�y�y�!�	"��T�]�]�C�
(�	"�D����i����4��J�J�t�y�y�!�	"��$�-�-��
&�	F�!����^�A�F�F�H�5�t�y�y�1�}�E�	F�	F�
	"�	"��	"�	"��	F�	F�s#�<D�1<D�7D#�D�D �#D,c�4�|j�t|j�5}|jt|j
�|jd�|j
|j�|jdd�ddd�y#1swYyxYw�N�)	rQrr'rYrZ�seekrbr`r5rcs  r�testSeekForwardzBZ2FileTest.testSeekForward-sp������
�T�]�]�
#�	;�t����i����3��I�I�c�N����T�Y�Y�[�$�)�)�C�D�/�:�	;�	;�	;�s�AB�Bc�d�|jd��t|j�5}|jt|j
�|jt
|j�dz�|j|j�|jdd�ddd�y#1swYyxYw)Nr�rmr�)
rQrr'rYrZr�rrr5rbr`rcs  r�testSeekForwardAcrossStreamsz(BZ2FileTest.testSeekForwardAcrossStreams4s������A��&�
�T�]�]�
#�	;�t����i����3��I�I�c�$�)�)�n�s�*�+����T�Y�Y�[�$�)�)�C�D�/�:�	;�	;�	;�s�A5B&�&B/c��|j�t|j�5}|jd�|j	dd�|j|j�|jdd�ddd�y#1swYyxYw�Ni��j���r i^)rQrr'r`r�rbr5rcs  r�testSeekBackwardszBZ2FileTest.testSeekBackwards;sk������
�T�]�]�
#�	?�t��I�I�c�N��I�I�d�A�����T�Y�Y�[�$�)�)�G�H�*=�>�	?�	?�	?�s�AB�B	c��|jd��t|j�5}t|j�dz}|dkDr#|t|j|��z}|dkDr�#|j
dd�|j|j�|jdd|jz�ddd�y#1swYyxYw)Nr�rmr�rr�r i���)rQrr'rrr5r`r�rb)r*rd�readtos   r�testSeekBackwardsAcrossStreamsz*BZ2FileTest.testSeekBackwardsAcrossStreamsBs������A��&�
�T�]�]�
#�	K�t�����^�c�)�F��1�*��#�d�i�i��/�0�0���1�*��I�I�d�A�����T�Y�Y�[�$�)�)�G�H�*=��	�	�*I�J�	K�	K�	K�s�AB>�)AB>�>Cc�"�|j�t|j�5}|jdd�|j	|j�|jt|j�dz
d�ddd�y#1swYyxYw)Nr�r�r�)rQrr'r�rbr`r5rrrcs  r�testSeekBackwardsFromEndz$BZ2FileTest.testSeekBackwardsFromEndKsr������
�T�]�]�
#�	J�t��I�I�d�A�����T�Y�Y�[�$�)�)�C��	�	�N�3�4F�4G�*H�I�	J�	J�	J�s�AB�Bc��|jd��t|j�5}|jdd�|j	|j�|jdzdd�ddd�y#1swYyxYw)Nr�rmi���)rQrr'r�rbr`r5rcs  r�%testSeekBackwardsFromEndAcrossStreamsz1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamsQsm�����A��&�
�T�]�]�
#�	C�t��I�I�e�Q�����T�Y�Y�[�4�9�9�q�=�%�&�*A�B�	C�	C�	C�s�AA4�4A=c�@�|j�t|j�5}|jd�|j	|j�t
|j��|j	|j�d�ddd�y#1swYyxYw�N��Ir�	rQrr'r�rb�tellrrr5r`rcs  r�testSeekPostEndzBZ2FileTest.testSeekPostEndWsq������
�T�]�]�
#�	/�t��I�I�f�����T�Y�Y�[�#�d�i�i�.�9����T�Y�Y�[�#�.�	/�	/�	/�s�A%B�Bc�J�|jd��t|j�5}|jd�|j	|j�t
|j�dz�|j	|j�d�ddd�y#1swYyxYw�Nrlrmr�rr�rcs  r�testSeekPostEndMultiStreamz&BZ2FileTest.testSeekPostEndMultiStream^s{�����A��&�
�T�]�]�
#�	/�t��I�I�f�����T�Y�Y�[�#�d�i�i�.�1�*<�=����T�Y�Y�[�#�.�	/�	/�	/�s�A(B�B"c�b�|j�t|j�5}|jd�|jd�|j	|j�t
|j��|j	|j�d�ddd�y#1swYyxYwr�r�rcs  r�testSeekPostEndTwicez BZ2FileTest.testSeekPostEndTwicees}������
�T�]�]�
#�	/�t��I�I�f���I�I�f�����T�Y�Y�[�#�d�i�i�.�9����T�Y�Y�[�#�.�		/�	/�	/�s�A6B%�%B.c�l�|jd��t|j�5}|jd�|jd�|j	|j�t
|j�dz�|j	|j�d�ddd�y#1swYyxYwr�r�rcs  r�testSeekPostEndTwiceMultiStreamz+BZ2FileTest.testSeekPostEndTwiceMultiStreamms������A��&�
�T�]�]�
#�	/�t��I�I�f���I�I�f�����T�Y�Y�[�#�d�i�i�.�1�*<�=����T�Y�Y�[�#�.�		/�	/�	/�s�A9B*�*B3c�.�|j�t|j�5}|jd�|j	|j�d�|j	|j
�|j�ddd�y#1swYyxYw)Nr�r�rQrr'r�rbr�r`r5rcs  r�testSeekPreStartzBZ2FileTest.testSeekPreStartusl������
�T�]�]�
#�	5�t��I�I�d�O����T�Y�Y�[�!�,����T�Y�Y�[�$�)�)�4�	5�	5�	5�s�AB�Bc�8�|jd��t|j�5}|jd�|j	|j�d�|j	|j
�|jdz�ddd�y#1swYyxYw)Nr�rmr�rr�rcs  r�testSeekPreStartMultiStreamz'BZ2FileTest.testSeekPreStartMultiStream|su�����A��&�
�T�]�]�
#�	9�t��I�I�d�O����T�Y�Y�[�!�,����T�Y�Y�[�$�)�)�a�-�8�	9�	9�	9�s�AB�Bc�z�|j�t|jd�5}t|�}	|j	|j�|j��|j
�	ddd�|jtj
�y#|j
�wxYw#1swY�?xYw)Nr)	rQrBr'rrb�filenor)rYr[)r*�rawfrds   r�
testFilenozBZ2FileTest.testFileno�s�������
�$�-�-��
&�	�$��4�=�D�
�� � ��������
�>��
�
��	�	
���*�d�k�k�2���
�
���	�	�s"�B1�.B�"B1�B.�.B1�1B:c�t�tt|j��}	|j|j	��|j�|j|j	��|j
�|jt|j�tt�d�}	|j|j	��|j
�|jt|j�t|j�}d�|_t|�}	|j|j	��|j
�|jt|j�y#|j
�wxYw#|j
�wxYw#|j
�wxYw)Nr�c��y)NFrHrHrr�<lambda>z*BZ2FileTest.testSeekable.<locals>.<lambda>�s�r)
rrr6r��seekabler`r)rYr[�assertFalse)r*rd�srcs   r�testSeekablezBZ2FileTest.testSeekable�s!���w�t�y�y�)�*��	��O�O�D�M�M�O�,��I�I�K��O�O�D�M�M�O�,��J�J�L����*�d�m�m�4��w�y�#�&��	����T�]�]�_�-��J�J�L����*�d�m�m�4��d�i�i� ��$����s�|��	����T�]�]�_�-��J�J�L����*�d�m�m�4��#
�J�J�L��
�J�J�L��
�J�J�L�s$�AE;�3F�+F%�;F
�F"�%F7c�Z�tt|j��}	|j|j	��|j�|j|j	��|j
�|jt|j�tt�d�}	|j|j	��|j
�|jt|j�y#|j
�wxYw#|j
�wxYw�Nr�)
rrr6r��readabler`r)rYr[r�rcs  r�testReadablezBZ2FileTest.testReadable�s����w�t�y�y�)�*��	��O�O�D�M�M�O�,��I�I�K��O�O�D�M�M�O�,��J�J�L����*�d�m�m�4��w�y�#�&��	����T�]�]�_�-��J�J�L����*�d�m�m�4��
�J�J�L��
�J�J�L���AD�3D�D�D*c�Z�tt|j��}	|j|j	��|j�|j|j	��|j
�|jt|j�tt�d�}	|j|j	��|j
�|jt|j�y#|j
�wxYw#|j
�wxYwr�)
rrr6r��writabler`r)rYr[r�rcs  r�testWritablezBZ2FileTest.testWritable�s����w�t�y�y�)�*��	����T�]�]�_�-��I�I�K����T�]�]�_�-��J�J�L����*�d�m�m�4��w�y�#�&��	��O�O�D�M�M�O�,��J�J�L����*�d�m�m�4��
�J�J�L��
�J�J�L�r�c�p�|j�td�D]}t|j�}~�y)Ni')rQ�rangerr')r*�i�os   r�testOpenDelzBZ2FileTest.testOpenDel�s2�������u��	�A���
�
�&�A��	rc�:�|jttd�y)Nz
/non/existent)rYrhrr.s r�testOpenNonexistentzBZ2FileTest.testOpenNonexistent�s�����'�7�O�<rc���d}t|jd�5}|j|�ddd�t|j�5}|j	�}ddd�|jdg�t|j�5}t
|j	��}ddd�|jdg�y#1swY��xYw#1swY�sxYw#1swY�5xYw)Ns,BZh91AY&SY�b�]� !�h3M<]��BCe�%trLsTest)rBr'rMrr�rbr�)r*rrPrd�lines�xliness      r�testReadlinesNoNewlinez"BZ2FileTest.testReadlinesNoNewline�s���z��
�$�-�-��
&�	�!�
�G�G�D�M�	�
�T�]�]�
#�	%�t��N�N�$�E�	%������	�*�
�T�]�]�
#�	,�t��$�.�.�*�+�F�	,�����'��+�	�	��	%�	%��	,�	,�s#�B?�C�	C�?C�C�C c���d}t|jd�5}|jd�ddd�t|jd�}|j�	|5	ddd�|j	d�	t|jd�5}ddzddd�|j	d�y#1swY��xYw#1swY�]xYw#t
$rY�ZwxYw#1swY�BxYw#t$rYywxYw)NrLsxxxrz4__enter__ on a closed file didn't raise an exceptionr rz1/0 didn't raise an exception)rr'rMr)�failr[�ZeroDivisionError�r*rPs  r�testContextProtocolzBZ2FileTest.testContextProtocol�s�����
�T�]�]�D�
)�	�Q�
�G�G�F�O�	��D�M�M�4�(��	���	�	N��
��
�

�I�I�L�M�	7������-�
���!��
�

�I�I�5�6�#	�	��

�
���	��	��

�
�� �	��	�s_�B.�C�B:�C�8C!�C�C!�.B7�:C�?C�	C�C�C�C!�!	C-�,C-c�0���ddz�d}t|jd�5���fd�}t|�D�cgc]}tj|����}}tj|�5	ddd�ddd�ycc}w#1swY�xYw#1swYyxYw)N�1irVrLc�H��td�D]}�j���y�Nrl)r�rM)r�rrPs ��r�compz'BZ2FileTest.testThreading.<locals>.comp�s!����q��"�A��G�G�D�M�"r)�target)rr'r��	threading�Threadr	�
start_threads)r*�nthreadsrr��threadsrrPs     @@r�
testThreadingzBZ2FileTest.testThreading�s�����e�|����
�T�]�]�D�
)�	�Q�
"�?D�H�o�N��y�'�'�t�4�N�G�N�!�/�/��8�
��
�	�	��O�
�
��	�	�s4�B�A;�B�(B�*B�;B�B		�B�Bc��|j�t|jd�}|dz}t|j�5}|j|�|j
t|�|jd|d�|j
|j�|j|d�ddd�t|j�5}|j�|j
t|�|jd�|j
|j�|jd�ddd�t|j�5}|j�|jtt|�|j
|j�g�ddd�y#1swY��xYw#1swY�xYw#1swYyxYw)Nrr�r )
rQrrr3rr'r`rbr�r5r�r�rY�
StopIteration)r*�linelen�halflenrds    r�testMixedIterationAndReadsz&BZ2FileTest.testMixedIterationAndReadssi�������d�o�o�a�(�)���Q�,��
�T�]�]�
#�	?�t��I�I�g�����T�$�Z�����);�G�H�)E�F����T�Y�Y�[�$�)�)�G�H�*=�>�	?��T�]�]�
#�	B�t��M�M�O����T�$�Z�����);�<����T�]�]�_�d�o�o�a�.@�A�	B��T�]�]�
#�	3�t��N�N�����m�T�4�8����T�^�^�-�r�2�	3�	3�	?�	?��	B�	B��	3�	3�s'�A*F"�
A&F.�
AF:�"F+�.F7�:Gc��d}d}t|jd�5}|j|�ddd�t|jd�5}|j|�ddd�t|j�5}|j|j	�||z�ddd�y#1swY�{xYw#1swY�WxYw#1swYyxYw)Ns�foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos�barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarr�r�)rr'rMrbr`)r*�data1�data2rds    r�testMultiStreamOrderingz#BZ2FileTest.testMultiStreamOrderings�������
�T�]�]�C�
(�	�D��J�J�u��	�
�T�]�]�C�
(�	�D��J�J�u��	�
�T�]�]�
#�	9�t����T�Y�Y�[�%�%�-�8�	9�	9�		�	��	�	��	9�	9�s#�B'�B3�:$B?�'B0�3B<�?Cc�$�|j}	|jd�}t	d�5}|j|j�ddd�t	|d�5}|j|j�|j�ddd�t	|d�5}|j|j�|j�ddd�y#t$r|jd�Y��wxYw#1swY��xYw#1swY�uxYw#1swYyxYw)N�asciiz%Temporary file name needs to be ASCIIrLr)	r'�encode�UnicodeEncodeError�skipTestrrMr6rbr`)r*�str_filename�bytes_filenamerPs    r�testOpenBytesFilenamez!BZ2FileTest.testOpenBytesFilenames����}�}��	C�)�0�0��9�N��^�T�
*�	�a�
�G�G�D�I�I��	�
�^�T�
*�	2�a����Q�V�V�X�t�y�y�1�	2��\�4�
(�	2�A����Q�V�V�X�t�y�y�1�	2�	2��"�	C��M�M�A�B�	C��	�	��	2�	2��	2�	2�s4�C�C.�+C:�+D�C+�*C+�.C7�:D�Dc�P�tj|j�}t|d�5}|j	|j
�ddd�t|d�5}|j
|j�|j
�ddd�y#1swY�IxYw#1swYyxYw)NrLr)�pathlib�Pathr'rrMr6rbr`)r*r'rPs   r�testOpenPathLikeFilenamez$BZ2FileTest.testOpenPathLikeFilename*s����<�<��
�
�.��
�X�t�
$�	��
�G�G�D�I�I��	�
�X�t�
$�	2�����Q�V�V�X�t�y�y�1�	2�	2�	�	��	2�	2�s�B�+B�B�B%c��	tjdtd�zd��}|jt	|�t
j�tt|��}|j|jd�d�dtz}|j|jjj�|d�y)N�g��>A�	r!r z)Excessive amount of data was decompressed)rrF�int�
assertLessrrrprqrrrbr`r�assertLessEqual�_buffer�rawr�)r*�bomb�decomp�
max_decomps    r�testDecompressLimitedz!BZ2FileTest.testDecompressLimited1s���;��|�|�E�C��H�,�A�|�>������D�	�<�#;�#;�<�����'��������Q���/��,�,�
����V�^�^�/�/�4�4�6�
�7�	9rc�t�t|j�5}t|�5}|jt|j
t
��|j|j�|j�ddd�|j|j�ddd�y#1swY�-xYw#1swYyxYwr$)rr6rrYrZr`rarbr5r��closed�r*�biords   r�testReadBytesIOzBZ2FileTest.testReadBytesIO?s���
�T�Y�Y�
�	)�3����
9���!�!�)�T�Y�Y���@�� � �����d�i�i�8�
9�
���S�Z�Z�(�		)�	)�
9�
9��	)�	)�s#�B.�AB"�6#B.�"B+	�'B.�.B7c��t|j�5}t|�5}|j�}|j	t|�d�|j
|jj|��|j|j�|j�ddd�ddd�y#1swY�xYw#1swYyxYwr�)rr6rr�r�rrr�r5r�rbr`)r*r8rdr�s    r�testPeekBytesIOzBZ2FileTest.testPeekBytesIOFs���
�T�Y�Y�
�	9�3����
9���	�	����#�#�C��J��2�����	�	� 4� 4�U� ;�<�� � �����d�i�i�8�	
9�	9�	9�
9�
9��	9�	9�s#�B?�BB3�"B?�3B<	�8B?�?Cc��t�5}t|d�5}|jt|j�|j	|j
�ddd�|j
t|j��|j
�|j|j�ddd�y#1swY�`xYw#1swYyxYwr�)rrrYrZrMr5rbr�getvaluer�r6r7s   r�testWriteBytesIOzBZ2FileTest.testWriteBytesIONs���
�Y�	)�#���c�"�
&�d��!�!�)�T�Z�Z�8��
�
�4�9�9�%�
&�
���^�C�L�L�N�;�T�Y�Y�G����S�Z�Z�(�	)�	)�
&�
&��	)�	)�s#�
B?�<B3�AB?�3B<	�8B?�?Cc�T�t|j�5}t|�5}|jt|j
�|jd�|j
|j�|jdd�ddd�ddd�y#1swY�xYw#1swYyxYwr�)	rr6rrYrZr�rbr`r5r7s   r�testSeekForwardBytesIOz"BZ2FileTest.testSeekForwardBytesIOVs���
�T�Y�Y�
�	?�3����
?���!�!�)�T�Y�Y�7��	�	�#��� � �����d�i�i���o�>�
?�	?�	?�
?�
?��	?�	?�s#�B�AB�B�B	�B�B'c�8�t|j�5}t|�5}|jd�|j	dd�|j|j�|jdd�ddd�ddd�y#1swY�xYw#1swYyxYwr�)rr6rr`r�rbr5r7s   r�testSeekBackwardsBytesIOz$BZ2FileTest.testSeekBackwardsBytesIO]s���
�T�Y�Y�
�	C�3����
C���	�	�#���	�	�$��"�� � �����d�i�i���.A�B�
C�	C�	C�
C�
C��	C�	C�s#�B�AB�3B�B
	�	B�Bc�~�|jdd}tt|��5}|jt|j
�ddd�tt|��5}|j
|jt|j��|j�|jt|j
d�ddd�td�D]C}tt|d|��5}|jt|j
d�ddd��Ey#1swY��xYw#1swY�gxYw#1swY�hxYw)N���r �)
r6rrrY�EOFErrorr`rbrrr5r�)r*�	truncatedrPr�s    r�test_read_truncatedzBZ2FileTest.test_read_truncatedds���I�I�d�s�O�	�
�W�Y�'�
(�	0�A����h����/�	0�
�W�Y�'�
(�	3�A����Q�V�V�C��	�	�N�3�T�Y�Y�?����h�����2�	3��r��	7�A����2�A��/�0�
7�A��!�!�(�A�F�F�A�6�
7�
7�	7�
	0�	0��	3�	3��

7�
7�s$�!D�!A D'�."D3�D$�'D0�3D<	c�8�tjdgd��}t|�|jz}tt	�d�5}|j|j
|�|�|j|j�|�ddd�y#1swYyxYw)N�Q)r r�rX�rlr�)�arrayrr�itemsizerrrbrMr�)r*�q�LENGTHrPs    r�test_issue44439zBZ2FileTest.test_issue44439qsu���K�K��_�-���Q��!�*�*�$��
�W�Y��
$�	/�����Q�W�W�Q�Z��0����Q�V�V�X�v�.�	/�	/�	/�s
�AB�BN)r r)Ar0r1r2rQr]rerirnrtrwryr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr	�requires_working_threadingrrrr$r(r4r9r;r>r@rBrHrPrHrrrJrJZsZ����
	B�5�2�
9�3�5�
9�
0�	.�	2�>�
5�
4�8�8�@�D�@�
D�
6�B�
B�1�B�@�F�;�;�?�K�J�C�/�/�/�/�5�9�3�5�45�"5�"�=�
,�7�*1��0�0�2�
�3�
�3�"	9�2�2�	9�)�9�)�?�C�7�/rrJc�h�eZdZd�Zd�Zd�Zejee	dzd��d���Z
d�Zy	)
�BZ2CompressorTestc��t�}|jt|j�|j|j�}||j�z
}|j
t|�|j�yr$)r
rYrZrFr5�flushrbr�r*�bz2crs   r�testCompresszBZ2CompressorTest.testCompress{sX��������)�T�]�]�3��}�}�T�Y�Y�'����
�
���������-�t�y�y�9rc��t�}|jd�}||j�z
}|j||j�y�Nr)r
rFrUrbr7rVs   r�testCompressEmptyStringz)BZ2CompressorTest.testCompressEmptyString�s;������}�}�S�!����
�
��������t���/rc��t�}d}d}	|j|dz|dzdz}|sn||j|�z
}|dz
}�5||j�z
}|j	t|�|j�y)NrrrVr )r
r5rFrUrbr)r*rWr�rr�s     r�testCompressChunks10z&BZ2CompressorTest.testCompressChunks10�s������
������)�)�A�b�D�!�A�#�r��*�C����D�M�M�#�&�&�D�
��F�A��	
��
�
���������-�t�y�y�9rr�r���size�memusec�F�t�}d|z}	|j|�}||j�z
}d}tj	|�}	|jt
|�|�|jt
|jd��d�d}y#d}wxYw#d}wxYw)N�xr)r
rFrUrrrbrr�strip)r*r_rWr�
compresseds     r�testCompress4Gz BZ2CompressorTest.testCompress4G�s�������d�{��	����t�,�J��$�*�*�,�&�J��D��~�~�j�)��	����S��Y��-����S����D�!1�2�A�6��D��
�D���D�s�$B�
AB�B�B c���ttjdz�D]>}|jt�5tj
t
�|�ddd��@y#1swY�KxYw�Nr )r��pickle�HIGHEST_PROTOCOLrYrZ�dumpsr
�r*�protos  r�
testPicklezBZ2CompressorTest.testPickle�sY���6�2�2�Q�6�7�	5�E��"�"�9�-�
5����]�_�e�4�
5�
5�	5�
5�
5���A�A(	N)r0r1r2rXr[r]r�skip_if_pgo_taskrrrermrHrrrSrSzsC��:�0�:�
����S�3�Y�q�)��*��� 5rrSc��eZdZd�Zd�Zd�Zd�Zd�Zeje
edzd��d	���Zd
�Z
d�Zd�Zd
�Zd�Zd�Zej&d��Zd�Zy)�BZ2DecompressorTestc�:�|jttd�y)N�*)rYrZrr.s r�test_Constructorz$BZ2DecompressorTest.test_Constructor�s�����)�_�b�9rc���t�}|jt|j�|j|j�}|j||j�yr$)rrYrZrr6rbr5�r*�bz2drs   r�testDecompressz"BZ2DecompressorTest.testDecompress�sD��� �����)�T�_�_�5����t�y�y�)������t�y�y�)rc���t�}d}d}	|j|dz|dzdz}|sn||j|�z
}|dz
}�5|j||j�y)NrrrVr )rr6rrbr5)r*rwrr�r�s     r�testDecompressChunks10z*BZ2DecompressorTest.testDecompressChunks10�sp��� ����
����)�)�A�b�D�!�A�#�r��*�C����D�O�O�C�(�(�D�
��F�A��	
����t�y�y�)rc���t�}d}|j|j|z�}|j||j�|j|j
|�y)Nsthis is unused data)rrr6rbr5�unused_data)r*rwr|rs    r�testDecompressUnusedDataz,BZ2DecompressorTest.testDecompressUnusedData�sP��� ��,�����t�y�y��4�5������t�y�y�)�����)�)�;�7rc���t�}|j|j�}|jt|jd�|jt|jd�y)Nsanythingr)rrr6rYrFrvs   r�testEOFErrorz BZ2DecompressorTest.testEOFError�sH��� �����t�y�y�)�����(�D�O�O�[�A����(�D�O�O�S�9rr�gffffff
@r^c��td|�}tj|�}	||dz
|zdzz}tj	|�}t�}|j
|�}|j||k(�d}d}d}y#d}d}d}wxYw)Ni�r )�min�random�	randbytesrrFrrr�)r*r_�	blocksize�blockrrdrw�decompresseds        r�testDecompress4Gz$BZ2DecompressorTest.testDecompress4G�s����(�$�/�	�� � ��+��		 ��T�!�V�	�1�A�5�6�D����d�+�J�"�$�D��?�?�:�6�L��O�O�L�D�0�1��D��J��L���D��J��L�s�AA<�<Bc���ttjdz�D]>}|jt�5tj
t
�|�ddd��@y#1swY�KxYwrg)r�rhrirYrZrjrrks  rrmzBZ2DecompressorTest.testPickle�sZ���6�2�2�Q�6�7�	7�E��"�"�9�-�
7����_�.��6�
7�
7�	7�
7�
7�rnc��t�}d}g}t|j�dz
}|j|j	|jd||���|j|j�|jt|d�|�|j|j	d|���|j|j�|jt|d�|�|j|j	|j|d|���|jt|d�|�|jsM|j|j	d|���|jt|d�|�|js�Mdj|�}|j||j�|j|jd�y)Nr��@��
max_length���r)
rrrrG�appendrr��needs_inputrbr.�eofr4r;r|)r*�bzdr��out�len_s     r�testDecompressorChunksMaxsizez1BZ2DecompressorTest.testDecompressorChunksMaxsize�s�������
����4�=�=�!�B�&���
�
�3�>�>�$�-�-���"6�-7�"�9�	:�������)�����S��W��z�2�	�
�
�3�>�>�#�*�>�=�>�������)�����S��W��z�2�	�
�
�3�>�>�$�-�-���"6�-7�"�9�	:����S��R��\�:�6��'�'��J�J�s�~�~�c�j�~�A�B�� � ��S��W��z�:��'�'��h�h�s�m������d�m�m�,�������#�.rc���t�}g}|j|j|jddd��d�|j	|jdd��|j	|j|jddd��|j	|j|jdd��|jdj|�|j�y)Nr�rr�rr��i��rrbrr6r�r4r5�r*r�r�s   r�test_decompressor_inputbuf_1z0BZ2DecompressorTest.test_decompressor_inputbuf_1s��������	
�������	�	�$�3��34�(�6�7:�	<�
	�
�
�3�>�>�#�q�)�*�	�
�
�3�>�>�$�)�)�C��"4�b�9�:�	�
�
�3�>�>�$�)�)�C�D�/�2�3�������#���	�	�2rc�$�t�}g}|j|j|jddd��d�|j	|jd��|j	|j|jddd��|j	|j|jddd��|j	|j|jdd��|jdj|�|j�y)N��rr�rir��,r�r�s   r�test_decompressor_inputbuf_2z0BZ2DecompressorTest.test_decompressor_inputbuf_2s��������	
�������	�	�$�3��34�(�6�7:�	<��
�
�3�>�>�#�&�'�	�
�
�3�>�>�$�)�)�C��"4�a�8�9�	�
�
�3�>�>�$�)�)�C��"4�a�8�9�	�
�
�3�>�>�$�)�)�C�D�/�2�3�������#���	�	�2rc��t�}g}|j|j|jddd��|j|j|jddd��|j|j|jdd��|j	dj|�|j�y)Nr�rlr�r)rr�rr6rbr4r5r�s   r�test_decompressor_inputbuf_3z0BZ2DecompressorTest.test_decompressor_inputbuf_30s��������	�
�
�3�>�>�$�)�)�D�S�/�1�5�6�	�
�
�3�>�>�$�)�)�C��"4�a�8�9�	�
�
�3�>�>�$�)�)�C�D�/�2�3�������#���	�	�2rc���t�}|jt|j|jdz�|jt|j|jdz�y)N�)rrY�	Exceptionrr8)r*r�s  r�test_failurez BZ2DecompressorTest.test_failure@sH��������)�S�^�^�T�]�]�R�5G�H����)�S�^�^�T�]�]�R�5G�Hrc���tjtd�}t�}|�}t	d�D]}|j��|j
|�|z
dd��y)N�gettotalrefcountr�rrV)�delta)r�
get_attribute�sysrr��__init__�assertAlmostEqual)r*r�r��refs_beforer�s     r�test_refleaks_in___init__z-BZ2DecompressorTest.test_refleaks_in___init__Fs`��"�0�0��6H�I�����&�(���s��	�A��L�L�N�	����/�1�K�?��"��Mrc��|jtjt�jt	��d�yrZ)rbr�__new__r�bytesr.s r�(test_uninitialized_BZ2Decompressor_crashz<BZ2DecompressorTest.test_uninitialized_BZ2Decompressor_crashOs+������0�0��A�#��E�G�,�c�	3rN)r0r1r2rtrxrzr}rrrorrr�rmr�r�r�r�r��
refcount_testr�r�rHrrrqrq�s���:�*�
*�8�:�
����S�3�Y�s�+�
 �,��
 �7�
/�>3�,3�*3� I�
���N��N�3rrqc�H�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�CompressDecompressTestc��tj|j�}|jt	|�|j�yr$)rrFr5rbr)r*rs  rrXz#CompressDecompressTest.testCompressUs-���|�|�D�I�I�&�������-�t�y�y�9rc�f�tjd�}|j||j�yrZ)rrFrbr7�r*rs  rr[z.CompressDecompressTest.testCompressEmptyStringYs$���|�|�C� ������t���/rc�z�tj|j�}|j||j�yr$�rrr6rbr5r�s  rrxz%CompressDecompressTest.testDecompress]s(���~�~�d�i�i�(������t�y�y�)rc�R�tjd�}|j|d�yrZ)rrrbr�s  r�testDecompressEmptyz*CompressDecompressTest.testDecompressEmptyas ���~�~�c�"������s�#rc�f�tj|j�}|j|d�yrZ)rrr7rbr�s  r�testDecompressToEmptyStringz2CompressDecompressTest.testDecompressToEmptyStringes$���~�~�d�o�o�.������s�#rc�h�|jttj|jdd�y)NrD)rYr[rrr6r.s r�testDecompressIncompletez/CompressDecompressTest.testDecompressIncompleteis"�����*�c�n�n�d�i�i���o�Frc�b�|jttj|j�yr$)rYrhrrr8r.s r�testDecompressBadDataz,CompressDecompressTest.testDecompressBadDatals�����'�3�>�>�4�=�=�Arc��tj|jdz�}|j||jdz�yrr�r�s  r�testDecompressMultiStreamz0CompressDecompressTest.testDecompressMultiStreamos0���~�~�d�i�i�!�m�,������t�y�y�1�}�-rc��tj|j|jz�}|j	||j
�yr$�rrr6r8rbr5r�s  r�testDecompressTrailingJunkz1CompressDecompressTest.testDecompressTrailingJunkss1���~�~�d�i�i�$�-�-�7�8������t�y�y�)rc��tj|jdz|jz�}|j	||j
dz�yrr�r�s  r�%testDecompressMultiStreamTrailingJunkz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkws9���~�~�d�i�i�!�m�d�m�m�;�<������t�y�y�1�}�-rN)
r0r1r2rXr[rxr�r�r�r�r�r�r�rHrrr�r�Ts6��:�0�*�$�$�G�B�.�*�.rr�c�J�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�OpenTestc�,�tj|i|��Sr$)rrB)r*�args�kwargss   rrBz
OpenTest.opens���x�x��(��(�(rc��dD�]�}|dk(rt|j�|j|j|�5}|j|j�ddd�t|jd�5}t|j
��}|j||j�ddd�|j|jd�5}|j|j
�|j�ddd�|j|jd�5}|j|j�ddd�t|jd�5}t|j
��}|j||jdz�ddd����y#1swY��HxYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY���xYw)N)rL�xbr�r�abr��r
r'rBrMr5rr`rb�r*�moderP�	file_datas    r�test_binary_modeszOpenTest.test_binary_modes�sv�� �	;�D��t�|��t�}�}�%����4�=�=�$�/�
#�1�����	�	�"�
#��d�m�m�T�*�
7�a�*�1�6�6�8�4�	�� � ��D�I�I�6�
7����4�=�=�$�/�
6�1�� � �����4�9�9�5�
6����4�=�=�$�/�
#�1�����	�	�"�
#��d�m�m�T�*�
;�a�*�1�6�6�8�4�	�� � ��D�I�I��M�:�
;�
;�	;�
#�
#��
7�
7��
6�
6��
#�
#��
;�
;��;�F�76F,�+F9� G�9G�F)	�,F6	�9G	�G	�G	c��dD�]�}|dk(rt|j�|j|j|�5}|j|j�ddd�t|jd�5}t|j
��}|j||j�ddd�|j|jd�5}|j|j
�|j�ddd�|j|jd�5}|j|j�ddd�t|jd�5}t|j
��}|j||jdz�ddd����y#1swY��HxYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY���xYw)N)r��xr�rrWr�r�r�r�s    r�test_implicit_binary_modesz#OpenTest.test_implicit_binary_modes�sv���	;�D��s�{��t�}�}�%����4�=�=�$�/�
#�1�����	�	�"�
#��d�m�m�T�*�
7�a�*�1�6�6�8�4�	�� � ��D�I�I�6�
7����4�=�=�#�.�
6�!�� � �����4�9�9�5�
6����4�=�=�#�.�
#�!�����	�	�"�
#��d�m�m�T�*�
;�a�*�1�6�6�8�4�	�� � ��D�I�I��M�:�
;�
;�	;�
#�
#��
7�
7��
6�
6��
#�
#��
;�
;�r�c��|jjd�}|jdtj�}dD�]�}|dk(rt|j�|j|j|d��5}|j|�ddd�t|jd�5}t|j��jd�}|j||�ddd�|j|jdd��5}|j|j�|�ddd�|j|jdd��5}|j|�ddd�t|jd�5}t|j��jd�}|j||d	z�ddd����y#1swY��BxYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY���xYw)
Nr�
)�wt�xtr���encodingr�rt�atr�)r5�decode�replacer(�linesepr
r'rBrMrr`rb)r*r�text_native_eolr�rPr�s      r�test_text_modeszOpenTest.test_text_modes�s����y�y����(���,�,�t�R�Z�Z�8�� �	A�D��t�|��t�}�}�%����4�=�=�$���A�
�Q�����
�
��d�m�m�T�*�
=�a�*�1�6�6�8�4�;�;�G�D�	�� � ��O�<�
=����4�=�=�$���A�
1�Q�� � �����4�0�
1����4�=�=�$���A�
�Q�����
�
��d�m�m�T�*�
A�a�*�1�6�6�8�4�;�;�G�D�	�� � ��O�a�,?�@�
A�
A�	A�
�
��
=�
=��
1�
1��
�
��
A�
A�s<�:G�*;G�!G%�G1�>G=�G	�G"	�%G.	�1G:	�=H	c�l�dD]�}t|j�d|vrdnd}|j|j||��5}	ddd�|jt�5|j|j|�5}	ddd�ddd���y#1swY�PxYw#1swY� xYw#1swY��xYw)N)r�r�r��t�utf-8r�)r
r'rBrY�FileExistsError)r*r�r�rPs    r�test_x_modezOpenTest.test_x_mode�s���%�	�D��4�=�=�!�"%��+�w�4�H����4�=�=�$���B�
�a��
��"�"�?�3�
��Y�Y�t�}�}�d�3��q���
�
�	�
�
�����
�
�s0�B� B*�=B�?B*�B	�B'�#B*�*B3	c��|jt|j�d�5}|j|j	�|j
�ddd�|jt|j�d�5}|j|j	�|j
�ddd�|j
j
d�}|jt|j�dd��5}|j|j	�|�ddd�y#1swY��xYw#1swY��xYw#1swYyxYw)NrWrrr�r�r�)rBrr6rbr`r5r�)r*rPrs   r�test_fileobjzOpenTest.test_fileobj�s���
�Y�Y�w�t�y�y�)�3�
/�	2�1����Q�V�V�X�t�y�y�1�	2�
�Y�Y�w�t�y�y�)�4�
0�	2�A����Q�V�V�X�t�y�y�1�	2��y�y����(��
�Y�Y�w�t�y�y�)�4�'�Y�
B�	-�a����Q�V�V�X�t�,�	-�	-�	2�	2��	2�	2��	-�	-�s#�+D�>+D)�3!D5�D&�)D2�5D>c���|jt|j|jd�|jt|j|jd�|jt|j|jdd��|jt|j|jdd��|jt|j|jdd�	�y)
N�wbt�xbtrr�r��ignore)�errorsr�)�newline)rYr[rBr'r.s r�test_bad_paramszOpenTest.test_bad_params�s������*��)�)�T�]�]�E�	;����*��)�)�T�]�]�E�	;����*��)�)�T�]�]�D�7�	�	L����*��)�)�T�]�]�D��	�	K����*��)�)�T�]�]�D�$�	�	Hrc�r�|jjd�}|jdtj�}|j|jdd��5}|j|�ddd�t|jd�5}t|j��jd�}|j||�ddd�|j|jdd��5}|j|j�|�ddd�y#1swY��xYw#1swY�]xYw#1swYyxYw)Nrr�r�z	utf-16-ler�rr�)r5r�r�r(r�rBr'rMrr`rb)r*rr�rPr�s     r�
test_encodingzOpenTest.test_encoding�s����y�y����(���,�,�t�R�Z�Z�8��
�Y�Y�t�}�}�d�[�Y�
A�	�Q�
�G�G�D�M�	�
�$�-�-��
&�	9�!�&�q�v�v�x�0�7�7��D�I����Y��8�	9��Y�Y�t�}�}�d�[�Y�
A�	-�Q����Q�V�V�X�t�,�	-�	-�	�	��	9�	9��	-�	-�s$�D�
;D!�+!D-�D�!D*�-D6c�0�|j|jd�5}|jd�ddd�|j|jddd��5}|j|j	�d�ddd�y#1swY�RxYw#1swYyxYw)NrLsfoo�barr�rr�)r�r��foobar)rBr'rMrbr`rs  r�test_encoding_error_handlerz$OpenTest.test_encoding_error_handler�s���
�Y�Y�t�}�}�d�
+�	#�q�
�G�G�M�"�	#�
�Y�Y�t�}�}�d�W�X�Y�
N�	1�����Q�V�V�X�x�0�	1�	1�	#�	#��	1�	1�s�B�!B�B	�Bc�n�|jjd�}|j|jddd��5}|j	|�ddd�|j|jddd��5}|j|j
�|g�ddd�y#1swY�SxYw#1swYyxYw)Nrr�r�r�)r�r�r��
)r5r�rBr'rMrbr�)r*rrPs   r�test_newlinezOpenTest.test_newline�s����y�y����(��
�Y�Y�t�}�}�d�W�d�Y�
K�	�q�
�G�G�D�M�	�
�Y�Y�t�}�}�d�W�d�Y�
K�	4�q����Q�[�[�]�T�F�3�	4�	4�	�	��	4�	4�s�B�4"B+�B(�+B4N)
r0r1r2rBr�r�r�r�r�r�r�r�r�rHrrr�r�|s9���)�;�";�$A�&�-�H�
-�1�4rr�c�,�tj�yr$)r�
reap_childrenrHrr�tearDownModuler��s�����r�__main__)*�testr�test.supportrrrL�unittest�iorrr(rhr<r%r&r�rrrrr	�test.support.os_helperr
rpr��
import_modulerrr
rrr�TestCaserrJrSrqr�r�r�r0�mainrHrr�<module>r	s����(���+�	�
����
�
���&�)�)��
�"�m�!�!�%�(��7�7���$�1�x� � �1�h]/�(�]/�@05��05�fd3�(�d3�N%.�X�%.�Pv4�x�v4�r��z���H�M�M�O�r