python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_tracemalloc.cpython-312.opt-1.pyc

Αe&4ddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
ddlmZddl
mZ	ddlZej"dZdZdZd	Zd
ZdZdZd
ZdZGddej6ZGddej6ZGddej6ZGddej6ZGddej6Z ejBedudGddej6Z"e#dk(rejHyy#e$rdZYwxYw)N)patch)assert_python_okassert_python_failure interpreter_requires_environment)support)	os_helper)i@cg}tjd}t|D]V}|j}|j|z}|j|j|fd}|j}|Lt|St|S)Nr)	sys	_getframerangef_codef_linenoappendco_filenamef_backtuple)nframelineno_deltaframesframeindexcodelinenos       I/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_tracemalloc.py
get_framesrs
FMM!Ev||,.

t''01===r	c	tj}|tz
}t|d}d|z}|tj|tt
||fS)Nrx)tracemallocget_traceback_limitEMPTY_STRING_SIZEr	Tracebackminlen)sizer	bytes_lenrdatas     rallocate_bytesr*#sT

,
,
.F))I

"F)D&&vs3v;/GHHHr	cvd}gd}tj||}gd}tj||}||fS)N)r
)a.pyr,b.pyr-r-rr,r0r1r4r,B)r2rrr4	<unknown>rr)r-r-r-)r,r,r6r4)r,r6r4)r3)c.pyBr)r!Snapshot)traceback_limit
raw_tracessnapshotraw_traces2	snapshot2s     rcreate_snapshotsrL*sHO

J##J@H	K$$[/BIi  r	c0tj||fSN)r!_Framefilenamers  rrrKsx011r	c,tj|SrN)r!r$)rs r	tracebackrSNs  ((r	ct||fSrN)rSrPs  rtraceback_linenorUQsh'((r	ct|dSNr)rU)rQs rtraceback_filenamerXTsHa((r	ceZdZdZy)
TestTracebackcdtfd}|j|dd|j|dddd}d}|j||d	|d
|j||dd	|dy)
Nreturnc8ttj|SrN)reprr!r$)argss rget_reprz)TestTraceback.test_repr.<locals>.get_reprZs--t45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>)strassertEqual)selfr`rexp_repr_framess    r	test_reprzTestTraceback.test_reprYs	6s	6	
"'78"a*IJ'
/		
&)&&7q9	;&!,&&77GH	Jr	N)__name__
__module____qualname__rirar	rrZrZXsJr	rZceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZej(dZdZy)TestTracemallocEnabledcxtjr|jdtjdy)N+tracemalloc must be stopped before the testr)r!
is_tracingskipTeststartrgs rsetUpzTestTracemallocEnabled.setUpls)!!#MMGH!r	c,tjyrNr!stoprts rtearDownzTestTracemallocEnabled.tearDownrr	c4tdDcgc]
}td}}tj}|j	|dtj
tj}|j	|d|j
||ycc}w)Ni{r)rr*r!get_tracemalloc_memoryassertGreaterEqualclear_tracesassertLessEqual)rgcountr)r'size2s     rtest_get_tracemalloc_memoryz2TestTracemallocEnabled.test_get_tracemalloc_memoryus{16t=s#==113a(  "224q)UD)>sBctjd}t|\}}tj|}|j	||yN90)r!rr*get_object_tracebackrfrgobj_sizeobj
obj_tracebackrSs     rtest_get_object_tracebackz0TestTracemallocEnabled.test_get_object_tracebacksB  "+H5]44S9	M2r	cbtjtjg}d}g}tj}t|d}tj|tt||}tj|}|j||j||y)N)r!rr
gc_collectr"rr$r%r&rassertIsNotNonerf)rgrrrrrSs      rtest_new_referencez)TestTracemallocEnabled.test_new_references  "002FB'#--fc#f+v6NO
44S9	Y'M2r	c^d}tj|jttjdtjtjdt|\}}tj|}|jt|d|j||tjtjdt|\}}tj|}|jt|d|j||y)Nr.r
r)	r!rxassertRaises
ValueErrorrsr*rrfr&)rgrobj2obj2_tracebackrSrrs       rtest_set_traceback_limitz/TestTracemallocEnabled.test_set_traceback_limits*k&7&7<"-h7n44T:	Y,N3!+H5]44S9	Y+M2r	c`|D]}|d|jk(s|cS|jdy)Nr,ztrace not found)_framesfail)rgtracesrStraces    r
find_tracez!TestTracemallocEnabled.find_traces7	EQx9,,,		
		#$r	ctjd}t|\}}tj}|j	||}|j|t|\}}}}	|j|||j||jtj|jtjgyr)
