Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_tracemalloc.cpython-35.opt-2.pyc



���]kx�@s�ddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
ddlmZyddl
Z
Wnek
r�dZ
YnXejd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Zdd�Zdd�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Zdd�Zedkr�e�dS)�N)�patch)�assert_python_ok�assert_python_failure� interpreter_requires_environment)�support�cCs~g}tjd�}x\t|�D]N}|j}|j|}|j|j|f�d}|j}|dkr"Pq"Wt|�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�5/opt/alt/python35/lib64/python3.5/test_tracemalloc.py�
get_framess	
	rcCsBtj�}|t}t|d�}d|}|tj|�fS)Nr�x)�tracemalloc�get_traceback_limit�EMPTY_STRING_SIZEr�	Traceback)�sizerZ	bytes_lenr�datarrr�allocate_bytess


r"cCsdd}ddddd"d%g}tj||�}d)d-d1d5d9d<g}tj||�}||fS)=N��
�a.py�b.py���Br��	<unknown>r���c.py�B�r%r#�r&r'�r0r1)r$r2�r%r#�r&r'�r3r4)r$r5�r%r#�r&r'�r6r7)r$r8�r%r(�r&r'�r9r:)r#r;�r&r�r<)r)r=�r+r�r>)r*r?�r%r#�r&r'�r@rA)r$rB�r%r#�r&r'�rCrD)r$rE�r%r#�r&r'�rFrG)r$rH�r%r(�r&r'�rIrJ)r#rK�r%r(�r&r'�rLrM)r,rN�r.r/�rO)r-rP)r�Snapshot)�traceback_limit�
raw_traces�snapshotZraw_traces2�	snapshot2rrr�create_snapshots%s 		rVcCstj||f�S)N)rZ_Frame)�filenamerrrrrCsrcGs
tj|�S)N)rr)rrrr�	tracebackFsrXcCst||f�S)N)rX)rWrrrr�traceback_linenoIsrYcCs
t|d�S)Nr)rY)rWrrr�traceback_filenameLsrZc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zejeed�d�dd ��Zd!S)"�TestTracemallocEnabledcCs*tj�r|jd�tjd�dS)Nz+tracemalloc must be stopped before the testr)r�
is_tracingZskipTest�start)�selfrrr�setUpQs
zTestTracemallocEnabled.setUpcCstj�dS)N)r�stop)r^rrr�tearDownWszTestTracemallocEnabled.tearDowncCsodd�td�D�}tj�}|j|d�tj�tj�}|j|d�|j||�dS)NcSsg|]}td��qS)�{)r")�.0�countrrr�
<listcomp>[s	zFTestTracemallocEnabled.test_get_tracemalloc_memory.<locals>.<listcomp>i�r)rrZget_tracemalloc_memory�assertGreaterEqual�clear_traces�assertLessEqual)r^r!r �size2rrr�test_get_tracemalloc_memoryZs
z2TestTracemallocEnabled.test_get_tracemalloc_memorycCsEtj�d}t|�\}}tj|�}|j||�dS)Ni90)rrgr"�get_object_traceback�assertEqual)r^�obj_size�obj�
obj_tracebackrXrrr�test_get_object_tracebackds

z0TestTracemallocEnabled.test_get_object_tracebackcCs�d}tj�|jttjd�tj�tjd�t|�\}}tj|�}|jt|�d�|j||�tj�tjd�t|�\}}tj|�}|jt|�d�|j||�dS)Nr$r���)	rr`�assertRaises�
ValueErrorr]r"rkrl�len)r^rm�obj2�obj2_tracebackrXrnrorrr�test_set_traceback_limitks




z/TestTracemallocEnabled.test_set_traceback_limitcCs9x%|D]}|d|jkr|SqW|jd�dS)Nrztrace not found)�_framesZfail)r^�tracesrX�tracerrr�
find_traces
z!TestTracemallocEnabled.find_tracecCs�tj�d}t|�\}}tj�}|j||�}|j|t�|\}}|j||�|j||j�tj	�|jtj�g�dS)Ni90)
rrgr"�_get_tracesr{ZassertIsInstancerrlrxr`)r^rmrnroryrzr rXrrr�test_get_traces�s

