Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_tracemalloc.cpython-39.opt-1.pyc

a

��gz��@sPddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
ddlmZzddl
Z
WneyvdZ
Yn0e�d�ZdZdd�Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Ze�e
dud�Gd d!�d!ej��Z e!d"k�rLe�"�dS)#�N)�patch)�assert_python_ok�assert_python_failure� interpreter_requires_environment)�support�)���i@cCsZg}t�d�}t|�D]:}|j}|j|}|�|j|f�d}|j}|durqRqt|�S)N�r)	�sys�	_getframe�range�f_code�f_lineno�append�co_filename�f_back�tuple)�nframeZlineno_delta�frames�frame�index�code�lineno�r�1/usr/local/lib/python3.9/test/test_tracemalloc.py�
get_framess

rcCs<t��}|t}t|d�}d|}|t�|tt|�|��fS)Nr	�x)�tracemalloc�get_traceback_limit�EMPTY_STRING_SIZEr�	Traceback�min�len)�sizerZ	bytes_lenr�datarrr�allocate_bytes"s

r%cCs4d}gd�}t�||�}gd�}t�||�}||fS)N�)�r�
)��a.pyr&��b.py��r'r'�r	r&��r*�r+r.�r&�B)�r,r	r	�r.����	<unknown>rr	)r'r'r')r&r&r0r.)r&�r0r.)r-�)��c.py�Br	)r�Snapshot)�traceback_limit�
raw_traces�snapshotZraw_traces2�	snapshot2rrr�create_snapshots)s
rEcCst�||f�S�N)rZ_Frame��filenamerrrrrJsrcGs
t�|�SrF)rr )rrrr�	tracebackMsrIcCst||f�SrF)rIrGrrr�traceback_linenoPsrJcCs
t|d�S�Nr)rJ)rHrrr�traceback_filenameSsrLc@seZdZdd�ZdS)�
TestTracebackcCsntd�dd�}|�|d�d�|�|dd�d�d}d	}|�||�d
|�d��|�||d�d
|�d
��dS)N)�returncWsttj|��SrF)�reprrr )�argsrrr�get_reprYsz)TestTraceback.test_repr.<locals>.get_reprrz<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)�selfrQrZexp_repr_framesrrr�	test_reprXs�

�
�zTestTraceback.test_reprN)�__name__�
__module__�__qualname__rXrrrrrMWsrMc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Ze�eed!�d"�d#d$��Zd%S)&�TestTracemallocEnabledcCs t��r|�d�t�d�dS)N�+tracemalloc must be stopped before the testr	)r�
is_tracing�skipTest�start�rWrrr�setUpks
zTestTracemallocEnabled.setUpcCst��dSrF�r�stoprarrr�tearDownqszTestTracemallocEnabled.tearDowncCsRdd�td�D�}t��}|�|d�t��t��}|�|d�|�||�dS)NcSsg|]}td��qS)�{�r%)�.0�countrrr�
<listcomp>urzFTestTracemallocEnabled.test_get_tracemalloc_memory.<locals>.<listcomp>i�r)rrZget_tracemalloc_memory�assertGreaterEqual�clear_traces�assertLessEqual)rWr$r#�size2rrr�test_get_tracemalloc_memorytsz2TestTracemallocEnabled.test_get_tracemalloc_memorycCs2t��d}t|�\}}t�|�}|�||�dS�N�90)rrlr%�get_object_tracebackrV�rW�obj_size�obj�
obj_tracebackrIrrr�test_get_object_traceback~s

z0TestTracemallocEnabled.test_get_object_tracebackcCsht��t��g}d}g}t��}t|d�}t�|tt|�|��}t�	|�}|�
|�|�||�dS)N���)rrlr�
gc_collectrrr r!r"rr�assertIsNotNonerV)rWrurrrvrIrrr�test_new_reference�s