r!rr*_get_tracesrassertIsInstancerrfrrx)
rgrrrrrdomainr'rSlengths
          rtest_get_tracesz&TestTracemallocEnabled.test_get_tracess  "+H5]((*
6eU+*/'ix(M$9$9:002B7r	cdfdfd}tjtjdd}||\}}||\}}tj}t	t|j|_t	t|j|_|j||}|j||}	|\}
}}}
|	\}}}}|j||y)Nct|SrN)r*r's rallocate_bytes2zPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes2s
!$''r	c|SrNra)r'rs rallocate_bytes3zPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes3"4((r	c|SrNra)r'rs rallocate_bytes4zPTestTracemallocEnabled.test_get_traces_intern_traceback.<locals>.allocate_bytes4rr	r3r|)	r!rxrsrrreversedrrassertIs)rgrrobj1obj1_tracebackrrrtrace1trace2domain1size1
traceback1length1domain2r
traceback2length2rrs                  @@r test_get_traces_intern_tracebackz7TestTracemallocEnabled.test_get_traces_intern_tracebacks	(	)	)	!.x8n.x8n((*!&x0F0F'G!H!&x0F0F'G!H88.4+
G.4+
G

j*-r	cd}d}tjt|\}}tj\}}|j	|||j	|||j||z
||j||z
|d}tj\}}|j
|||j	||z
||z
|j	||tj|jtjdt|\}}tj\}}|j	||tj|jtjdy)N)rr)	r!rr*get_traced_memoryr~r
assertLessrfrx)	rg	max_errorrrrr'	peak_sizer
peak_size2s	         rtest_get_traced_memoryz-TestTracemallocEnabled.test_get_traced_memorysX	  "+H5]%779ih/	40TH_i8Y-y9'99;zt$uh.BC
I6	  "668&A,H5]%779ih/	668&Ar	ctd\}}tj|}|j|tjtj|}|j|y)Nr|)r*r!rrrassertIsNone)rgrrrSrs     rtest_clear_tracesz(TestTracemallocEnabled.test_clear_tracessY+C0]44S9	Y'  " 55c:
*%r	ctjttt	d}tj
\}}tjtj
\}}|j|||j||d}t|\}}tj
\}	}
|j|
|	|j|
||j|
|z
|y)Nir)r!rsumlistrr
reset_peakr~rr*
assertGreater)rg	large_sumrpeak1rpeak2rrrsize3peak3s           rtest_reset_peakz&TestTracemallocEnabled.test_reset_peak
s	  "U6]+,	"446u	 "446uu-u%+H5]"446uu-5%(
x8r	ctj|jtjtj|jtjyrN)r!rxassertFalserqrs
assertTruerts rtest_is_tracingz&TestTracemallocEnabled.test_is_tracing%sF//12..01r	ctd\}}tj}|j|jdj
jd|jtj|jtjtjtjjtj}|j|j|jtj|j!t"5}tjddd|jt%j&dy#1swY/xYw)Nr|rr.zLthe tracemalloc module must be tracing memory allocations to take a snapshot)r*r!
take_snapshotrrrStotal_nframedumprTESTFN
addCleanupunlinkrFloadrfrxrRuntimeErrorre	exception)rgrsourcerIrKcms      r
test_snapshotz$TestTracemallocEnabled.test_snapshot,s
$S)V,,.	
8??1-77DDbI	

i&&'	(()*:*:; ((--i.>.>?	))8??;	


|
,	(%%'	(R\\*:	;	(	(sE""E+cftj}d|_|jtj
|j
tjtj
tjjtj
}|j|jdy)Nnew)r!r	test_attrrrrrrrFrrf)rgrIrKs   rtest_snapshot_save_attrz.TestTracemallocEnabled.test_snapshot_save_attrEsx,,."