z&TestTracemallocEnabled.test_get_tracescs�dd���fdd���fdd�}tj�tjd�d}||�\}}||�\}}tj�}|j||�}|j||�}	|\}
}|	\}}
|j|
|�|j|
|�dS)	NcSs
t|�S)N)r")r rrr�allocate_bytes2�szPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes2cs
�|�S)Nr)r )r~rr�allocate_bytes3�szPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes3cs
�|�S)Nr)r )rrr�allocate_bytes4�szPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes4r'rb)rr`r]r|r{rlZassertIs)r^r�rmZobj1Zobj1_tracebackrurvryZtrace1Ztrace2Zsize1Z
traceback1ri�
traceback2r)r~rr� test_get_traces_intern_traceback�s

z7TestTracemallocEnabled.test_get_traces_intern_tracebackc	CsJd}d}tj�t|�\}}tj�\}}|j||�|j||�|j|||�|j|||�d}tj�\}}|j||�|j||||�|j||�tj�|jtj�d�t|�\}}tj�\}}|j||�tj�|jtj�d�dS)Niiri)rr)rr)	rrgr"Zget_traced_memoryrfrhZ
assertLessrlr`)	r^Z	max_errorrmrnror Z	peak_sizeriZ
peak_size2rrr�test_get_traced_memory�s*


z-TestTracemallocEnabled.test_get_traced_memorycCsXtd�\}}tj|�}|j|�tj�tj|�}|j|�dS)Nrb)r"rrkZassertIsNotNonerg�assertIsNone)r^rnrorXr�rrr�test_clear_traces�s

z(TestTracemallocEnabled.test_clear_tracescCs>tj�|jtj��tj�|jtj��dS)N)rr`�assertFalser\r]�
assertTrue)r^rrr�test_is_tracing�s