z)TestTracemallocEnabled.test_new_referencecCs�d}t��|�ttjd�t��t�d�t|�\}}t�|�}|�t|�d�|�||�t��t�d�t|�\}}t�|�}|�t|�d�|�||�dS)Nr(rr	)	rrd�assertRaises�
ValueErrorr`r%rrrVr")rWrt�obj2�obj2_tracebackrIrurvrrr�test_set_traceback_limit�s



z/TestTracemallocEnabled.test_set_traceback_limitcCs.|D]}|d|jkr|Sq|�d�dS)Nr&ztrace not found)�_frames�fail)rW�tracesrI�tracerrr�
find_trace�s
z!TestTracemallocEnabled.find_tracec
Cszt��d}t|�\}}t��}|�||�}|�|t�|\}}}}	|�||�|�||j�t�	�|�t��g�dSrp)
rrlr%�_get_tracesr�ZassertIsInstancerrVr�rd)
rWrtrurvr�r��domainr#rI�lengthrrr�test_get_traces�sz&TestTracemallocEnabled.test_get_tracescs�dd���fdd���fdd�}t��t�d�d}||�\}}||�\}}t��}tt|j��|_tt|j��|_|�||�}|�||�}	|\}
}}}
|	\}}}}|�||�dS)	NcSst|�SrFrg�r#rrr�allocate_bytes2�szPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes2cs�|�SrFrr�)r�rr�allocate_bytes3�szPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes3cs�|�SrFrr�)r�rr�allocate_bytes4�szPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes4r-rf)	rrdr`r�r�reversedr�r�ZassertIs)rWr�rtZobj1Zobj1_tracebackr~rr�Ztrace1Ztrace2Zdomain1�size1Z
traceback1Zlength1Zdomain2rn�
traceback2Zlength2r)r�r�r� test_get_traces_intern_traceback�s 
z7TestTracemallocEnabled.test_get_traces_intern_tracebackc	Cs�d}d}t��t|�\}}t��\}}|�||�|�||�|�|||�|�|||�d}t��\}}|�||�|�||||�|�||�t��|�t��d�t|�\}}t��\}}|�||�t��|�t��d�dS)N��)rr)	rrlr%�get_traced_memoryrkrm�
assertLessrVrd)	rWZ	max_errorrtrurvr#Z	peak_sizernZ
peak_size2rrr�test_get_traced_memory�s*z-TestTracemallocEnabled.test_get_traced_memorycCs@td�\}}t�|�}|�|�t��t�|�}|�|�dS)Nrf)r%rrrrzrl�assertIsNone)rWrurvrIr�rrr�test_clear_tracess