i&&'	(()*:*:; ((--i.>.>?	,,e4r	c~tjsyd}t|\}}tj|}|yy)Nr,rr4r)r!rqr*rrs     r
fork_childz!TestTracemallocEnabled.fork_childPsC%%'+H5]44S9	r	ctj}|s)d}	|j}tj|yt	j
|dy#tj|wxYw)Nrr)exitcode)osforkr_exitrwait_process)rgpidrs   r	test_forkz TestTracemallocEnabled.test_fork]sTggiH
#??,"  q1"sAA/c,tjtjdd}|djd}tj|}|jd|dj|jd|djy)Ncfd}|S)NcSrNra)xsrgzFTestTracemallocEnabled.test_no_incomplete_frames.<locals>.f.<locals>.gpsr	ra)rrs` rfz;TestTracemallocEnabled.test_no_incomplete_frames.<locals>.fos

Hr	rtest_tracemallocr
)r!rxrs__closure__rassertInrQassertNotIn)rgrrrSs    rtest_no_incomplete_framesz0TestTracemallocEnabled.test_no_incomplete_framesks{!	
dq!44S9	

()B-*@*@A+Yr]-C-CDr	N)rjrkrlruryrrrrrrrrrrrrrrr
requires_forkrrrar	rrnrnksy*33(3(%8 .6"BH&902;2	5W22Er	rnc^eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZy)TestSnapshoticdg}tj5}|jtjt
dd|jtjt
dd|jtjt
d|tj}|j|jd|jt|jd|jd	}|j|jd|j|jjd
|jt|jd|j|jd	jd|j|jd	jddddy#1swYyxYw)
N)rr8)r/r.rqT)return_valuer"r8rrrr.r0r,)
contextlib	ExitStack
enter_contextrobjectr!rrfrGr&rr'rSrrQr)rgrHstackrIrs     rtest_create_snapshotz!TestSnapshot.test_create_snapshot}sd01


!
!
#	;u[,:>!@
A[:O:;!=
>[-:D!F
G#002HX55q9S115OOA&EUZZ+U__992>S115U__Q/88&AU__Q/66:!	;	;	;sFGG	c:t\}}tjdd}tjddd}tjddd}t|jj
}|j
|f}|j|jj
gd|j|jj
||j
||f}|j|jj
gd|j
d	}	|j|	||j|	j|j|j|	j|j|jt|j|y)
NFr2Tr0r,r8)r-r-r-r5r<)r-r-r-r5ra)rLr!Filterrr_traces
filter_tracesrfassertIsNotr	TypeError)
rgrIrKfilter1filter2filter3original_traces	snapshot3	snapshot4	snapshot5s
          rtest_filter_traceszTestSnapshot.test_filter_tracessT.0)$$UF3$$T615$$T615x667**G:6	))114
		
00/B++Wg,>?	))114
	**2.	H-))8??;))8??;)X%;%;WEr	ct\}}tjddd}tjddd}t|jj
}|j
|f}|j|jj
gd|j
|f}|j|jj
gdy)NFr0rrT)r-r-r-r9r<)rLr!r
rrrrrf)rgrIrKrrrrs       rtest_filter_traces_domainz&TestSnapshot.test_filter_traces_domains.0)$$UF1=$$T6!<x667**G:6	))114
	**G:6	))114
	r	c`t\}}tjdd}tjdd}|j|f}|j	|j
jgd|j|f}|j	|j
jdgy)NFr4rT)r-r-r-r5r9r<)rLr!DomainFilterrrfrr)rgrIrKrrrs      r test_filter_traces_domain_filterz-TestSnapshot.test_filter_traces_domain_filters.0)**5;**4:**G:6	))114
	**G:6	))11*4
	r	ct\}}tdd}tdd}tdd}tdd}tdd	}|jd
}|j|t	j
|ddt	j
|dd
t	j
|ddt	j
|ddg|jd
}	|j|	t	j
|ddt	j
|ddt	j
|dd
g|j
|d
}
|j|
t	j|ddddt	j|ddddt	j|ddddt	j|ddddt	j|ddd
dgy)Nr@rr0r,r8r2rrDrErr:r4r=rBrAr
)rLrU
statisticsrfr!	Statistic
compare_to
StatisticDiff)rgrIrKtb_0tb_a_2tb_a_5tb_b_1tb_c_578stats1stats2r"s           rtest_snapshot_group_by_linez(TestSnapshot.test_snapshot_group_by_lines.0)Q/!&!,!&!,!&!,#FC0$$X.!!&"a0!!&"a0!!$1-!!&!Q/	"
	%%h/!!&$2!!(C3!!&"a0"
	))(H=
%%fdD!Q?%%hS!Q?%%faa<%%dAr1b9%%fb!Q:&
	r	c
t\}}td}td}td}td}|jd}|j|t	j
|ddt	j
|dd	t	j
|d
dg|jd}|j|t	j
|ddt	j
|d
dg|j
|d}	|j|	t	j|ddddt	j|d
d
ddt	j|ddddt	j|ddddgy)Nr@r0r2rDrQr:r r3r=ir8rBrArr r
r!)rLrXr"rfr!r#r$r%)
rgrIrKr&tb_atb_btb_cr+r,diffs
          rtest_snapshot_group_by_filez(TestSnapshot.test_snapshot_group_by_files`.0)!+.!&)!&)!&)$$Z0!!$A.!!$A.!!$1-"
	%%j1!!$a0!!$Q/"
	##Hj9%%dD$1=%%dCa;%%dAsAr:%%dAr1b9	 
	r	ct\}}tdd}tdd}td}td}|jd}|j|t	j
