Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.10/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.10/test/__pycache__/test_tracemalloc.cpython-310.pyc
o

�9j���@s^ddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
ddlmZddl
mZzddlZWneyAdZYnwe�d�ZdZdd	�Zd
d�Zdd
�Zdd�Zdd�Zdd�Zdd�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Z e�!edud �Gd!d"�d"ej��Z"e#d#kr�e�$�dSdS)$�N)�patch)�assert_python_ok�assert_python_failure� interpreter_requires_environment)�support)�	os_helper�)���i@cCs`g}t�d�}t|�D] }|j}|j|}|�|j|f�d}|j}|dur+t|�Sqt|�S)N�r)	�sys�	_getframe�range�f_code�f_lineno�append�co_filename�f_back�tuple)�nframe�lineno_delta�frames�frame�index�code�lineno�r�,/usr/lib/python3.10/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)�sizer�	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.r1�r)�B)�r/r
r
�r1����	<unknown>rr
)r*r*r*)r)r)r3r1)r)�r3r1)r0�)��c.py�Br
)r�Snapshot)�traceback_limit�
raw_traces�snapshot�raw_traces2�	snapshot2rrr�create_snapshots*s
rIcCst�||f�S�N)r�_Frame��filenamerrrrrK�rcGs
t�|�SrJ)rr")rrrr�	tracebackN�
rOcCst||f�SrJ)rOrLrrr�traceback_linenoQ�rQcCs
t|d�S�Nr)rQ)rMrrr�traceback_filenameTrPrTc@seZdZdd�ZdS)�
TestTracebackcCsndtfdd�}|�|d�d�|�|dd�d�d}d	}|�||�d
|�d��|�||d�d
|�d
��dS)N�returncWsttj|��SrJ)�reprrr")�argsrrr�get_reprZrNz)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)�selfrYr�exp_repr_framesrrr�	test_reprYs�

�
�zTestTraceback.test_reprN)�__name__�
__module__�__qualname__rarrrrrUXsrUc@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�r_rrr�setUpls
zTestTracemallocEnabled.setUpcC�t��dSrJ�r�stoprjrrr�tearDownrrRzTestTracemallocEnabled.tearDowncCsRdd�td�D�}t��}|�|d�t��t��}|�|d�|�||�dS)NcSsg|]}td��qS)�{�r()�.0�countrrr�
<listcomp>vszFTestTracemallocEnabled.test_get_tracemalloc_memory.<locals>.<listcomp>i�r)r
r�get_tracemalloc_memory�assertGreaterEqual�clear_traces�assertLessEqual)r_r'r%�size2rrr�test_get_tracemalloc_memoryusz2TestTracemallocEnabled.test_get_tracemalloc_memorycCs2t��d}t|�\}}t�|�}|�||�dS�N�90)rrwr(�get_object_tracebackr^�r_�obj_size�obj�
obj_tracebackrOrrr�test_get_object_tracebacks

z0TestTracemallocEnabled.test_get_object_tracebackcCsht��t��g}d}g}t��}t|d�}t�|tt|�|��}t�	|�}|�
|�|�||�dS)N���)rrwr�
gc_collectr rr"r#r$r}�assertIsNotNoner^)r_r�rrr�rOrrr�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+r	r
)	rrn�assertRaises�
ValueErrorrir(r}r^r$)r_r�obj2�obj2_tracebackrOr�r�rrr�test_set_traceback_limit�s



z/TestTracemallocEnabled.test_set_traceback_limitcCs.|D]
}|d|jkr|Sq|�d�dS)Nr)ztrace not found)�_frames�fail)r_�tracesrO�tracerrr�
find_trace�s
�z!TestTracemallocEnabled.find_tracec
Cszt��d}t|�\}}t��}|�||�}|�|t�|\}}}}	|�||�|�||j�t�	�|�t��g�dSr{)
rrwr(�_get_tracesr��assertIsInstancerr^r�rn)
r_rr�r�r�r��domainr%rO�lengthrrr�test_get_traces�sz&TestTracemallocEnabled.test_get_tracescs�dd���fdd���fdd�}t��t�d�d}||�\}}||�\}}t��}tt|j��|_tt|j��|_|�||�}|�||�}	|\}
}}}
|	\}}}}|�||�dS)	NcSst|�SrJrq�r%rrr�allocate_bytes2��zPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes2c��|�SrJrr�)r�rr�allocate_bytes3�r�zPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes3cr�rJrr�)r�rr�allocate_bytes4�r�zPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes4r0rp)	rrnrir�r�reversedr�r��assertIs)r_r�r�obj1�obj1_tracebackr�r�r��trace1�trace2�domain1�size1�
traceback1�length1�domain2ry�
traceback2�length2r)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)	rrwr(�get_traced_memoryrvrx�
assertLessr^rn)	r_�	max_errorrr�r�r%�	peak_sizery�
peak_size2rrr�test_get_traced_memory�s*z-TestTracemallocEnabled.test_get_traced_memorycCs@td�\}}t�|�}|�|�t��t�|�}|�|�dS)Nrp)r(rr}r�rw�assertIsNone)r_r�r�rOr�rrr�test_clear_tracess