z(TestTracemallocEnabled.test_clear_tracescCs�t��tttd���}t��\}}t��t��\}}|�||�|�||�d}t	|�\}}t��\}	}
|�|
|	�|�
|
|�|�|
||�dS)Ni��r�)rrl�sum�listrr�Z
reset_peakrkr�r%�
assertGreater)rWZ	large_sumr�Zpeak1rnZpeak2rtrurvZsize3Zpeak3rrr�test_reset_peaksz&TestTracemallocEnabled.test_reset_peakcCs0t��|�t���t��|�t���dSrF)rrd�assertFalser^r`�
assertTruerarrr�test_is_tracing$sz&TestTracemallocEnabled.test_is_tracingcCs�td�\}}t��}|�|jdjjd�|�tj	�|�
tjtj	�tj�
tj	�}|�|j|j�t��|�t��}t��Wd�n1s�0Y|�t|j�d�dS)Nrfr	r(zLthe tracemalloc module must be tracing memory allocations to take a snapshot)r%r�
take_snapshotr�r�rI�total_nframe�dumpr�TESTFN�
addCleanup�unlinkr@�loadrVrdr|�RuntimeErrorrU�	exception)rWru�sourcerCrD�cmrrr�
test_snapshot+s&�z$TestTracemallocEnabled.test_snapshotcCsJt��}d|_|�tj�|�tjtj�tj�	tj�}|�
|jd�dS)N�new)rr�Z	test_attrr�rr�r�r�r@r�rV)rWrCrDrrr�test_snapshot_save_attrDsz.TestTracemallocEnabled.test_snapshot_save_attrcCs6t��sdSd}t|�\}}t�|�}|dur2dSdS)Nr&rqr.r)rr^r%rrrsrrr�
fork_childOs
z!TestTracemallocEnabled.fork_child�forkzneed os.fork()c	CsHt��}|s6d}z|��}Wt�|�qDt�|�0ntj|dd�dS)Nr	r)�exitcode)�osr�r��_exitrZwait_process)rW�pidr�rrr�	test_fork\s
z TestTracemallocEnabled.test_forkN)rYrZr[rbrerorwr{r�r�r�r�r�r�r�r�r�r�r��unittestZ
skipUnless�hasattrr�r�rrrrr\js$
$	
r\c@sxeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�TestSnapshoti�cCs�dg}t����}|�tjtddd��|�tjtddd��|�tjtd|d��t��}|�|jd�|�t	|j
�d�|j
d	}|�|jd�|�|jj
d
�|�t	|j�d�|�|jd	jd�|�|jd	jd�Wd�n1s�0YdS)
N)rr2)r)r(r^T)Zreturn_valuerr2r�r	rr(r*r&)�
contextlib�	ExitStack�
enter_contextr�objectrr�rVrAr"r�r#rIr�rHr)rWrB�stackrCr�rrr�test_create_snapshotns(
���
z!TestSnapshot.test_create_snapshotc
Cs�t�\}}t�dd�}t�ddd�}t�ddd�}t|jj�}|�|f�}|�|jjgd��|�|jj|�|�||f�}|�|jjgd��|�d	�}	|�|	|�|�|	j|j�|�|	j|j�|�	t
|j|�dS)
NFr,Tr*r&r2)r'r'r'r/r6)r'r'r'r/r)rEr�Filterr�r��_traces�
filter_tracesrVZassertIsNotr|�	TypeError)
rWrCrD�filter1�filter2Zfilter3�original_traces�	snapshot3Z	snapshot4Z	snapshot5rrr�test_filter_traces�s
	
zTestSnapshot.test_filter_tracescCszt�\}}tjdddd�}tjdddd�}t|jj�}|�|f�}|�|jjgd��|�|f�}|�|jjgd��dS)NFr*r	�r�T)r'r'r'r3r6)rErr�r�r�r�r�rV)rWrCrDr�r�r�r�rrr�test_filter_traces_domain�s
	z&TestSnapshot.test_filter_traces_domaincCsht�\}}tjddd�}tjddd�}|�|f�}|�|jjgd��|�|f�}|�|jjdg�dS)NFr.r�T)r'r'r'r/r3r6)rEr�DomainFilterr�rVr�r�)rWrCrDr�r�r�rrr� test_filter_traces_domain_filter�s
	
�z-TestSnapshot.test_filter_traces_domain_filtercCs(t�\}}tdd�}tdd�}tdd�}tdd�}tdd	�}|�d
�}|�|t�|dd�t�|dd
�t�|dd�t�|dd�g�|�d
�}	|�|	t�|dd�t�|dd�t�|dd
�g�|�|d
�}
|�|
t�|dddd�t�|dddd�t�|dddd�t�|dddd�t�|ddd
d�g�dS)Nr:rr*r&r2r,r	r>r?rr4�r.r7�r<r;���r���)rErJ�
statisticsrVr�	Statistic�
compare_to�
StatisticDiff)rWrCrD�tb_0�tb_a_2�tb_a_5�tb_b_1Ztb_c_578�stats1�stats2r�rrr�test_snapshot_group_by_line�s6






�
��z(TestSnapshot.test_snapshot_group_by_linec

Cs�t�\}}td�}td�}td�}td�}|�d�}|�|t�|dd�t�|dd	�t�|d
d�g�|�d�}|�|t�|dd�t�|d
d�g�|�|d�}	|�|	t�|dddd�t�|d
d
dd�t�|dddd�t�|dddd�g�dS)Nr:r*r,r>rHr4r	� r-r7i�r2r<r;rr�rr�)rErLr�rVrr�r�r�)
rWrCrDr��tb_a�tb_bZtb_cr�r��diffrrr�test_snapshot_group_by_file�s.

�
��z(TestSnapshot.test_snapshot_group_by_filecCs6t�\}}tdd�}tdd�}td�}td�}|�d�}|�|t�|dd�t�|d	d
�t�|dd�t�|dd�g�td
�}|�d�}	|�|	t�|dd�t�|dd�t�|d	d
�g�|�|d�}
|�|
t�|dddd�t�|dddd�t�|dddd�t�|dddd�t�|d	dd
d�g�|jt	|jddd�dS)Nr)r+r1r5r9rIr4r	r�r.r7r&r=r�r<r;rr�rr�T)Z
cumulative)
rErIr�rVrr�r�r�r|r})rWrCrDZtb1Ztb2Ztb3Ztb4r�Ztb5r�r�rrr� test_snapshot_group_by_tracebacks<



�
���z-TestSnapshot.test_snapshot_group_by_tracebackcCs�t�\}}td�}td�}td�}tdd�}tdd�}tdd�}tdd�}	|�dd	�}
|�|
t�|d
d�t�|dd�t�|dd�g�|�d
d	�}
|�|
t�|dd�t�|	dd�t�|dd�t�|dd�t�|dd�g�dS)Nr:r*r,r&r2r	r-rHT�br�r7rr4r�r.)rErLrJr�rVrr�)rWrCrDr�r�r�r�r�r�Ztb_b_4�statsrrr�!test_snapshot_group_by_cumulativeAs,




��z.TestSnapshot.test_snapshot_group_by_cumulativecCsVt�\}}|jd}|�t|�d�|j}|�t|�d�|d}|�t|�d�dS)Nrzb.py:4: 10 Bzb.py:4)rEr�rVrUrI)rWrCrDr�rIrrrr�test_trace_format]s

zTestSnapshot.test_trace_formatcCs0t�\}}|�d�}|d}|�t|�d�dS)Nrrz(b.py:1: size=66 B, count=1, average=66 B)rEr�rVrU�rWrCrDr��statrrr�test_statistic_formatfs


�z"TestSnapshot.test_statistic_formatcCs2t�\}}|�|d�}|d}|�t|�d�dS)Nrrz;a.py:5: size=5002 B (+5000 B), count=2 (+1), average=2501 B)rEr�rVrUr�rrr�test_statistic_diff_formatms

�z'TestSnapshot.test_statistic_diff_formatcCs`t�\}}|�|jdd�|jd|jdf�|jdj}|�|dd�|d|df�dS)Nr&rr	)rErVr�rI)rWrCrDrIrrr�test_slicests
��zTestSnapshot.test_slicescCs�t�\}}dd�}tjjd|d���|jdj}|�|��gd��|�|jdd�d	d
g�|�|jdd�dd
g�|�|jdd�gd��|�|jddd�d	d
g�|�|jddd�dd
g�Wd�n1s�0YdS)NcSsd||fS)Nz
  <%s, %s>rrGrrr�getlinesz3TestSnapshot.test_format_traceback.<locals>.getlineztracemalloc.linecache.getline)Zside_effectr)�  File "b.py", line 4�
    <b.py, 4>�  File "a.py", line 2�
    <a.py, 2>r	)�limitr�r�rr�r�T)�most_recent_first)r�r�r�r�)r�r�)rEr�Zmockrr�rIrV�format)rWrCrDr��tbrrr�test_format_traceback}s@
