Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_tracemalloc.cpython-311.opt-2.pyc
�

�Ke&����ddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
ddlmZddl
mZ	ddlZn
#e$rdZYnwxYwejd��ZdZd�Zd	�Zd
�Zd�Zd�Zd
�Zd�ZGd�dej��ZGd�dej��ZGd�dej��ZGd�dej��ZGd�dej��Z ej!edud��Gd�dej����Z"e#dkrej$��dSdS)�N)�patch)�assert_python_ok�assert_python_failure� interpreter_requires_environment)�support)�	os_helper�)���i@c���g}tjd��}t|��D]<}|j}|j|z}|�|j|f��d}|j}|�n�=t|��S)N�r)	�sys�	_getframe�range�f_code�f_lineno�append�co_filename�f_back�tuple)�nframe�lineno_delta�frames�frame�index�code�linenos       �?/usr/local/apps/python3/lib/python3.11/test/test_tracemalloc.py�
get_framesrs��
�F��M�!���E��v�������|����,�.���
�
�t�'��0�1�1�1�������=��E����=�=�r	c	���tj��}|tz
}t|d��}d|z}|tj|tt
|��|����fS)Nr�x)�tracemalloc�get_traceback_limit�EMPTY_STRING_SIZEr�	Traceback�min�len)�sizer�	bytes_lenr�datas     r�allocate_bytesr*#s\��
�
,�
.�
.�F��)�)�I�
���
"�
"�F��)��D���&�v�s�3�v�;�;��/G�/G�H�H�H�Hr	c�r�d}gd�}tj||��}gd�}tj||��}||fS)N�)�r�
)��a.pyr,��b.py��r-r-�rr,��r0�r1r4�r,�B)�r2rr�r4����	<unknown>rr)r-r-r-)r,r,r6r4)r,�r6r4)r3�)��c.py�Br)r!�Snapshot)�traceback_limit�
raw_traces�snapshot�raw_traces2�	snapshot2s     r�create_snapshotsrL*s\���O�

�
�
�J��#�J��@�@�H�	�	�	�K��$�[�/�B�B�I��i� � r	c�.�tj||f��S�N)r!�_Frame��filenamers  rrrKs����x��0�1�1�1r	c�*�tj|��SrN)r!r$)rs r�	tracebackrSNs��� ��(�(�(r	c�$�t||f��SrN)rSrPs  r�traceback_linenorUQs���h��'�(�(�(r	c�"�t|d��S�Nr)rU)rQs r�traceback_filenamerXTs���H�a�(�(�(r	c��eZdZd�ZdS)�
TestTracebackc�0�dtfd�}|�|d��d��|�|dd��d��d}d}|�||��d	|�d
���|�||d��d	|�d���dS)
N�returnc�8�ttj|���SrN)�reprr!r$)�argss r�get_reprz)TestTraceback.test_repr.<locals>.get_reprZs����-�t�4�5�5�5r	�z<Traceback ()>rz<Traceback () total_nframe=0>))�f1r)�f2r,z@(<Frame filename='f2' lineno=2>, <Frame filename='f1' lineno=1>)z<Traceback �>r,z total_nframe=2>)�str�assertEqual)�selfr`r�exp_repr_framess    r�	test_reprzTestTraceback.test_reprYs���	6�s�	6�	6�	6�	6�	
�����"���'7�8�8�8������"�a���*I�J�J�J�'��
/�	�	
�����&�)�)�9��9�9�9�	;�	;�	;������&�!�,�,�H��H�H�H�	J�	J�	J�	J�	Jr	N)�__name__�
__module__�__qualname__rirar	rrZrZXs(������J�J�J�J�Jr	rZc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zej��d���Zd�ZdS)�TestTracemallocEnabledc�~�tj��r|�d��tjd��dS)N�+tracemalloc must be stopped before the testr)r!�
is_tracing�skipTest�start�rgs r�setUpzTestTracemallocEnabled.setUpls>���!�#�#�	I��M�M�G�H�H�H���!�����r	c�,�tj��dSrN�r!�stoprts r�tearDownzTestTracemallocEnabled.tearDownr���������r	c�.�d�td��D��}tj��}|�|d��tj��tj��}|�|d��|�||��dS)Nc�,�g|]}td����S)�{�r*)�.0�counts  r�
<listcomp>zFTestTracemallocEnabled.test_get_tracemalloc_memory.<locals>.<listcomp>vs ��=�=�=���s�#�#�=�=�=r	i�r)rr!�get_tracemalloc_memory�assertGreaterEqual�clear_traces�assertLessEqual)rgr)r'�size2s    r�test_get_tracemalloc_memoryz2TestTracemallocEnabled.test_get_tracemalloc_memoryus���=�=��t���=�=�=���1�3�3������a�(�(�(�� �"�"�"��2�4�4������q�)�)�)����U�D�)�)�)�)�)r	c��tj��d}t|��\}}tj|��}|�||��dS�N�90)r!r�r*�get_object_tracebackrf�rg�obj_size�obj�
obj_tracebackrSs     r�test_get_object_tracebackz0TestTracemallocEnabled.test_get_object_tracebacksT��� �"�"�"���+�H�5�5���]��4�S�9�9�	�����M�2�2�2�2�2r	c��tj��tj��g}d}g}tj��}t|d��}tj|tt|��|����}tj	|��}|�
|��|�||��dS)N���)r!r�r�
gc_collectr"rr$r%r&r��assertIsNotNonerf)rgr�rrr�rSs      r�test_new_referencez)TestTracemallocEnabled.test_new_reference�s���� �"�"�"�������������0�2�2���F�B�'�'��#�-�f�c�#�f�+�+�v�6N�6N�O�O�
��4�S�9�9�	����Y�'�'�'�����M�2�2�2�2�2r	c��d}tj��|�ttjd��tj��tjd��t|��\}}tj|��}|�t|��d��|�||��tj��tjd��t|��\}}tj|��}|�t|��d��|�||��dS)Nr.r
r)	r!rx�assertRaises�
ValueErrorrsr*r�rfr&)rgr��obj2�obj2_tracebackrSr�r�s       r�test_set_traceback_limitz/TestTracemallocEnabled.test_set_traceback_limit�s������������*�k�&7��<�<�<��������"����-�h�7�7���n��4�T�:�:�	�����Y����,�,�,�����N�3�3�3��������!����+�H�5�5���]��4�S�9�9�	�����Y����+�+�+�����M�2�2�2�2�2r	c�d�|D]}|d|jkr|cS�|�d��dS)Nr,ztrace not found)�_frames�fail)rg�tracesrS�traces    r�
find_tracez!TestTracemallocEnabled.find_trace�sL���	�	�E��Q�x�9�,�,�,�����-�	
�	�	�#�$�$�$�$�$r	c��tj��d}t|��\}}tj��}|�||��}|�|t��|\}}}}	|�||��|�||j��tj	��|�tj��g��dSr�)
r!r�r*�_get_tracesr��assertIsInstancerrfr�rx)
rgr�r�r�r�r��domainr'rS�lengths
          r�test_get_tracesz&TestTracemallocEnabled.test_get_traces�s���� �"�"�"���+�H�5�5���]��(�*�*������
�6�6�����e�U�+�+�+�*/�'���i������x�(�(�(�����M�$9�:�:�:����������0�2�2�B�7�7�7�7�7r	c����d���fd���fd�}tj��tjd��d}||��\}}||��\}}tj��}t	t|j����|_t	t|j����|_|�||��}|�||��}	|\}
}}}
|	\}}}}|�||��dS)Nc� �t|��SrNr~�r's r�allocate_bytes2zPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes2�s��!�$�'�'�'r	c����|��SrNra)r'r�s �r�allocate_bytes3zPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes3�����"�?�4�(�(�(r	c����|��SrNra)r'r�s �r�allocate_bytes4zPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes4�r�r	r3r})	r!rxrsr�r�reversedr�r��assertIs)rgr�r��obj1�obj1_tracebackr�r�r��trace1�trace2�domain1�size1�
traceback1�length1�domain2r��
traceback2�length2r�r�s                  @@r� test_get_traces_intern_tracebackz7TestTracemallocEnabled.test_get_traces_intern_traceback�s4����	(�	(�	(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	�������!������.��x�8�8���n�.��x�8�8���n��(�*�*��!&�x��0F�'G�'G�!H�!H���!&�x��0F�'G�'G�!H�!H��������8�8�������8�8��.4�+���
�G�.4�+���
�G��
�
�j�*�-�-�-�-�-r	c�d�d}d}tj��t|��\}}tj��\}}|�||��|�||��|�||z
|��|�||z
|��d}tj��\}}|�||��|�||z
||z
��|�||��tj��|�tj��d��t|��\}}tj��\}}|�||��tj��|�tj��d��dS)N��)rr)	r!r�r*�get_traced_memoryr�r��
assertLessrfrx)	rg�	max_errorr�r�r�r'�	peak_sizer��
peak_size2s	         r�test_get_traced_memoryz-TestTracemallocEnabled.test_get_traced_memory�s����	���� �"�"�"�+�H�5�5���]�%�7�9�9���i�����h�/�/�/����	�4�0�0�0����T�H�_�i�8�8�8����Y��-�y�9�9�9���'�9�;�;���z�����t�$�$�$�����u��h��.B�C�C�C����
�I�6�6�6�	� �"�"�"�����6�8�8�&�A�A�A�,�H�5�5���]�%�7�9�9���i�����h�/�/�/�	���������6�8�8�&�A�A�A�A�Ar	c���td��\}}tj|��}|�|��tj��tj|��}|�|��dS)Nr})r*r!r�r�r��assertIsNone)rgr�r�rSr�s     r�test_clear_tracesz(TestTracemallocEnabled.test_clear_tracessq��+�C�0�0���]��4�S�9�9�	����Y�'�'�'�� �"�"�"� �5�c�:�:�
����*�%�%�%�%�%r	c�2�tj��ttt	d������}tj��\}}tj��tj��\}}|�||��|�||��d}t|��\}}tj��\}	}
|�|
|	��|�
|
|��|�|
|z
|��dS)Ni��r�)r!r��sum�listrr��
reset_peakr�r�r*�
assertGreater)rg�	large_sumr��peak1r��peak2r�r�r��size3�peak3s           r�test_reset_peakz&TestTracemallocEnabled.test_reset_peak
s��	� �"�"�"���U�6�]�]�+�+�,�,�	�"�4�6�6���u�	�� � � �"�4�6�6���u�����u�-�-�-�����u�%�%�%���+�H�5�5���]�"�4�6�6���u�����u�-�-�-����5�%�(�(�(������
�x�8�8�8�8�8r	c���tj��|�tj����tj��|�tj����dSrN)r!rx�assertFalserqrs�
assertTruerts r�test_is_tracingz&TestTracemallocEnabled.test_is_tracing%s^�����������/�1�1�2�2�2����������.�0�0�1�1�1�1�1r	c���td��\}}tj��}|�|jdjjd��|�tj	��|�
tjtj	��tj�
tj	��}|�|j|j��tj��|�t"��5}tj��ddd��n#1swxYwY|�t%|j��d��dS)Nr}rr.zLthe tracemalloc module must be tracing memory allocations to take a snapshot)r*r!�
take_snapshotr�r�rS�total_nframe�dumpr�TESTFN�
addCleanup�unlinkrF�loadrfrxr��RuntimeErrorre�	exception)rgr��sourcerIrK�cms      r�
test_snapshotz$TestTracemallocEnabled.test_snapshot,sh��$�S�)�)���V��,�.�.��	
���8�?�1�-�7�D�b�I�I�I�	�
�
�i�&�'�'�'����	�(�)�*:�;�;�;� �(�-�-�i�.>�?�?�	�����)�8�?�;�;�;�	�����
�
�
�|�
,�
,�	(���%�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�����R�\�*�*�:�	;�	;�	;�	;�	;s�D0�0D4�7D4c�T�tj��}d|_|�tj��|�tjtj��tj�	tj��}|�
|jd��dS)N�new)r!r��	test_attrr�rr�r�r�rFr�rf)rgrIrKs   r�test_snapshot_save_attrz.TestTracemallocEnabled.test_snapshot_save_attrEs����,�.�.��"����
�
�i�&�'�'�'����	�(�)�*:�;�;�;� �(�-�-�i�.>�?�?�	�����,�e�4�4�4�4�4r	c��tj��sdSd}t|��\}}tj|��}|�dSdS)Nr,r�r4r)r!rqr*r�r�s     r�
fork_childz!TestTracemallocEnabled.fork_childPsQ���%�'�'�	��1���+�H�5�5���]��4�S�9�9�	����1��qr	c���tj��}|sFd}	|���}tj|��dS#tj|��wxYwt	j|d���dS)Nrr)�exitcode)�os�forkr��_exitr�wait_process)rg�pidr�s   r�	test_forkz TestTracemallocEnabled.test_fork]sx���g�i�i���	2��H�
#��?�?�,�,�����"�"�"�"�"�����"�"�"�"����� ��q�1�1�1�1�1�1s�A�Ac�2�tj��tjd��d�}|d��jd}tj|��}|�d|dj��|�d|dj��dS)N�c����fd�}|S)Nc����SrNra)�xs�r�gzFTestTracemallocEnabled.test_no_incomplete_frames.<locals>.f.<locals>.gps����r	ra)r�r�s` r�fz;TestTracemallocEnabled.test_no_incomplete_frames.<locals>.fos!���
�
�
�
�
��Hr	r�test_tracemallocr
���)r!rxrs�__closure__r��assertInrQ�assertNotIn)rgr�r�rSs    r�test_no_incomplete_framesz0TestTracemallocEnabled.test_no_incomplete_framesks����������!����	�	�	�
�a��d�d��q�!���4�S�9�9�	��
�
�(�)�B�-�*@�A�A�A����+�Y�r�]�-C�D�D�D�D�Dr	N)rjrkrlruryr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�
requires_forkr�rrar	rrnrnksC������������*�*�*�3�3�3�3�3�3�(3�3�3�(%�%�%�8�8�8� .�.�.�6"B�"B�"B�H&�&�&�9�9�9�02�2�2�;�;�;�2	5�	5�	5�����W����2�2���2�E�E�E�E�Er	rnc�`�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�ZdS)�TestSnapshoti�c��dg}tj��5}|�tjt
dd�����|�tjt
dd�����|�tjt
d|�����tj��}|�|jd��|�t|j
��d��|j
d	}|�|jd��|�|jj
d
��|�t|j��d��|�|jd	jd��|�|jd	jd��ddd��dS#1swxYwYdS)
N)rr8)r/r.rqT)�return_valuer"r8r�rrr.r0r,)�
contextlib�	ExitStack�
enter_contextr�objectr!r�rfrGr&r�r'rSr�rQr)rgrH�stackrIr�s     r�test_create_snapshotz!TestSnapshot.test_create_snapshot}s��0�1�
�
�
!�
#�
#�	;�u������[�,�:>�!@�!@�!@�
A�
A�
A������[�:O�:;�!=�!=�!=�
>�
>�
>������[�-�:D�!F�!F�!F�
G�
G�
G�#�0�2�2�H����X�5�q�9�9�9����S���1�1�1�5�5�5��O�A�&�E����U�Z��+�+�+����U�_�9�2�>�>�>����S���1�1�1�5�5�5����U�_�Q�/�8�&�A�A�A����U�_�Q�/�6��:�:�:�!	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s�F G�G�Gc��t��\}}tjdd��}tjddd��}tjddd��}t|jj��}|�|f��}|�|jjgd���|�|jj|��|�||f��}|�|jjgd���|�d	��}	|�|	|��|�|	j|j��|�|	j|j��|�	t|j|��dS)
NFr2Tr0r,r8)r-r-r-r5r<)r-r-r-r5ra)rLr!�Filterr�r��_traces�
filter_tracesrf�assertIsNotr��	TypeError)
rgrIrK�filter1�filter2�filter3�original_traces�	snapshot3�	snapshot4�	snapshot5s
          r�test_filter_traceszTestSnapshot.test_filter_traces�s���.�0�0���)��$�U�F�3�3���$�T�6�1�5�5���$�T�6�1�5�5���x��6�7�7���*�*�G�:�6�6�	�����)�1�4