z&TestTracemallocEnabled.test_is_tracingc
Cs�td�\}}tj�}|jtj�|jtjtj�tjj	tj�}|j
|j|j�tj�|j
t��}tj�WdQRX|j
t|j�d�dS)NrbzLthe tracemalloc module must be tracing memory allocations to take a snapshot)r"r�
take_snapshot�dumpr�TESTFN�
addCleanup�unlinkrQ�loadrlryr`rr�RuntimeError�str�	exception)r^rn�sourcerTrU�cmrrr�
test_snapshot�s
z$TestTracemallocEnabled.test_snapshotcCsgtj�}d|_|jtj�|jtjtj�tjj	tj�}|j
|jd�dS)N�new)rr�Z	test_attrr�rr�r�r�rQr�rl)r^rTrUrrr�test_snapshot_save_attr�s	z.TestTracemallocEnabled.test_snapshot_save_attrcCsKtj�sdSd}t|�\}}tj|�}|dkrGdSdS)Nr#i90�r)rr\r"rk)r^rmrnrorXrrr�
fork_childsz!TestTracemallocEnabled.fork_child�forkzneed os.fork()cCs�tj�}|s<d}z|j�}Wdtj|�XnMtj|d�\}}|jtj|��tj|�}|j|d�dS)Nrr)	�osr�r��_exit�waitpidr��	WIFEXITED�WEXITSTATUSrl)r^�pid�exitcodeZpid2�statusrrr�	test_forksz TestTracemallocEnabled.test_forkN)�__name__�
__module__�__qualname__r_rarjrprwr{r}r�r�r�r�r�r�r��unittestZ
skipUnless�hasattrr�r�rrrrr[Ps
$	
r[c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�TestSnapshoti�c
Cs%d
g}tj��	}|jtjtddd��|jtjtddd��|jtjtdd|��tj�}|j|jd�|jt	|j
�d	�|j
d
}|j|jd�|jt	|j�d	�|j|jd
j
d�|j|jd
jd�WdQRXdS)Nr(�a.pyr#r\Zreturn_valueTrr|rr�r�r#�r�)r(r�)�
contextlib�	ExitStack�
enter_contextr�objectrr�rlrRrtryr rXrWr)r^rS�stackrTrzrrr�test_create_snapshot&s 	



z!TestSnapshot.test_create_snapshotc
	CsFt�\}}tjdd�}tjddd�}tjddd�}t|jj�}|j|f�}|j|jjdddddg�|j|jj|�|j||f�}|j|jjd"d&d*d.g�|jf�}	|j|	|�|j|	j|j�|j|	j|j�|j	t
|j|�dS)/NF�b.pyT�a.pyr#r(r$r'r*�	<unknown>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�)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�)rVr�Filter�listryZ_tracesZ
filter_tracesrlZassertIsNotrr�	TypeError)
r^rTrUZfilter1Zfilter2Zfilter3Zoriginal_tracesZ	snapshot3Z	snapshot4Z	snapshot5rrr�test_filter_traces:s0

zTestSnapshot.test_filter_tracescCs�t�\}}tdd�}tdd�}tdd�}tdd�}tdd	�}|jd
�}|j|tj|dd�tj|dd
�tj|dd�tj|dd�g�|jd
�}	|j|	tj|dd�tj|dd�tj|dd
�g�|j|d
�}
|j|
tj|dddd�tj|dddd�tj|dddd�tj|dddd�tj|ddd
d�g�dS)Nz	<unknown>rza.pyr#r(zb.pyrzc.pyiBrr)�r�r*i�i�i�i����rqi����rq)rVrY�
statisticsrlr�	Statistic�
compare_to�
StatisticDiff)r^rTrU�tb_0�tb_a_2�tb_a_5�tb_b_1Ztb_c_578�stats1�stats2r�rrr�test_snapshot_group_by_line`s0			z(TestSnapshot.test_snapshot_group_by_linec
Cs]t�\}}td�}td�}td�}td�}|jd�}|j|tj|dd�tj|dd	�tj|d
d�g�|jd�}|j|tj|dd�tj|d
d�g�|j|d�}	|j|	tj|dddd�tj|d
d
dd�tj|dddd�tj|dddd�g�dS)Nz	<unknown>za.pyzb.pyzc.pyrWr)r� r'r*i�r(i�i�ri����rqi����rq)rVrZr�rlrr�r�r�)
r^rTrUr��tb_a�tb_bZtb_cr�r��diffrrr�test_snapshot_group_by_file�s(			z(TestSnapshot.test_snapshot_group_by_filecCs�t�\}}tdd�}tdd�}td�}td�}|jd	�}|j|tj|d
d�tj|dd�tj|d
d�tj|dd�g�td�}|jd	�}	|j|	tj|dd�tj|dd�tj|dd�g�|j|d	�}
|j|
tj|dddd�tj|dddd�tj|dddd�tj|dddd�tj|dddd�g�|jt	|jd	dd�dS) N�a.pyr#�b.pyr'r(r�	<unknown>rrXr)r�r�r*�c.py�Bi�i�i�Z
cumulativeT)r�r#)r�r')r�r()r�r')r�r)r�r)r�r�i����rqi����rq)
rVrXr�rlrr�r�r�rrrs)r^rTrUZtb1Ztb2Ztb3Ztb4r�Ztb5r�r�rrr� test_snapshot_group_by_traceback�s4				z-TestSnapshot.test_snapshot_group_by_tracebackc
CsGt�\}}td�}td�}td�}tdd�}tdd�}tdd�}tdd�}	|jdd	�}
|j|
tj|d
d�tj|dd�tj|dd�g�|jd
d	�}
|j|
tj|dd�tj|	dd�tj|dd�tj|dd�tj|dd�g�dS)Nz	<unknown>za.pyzb.pyr#r(rr'rWT�br�r*rr)r�r�)rVrZrYr�rlrr�)r^rTrUr�r�r�r�r�r�Ztb_b_4�statsrrr�!test_snapshot_group_by_cumulative�s(		z.TestSnapshot.test_snapshot_group_by_cumulativecCsut�\}}|jd}|jt|�d�|j}|jt|�d�|d}|jt|�d�dS)Nrza.py:2: 10 Bza.py:2)rVryrlr�rX)r^rTrUrzrXrrrr�test_trace_format�s
	
zTestSnapshot.test_trace_formatcCsBt�\}}|jd�}|d}|jt|�d�dS)Nrrz(b.py:1: size=66 B, count=1, average=66 B)rVr�rlr�)r^rTrUr��statrrr�test_statistic_format�s

z"TestSnapshot.test_statistic_formatcCsEt�\}}|j|d�}|d}|jt|�d�dS)Nrrz;a.py:5: size=5002 B (+5000 B), count=2 (+1), average=2501 B)rVr�rlr�)r^rTrUr�r�rrr�test_statistic_diff_format�s