z(TestTracemallocEnabled.test_clear_tracescCs�t��tttd���}t��\}}t��t��\}}|�||�|�||�d}t	|�\}}t��\}	}
|�|
|	�|�
|
|�|�|
||�dS)Ni��r�)rrw�sum�listr
r��
reset_peakrvr�r(�
assertGreater)r_�	large_sumr��peak1ry�peak2rr�r��size3�peak3rrr�test_reset_peak
sz&TestTracemallocEnabled.test_reset_peakcCs0t��|�t���t��|�t���dSrJ)rrn�assertFalsergri�
assertTruerjrrr�test_is_tracing%sz&TestTracemallocEnabled.test_is_tracingcCs�td�\}}t��}|�|jdjjd�|�tj	�|�
tjtj	�tj�
tj	�}|�|j|j�t��|�t��}t��Wd�n1sJwY|�t|j�d�dS)Nrpr
r+zLthe tracemalloc module must be tracing memory allocations to take a snapshot)r(r�
take_snapshotr�r�rO�total_nframe�dumpr�TESTFN�
addCleanup�unlinkrC�loadr^rnr��RuntimeErrorr]�	exception)r_r��sourcerFrH�cmrrr�
test_snapshot,s
��z$TestTracemallocEnabled.test_snapshotcCsJt��}d|_|�tj�|�tjtj�tj�	tj�}|�
|jd�dS)N�new)rr��	test_attrr�rr�r�r�rCr�r^)r_rFrHrrr�test_snapshot_save_attrEsz.TestTracemallocEnabled.test_snapshot_save_attrcCs6t��sdSd}t|�\}}t�|�}|durdSdS)Nr)r|r1r)rrgr(r}r~rrr�
fork_childPs
z!TestTracemallocEnabled.fork_child�forkzneed os.fork()c	CsHt��}|sd}z|��}Wt�|�dSt�|�wtj|dd�dS)Nr
r)�exitcode)�osr�r��_exitr�wait_process)r_�pidr�rrr�	test_fork]s
z TestTracemallocEnabled.test_forkN)rbrcrdrkrorzr�r�r�r�r�r�r�r�r�r�r�r�r��unittest�
skipUnless�hasattrr�r�rrrrreks&
$	
rec@sxeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�TestSnapshoti�cCsdg}t���o}|�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�dS1sywYdS)
N)rr5)r,r+rgT)�return_valuer r5r�r
rr+r-r))�
contextlib�	ExitStack�
enter_contextr�objectrr�r^rDr$r�r%rOr�rMr)r_rE�stackrFr�rrr�test_create_snapshotos*
���
"�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)r5)r*r*r*r2r9)r*r*r*r2r)rIr�Filterr�r��_traces�
filter_tracesr^�assertIsNotr��	TypeError)
r_rFrH�filter1�filter2�filter3�original_traces�	snapshot3�	snapshot4�	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*r6r9)rIrr�r�r�r�r�r^)r_rFrHr�r�r�r�rrr�test_filter_traces_domain�s
	z&TestSnapshot.test_filter_traces_domaincCsht�\}}tjddd�}tjddd�}|�|f�}|�|jjgd��|�|f�}|�|jjdg�dS)NFr1r�T)r*r*r*r2r6r9)rIr�DomainFilterr�r^r�r�)r_rFrHr�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)r5r/r
rArBrr7�r1r:�r?r>���r	���)rIrQ�
statisticsr^r�	Statistic�
compare_to�
StatisticDiff)r_rFrH�tb_0�tb_a_2�tb_a_5�tb_b_1�tb_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/rArMr7r
� r0r:i�r5r?r>rr�r	r�)rIrTr�r^rr�r�r�)
r_rFrHr��tb_a�tb_b�tb_crr�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.r4r8r<rOr7r
r�r1r:r)r@r�r?r>rr�r	r�T)�
cumulative)
rIrOr�r^rr�r�r�r�r�)r_rFrH�tb1�tb2�tb3�tb4r�tb5rrrrr� 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)r5r
r0rMT�brr:rr7r�r1)rIrTrQr�r^rr�)r_rFrHr�rrr�r�r��tb_b_4�statsrrr�!test_snapshot_group_by_cumulativeBs,




