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: //proc/self/root/opt/alt/python312/lib64/python3.12/test/__pycache__/test_bz2.cpython-312.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	���eZdZdZgd�Zdje�ZdZdZdZ	dZ
ed�Ze
jejje
j ejj#e��d	��D]8Zeed
�5Ze
ej-ee�e
d�z
Z
ddd�e
dkDs�8nej3ed�
�Zd�Zd�Zy#1swY�,xYw)�BaseTestzBase for other testcases.)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__�__doc__�
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��eZdZdZd?d�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/�Z1d0�Z2e3jh�d1��Z5d2�Z6d3�Z7d4�Z8d5�Z9d6�Z:d7�Z;d8�Z<d9�Z=d:�Z>d;�Z?d<�Z@d=�ZAy>)@�BZ2FileTestzTest the BZ2File class.c��t|jd�5}|j|j|z�|j|�ddd�y#1swYyxYw)N�wb)rCr'�writer7)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$�	rRrr'rZr[�read�float�assertEqualr6�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�rOrP)rRr9rr'rZ�OSErrorrards  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��rOr`rds  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_wxYwrl)
�_compression�BUFFER_SIZE�lenr7rRrr'rZr[rarbrcr6)r*�buffer_sizeres   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)rP�rRr9rr'rcrar6rds  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)Nrmrhrwrds  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)rRrr'rZr[rarbrcrds  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)NrrW�rRrr'rarcr6�r*re�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)NrmrnrrWr~rs    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)rRrr'rcrar6rds  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)rRrr'�peek�assertNotEqualrs�
assertTruer6�
startswithrcra)r*re�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�)rRrr'r;rcrEr6rs)r*re�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$�rRrr'rZr[�readliner4rc�r*re�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#1swYyxYwrlr�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$�rRrr'rZr[�	readlinesrcr4rds  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#1swYyxYwrlr�rds  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$�rRrr'rc�list�iterr4rds  r�testIteratorzBZ2FileTest.testIterator�sR������
�T�]�]�
#�	@�t����T�$�t�*�-�t���?�	@�	@�	@�r�c���|jd��t|j�5}|jt	t|��|jdz�ddd�y#1swYyxYwrlr�rds  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$)rRrr'r)rZr\�nextr�rds  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'rZr[rNr6rCrcrra�r*rerQs   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�rrWr r)rr'r6rNrCrcrra)r*rer�r�rQs     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)Nrmr!r�r)	rrGr6rr'rNrCrcra)r*�expectedrerQs    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'rZr[�
writelinesr4r\rCrcrrar6r�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�sabcrX�a)rr'rNrZrir�rds  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�)	rRrr'rZr[�seekrcrar6rds  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�rnr�)
rRrr'rZr[r�rsr6rcrards  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^)rRrr'rar�rcr6rds  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�rnr�rr�r i���)rRrr'rsr6rar�rc)r*re�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�)rRrr'r�rcrar6rsrds  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�rni���)rRrr'r�rcrar6rds  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�	rRrr'r�rc�tellrsr6rards  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�Nrmrnr�rr�rds  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�rds  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�rds  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�rRrr'r�rcr�rar6rds  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�rnr�rr�rds  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)	rRrCr'rrc�filenor)rZr\)r*�rawfres   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)NFrIrIrr�<lambda>z*BZ2FileTest.testSeekable.<locals>.<lambda>�s�r)
rrr7r��seekablerar)rZr\�assertFalse)r*re�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rr7r��readablerar)rZr\r�rds  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rr7r��writablerar)rZr\r�rds  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')rR�rangerr')r*�i�os   r�testOpenDelzBZ2FileTest.testOpenDel�s2�������u��	�A���
�
�&�A��	rc�:�|jttd�y)Nz
/non/existent)rZrir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�%trMsTest)rCr'rNrr�rcr�)r*rrQre�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)NrMsxxxrz4__enter__ on a closed file didn't raise an exceptionr rz1/0 didn't raise an exception)rr'rNr)�failr\�ZeroDivisionError�r*rQs  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�1irWrMc�H��td�D]}�j���y�Nrm)r�rN)r�rrQs ��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��threadsrrQs     @@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 )
rRrsr4rr'rarcr�r6r�r�rZ�
StopIteration)r*�linelen�halflenres    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'rNrcra)r*�data1�data2res    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 ASCIIrMr)	r'�encode�UnicodeEncodeError�skipTestrrNr7rcra)r*�str_filename�bytes_filenamerQs    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)NrMr)�pathlib�Pathr'rrNr7rcra)r*r'rQs   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)z-Decompressed data buffering should be limited�g��>A�	r!r z)Excessive amount of data was decompressedN)rrG�int�
assertLessrsrqrrrrrcrar�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$)rr7rrZr[rarbrcr6r��closed�r*�biores   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�)rr7rr�r�rsr�r6r�rcra)r*r9rer�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rZr[rNr6rcr�getvaluer�r7r8s   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�)	rr7rrZr[r�rcrar6r8s   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�)rr7rrar�rcr6r8s   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 �)
r7rrrZ�EOFErrorrarcrsr6r�)r*�	truncatedrQr�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�rY�rmr�)�arrayrs�itemsizerrrcrNr�)r*�q�LENGTHrQs    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)Br0r1r2r3rRr^rfrjrorurxrzr|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)r5r:r<r?rArCrIrQrIrrrKrKZsZ����
	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�/rrKc�h�eZdZd�Zd�Zd�Zejee	dzd��d���Z