z'TestSnapshot.test_statistic_diff_formatcCs|t�\}}|j|jdd�|jd|jdf�|jdj}|j|dd�|d|df�dS)Nr#rr)rVrlryrX)r^rTrUrXrrr�test_slices�szTestSnapshot.test_slicesc
Cs�t�\}}dd�}tjjdd|��u|jdj}|j|j�dddd	g�|j|jd
d�ddg�|j|jd
d�g�WdQRXdS)
NcSsd||fS)Nz
  <%s, %s>r)rWrrrr�getlinesz3TestSnapshot.test_format_traceback.<locals>.getlineztracemalloc.linecache.getlineZside_effectrz  File "a.py", line 2z
    <a.py, 2>z  File "b.py", line 4z
    <b.py, 4>�limitrrq)rVr�ZmockrryrXrl�format)r^rTrUr��tbrrr�test_format_tracebacks


z"TestSnapshot.test_format_tracebackN)r�r�r��maxDiffr�r�r�r�r�r�r�r�r�r�r�rrrrr�#s&#&		r�c@sReZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�TestFiltersic	CsLtjdd�}|j|jd�|j|jd�|j|j�|j|jd�tjdddd�}|j|jd�|j|jd�|j|jd�|j|jd�tjddddddd	d�}|j|jd�|j|jd�|j|jd�|j|jd�|jt	t
|dd�dS)
NT�abcFztest.pyrb�	inclusive�filename_patternr�
all_frames)rr�rlr�r�r�rr�rr�AttributeError�setattr)r^�frrr�test_filter_attributess $z"TestFilters.test_filter_attributescCstjdd�}|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��tjdd�}|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��tjddd�}|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��tjddd�}|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��tjddd�}|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��tjddd�}|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jdd��dS)NTr�rr(r$�12356F)rr�r��_match_framer�)r^r�rrr�test_filter_match5sTzTestFilters.test_filter_matchcCs�dd�}|j|ddd��|j|ddd��|j|ddd��|j|ddd��|j|ddd��|j|ddd��dS)NcSs"tj||�}|j|d�S)Nr)rr�r)r�rW�patternr�rrr�fnmatchjsz7TestFilters.test_filter_match_filename.<locals>.fnmatchTr�rz	<unknown>F)r�r�)r^rrrr�test_filter_match_filenameisz&TestFilters.test_filter_match_filenamecCsxdd�}|j|dd��|j|dd��|j|dd��|j|dd��|j|dd��|j|dd��|j|dd��|j|dd��|j|dd	��|j|dd
��|j|dd��|j|dd��|j|d
d��|j|dd��|j|dd��|j|dd��|j|dd��|j|dd��|j|dd��|j|dd��|j|dd��tjdkrD|j|dd��|j|dd��|j|dd��|j|dd��nX|j|dd��|j|dd��|j|dd��|j|dd��tjdkr|j|d d!��|j|d!d ��|j|d"d#��|j|d$d%��nX|j|d d!��|j|d!d ��|j|d"d#��|j|d$d%��|j|d&d��dS)'NcSs"tjd|�}|j|d�S)NTr)rr�r)rWr�filterrrrrwsz=TestFilters.test_filter_match_filename_joker.<locals>.fnmatchr���*Zabcd�defza*zabc*zb*zabcd*za*cZabcdcxza*cxZabbZabcdceZabcdeza*c*eZ	abcbdefegza*bd*egZabcddZ	abcbdefefza.pycza.py�ntZaBCZABcZaBcDezAb*dEza.PYza.PYCza/bza\bza/b\cza\b/cza/b/cza\b\cza.pyo)r�r�r��name)r^rrrr� test_filter_match_filename_jokervsRz,TestFilters.test_filter_match_filename_jokercCs,d}d}d}d}tjd
ddd
�}|j|j|��|j|j|��|j|j|��|j|j|��tjd
ddd�}|j|j|��|j|j|��|j|j|��|j|j|��tjdddd
�}|j|j|��|j|j|��|j|j|��|j|j|��tjdddd�}|j|j|��|j|j|��|j|j|��|j|j|��tjdddd�}|j|j|��|j|j|��|j|j|��|j|j|��tjd
ddd
�}|j|j|��|j|j|��|j|j|��|j|j|��tjdddd
�}|j|j|��|j|j|��|j|j|��|j|j|��dS)N�a.pyr#�b.pyr�r'r(�c.py�	<unknown>rTr�F�rr#�rr�)rr�rr'�rr()rr�rr(�rr)rr�rr)r)rr�r�Z_match_tracebackr�)r^�t1Zt2Zt3�unknownr�rrr�test_filter_match_trace�sNz#TestFilters.test_filter_match_traceN)	r�r�r�r�rrrr
rrrrrr�s4
Er�c@s�eZdZdd�Zeje�d�dd��Zdd�Zdd	�Z	d
d�Z
dd
�Zdd�Ze
jdd��ZdS)�TestCommandLinecCs>d}td|�\}}}|j�}|j|d�dS)Nz3import tracemalloc; print(tracemalloc.is_tracing())z-csFalse)r�rstriprl)r^r�ok�stdout�stderrrrr� test_env_var_disabled_by_default�sz0TestCommandLine.test_env_var_disabled_by_defaultz6Cannot run -E tests when PYTHON env vars are required.cCsGd}tdd|dd�\}}}|j�}|j|d�dS)Nz3import tracemalloc; print(tracemalloc.is_tracing())z-Ez-c�PYTHONTRACEMALLOC�1sFalse)rrrl)r^rrrr rrr�test_env_var_ignored_with_E�s!z+TestCommandLine.test_env_var_ignored_with_EcCsDd}td|dd�\}}}|j�}|j|d�dS)Nz3import tracemalloc; print(tracemalloc.is_tracing())z-cr"r#sTrue)rrrl)r^rrrr rrr�test_env_var_enabled_at_startup�sz/TestCommandLine.test_env_var_enabled_at_startupcCsDd}td|dd�\}}}|j�}|j|d�dS)Nz<import tracemalloc; print(tracemalloc.get_traceback_limit())z-cr"Z10s10)rrrl)r^rrrr rrr�test_env_limitszTestCommandLine.test_env_limitcCswxpdD]h}|jd|��Mtj��9tdddt|��\}}}|jd	|�WdQRXWdQRXqWdS)
Nrrr#r�rz-c�passr"s+PYTHONTRACEMALLOC: invalid number of framesrq�@)rqrr()�subTestr�SuppressCrashReportrr��assertIn)r^rrrr rrr�test_env_var_invalids

		z$TestCommandLine.test_env_var_invalidc