|ddt	j
|d	d
t	j
|ddt	j
|ddgtd
}|jd}	|j|	t	j
|ddt	j
|ddt	j
|d	d
g|j
|d}
|j|
t	j|ddddt	j|ddddt	j|ddddt	j|ddddt	j|d	dd
dg|jt|jddy)Nr/r1r7r;r?rSr:rrr4r=r,rCrrBrArr r
r!T)
cumulative)
rLrSr"rfr!r#r$r%rr)rgrIrKtb1tb2tb3tb4r+tb5r,r3s           r test_snapshot_group_by_tracebackz-TestSnapshot.test_snapshot_group_by_traceback*s.0)[1[1$()$$[1!!#r1-!!#r1-!!#q!,!!#q!,	"
	
&%%k2!!#tQ/!!#sA.!!#r1-"
	##Hk:%%c4q!<%%c3Q:%%c1c1b9%%c1b!R8%%c2q!Q7 
		
*"--{t		Mr	ct\}}td}td}td}tdd}tdd}tdd}tdd}	|jdd	}
|j	|
tj|d
dtj|ddtj|ddg|jd
d	}
|j	|
tj|ddtj|	ddtj|ddtj|ddtj|ddgy)Nr@r0r2r,r8rr3rQTbr/r=rr:rr4)rLrXrUr"rfr!r#)rgrIrKr&r0r1r'r(r)tb_b_4statss           r!test_snapshot_group_by_cumulativez.TestSnapshot.test_snapshot_group_by_cumulativePs?.0)!+.!&)!&)!&!,!&!,!&!,!&!,##J5!!$A.!!$A.!!$1-!
	##Hd3!!&"a0!!&"a0!!&"a0!!$1-!!&!Q/!
	r	ct\}}|jd}|jt|d|j}|jt|d|d}|jt|dy)Nrzb.py:4: 10 Bzb.py:4)rLrrfrerS)rgrIrKrrSrs      rtest_trace_formatzTestSnapshot.test_trace_formatlsk.0)"U^4OO	Y2!UX.r	ct\}}|jd}|d}|jt|dy)Nrrz(b.py:1: size=66 B, count=1, average=66 B)rLr"rfrergrIrKr@stats     rtest_statistic_formatz"TestSnapshot.test_statistic_formatus@.0)##H-QxTC	Er	ct\}}|j|d}|d}|jt|dy)Nrrz;a.py:5: size=5002 B (+5000 B), count=2 (+1), average=2501 B)rLr$rfrerEs     rtest_statistic_diff_formatz'TestSnapshot.test_statistic_diff_format|sB.0)$$Xx8QxTV	Xr	ct\}}|j|jdd|jd|jdf|jdj}|j|dd|d|dfy)Nr,rr)rLrfrrS)rgrIrKrSs    rtest_sliceszTestSnapshot.test_slicess.0)!,"//!,hooa.@A	COOA&00	2A#A,	!5	7r	crt\}}d}tjjd|5|jdj
}|j
|jgd|j
|jddd	g|j
|jd
ddg|j
|jd
gd|j
|jdd
dd	g|j
|jd
d
ddgdddy#1swYyxYw)Ncd|d|dS)Nz  <z, rdrarPs  rgetlinez3TestSnapshot.test_format_traceback.<locals>.getlines
#+V44r	ztracemalloc.linecache.getline)side_effectr)  File "b.py", line 4
    <b.py, 4>  File "a.py", line 2
    <a.py, 2>r)limitrRrSr