�4
�4
�	�	�	�	
�����0�/�B�B�B��+�+�W�g�,>�?�?�	�����)�1�4
�4
�4
�	�	�	��*�*�2�.�.�	�����H�-�-�-�����)�8�?�;�;�;�����)�8�?�;�;�;����)�X�%;�W�E�E�E�E�Er	c��t��\}}tjddd���}tjddd���}t|jj��}|�|f��}|�|jjgd���|�|f��}|�|jjgd���dS)NFr0r�r�T)r-r-r-r9r<)rLr!rr�r�rrrf)rgrIrKrrrrs       r�test_filter_traces_domainz&TestSnapshot.test_filter_traces_domain�s���.�0�0���)��$�U�F�1�=�=�=���$�T�6�!�<�<�<���x��6�7�7���*�*�G�:�6�6�	�����)�1�4
�4
�4
�	�	�	��*�*�G�:�6�6�	�����)�1�4
�4
�4
�	�	�	�	�	r	c�^�t��\}}tjdd���}tjdd���}|�|f��}|�|jjgd���|�|f��}|�|jjdg��dS)NFr4rT)r-r-r-r5r9r<)rLr!�DomainFilterrrfr�r)rgrIrKrrrs      r� test_filter_traces_domain_filterz-TestSnapshot.test_filter_traces_domain_filter�s���.�0�0���)��*�5��;�;�;���*�4��:�:�:���*�*�G�:�6�6�	�����)�1�4
�4
�4
�	�	�	��*�*�G�:�6�6�	�����)�1�*�4
�	�	�	�	�	r	c���t��\}}tdd��}tdd��}tdd��}tdd��}tdd	��}|�d
��}|�|t	j|dd��t	j|dd
��t	j|dd��t	j|dd��g��|�d
��}	|�|	t	j|dd��t	j|dd��t	j|dd
��g��|�|d
��}
|�|
t	j|dddd��t	j|dddd��t	j|dddd��t	j|dddd��t	j|ddd
d��g��dS)Nr@rr0r,r8r2rrDrErr:�r4r=�rBrA���r
���)rLrU�
statisticsrfr!�	Statistic�
compare_to�
StatisticDiff)rgrIrK�tb_0�tb_a_2�tb_a_5�tb_b_1�tb_c_578�stats1�stats2r&s           r�test_snapshot_group_by_linez(TestSnapshot.test_snapshot_group_by_line�s���.�0�0���)���Q�/�/��!�&�!�,�,��!�&�!�,�,��!�&�!�,�,��#�F�C�0�0���$�$�X�.�.�������!�&�"�a�0�0��!�&�"�a�0�0��!�$��1�-�-��!�&�!�Q�/�/�	"
�	�	�	��%�%�h�/�/�������!�&�$��2�2��!�(�C��3�3��!�&�"�a�0�0�"
�	�	�	��)�)�(�H�=�=�
������%�f�d�D�!�Q�?�?��%�h��S�!�Q�?�?��%�f�a��a��<�<��%�d�A�r�1�b�9�9��%�f�b�!�Q��:�:�&
�	�	�	�	�	r	c
�.�t��\}}td��}td��}td��}td��}|�d��}|�|t	j|dd��t	j|dd	��t	j|d
d��g��|�d��}|�|t	j|dd��t	j|d
d��g��|�|d��}	|�|	t	j|dddd��t	j|d
d
dd��t	j|dddd��t	j|dddd��g��dS)Nr@r0r2rDrQr:r� r3r=i�r8rBrArr$r
r%)rLrXr&rfr!r'r(r))
rgrIrKr*�tb_a�tb_b�tb_cr/r0�diffs
          r�test_snapshot_group_by_filez(TestSnapshot.test_snapshot_group_by_files���.�0�0���)�!�+�.�.��!�&�)�)��!�&�)�)��!�&�)�)���$�$�Z�0�0�������!�$��A�.�.��!�$��A�.�.��!�$��1�-�-�"