Cs�x�dD]{\}}|jd|d|��Td}td	|d
|�\}}}|j�}|j|t|�jd��WdQRXqWdS)Nrr�
tracemalloc=1�tracemalloc=15��xoptionsrz<import tracemalloc; print(tracemalloc.get_traceback_limit())z-Xz-c�ascii�rr�r-r�r.r/)r2r3r4)r)rrrlr��encode)r^r0rrrrr rrr�test_sys_xoptionssz!TestCommandLine.test_sys_xoptionscCs~xwd
D]o}|jd|��Ttj��@dd|dd	f}t|�\}}}|jd
|�WdQRXWdQRXqWdS)Nrrr#r�rz-Xztracemalloc=%sz-cr's/-X tracemalloc=NFRAME: invalid number of framesrq�@)rqrr7)r)rr*rr+)r^r�argsrrr rrr�test_sys_xoptions_invalid"s

	z)TestCommandLine.test_sys_xoptions_invalidcCsd}tddd|�dS)Nz2import _testcapi; _testcapi.test_pymem_alloc0(); 1z-Xrz-c)r)r^rrrr�test_pymem_alloc0,sz!TestCommandLine.test_pymem_alloc0N)r�r�r�r!r�ZskipIfrr$r%r&r,r6r9rZcpython_onlyr:rrrrr�s
rcCstjtttt�dS)N)rZrun_unittestr[r�r�rrrrr�	test_main4s
r;�__main__)r�r�r	rr�Z
unittest.mockrZtest.support.script_helperrrrZtestr�	threading�ImportError�	getsizeofrrr"rVrrXrYrZZTestCaser[r�r�rr;r�rrrr�<module>s4

���H