�
����������z"TestSnapshot.test_format_tracebackN)rYrZr[�maxDiffr�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr�ks&#&		r�c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�TestFiltersr�cCs�t�dd�}|�|jd�|�|jd�|�|j�|�|jd�t�dddd�}|�|jd�|�|jd�|�|jd�|�|jd�tjddddd�}|�|jd�|�|jd�|�|jd�|�|jd�|�t	t
|dd�dS)NT�abcFztest.pyrf)�	inclusive�filename_patternr�
all_framesr�)rr�rVr�r�r�rr�r|�AttributeError�setattr�rW�frrr�test_filter_attributes�s z"TestFilters.test_filter_attributescCs�t�dd�}|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��t�dd�}|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��t�ddd�}|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��t�ddd�}|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��t�ddd�}|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��t�ddd�}|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��dS)NTr�rr2r(�12356F)rr�r��_match_framer�r�rrr�test_filter_match�sTzTestFilters.test_filter_matchcCsxdd�}|�|ddd��|�|ddd��|�|ddd��|�|ddd��|�|ddd��|�|ddd��dS)NcSst�||�}|�|d�SrK�rr�r�)r�rH�patternr�rrr�fnmatch�sz7TestFilters.test_filter_match_filename.<locals>.fnmatchTr�r�r:F)r�r��rWrrrr�test_filter_match_filename�sz&TestFilters.test_filter_match_filenamecCs�dd�}|�|dd��|�|dd��|�|dd��|�|dd��|�|dd��|�|dd��|�|dd��|�|dd��|�|dd	��|�|dd
��|�|dd��|�|dd��|�|d
d��|�|dd��|�|dd��|�|dd��|�|dd��|�|dd��|�|dd��|�|dd��|�|dd��tjdk�r�|�|dd��|�|dd��|�|dd��|�|dd��n@|�|dd��|�|dd��|�|dd��|�|dd��tjdk�r4|�|d d!��|�|d!d ��|�|d"d#��|�|d$d%��n@|�|d d!��|�|d!d ��|�|d"d#��|�|d$d%��|�|d&d��dS)'NcSst�d|�}|�|d�S)NTrr)rHr�filterrrrr�sz=TestFilters.test_filter_match_filename_joker.<locals>.fnmatchr���*Zabcd�defza*zabc*zb*zabcd*za*cZabcdcxza*cxZabbZabcdceZabcdeza*c*eZ	abcbdefegza*bd*egZabcddZ	abcbdefefza.pycr*�ntZaBCZABcZaBcDezAb*dEza.PYza.PYCza/bza\bza/b\cza\b/cza/b/cza\b\cza.pyo)r�r�r��namerrrr� test_filter_match_filename_joker�sRz,TestFilters.test_filter_match_filename_jokercCsDd}d}d}d}tjdddd�}|�|�|��|�|�|��|�|�|��|�|�|��tjdddd�}|�|�|��|�|�|��|�|�|��|�|�|��tjdddd�}|�|�|��|�|�|��|�|�|��|�|�|��tjdddd�}|�|�|��|�|�|��|�|�|��|�|�|��tjdd	dd�}|�|�|��|�|�|��|�|�|��|�|�|��tjdd	dd�}|�|�|��|�|�|��|�|�|��|�|�|��tjdd	dd�}|�|�|��|�|�|��|�|�|��|�|�|��dS)
N)r))r,r.)r+)r,r2))r>r2r9r8Tr,)r�Fr:)rr�r�Z_match_tracebackr�)rW�t1�t2Zt3�unknownr�rrr�test_filter_match_traceCsNz#TestFilters.test_filter_match_traceN)	rYrZr[r�r�rrrrrrrrr��s4
Er�c@s�eZdZdd�Ze�e�d�dd��Zdd�Zdd	�Z	d
d�Z
dd
�Zdd�Zdd�Z
dd�Zdd�Ze�edud�dd��ZdS)�TestCommandLinecCs,d}td|�\}}}|��}|�|d�dS)N�3import tracemalloc; print(tracemalloc.is_tracing())�-c�False�r�rstriprV�rWr�ok�stdout�stderrrrr� test_env_var_disabled_by_defaultusz0TestCommandLine.test_env_var_disabled_by_defaultz6Cannot run -E tests when PYTHON env vars are required.cCs2d}tdd|dd�\}}}|��}|�|d�dS)zAPYTHON* environment variables must be ignored when -E is present.rz-Er�1�ZPYTHONTRACEMALLOCrNrrrrr�test_env_var_ignored_with_E|sz+TestCommandLine.test_env_var_ignored_with_EcCs0d}td|dd�\}}}|��}|�|d�dS)Nrr�0rrrrrrr�test_env_var_disabled�sz%TestCommandLine.test_env_var_disabledcCs0d}td|dd�\}}}|��}|�|d�dS)NrrrrsTruerrrrr�test_env_var_enabled_at_startup�sz/TestCommandLine.test_env_var_enabled_at_startupcCs0d}td|dd�\}}}|��}|�|d�dS)N�<import tracemalloc; print(tracemalloc.get_traceback_limit())rZ10rs10rrrrr�test_env_limit�szTestCommandLine.test_env_limitcCslt���(tddt|�d�\}}}Wd�n1s60Yd|vrLdSd|vrXdS|�d|���dS)Nr�passr�1ValueError: the number of frames must be in ranges+PYTHONTRACEMALLOC: invalid number of frames�unexpected output: )r�SuppressCrashReportrrUr�)rWrrrrrrr�check_env_var_invalid�s
�*z%TestCommandLine.check_env_var_invalidc	CsDtD]:}|j|d��|�|�Wd�q1s40YqdS�N�r)�INVALID_NFRAME�subTestr(�rWrrrr�test_env_var_invalid�sz$TestCommandLine.test_env_var_invalidc	CsvdD]l\}}|j||d��Fd}td|d|�\}}}|��}|�|t|��d��Wd�q1sf0YqdS)N))rr	)z
tracemalloc=1r	)ztracemalloc=15�)�xoptionsrr"�-Xr�ascii)r,rrrVrU�encode)rWr0rrrrrrrr�test_sys_xoptions�sz!TestCommandLine.test_sys_xoptionscCsrdd|ddf}t���t|�\}}}Wd�n1s<0Yd|vrRdSd|vr^dS|�d|���dS)Nr1ztracemalloc=%srr$r%s/-X tracemalloc=NFRAME: invalid number of framesr&)rr'rr�)rWrrPrrrrrr�check_sys_xoptions_invalid�s
,z*TestCommandLine.check_sys_xoptions_invalidc	CsDtD]:}|j|d��|�|�Wd�q1s40YqdSr))r+r,r5r-rrr�test_sys_xoptions_invalid�sz)TestCommandLine.test_sys_xoptions_invalidN�need _testcapicCsd}tddd|�dS)Nz2import _testcapi; _testcapi.test_pymem_alloc0(); 1r1rr)r)rWrrrr�test_pymem_alloc0�sz!TestCommandLine.test_pymem_alloc0)rYrZr[rr��skipIfrrr r!r#r(r.r4r5r6�	_testcapir8rrrrrts�

rr7c@szeZdZdZdd�Zdd�Zdd�Zdd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS) �TestCAPIi@cCs>t��r|�d�d|_d|_t|j�d|_t|j�|_dS)Nr]r2rfr)	rr^r_r�r#r%ru�id�ptrrarrrrb�s
zTestCAPI.setUpcCst��dSrFrcrarrrre�szTestCAPI.tearDowncCs*t�|j|j�}|dur"t�|�SdSdSrF)r:Ztracemalloc_get_tracebackr�r=rr )rWrrrr�
get_traceback�s
zTestCAPI.get_tracebackFr	cCs$t|d�}t�|j|j|j|�|S)Nr	)rr:Ztracemalloc_trackr�r=r#)rW�release_gilrrrrr�track�s