�	�	�	��%�%�j�1�1�������!�$��a�0�0��!�$��Q�/�/�"
�	�	�	��#�#�H�j�9�9�������%�d�D�$��1�=�=��%�d�C��a��;�;��%�d�A�s�A�r�:�:��%�d�A�r�1�b�9�9�	 
�	�	�	�	�	r	c��t��\}}tdd��}tdd��}td��}td��}|�d��}|�|t	j|dd��t	j|d	d
��t	j|dd��t	j|dd��g��td
��}|�d��}	|�|	t	j|dd��t	j|dd��t	j|d	d
��g��|�|d��}
|�|
t	j|dddd��t	j|dddd��t	j|dddd��t	j|dddd��t	j|d	dd
d��g��|�t|jdd���dS)Nr/r1r7r;r?rSr:rr"r4r=r,rCr#rBrArr$r
r%T)�
cumulative)
rLrSr&rfr!r'r(r)r�r�)rgrIrK�tb1�tb2�tb3�tb4r/�tb5r0r7s           r� test_snapshot_group_by_tracebackz-TestSnapshot.test_snapshot_group_by_traceback*s��.�0�0���)���[�1�1����[�1�1����$�$���(�)�)���$�$�[�1�1�������!�#�r�1�-�-��!�#�r�1�-�-��!�#�q�!�,�,��!�#�q�!�,�,�	"
�	�	�	��
�&�&���%�%�k�2�2�������!�#�t�Q�/�/��!�#�s�A�.�.��!�#�r�1�-�-�"
�	�	�	��#�#�H�k�:�:�������%�c�4��q�!�<�<��%�c�3��Q��:�:��%�c�1�c�1�b�9�9��%�c�1�b�!�R�8�8��%�c�2�q�!�Q�7�7� 
�	�	�	�	
���*�"�-�{�t�	�	M�	M�	M�	M�	Mr	c��t��\}}td��}td��}td��}tdd��}tdd��}tdd��}tdd��}	|�dd	��}
|�|
tj|d
d��tj|dd��tj|dd��g��|�d
d	��}
|�|
tj|dd��tj|	dd��tj|dd��tj|dd��tj|dd��g��dS)Nr@r0r2r,r8rr3rQT�br3r=rr:r"r4)rLrXrUr&rfr!r')rgrIrKr*r4r5r+r,r-�tb_b_4�statss           r�!test_snapshot_group_by_cumulativez.TestSnapshot.test_snapshot_group_by_cumulativePs{��.�0�0���)�!�+�.�.��!�&�)�)��!�&�)�)��!�&�!�,�,��!�&�!�,�,��!�&�!�,�,��!�&�!�,�,���#�#�J��5�5�������!�$��A�.�.��!�$��A�.�.��!�$��1�-�-�!
�	�	�	��#�#�H�d�3�3�������!�&�"�a�0�0��!�&�"�a�0�0��!�&�"�a�0�0��!�$��1�-�-��!�&�!�Q�/�/�!
�	�	�	�	�	r	c�2�t��\}}|jd}|�t|��d��|j}|�t|��d��|d}|�t|��d��dS)Nrzb.py:4: 10 Bzb.py:4)rLr�rfrerS)rgrIrKr�rSrs      r�test_trace_formatzTestSnapshot.test_trace_formatls���.�0�0���)����"������U���^�4�4�4��O�	�����Y����2�2�2��!�������U���X�.�.�.�.�.r	c��t��\}}|�d��}|d}|�t|��d��dS)Nrrz(b.py:1: size=66 B, count=1, average=66 B)rLr&rfre�rgrIrKrD�stats     r�test_statistic_formatz"TestSnapshot.test_statistic_formatus`��.�0�0���)��#�#�H�-�-���Q�x������T���C�	E�	E�	E�	E�	Er	c��t��\}}|�|d��}|d}|�t|��d��dS)Nrrz;a.py:5: size=5002 B (+5000 B), count=2 (+1), average=2501 B)rLr(rfrerIs     r�test_statistic_diff_formatz'TestSnapshot.test_statistic_diff_format|sb��.�0�0���)��$�$�X�x�8�8���Q�x������T���V�	X�	X�	X�	X�	Xr	c��t��\}}|�|jdd�|jd|jdf��|jdj}|�|dd�|d|df��dS)Nr,rr)rLrfr�rS)rgrIrKrSs    r�test_sliceszTestSnapshot.test_slices�s���.�0�0���)�������!��,�"�/�!�,�h�o�a�.@�A�	C�	C�	C��O�A�&�0�	�����2�A�2��#�A�,�	�!��5�	7�	7�	7�	7�	7r	c���t��\}}d�}tj�d|���5|jdj}|�|���gd���|�|�d���dd	g��|�|�d
���ddg��|�|�d
���gd���|�|�dd
���dd	g��|�|�d
d
���ddg��ddd��dS#1swxYwYdS)Nc��d|�d|�d�S)Nz  <z, rdrarPs  r�getlinez3TestSnapshot.test_format_traceback.<locals>.getline�s���#+�8�8�V�V�V�4�4r	ztracemalloc.linecache.getline)�side_effectr)�  File "b.py", line 4�
    <b.py, 4>�  File "a.py", line 2�
    <a.py, 2>r)�limitrVrWr
rTrUT)�most_recent_first)rVrWrTrU)rXrY)rL�unittest�mockrr�rSrf�format)rgrIrKrR�tbs     r�test_format_tracebackz"TestSnapshot.test_format_traceback�s���.�0�0���)�	5�	5�	5�
�]�
 �
 �!@�-4�!�6�6�	0�	0����#�-�B����R�Y�Y�[�[�/�/�/�
0�
0�
0�
���R�Y�Y�Q�Y�/�/�5�-�/�
0�
0�
0�
���R�Y�Y�R�Y�0�0�5�-�/�
0�
0�
0�
���R�Y�Y��Y�>�>�/�/�/�
0�
0�
0�
���R�Y�Y�Q�$�Y�G�G�5�-�/�
0�
0�
0�
���R�Y�Y�R�4�Y�H�H�5�-�/�
0�
0�
0�7	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0s�DE�E"�%E"N)rjrkrl�maxDiffrrrr r1r8r@rErGrKrMrOr^rar	rrrzs��������G�;�;�;�*$F�$F�$F�L���6���*!�!�!�F���>$M�$M�$M�L���8/�/�/�E�E�E�X�X�X�7�7�7�!0�!0�!0�!0�!0r	rc�0�eZdZdZd�Zd�Zd�Zd�Zd�ZdS)�TestFiltersr�c�Z�tjdd��}|�|jd��|�|jd��|�|j��|�|jd��tjdddd��}|�|jd��|�|jd��|�|jd��|�|jd��tjdddd���}|�|jd��|�|jd��|�|jd��|�|jd��|�tt|dd��dS)NT�abcFztest.pyr})�	inclusive�filename_patternr�
all_framesre)r!rrfrdrer�rrfr��AttributeError�setattr�rgr�s  r�test_filter_attributesz"TestFilters.test_filter_attributes�s�����t�U�+�+�������d�+�+�+�����+�U�3�3�3����!�(�#�#�#������u�-�-�-�
��u�i��d�;�;�������e�,�,�,�����+�Y�7�7�7������3�'�'�'������t�,�,�,�
����SV�cg�h�h�h�������e�,�,�,�����+�Y�7�7�7������3�'�'�'������t�,�,�,�	
���.�'�1�6H�%�P�P�P�P�Pr	c��tjdd��}|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����tjdd��}|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����tjddd��}|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����tjddd��}|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����tjddd��}|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����tjddd��}|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����|�|�dd����dS)NTrcrr8r.�12356F)r!rr��_match_framer�ris  r�test_filter_matchzTestFilters.test_filter_match�s$����t�U�+�+��������u�a�0�0�1�1�1�������u�a�0�0�1�1�1�������u�b�1�1�2�2�2���������3�3�4�4�4���������3�3�4�4�4���������4�4�5�5�5���u�e�,�,���������q�1�1�2�2�2��������q�1�1�2�2�2��������r�2�2�3�3�3�������w��2�2�3�3�3�������w��2�2�3�3�3�������w��3�3�4�4�4�
��t�U�A�.�.���������q�1�1�2�2�2�������u�a�0�0�1�1�1��������r�2�2�3�3�3���������3�3�4�4�4���������3�3�4�4�4���������4�4�5�5�5���u�e�Q�/�/��������u�a�0�0�1�1�1��������q�1�1�2�2�2�������u�b�1�1�2�2�2�������w��2�2�3�3�3�������w��2�2�3�3�3�������w��3�3�4�4�4�
��t�U�A�.�.��������u�a�0�0�1�1�1��������q�1�1�2�2�2��������r�2�2�3�3�3���������3�3�4�4�4���������3�3�4�4�4���������4�4�5�5�5���u�e�Q�/�/���������q�1�1�2�2�2�������u�a�0�0�1�1�1�������u�b�1�1�2�2�2�������w��2�2�3�3�3�������w��2�2�3�3�3�������w��3�3�4�4�4�4�4r	c��d�}|�|ddd����|�|ddd����|�|ddd����|�|ddd����|�|ddd����|�|ddd����dS)Nc�X�tj||��}|�|d��SrW�r!rrm)rdrQ�patternr�s    r�fnmatchz7TestFilters.test_filter_match_filename.<locals>.fnmatchs(���"�9�g�6�6�A��>�>�(�A�.�.�.r	Trcrlr@F)r�r��rgrss  r�test_filter_match_filenamez&TestFilters.test_filter_match_filenames���	/�	/�	/�	
������e�U�3�3�4�4�4�������w��6�6�7�7�7�������{�E�:�:�;�;�;��������u�5�5�6�6�6�������w��6�6�7�7�7�������{�E�:�:�;�;�;�;�;r	c�	�d�}|�|dd����|�|dd����|�|dd����|�|dd����|�|dd����|�|dd����|�|dd����|�|dd����|�|dd����|�|dd	����|�|dd
����|�|dd����|�|dd
����|�|dd����|�|dd
����|�|dd����|�|dd����|�|dd����|�|dd����|�|dd����|�|dd����tjdkr}|�|dd����|�|dd����|�|dd����|�|dd����n||�|dd����|�|dd����|�|dd����|�|dd����tjdkr}|�|dd ����|�|d d����|�|d!d"����|�|d#d$����n||�|dd ����|�|d d����|�|d!d"����|�|d#d$����|�|d%d����dS)&Nc�X�tjd|��}|�|d��S)NTrrq)rQrr�filters   rrsz=TestFilters.test_filter_match_filename_joker.<locals>.fnmatchs*�� �'��g�6�6�F��&�&�x��3�3�3r	rc��*�abcd�defza*zabc*zb*zabcd*za*c�abcdcxza*cx�abb�abcdce�abcdeza*c*e�	abcbdefegza*bd*eg�abcdd�	abcbdefefza.pycr0�nt�aBC�ABc�aBcDezAb*dEza.PYza.PYCza/bza\bza/b\cza\b/cza/b/cza\b\cza.pyo)r�r�r��namerts  r� test_filter_match_filename_jokerz,TestFilters.test_filter_match_filename_joker
s���	4�	4�	4�
	
�������+�+�,�,�,�������U�+�+�,�,�,�������B���(�(�(�������C�(�(�)�)�)�	
������u�-�-�.�.�.��������/�/�0�0�0��������.�.�/�/�/�	
������t�,�,�-�-�-�������v�.�.�/�/�/��������-�-�.�.�.��������0�0�1�1�1�	
������u�-�-�.�.�.�������&�1�1�2�2�2��������.�.�/�/�/�������6�2�2�3�3�3�	
�������1�1�2�2�2�������Y�7�7�8�8�8�������'�2�2�3�3�3�������i�8�8�9�9�9�	
�������0�0�1�1�1��������0�0�1�1�1�
�7�d�?�?��O�O�G�G�E�5�1�1�2�2�2��O�O�G�G�G�W�5�5�6�6�6��O�O�G�G�G�V�4�4�5�5�5��O�O�G�G�F�G�4�4�5�5�5�5�
���W�W�U�E�2�2�3�3�3����W�W�W�g�6�6�7�7�7����W�W�W�f�5�5�6�6�6����W�W�V�W�5�5�6�6�6�
�7�d�?�?��O�O�G�G�F�F�3�3�4�4�4��O�O�G�G�F�F�3�3�4�4�4��O�O�G�G�H�h�7�7�8�8�8��O�O�G�G�H�h�7�7�8�8�8�8�
���W�W�V�V�4�4�5�5�5����W�W�V�V�4�4�5�5�5����W�W�X�x�8�8�9�9�9����W�W�X�x�8�8�9�9�9�	
������&�1�1�2�2�2�2�2r	c�
�d}d}d}d}tjddd���}|�|�|����|�|�|����|�|�|����|�|�|����tjddd���}|�|�|����|�|�|����|�|�|����|�|�|����tjddd���}|�|�|����|�|�|����|�|�|����|�|�|����tjddd���}|�|�|����|�|�|����|�|�|����|�|�|����tjdd	d���}|�|�|����|�|�|����|�|�|����|�|�|����tjdd	d���}|�|�|����|�|�|����|�|�|����|�|�|����tjdd	d���}|�|�|����|�|�|����|�|�|����|�|�|����dS)
N)r/)r2r4)r1)r2r8))rDr8r?r>Tr2)rfFr@)r!rr��_match_tracebackr�)rg�t1�t2�t3�unknownr�s      r�test_filter_match_tracez#TestFilters.test_filter_match_traceRsW��
'��
'��
,��%����t�V��=�=�=������*�*�2�.�.�/�/�/�����*�*�2�.�.�/�/�/�����+�+�B�/�/�0�0�0�����+�+�G�4�4�5�5�5���t�V��>�>�>������+�+�B�/�/�0�0�0�����*�*�2�.�.�/�/�/�����+�+�B�/�/�0�0�0�����+�+�G�4�4�5�5�5���u�f��>�>�>������+�+�B�/�/�0�0�0�����+�+�B�/�/�0�0�0�����*�*�2�.�.�/�/�/�����*�*�7�3�3�4�4�4���u�f��?�?�?������*�*�2�.�.�/�/�/�����+�+�B�/�/�0�0�0�����*�*�2�.�.�/�/�/�����*�*�7�3�3�4�4�4���u�k�e�D�D�D������*�*�2�.�.�/�/�/�����*�*�2�.�.�/�/�/�����*�*�2�.�.�/�/�/�����+�+�G�4�4�5�5�5���t�[�T�B�B�B������+�+�B�/�/�0�0�0�����+�+�B�/�/�0�0�0�����*�*�2�.�.�/�/�/�����*�*�7�3�3�4�4�4���u�k�d�C�C�C������*�*�2�.�.�/�/�/�����*�*�2�.�.�/�/�/�����+�+�B�/�/�0�0�0�����+�+�G�4�4�5�5�5�5�5r	N)	rjrkrlr_rjrnrur�r�rar	rrara�sl�������G�Q�Q�Q�225�25�25�h<�<�<�C3�C3�C3�J.6�.6�.6�.6�.6r	rac��eZdZd�Zeje��d��d���Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zejedud
��d���ZdS)�TestCommandLinec��d}td|��\}}}|���}|�|d��dS)N�3import tracemalloc; print(tracemalloc.is_tracing())�-c�False�r�rstriprf�rgr�ok�stdout�stderrs     r� test_env_var_disabled_by_defaultz0TestCommandLine.test_env_var_disabled_by_default�sF��D��-�d�D�9�9���F�F������������*�*�*�*�*r	z6Cannot run -E tests when PYTHON env vars are required.c��	d}tdd|d���\}}}|���}|�|d��dS)Nr�z-Er��1��PYTHONTRACEMALLOCr�r�r�s     r�test_env_var_ignored_with_Ez+TestCommandLine.test_env_var_ignored_with_E�sT��	P�D��-�d�D�$�RU�V�V�V���F�F������������*�*�*�*�*r	c��d}td|d���\}}}|���}|�|d��dS)Nr�r��0r�r�r�r�s     r�test_env_var_disabledz%TestCommandLine.test_env_var_disabled�sK��D��-�d�D�C�P�P�P���F�F������������*�*�*�*�*r	c��d}td|d���\}}}|���}|�|d��dS)Nr�r�r�r�sTruer�r�s     r�test_env_var_enabled_at_startupz/TestCommandLine.test_env_var_enabled_at_startup�sK��D��-�d�D�C�P�P�P���F�F������������)�)�)�)�)r	c��d}td|d���\}}}|���}|�|d��dS)N�<import tracemalloc; print(tracemalloc.get_traceback_limit())r��10r�s10r�r�s     r�test_env_limitzTestCommandLine.test_env_limit�sK��M��-�d�D�D�Q�Q�Q���F�F������������'�'�'�'�'r	c���tj��5tddt|�����\}}}ddd��n#1swxYwYd|vrdSd|vrdS|�d|����dS)Nr��passr��1ValueError: the number of frames must be in ranges+PYTHONTRACEMALLOC: invalid number of frames�unexpected output: )r�SuppressCrashReportrrer�)rgrr�r�r�s     r�check_env_var_invalidz%TestCommandLine.check_env_var_invalid�s���
�
(�
*�
*�	/�	/�!6��f�"%�f�+�+�"/�"/�"/��B���	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�
@�6�I�I��F�9�V�C�C��F��	�	�2��2�2�3�3�3�3�3s�$A�A�Ac��tD]E}|�|���5|�|��ddd��n#1swxYwY�FdS�N�r)�INVALID_NFRAME�subTestr��rgrs  r�test_env_var_invalidz$TestCommandLine.test_env_var_invalid�s���$�	3�	3�F����V��,�,�
3�
3��*�*�6�2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3��	3�	3��A�A	�	A	c�8�dD]�\}}|�||���5d}td|d|��\}}}|���}|�|t	|���d����ddd��n#1swxYwY��dS)N))r!r)z
tracemalloc=1r)ztracemalloc=15�)�xoptionsrr��-Xr��ascii)r�rr�rfre�encode)rgr�rrr�r�r�s       r�test_sys_xoptionsz!TestCommandLine.test_sys_xoptions�s���!
�		F�		F��H�f�
���x���?�?�
F�
F�U��%5�d�H�d�D�%Q�%Q�"��F�F�������� � ���V���);�);�G�)D�)D�E�E�E�	
F�
F�
F�
F�
F�
F�
F�
F�
F�
F�
F����
F�
F�
F�
F��		F�		Fs�A#B�B	�B	c���dd|zddf}tj��5t|�\}}}ddd��n#1swxYwYd|vrdSd|vrdS|�d|����dS)Nr�ztracemalloc=%sr�r�r�s/-X tracemalloc=NFRAME: invalid number of framesr�)rr�rr�)rgrr_r�r�r�s      r�check_sys_xoptions_invalidz*TestCommandLine.check_sys_xoptions_invalid�s����&��/��v�>��
�
(�
*�
*�	>�	>�!6��!=��B���	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�@�6�I�I��F�=��G�G��F��	�	�2��2�2�3�3�3�3�3s�7�;�;c��tD]E}|�|���5|�|��ddd��n#1swxYwY�FdSr�)r�r�r�r�s  r�test_sys_xoptions_invalidz)TestCommandLine.test_sys_xoptions_invalid�s���$�	8�	8�F����V��,�,�
8�
8��/�/��7�7�7�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8����
8�
8�
8�
8��	8�	8r�N�need _testcapic�.�d}tddd|��dS)Nz2import _testcapi; _testcapi.test_pymem_alloc0(); 1r�r!r�)r)rgrs  r�test_pymem_alloc0z!TestCommandLine.test_pymem_alloc0�s$��D����}�d�D�9�9�9�9�9r	)rjrkrlr�rZ�skipIfrr�r�r�r�r�r�r�r�r��	_testcapir�rar	rr�r��s
������+�+�+��X�_�5�5�7�7�M�O�O�+�+�O�O�+�+�+�+�*�*�*�(�(�(�
4�
4�
4�3�3�3�

F�
F�
F�	4�	4�	4�8�8�8�
�X�_�Y�$�&�(8�9�9�:�:�:�9�:�:�:r	r�r�c�b�eZdZdZd�Zd�Zd�Zdd�Zd�Zd	�Z	d
�Z
d�Zd�Zd
�Z
d�Zd�Zd�ZdS)�TestCAPIi@c���tj��r|�d��d|_d|_t|j��d|_t|j��|_dS)Nrpr8r}r)	r!rqrrr�r'r*r��id�ptrrts rruzTestCAPI.setUp�s`���!�#�#�	I��M�M�G�H�H�H������	�!�$�)�,�,�Q�/����d�h�<�<����r	c�,�tj��dSrNrwrts rryzTestCAPI.tearDown�rzr	c�p�tj|j|j��}|�t	j|��SdSrN)r��tracemalloc_get_tracebackr�r�r!r$)rgrs  r�
get_tracebackzTestCAPI.get_traceback�s4���4�T�[�$�(�K�K�����(��0�0�0��4r	Frc�r�t|d��}tj|j|j|j|��|S)Nr)rr��tracemalloc_trackr�r�r')rg�release_gilrrs    r�trackzTestCAPI.track�s:���F�A�&�&���#�D�K���4�9�$/�	1�	1�	1��
r	c�D�tj|j|j��dSrN)r��tracemalloc_untrackr�r�rts r�untrackzTestCAPI.untrack�s���%�d�k�4�8�<�<�<�<�<r	c���tj��}tjd|j��}|�|g��}td�|jD����S)NTc3�$K�|]}|jV��dSrNr�)rr�s  r�	<genexpr>z-TestCAPI.get_traced_memory.<locals>.<genexpr>s$����;�;�%�5�:�;�;�;�;�;�;r	)r!r�rr�rr�r�)rgrI�
domain_filters   rr�zTestCAPI.get_traced_memorysX���,�.�.��#�0��t�{�C�C�
��)�)�=�/�:�:���;�;�8�?�;�;�;�;�;�;r	c�^�d}tj|��tj��d}|�||��}|�|���tj|����|�|���|j��dS)Nr8r)r!rsr�r�rfr�r$r')rgr�rr'rs     r�check_trackzTestCAPI.check_track	s�������&�!�!�!��,�.�.�q�1�����K��0�0������+�+�-�-�$�.�v�6�6�	8�	8�	8�	
����/�/�1�1�4�9�=�=�=�=�=r	c�0�|�d��dS)NF�r�rts r�
test_trackzTestCAPI.test_tracks����������r	c�0�|�d��dS)NTr�rts r�test_track_without_gilzTestCAPI.test_track_without_gils��	
��������r	c��d}tj|��|���|�|���}|�|���tj|����dS)Nr8r�)r!rsr�rfr�r$)rgrrs   r�test_track_already_trackedz#TestCAPI.test_track_already_trackedsz������&�!�!�!�	
�
�
�������6��*�*������+�+�-�-�$�.�v�6�6�	8�	8�	8�	8�	8r	c��tj��|���|�|�����|�|���|j��|���|�	|�����|�|���d��|���|���dSrW)
r!rsr�r�r�rfr�r'r�r�rts r�test_untrackzTestCAPI.test_untrack*s���������
�
�������T�/�/�1�1�2�2�2�����/�/�1�1�4�9�=�=�=�	
���������$�,�,�.�.�/�/�/�����/�/�1�1�1�5�5�5�	
�������������r	c�,�tj��tj��|�t��5|���ddd��n#1swxYwY|�|�����dSrN)r!rsrxr�r�r�r�r�rts r�test_stop_trackzTestCAPI.test_stop_track:s�������������
�
�
�|�
,�
,�	�	��J�J�L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����$�,�,�.�.�/�/�/�/�/s�A"�"A&�)A&c��tj��|���tj��|�t
��5|���ddd��dS#1swxYwYdSrN)r!rsr�rxr�r�r�rts r�test_stop_untrackzTestCAPI.test_stop_untrackBs���������
�
���������
�
�
�|�
,�
,�	�	��L�L�N�N�N�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A7�7A;�>A;N)Fr)rjrkrlr_ruryr�r�r�r�r�r�r�r�r�r�r�rar	rr�r��s��������G�
 �
 �
 �����������=�=�=�<�<�<�
>�
>�
>� � � ����
8�8�8���� 0�0�0�����r	r��__main__)%rr�r
r!rZ�
unittest.mockr�test.support.script_helperrrr�testr�test.supportrr��ImportError�	getsizeofr#r�rr*rLrrSrUrX�TestCaserZrnrrar�r�r�rj�mainrar	r�<module>r�s�������	�	�	�	�
�
�
�
���������������J�J�J�J�J�J�J�J�J�J�������"�"�"�"�"�"�������������I�I�I�����"�C�M�#�&�&�������I�I�I�!�!�!�B2�2�2�)�)�)�)�)�)�)�)�)�J�J�J�J�J�H�%�J�J�J�&LE�LE�LE�LE�LE�X�.�LE�LE�LE�^s0�s0�s0�s0�s0�8�$�s0�s0�s0�l	P6�P6�P6�P6�P6�(�#�P6�P6�P6�fY:�Y:�Y:�Y:�Y:�h�'�Y:�Y:�Y:�x����d�"�$4�5�5�h�h�h�h�h�x� �h�h�6�5�h�V�z����H�M�O�O�O�O�O��s�7�A�A