d�Zy	)
�BZ2CompressorTestc��t�}|jt|j�|j|j�}||j�z
}|j
t|�|j�yr$)r
rZr[rGr6�flushrcr�r*�bz2crs   r�testCompresszBZ2CompressorTest.testCompress{sX��������)�T�]�]�3��}�}�T�Y�Y�'����
�
���������-�t�y�y�9rc��t�}|jd�}||j�z
}|j||j�y�Nr)r
rGrVrcr8rWs   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)NrrrWr )r
r6rGrVrcr)r*rXr�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
rGrVrrrcrs�strip)r*r`rXr�
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_PROTOCOLrZr[�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)r0r1r2rYr\r^r�skip_if_pgo_taskrrrfrnrIrrrTrTzsC��:�0�:�
����S�3�Y�q�)��*��� 5rrTc��eZdZd�Zd�Zd�Zd�Zd�Zeje
edzd��d	���Zd
�Z
d�Zd�Zd
�Zd�Zd�Zej&d��Zd�Zy)�BZ2DecompressorTestc�:�|jttd�y)N�*)rZr[rr.s r�test_Constructorz$BZ2DecompressorTest.test_Constructor�s�����)�_�b�9rc���t�}|jt|j�|j|j�}|j||j�yr$)rrZr[rr7rcr6�r*�bz2dr�s   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)NrrrWr )rr7rrcr6)r*rxr�r�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)rrr7rcr6�unused_data)r*rxr}r�s    r�testDecompressUnusedDataz,BZ2DecompressorTest.testDecompressUnusedData�sP��� ��,�����t�y�y��4�5������t�y�y�)�����)�)�;�7rc���t�}|j|j�}|jt|jd�|jt|jd�y)Nsanythingr)rrr7rZrGrws   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�	randbytesrrGrrr�)r*r`�	blocksize�blockrrerx�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�KxYwrh)r�rirjrZr[rkrrls  rrnzBZ2DecompressorTest.testPickle�sZ���6�2�2�Q�6�7�	7�E��"�"�9�-�
7����_�.��6�
7�
7�	7�
7�
7�roc��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)
rrsrH�appendrr��needs_inputrcr/�eofr5r<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��rrcrr7r�r5r6�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�rmr�r)rr�rr7rcr5r6r�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�)rrZ�	Exceptionrr9)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�rrW)�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�yr[)rcr�__new__r�bytesr.s r�(test_uninitialized_BZ2Decompressor_crashz<BZ2DecompressorTest.test_uninitialized_BZ2Decompressor_crashOs+������0�0��A�#��E�G�,�c�	3rN)r0r1r2ruryr{r~r�rrprrr�rnr�r�r�r�r��
refcount_testr�r�rIrrrrrr�s���:�*�
*�8�:�
����S�3�Y�s�+�
 �,��
 �7�
/�>3�,3�*3� I�
���N��N�3rrrc�H�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�CompressDecompressTestc��tj|j�}|jt	|�|j�yr$)rrGr6rcr)r*rs  rrYz#CompressDecompressTest.testCompressUs-���|�|�D�I�I�&�������-�t�y�y�9rc�f�tjd�}|j||j�yr[)rrGrcr8�r*r�s  rr\z.CompressDecompressTest.testCompressEmptyStringYs$���|�|�C� ������t���/rc�z�tj|j�}|j||j�yr$�rrr7rcr6r�s  rryz%CompressDecompressTest.testDecompress]s(���~�~�d�i�i�(������t�y�y�)rc�R�tjd�}|j|d�yr[)rrrcr�s  r�testDecompressEmptyz*CompressDecompressTest.testDecompressEmptyas ���~�~�c�"������s�#rc�f�tj|j�}|j|d�yr[)rrr8rcr�s  r�testDecompressToEmptyStringz2CompressDecompressTest.testDecompressToEmptyStringes$���~�~�d�o�o�.������s�#rc�h�|jttj|jdd�y)NrE)rZr\rrr7r.s r�testDecompressIncompletez/CompressDecompressTest.testDecompressIncompleteis"�����*�c�n�n�d�i�i���o�Frc�b�|jttj|j�yr$)rZrirrr9r.s r�testDecompressBadDataz,CompressDecompressTest.testDecompressBadDatals�����'�3�>�>�4�=�=�Arc��tj|jdz�}|j||jdz�yrr�r�s  r�testDecompressMultiStreamz0CompressDecompressTest.testDecompressMultiStreamos0���~�~�d�i�i�!�m�,������t�y�y�1�}�-rc��tj|j|jz�}|j	||j
�yr$�rrr7r9rcr6r�s  r�testDecompressTrailingJunkz1CompressDecompressTest.testDecompressTrailingJunkss1���~�~�d�i�i�$�-�-�7�8������t�y�y�)rc��tj|jdz|jz�}|j	||j
dz�yrr�r�s  r�%testDecompressMultiStreamTrailingJunkz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkws9���~�~�d�i�i�!�m�d�m�m�;�<������t�y�y�1�}�-rN)
r0r1r2rYr\ryr�r�r�r�r�r�r�rIrrr�r�Ts6��:�0�*�$�$�G�B�.�*�.rr�c�L�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
y)
�OpenTestzTest the open function.c�,�tj|i|��Sr$)rrC)r*�args�kwargss   rrCz
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)rM�xbr�r�abr��r
r'rCrNr6rrarc�r*�moderQ�	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�rrXr�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�)r6�decode�replacer(�linesepr
r'rCrNrrarc)r*r��text_native_eolr�rQr�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'rCrZ�FileExistsError)r*r�r�rQs    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)NrXrrr�r�r�)rCrr7rcrar6r�)r*rQr�s   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)rZr\rCr'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�)r6r�r�r(r�rCr'rNrrarc)r*r�r�rQr�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)NrMsfoo�barr�rr�)r�r��foobar)rCr'rNrcrars  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��
)r6r�rCr'rNrcr�)r*r�rQs   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)r0r1r2r3rCr�r�r�r�r�r�r�r�r�rIrrr�r�|s9���)�;�";�$A�&�-�H�
-�1�4rr�c�,�tj�yr$)r�
reap_childrenrIrr�tearDownModuler�s�����r�__main__)*�testr�test.supportrrrM�unittest�iorrr(rir=r%r'r�rrrrr	�test.support.os_helperr
rqr��
import_modulerrr
rrr�TestCaserrKrTrrr�r�rr0�mainrIrr�<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