rPrQT)most_recent_first)rRrSrPrQ)rTrU)rLunittestmockrrrSrfformat)rgrIrKrNtbs     rtest_format_tracebackz"TestSnapshot.test_format_tracebacks;.0)	5
]]
 
 !@-4!6	0#--BRYY[/
0
RYYQY/5-/
0
RYYRY05-/
0
RYYY>/
0
RYYQ$YG5-/
0
RYYR4YH5-/
07	0	0	0sC2D--D6N)rjrkrlmaxDiffrrrrr-r4r<rArCrGrIrKrZrar	rrrzsOG;*$FL6*!F>$ML8/EX7!0r	rc.eZdZdZdZdZdZdZdZy)TestFiltersrcjtjdd}|j|jd|j|jd|j|j|j|jdtjdddd}|j|jd|j|jd|j|jd|j|jdtjdddd}|j|jd|j|jd|j|jd|j|jd|jtt|ddy)NTabcFztest.pyr|)	inclusivefilename_patternr
all_framesra)r!r
rfr`rarrrbrAttributeErrorsetattrrgrs  rtest_filter_attributesz"TestFilters.test_filter_attributessStU+d+++U3!((#u-
uid;e,++Y73't,
SVcghe,++Y73't,	
.'16H%Pr	c\
tjdd}|j|jdd|j|jdd|j|jdd|j	|jdd|j	|jdd|j	|jddtjdd}|j	|jdd|j	|jdd|j	|jdd|j|jdd|j|jdd|j|jddtjddd}|j	|jdd|j|jdd|j	|jdd|j	|jdd|j	|jdd|j	|jddtjddd}|j|jdd|j	|jdd|j|jdd|j|jdd|j|jdd|j|jddtjddd}|j|jdd|j	|jdd|j	|jdd|j	|jdd|j	|jdd|j	|jddtjddd}|j	|jdd|j|jdd|j|jdd|j|jdd|j|jdd|j|jddy)NTr_rr8r.12356F)r!r
r_match_framerres  rtest_filter_matchzTestFilters.test_filter_matchstU+ua01ua01ub12343445ue,q12q12r23w23w23w34
tUA.q12ua01r23343445ueQ/ua01q12ub12w23w23w34
tUA.ua01q12r23343445ueQ/q12ua01ub12w23w23w34r	c6d}|j|ddd|j|ddd|j|ddd|j|ddd|j|ddd|j|dddy)NcRtj||}|j|dSrWr!r
ri)r`rQpatternrs    rfnmatchz7TestFilters.test_filter_match_filename.<locals>.fnmatchs%""9g6A>>(A..r	Tr_rhr@F)rrrgros  rtest_filter_match_filenamez&TestFilters.test_filter_match_filenames	/	
eU34w67{E:;u56w67{E:;r	czd}|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|ddtjdk(ra|j|dd|j|dd|j|dd|j|ddn`|j|dd|j|dd|j|dd|j|ddtjdk(ra|j|dd |j|d d|j|d!d"|j|d#d$n`|j|dd |j|d d|j|d!d"|j|d#d$|j|d%dy)&NcRtjd|}|j|dS)NTrrm)rQrnfilters   rroz=TestFilters.test_filter_match_filename_joker.<locals>.fnmatchs' ''g6F&&x33r	r_*abcddefza*zabc*zb*zabcd*za*cabcdcxza*cxabbabcdceabcdeza*c*e	abcbdefegza*bd*egabcdd	abcbdefefza.pycr0ntaBCABcaBcDezAb*dEza.PYza.PYCza/bza\bza/b\cza\b/cza/b/cza\b\cza.pyo)rrrnamerps  r test_filter_match_filename_jokerz,TestFilters.test_filter_match_filename_joker
s&	4
	
+,U+,B(C()	
u-./0./	
t,-v./-.01	
u-.&12./623	
12Y78'23i89	
0101
77d?OOGE512OOGGW56OOGGV45OOGFG45
WUE23WWg67WWf56WVW56
77d?OOGFF34OOGFF34OOGHh78OOGHh78
WVV45WVV45WXx89WXx89	
&12r	cdd}d}d}d}tjddd}|j|j||j|j||j	|j||j	|j|tjddd}|j	|j||j|j||j	|j||j	|j|tjddd}|j	|j||j	|j||j|j||j|j|tjddd}|j|j||j	|j||j|j||j|j|tjdd	d}|j|j||j|j||j|j||j	|j|tjdd	d}|j	|j||j	|j||j|j||j|j|tjdd	d}|j|j||j|j||j	|j||j	|j|y)
N)r/)r2r4)r1)r2r8))rDr8r?r>Tr2)rbFr@)r!r
r_match_tracebackr)rgt1t2t3unknownrs      rtest_filter_match_tracez#TestFilters.test_filter_match_traceRs@
'
'
,%tV=**2./**2./++B/0++G45tV>++B/0**2./++B/0++G45uf>++B/0++B/0**2./**734uf?**2./++B/0**2./**734ukeD**2./**2./**2./++G45t[TB++B/0++B/0**2./**734ukdC**2./**2./++B/0++G45r	N)	rjrkrlr[rfrjrqrrrar	rr]r]s$GQ225h<C3J.6r	r]ceZdZdZej
eddZdZdZ	dZ
dZdZd	Z
d
ZdZej
edud
dZy)TestCommandLinecld}td|\}}}|j}|j|dy)N3import tracemalloc; print(tracemalloc.is_tracing())-cFalserrstriprfrgrokstdoutstderrs     r test_env_var_disabled_by_defaultz0TestCommandLine.test_env_var_disabled_by_defaults5D-dD9FF*r	z6Cannot run -E tests when PYTHON env vars are required.crd}tdd|d\}}}|j}|j|dy)zAPYTHON* environment variables must be ignored when -E is present.rz-Er1PYTHONTRACEMALLOCrNrrs     rtest_env_var_ignored_with_Ez+TestCommandLine.test_env_var_ignored_with_Es=E-dD$RUVFF*r	cpd}td|d\}}}|j}|j|dy)Nrr0rrrrs     rtest_env_var_disabledz%TestCommandLine.test_env_var_disableds7D-dDCPFF*r	cpd}td|d\}}}|j}|j|dy)NrrrrsTruerrs     rtest_env_var_enabled_at_startupz/TestCommandLine.test_env_var_enabled_at_startups7D-dDCPFF)r	cpd}td|d\}}}|j}|j|dy)N<import tracemalloc; print(tracemalloc.get_traceback_limit())r10rs10rrs     rtest_env_limitzTestCommandLine.test_env_limits7M-dDDQFF'r	ctj5tddt|\}}}ddddvryd|vry|j	d|y#1swY(xYw)Nrpassr1ValueError: the number of frames must be in ranges+PYTHONTRACEMALLOC: invalid number of framesunexpected output: )rSuppressCrashReportrrer)rgrrrrs     rcheck_env_var_invalidz%TestCommandLine.check_env_var_invalidsm

(
(
*	/!6f"%f+"/B	/
@6I9VC		'z23	/	/sAA!ctD].}|j|5|j|ddd0y#1swY;xYwNr)INVALID_NFRAMEsubTestrrgrs  rtest_env_var_invalidz$TestCommandLine.test_env_var_invalidsG$	3FV,
3**62
3
3	3
3
3	9A	cdD]o\}}|j||5d}td|d|\}}}|j}|j|t	|jddddqy#1swY|xYw)N))r!r)z
tracemalloc=1r)ztracemalloc=15)xoptionsrr-Xrascii)rrrrfreencode)rgrrrrrrs       rtest_sys_xoptionsz!TestCommandLine.test_sys_xoptionss!
		FHf
x?
FU%5dHdD%Q"FF  V););G)DE	
F
F		F

F
FsAA66A?	cdd|zddf}tj5t|\}}}ddddvryd|vry|jd|y#1swY(xYw)Nrztracemalloc=%srrrs/-X tracemalloc=NFRAME: invalid number of framesr)rrrr)rgrr_rrrs      rcheck_sys_xoptions_invalidz*TestCommandLine.check_sys_xoptions_invalidsu&/v>

(
(
*	>!6!=B	>@6I=G		'z23	>	>s
AActD].}|j|5|j|ddd0y#1swY;xYwr)rrrrs  rtest_sys_xoptions_invalidz)TestCommandLine.test_sys_xoptions_invalidsG$	8FV,
8//7
8
8	8
8
8rNneed _testcapic$d}tddd|y)Nz2import _testcapi; _testcapi.test_pymem_alloc0(); 1rr!r)r)rgrs  rtest_pymem_alloc0z!TestCommandLine.test_pymem_alloc0sD}dD9r	)rjrkrlrrVskipIfrrrrrrrrrr	_testcapirrar	rrrs+X__57MO+O++*(
43

F	48
X__Y$&(89:::r	rrc`eZdZdZdZdZdZddZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZy)TestCAPIi@ctjr|jdd|_d|_t|jd|_t|j|_y)Nrpr8r|r)	r!rqrrrr'r*ridptrrts rruzTestCAPI.setUpsO!!#MMGH	!$)),Q/dhh<r	c,tjyrNrwrts rryzTestCAPI.tearDownrzr	ctj|j|j}|t	j
|SyrN)rtracemalloc_get_tracebackrrr!r$)rgrs  r
get_tracebackzTestCAPI.get_tracebacks644T[[$((K((00r	ct|d}tj|j|j|j
||S)Nr)rrtracemalloc_trackrrr')rgrelease_gilrrs    rtrackzTestCAPI.tracks6FA&##DKK499$/	1
r	cXtj|j|jyrN)rtracemalloc_untrackrrrts runtrackzTestCAPI.untracks%%dkk488<r	ctj}tjd|j}|j	|g}td|jDS)NTc34K|]}|jywrNr).0rs  r	<genexpr>z-TestCAPI.get_traced_memory.<locals>.<genexpr>s;%5::;s)r!rrrrrr)rgrI
domain_filters   rrzTestCAPI.get_traced_memorysM,,.#00t{{C
))=/:;8??;;;r	c>d}tj|tjd}|j||}|j	|jtj||j	|j|jy)Nr8r)r!rsrrrfrr$r')rgrrr'rs     rcheck_trackzTestCAPI.check_track	s~&!,,.q1K0++-$..v6	8	
//1499=r	c&|jdy)NFrrts r
test_trackzTestCAPI.test_tracksr	c&|jdy)NTrrts rtest_track_without_gilzTestCAPI.test_track_without_gils	
r	cd}tj||j|j|}|j|j	tj
|y)Nr8r)r!rsrrfrr$)rgrrs   rtest_track_already_trackedz#TestCAPI.test_track_already_trackedsY&!	

6*++-$..v6	8r	ctj|j|j|j	|j|j
|j|j|j|j	|j|j
d|j|jyrW)
r!rsrrrrfrr'rrrts rtest_untrackzTestCAPI.test_untrack*s

T//12//1499=	
$,,.///115	
r	ctjtj|jt5|jddd|j
|jy#1swY)xYwrN)r!rsrxrrrrrrts rtest_stop_trackzTestCAPI.test_stop_track:s]


|
,	JJL	$,,./		sA77Bctj|jtj|j	t
5|j
dddy#1swYyxYwrN)r!rsrrxrrrrts rtest_stop_untrackzTestCAPI.test_stop_untrackBsO




|
,	LLN			sA((A1N)Fr)rjrkrlr[ruryrrrrrrrrrrrrar	rrrsHG
 =<
> 
8 0r	r__main__)%rrr
r!rV
unittest.mockrtest.support.script_helperrrrtestrtest.supportrrImportError	getsizeofr#rrr*rLrrSrUrXTestCaserZrnrr]rrrrjmainrar	r<module>rsA	
JJ"
"CMM#&I!B2)))JH%%J&LEX..LE^s08$$s0l	P6(##P6fY:h''Y:xd"$45hx  h6hVzHMMO{!IsD

DD