�
�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)rIr�r^r]rO)r_rFrHr�rOrrrr�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)rIr�r^r]�r_rFrHr�statrrr�test_statistic_formatgs


�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)rIr�r^r]rrrr�test_statistic_diff_formatns

�z'TestSnapshot.test_statistic_diff_formatcCs`t�\}}|�|jdd�|jd|jdf�|jdj}|�|dd�|d|df�dS)Nr)rr
)rIr^r�rO)r_rFrHrOrrr�test_slicesus
��zTestSnapshot.test_slicescCs�t�\}}dd�}tjjd|d��W|jdj}|�|��gd��|�|jdd�d	d
g�|�|jdd�dd
g�|�|jdd�gd��|�|jddd�d	d
g�|�|jddd�dd
g�Wd�dS1skwYdS)NcSsd||fS)Nz
  <%s, %s>rrLrrr�getline�rRz3TestSnapshot.test_format_traceback.<locals>.getlineztracemalloc.linecache.getline)�side_effectr)�  File "b.py", line 4�
    <b.py, 4>�  File "a.py", line 2�
    <a.py, 2>r
)�limitrr r	rrT)�most_recent_first)rr rr)r!r")rIr��mockrr�rOr^�format)r_rFrHr�tbrrr�test_format_traceback~sB
�
����������"�z"TestSnapshot.test_format_tracebackN)rbrcrd�maxDiffr�r�r�r�rr	rrrrrrr&rrrrr�ls&#&		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.pyrp)�	inclusive�filename_patternr�
all_framesr+)rr�r^r*r+r�rr,r��AttributeError�setattr�r_�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)rr5r+�12356F)rr�r��_match_framer�r/rrr�test_filter_match�sTzTestFilters.test_filter_matchcCsxdd�}|�|ddd��|�|ddd��|�|ddd��|�|ddd��|�|ddd��|�|ddd��dS)NcSst�||�}|�|d�SrS�rr�r3)r*rM�patternr0rrr�fnmatch��z7TestFilters.test_filter_match_filename.<locals>.fnmatchTr)r2r=F)r�r��r_r7rrr�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��tjdkr�|�|dd��|�|dd��|�|dd��|�|dd��n |�|dd��|�|dd��|�|dd��|�|dd��tjdk�r|�|d d!��|�|d!d ��|�|d"d#��|�|d$d%��n |�|d d!��|�|d!d ��|�|d"d#��|�|d$d%��|�|d&d��dS)'NcSst�d|�}|�|d�S)NTrr5)rMr6�filterrrrr7r8z=TestFilters.test_filter_match_filename_joker.<locals>.fnmatchr)��*�abcd�defza*zabc*zb*zabcd*za*c�abcdcxza*cx�abb�abcdce�abcdeza*c*e�	abcbdefegza*bd*eg�abcdd�	abcbdefefza.pycr-�nt�aBC�ABc�aBcDezAb*dEza.PYza.PYCza/bza\bza/b\cza\b/cza/b/cza\b\cza.pyo)r�r�r��namer9rrr� 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/r1)r.)r/r5))rAr5r<r;Tr/)r,Fr=)rr�r��_match_tracebackr�)r_�t1�t2�t3�unknownr0rrr�test_filter_match_traceDsNz#TestFilters.test_filter_match_traceN)	rbrcrdr'r1r4r:rLrRrrrrr(�s4
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�rstripr^�r_r�ok�stdout�stderrrrr� test_env_var_disabled_by_defaultvsz0TestCommandLine.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.rTz-ErU�1��PYTHONTRACEMALLOCrVNrWrYrrr�test_env_var_ignored_with_E}sz+TestCommandLine.test_env_var_ignored_with_EcC�0d}td|dd�\}}}|��}|�|d�dS)NrTrU�0r_rVrWrYrrr�test_env_var_disabled��z%TestCommandLine.test_env_var_disabledcCrb)NrTrUr^r_sTruerWrYrrr�test_env_var_enabled_at_startup�rez/TestCommandLine.test_env_var_enabled_at_startupcCrb)N�<import tracemalloc; print(tracemalloc.get_traceback_limit())rU�10r_s10rWrYrrr�test_env_limit�rezTestCommandLine.test_env_limitcCslt���tddt|�d�\}}}Wd�n1swYd|vr&dSd|vr,dS|�d|���dS)NrU�passr_�1ValueError: the number of frames must be in ranges+PYTHONTRACEMALLOC: invalid number of frames�unexpected output: )r�SuppressCrashReportrr]r�)r_rrZr[r\rrr�check_env_var_invalid�s
��z%TestCommandLine.check_env_var_invalidc	C�DtD]}|j|d��
|�|�Wd�n1swYqdS�N�r)�INVALID_NFRAME�subTestrn�r_rrrr�test_env_var_invalid�����z$TestCommandLine.test_env_var_invalidc	CsvdD]6\}}|j||d��#d}td|d|�\}}}|��}|�|t|��d��Wd�n1s3wYqdS)N))rr
)z
tracemalloc=1r
)ztracemalloc=15�)�xoptionsrrg�-XrU�ascii)rsrrXr^r]�encode)r_rxrrrZr[r\rrr�test_sys_xoptions�s���z!TestCommandLine.test_sys_xoptionscCsrdd|ddf}t���t|�\}}}Wd�n1swYd|vr)dSd|vr/dS|�d|���dS)Nryztracemalloc=%srUrjrks/-X tracemalloc=NFRAME: invalid number of framesrl)rrmrr�)r_rrXrZr[r\rrr�check_sys_xoptions_invalid�s
�z*TestCommandLine.check_sys_xoptions_invalidc	Crorp)rrrsr}rtrrr�test_sys_xoptions_invalid�rvz)TestCommandLine.test_sys_xoptions_invalidN�need _testcapicCsd}tddd|�dS)Nz2import _testcapi; _testcapi.test_pymem_alloc0(); 1ryrrU)r)r_rrrr�test_pymem_alloc0�sz!TestCommandLine.test_pymem_alloc0)rbrcrdr]r��skipIfrrardrfrirnrur|r}r~�	_testcapir�rrrrrSus �

rSrc@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)Nrfr5rpr)	rrgrhr�r%r(r��id�ptrrjrrrrk�s
zTestCAPI.setUpcCrlrJrmrjrrrro�rRzTestCAPI.tearDowncCs&t�|j|j�}|durt�|�SdSrJ)r��tracemalloc_get_tracebackr�r�rr")r_rrrr�
get_traceback�s
zTestCAPI.get_tracebackFr
cCs$t|d�}t�|j|j|j|�|S)Nr
)rr��tracemalloc_trackr�r�r%)r_�release_gilrrrrr�track�s

�zTestCAPI.trackcCst�|j|j�dSrJ)r��tracemalloc_untrackr�r�rjrrr�untrack�szTestCAPI.untrackcCs6t��}t�d|j�}|�|g�}tdd�|jD��S)NTcss�|]}|jVqdSrJr�)rrr�rrr�	<genexpr>�s�z-TestCAPI.get_traced_memory.<locals>.<genexpr>)rr�r�r�r�r�r�)r_rF�
domain_filterrrrr��szTestCAPI.get_traced_memorycCsRd}t�|�t��d}|�||�}|�|��t�|��|�|��|j�dS)Nr5r)rrir�r�r^r�r"r%)r_r�rr%rrrr�check_track�s

�zTestCAPI.check_trackcC�|�d�dS)NF�r�rjrrr�
test_trackrNzTestCAPI.test_trackcCr�)NTr�rjrrr�test_track_without_gil
szTestCAPI.test_track_without_gilcCs<d}t�|�|��|j|d�}|�|��t�|��dS)Nr5rq)rrir�r^r�r")r_rrrrr�test_track_already_trackeds

�z#TestCAPI.test_track_already_trackedcCsjt��|��|�|���|�|��|j�|��|�	|���|�|��d�|��|��dSrS)
rrir�r�r�r^r�r%r�r�rjrrr�test_untrackszTestCAPI.test_untrackcCsTt��t��|�t��|��Wd�n1swY|�|���dSrJ)rrirnr�r�r�r�r�rjrrr�test_stop_track,s
�zTestCAPI.test_stop_trackcCsPt��|��t��|�t��
|��Wd�dS1s!wYdSrJ)rrir�rnr�r�r�rjrrr�test_stop_untrack4s
"�zTestCAPI.test_stop_untrackN)Fr
)rbrcrdr'rkror�r�r�r�r�r�r�r�r�r�r�rrrrr��s

r��__main__)%r�r�rrr��
unittest.mockr�test.support.script_helperrrr�testr�test.supportrr��ImportError�	getsizeofr!rrrr(rIrrOrQrT�TestCaserUrer�r(rSr�r�rb�mainrrrr�<module>sL�

!8T\k�

Youez - 2016 - github.com/yon3zu
LinuXploit