�zTestCAPI.trackcCst�|j|j�dSrF)r:Ztracemalloc_untrackr�r=rarrr�untrack�szTestCAPI.untrackcCs6t��}t�d|j�}|�|g�}tdd�|jD��S)NTcss|]}|jVqdSrFr�)rhr�rrr�	<genexpr>�rz-TestCAPI.get_traced_memory.<locals>.<genexpr>)rr�r�r�r�r�r�)rWrCZ
domain_filterrrrr��szTestCAPI.get_traced_memorycCsRd}t�|�t��d}|�||�}|�|��t�|��|�|��|j�dS)Nr2r)rr`r�r@rVr>r r#)rWr?rr#rrrr�check_track�s

�zTestCAPI.check_trackcCs|�d�dS)NF�rCrarrr�
test_trackszTestCAPI.test_trackcCs|�d�dS)NTrDrarrr�test_track_without_gil	szTestCAPI.test_track_without_gilcCs<d}t�|�|��|j|d�}|�|��t�|��dS)Nr2r*)rr`r@rVr>r )rWrrrrr�test_track_already_trackeds

�z#TestCAPI.test_track_already_trackedcCsjt��|��|�|���|�|��|j�|��|�	|���|�|��d�|��|��dSrK)
rr`r@rzr>rVr�r#rAr�rarrr�test_untrackszTestCAPI.test_untrackcCsTt��t��|�t��|��Wd�n1s80Y|�|���dSrF)rr`rdr|r�r@r�r>rarrr�test_stop_track+s
&zTestCAPI.test_stop_trackcCsNt��|��t��|�t��|��Wd�n1s@0YdSrF)rr`r@rdr|r�rArarrr�test_stop_untrack3s
zTestCAPI.test_stop_untrackN)Fr	)rYrZr[r�rbrer>r@rAr�rCrErFrGrHrIrJrrrrr;�s

r;�__main__)#r�r�r
rr�Z
unittest.mockrZtest.support.script_helperrrr�testrr:�ImportError�	getsizeofrr+rr%rErrIrJrLZTestCaserMr\r�r�rr9r;rY�mainrrrr�<module>sD


!8T\k


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists