python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_trace.cpython-312.pyc

ΑeTRlddlZddlmZddlZddlmZmZddlmZm	Z	m
Z
ddlmZm
Z
ddlZddlZddlZddlmZddlmZdZd	Zd
ZdZdZd
ZdZdZdZdZdZdZdZ dZ!Gdde"Z#GddejHZ%GddejHZ&GddejHZ'GddejHZ(Gd d!ejHZ)Gd"d#ejHZ*Gd$d%ejHZ+Gd&d'ejHZ,e-d(k(rej\yy))N)dump)captured_stdoutrequires_resource)TESTFNrmtreeunlinkassert_python_okassert_python_failure)Trace)testmodc2|jdr|dd}|S)z8Given a .pyc filename converts it to the appropriate .pyz.pycN)endswith)filenames C/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_trace.py
fix_ext_pyrs  CR=Octjjtjjtd}tt|fS)z4The .py file and module name of this file (__file__)r)ospathsplitextbasename__file__r)modnames rmy_file_and_modnamers:ggrww//9:1=Gh((rc.|jjSN)__code__co_firstlinenofuncs rget_firstlinenor#!s=='''rc|}|}||z}|Sr)xyabcs     rtraced_func_linearr++s	A	A	AAHrc4|}tdD]}||z
}	|SNrange)r&r'r*is    rtraced_func_loopr21s(	A
1X	QHrc8||ztjdzS)N)r
r")r&r's  rtraced_func_importingr57sq57<<?""rc$t||}||zSrr+)r&r*s  rtraced_func_simple_callerr8:s1a Aq5Lrc:t|}|t||z
}|Sr)r8r5)r&ks  rtraced_func_importing_callerr;>s#!!$A	q!	$$AHrc#>Kd}t|D]	}||zywr-r/)numr*r1s   rtraced_func_generatorr>Cs'	A
3Z!esc2d}tdD]}||z
}	y)Nr
)r>)r:r1s  rtraced_func_calling_generatorrAHs$	A
"2
&	Qrc|dzSNr%)r=s rtraced_doublerrEMs7Nrc
||fSrr%)argskwargss  rtraced_capturerrIPs<rcVd}t|Dcgc]
}t|}}|Scc}w)Nr@)r0rE)r:r1mylists   r traced_caller_list_comprehensionrLSs-
A).q
2AnQ
2F
2M3s&cBd}d}||d}|y)Nc|Srr%fs r
decorator1z-traced_decorated_function.<locals>.decorator1Ysrcd}|S)Nc|Srr%rOs r
decorator2zGtraced_decorated_function.<locals>.decorator_fabric.<locals>.decorator2\sHrr%rTs rdecorator_fabricz3traced_decorated_function.<locals>.decorator_fabric[s
	rcyrr%r%rrr"z'traced_decorated_function.<locals>.func_s	
rr%)rQrVr"s   rtraced_decorated_functionrXXs0

Frc>eZdZdZdZdZedZedZ	y)TracedClassc||_yrr()selfr&s  r__init__zTracedClass.__init__gs	rc |j|zSrr\)r]r's  rinst_method_linearzTracedClass.inst_method_linearjsvvzrcB|j|}|t||zSr)r`r+)r]r&r*s   rinst_method_callingzTracedClass.inst_method_callingms%##A&%a+++rc|dzSrCr%)clsr's  rclass_method_linearzTracedClass.class_method_linearq1urc|dzSrCr%)r's rstatic_method_linearz TracedClass.static_method_linearurfrN)
__name__
__module____qualname__r^r`rbclassmethodrestaticmethodrhr%rrrZrZfs9,rrZc@eZdZdZdZdZdZdZdZdZ	dZ
d	Zy
)TestLineCountsz/White-box testing of line-counting, via runfuncc|jtjtjt	dddd|_t
t|_y)Nr4rcounttrace
countfuncscountcallers)	
addCleanupsyssettracegettracertracerrrmy_py_filenamer]s rsetUpzTestLineCounts.setUps9clln5!1K(2rc>|jjtdd}|j|di}t	t}tddD]}d||j||zf<|j|jjj|y)NrDr.r4)	rzrunfuncr+assertEqualr#r0r{resultscounts)r]resultexpectedfirstlinenor1s     rtest_traced_func_linearz&TestLineCounts.test_traced_func_linears$$%7A>#%&89q!	BA@AHd));!+;<=	B	
,,.55x@rc	X|jjtddtt}|j|dzfd|j|dzfd|j|dzfd|j|dzfdi}|j|jj
j|y)NrDr4r.)rzrr2r#r{rrrr]rrs   rtest_traced_func_loopz$TestLineCounts.test_traced_func_loops,a3%&67

 
 +/2A

 
 +/2A

 
 +/2A

 
 +/2A	
	
,,.55x@rc^|jjtddtt}|j|dzfdttjdfdttjdfdi}|j|jjj|y)NrDr.r4r)rzrr5r#r{rr
rrrrrs   rtest_traced_func_importingz)TestLineCounts.test_traced_func_importings11a8%&;<

 
 +/2A
((
)1-q
((
)1-q
	
,,.55x@rc
|jjttt}tt}|j
|dzfd|j
|dzfd|j
|dzfd|j
|dzfd|j
|dzfd|j
|dzfdi}|j
|jjj|yNr4rDrr@)	rzrrAr#r>r{rrr)r]firstlineno_callingfirstlineno_genrs    rtest_trace_func_generatorz(TestLineCounts.test_trace_func_generators9:-.KL)*?@

 
 "5"9:A

 
 "5"9:B

 
 "5"9:B

 
 /A"56

 
 /A"56

 
 /A"56

	
,,.55x@rc	r|jjttt}tt}|j
|dzfd|j
|dzfd|j
|dzfd|j
|dzfdi}|j
|jjj|yr)	rzrrLr#rEr{rrr)r]rfirstlineno_calledrs    rtest_trace_list_comprehensionz,TestLineCounts.test_trace_list_comprehensions<=-.NO,^<

 
 "5"9:A

 
 "5"9:B

 
 "5"9:A

 
 "4q"892	
	
,,.55x@rcB|jjttt}|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|d	zfd|j|d
zfd|j|dzfdi}|j|jj
j|y)Nr4rDrrr.rr	r@r)rzrrXr#r{rrrrs   rtest_traced_decorated_functionz-TestLineCounts.test_traced_decorated_functions*56%&?@

 
 +/2A

 
 +/2A

 
 +/2A

 
 +/2A

 
 +/2A

 
 +/2A

 
 +/2A

 
 +/2A

 
 +/2A

 
 +"23Q

 
 +"23Q
	
,,.55x@rcdD]}tdddd}td}t||}|j|dt	|}|j
|dzfdi}|j
|jj|y)N)r`r4rrq)	rrZgetattrrr#r{rrr)r]methnamerz
traced_objmethodrrs       rtest_linear_methodsz"TestLineCounts.test_linear_methodss0
	@H!JF$RJZ2FNN62&)&1K$$kAo6H
V^^-44h?
	@rN)rirjrk__doc__r}rrrrrrrr%rrroro}s493

A
A
A
AAA&@rroceZdZdZdZdZy)TestRunExecCountsz8A simple sanity test of line-counting, via runctx (exec)ctt|_|jtj
t	jyr)rrr{rvrwrxryr|s rr}zTestRunExecCounts.setUps'(2clln5rc	tdddd|_d}t|td}|jj	|tt
tt}|j|dzfd|j|dzfd|j|dzfd	|j|d
zfdi}|jD]<}|j|jjj|||>y)Nr4rrqztraced_func_loop(2, 5)execrDrrr.r)rrzcompilerrunctxglobalsvarsr#r2r{keysrrr)r]coderrr:s     rtest_exec_countsz"TestRunExecCounts.test_exec_countss!1K,tXv.4DF3%&67

 
 +/2A

 
 +/2A

 
 +/2A

 
 +/2A	
	KAT[[00299!<hqkJ	KrN)rirjrkrr}rr%rrrrsB6KrrceZdZdZdZdZdZdZdZe	jeedxrejdd	Zd
Zy)	TestFuncsz"White-box testing of funcs tracingc|jtjtjt	ddd|_t
|_tj|_y)Nrr4)rrrsrt)	rvrwrxryrrzrfilemod_saved_tracefuncr|s rr}zTestFuncs.setUpsBclln5!1;*, #rc\|j tj|jyyr)rrwrxr|s rtearDownzTestFuncs.tearDowns%  ,LL../-rc|jjtd|jdzd|jdzdi}|j	|jjj|y)Nr4r8r7)rzrr8rrrcalledfuncsr]rs  rtest_simple_callerzTestFuncs.test_simple_callersc5q9
LL991LL22A
	
,,.::HErc|jjtdddd}|j|ddddf|j	t
5|jjtdddd|j	t
5|jjdddy#1swYBxYw#1swYyxYw)Nr4rDrr)r]r")r4rD)r"arg)rzrrIrassertRaises	TypeError)r]ress  rtest_arg_errorszTestFuncs.test_arg_errorsskk!!/1aaa!Hv1'=>?


y
)	=KK_!<	=


y
)	"KK!	"	"	=	=	"	"s"B4C4B=C	c`|jjtd|jdzd|jdzd|jdzd|jdzdt	t
jddfdi}|j|jjj|y)Nr4rr7r;r5r
r")
rzrr;rrr
rrrrrs  rtest_loop_caller_importingz$TestFuncs.test_loop_caller_importing!s8!<
LL991LL22ALL<<aLL55q
((
)9f=q
	
,,.::HErry3pre-existing trace function throws off measurementsc,td}|jj|jd|jdzd|jdzd|jdzdi}|j|jj
j|y)Nrr4)zTracedClass.inst_method_calling)zTracedClass.inst_method_linearr7)rZrzrrbrrrr)r]objrs   rtest_inst_method_callingz"TestFuncs.test_inst_method_calling-s"oC33Q7
LL??LL>>LL22A

	
,,.::HErc
D|jjt|jdzd|jdzd|jdzd|jdzd|jdzdi}|j	|jjj|y)N)rXr4)rVrU)rQr!)rzrrXrrrrrs  rrz(TestFuncs.test_traced_decorated_function:s56
LL991LL00!LL?*ALL?*ALL9$a
	
,,.::HErN)rirjrkrr}rrrrunittestskipIfhasattrrwryrrr%rrrrsb,/0F"
FX__WS*-@,#,,.JL	FL	F
Frrc|eZdZdZdZejeedxrejddZ
y)TestCallersz$White-box testing of callers tracingc|jtjtjt	ddd|_t
|_y)Nrr4)rrrsru)rvrwrxryrrzrrr|s rr}zTestCallers.setUpIs4clln5!11=*,rryrcD|jjtdtjjtjddzddf|jdzfd|jdz|jdzfd|jdz|jdzfd|jdz|jd	zfd|jd	zttjd
dffdi}|j|jjj|y)Nr4r.pyrsz
Trace.runfuncrrr7rr
r")rzrr;rrrrsrrrr
rrcallersrs  rrz&TestCallers.test_loop_caller_importingNs	
8!<ggu~~.q1E97O
T AA
DEFll;; 77
:;<ll>> >>
ABCll>> ::
=>?ll77G,,-y&A
CDE
	
,,.66ArN)rirjrkrr}rrrrwryrr%rrrrGsF.-
X__WS*-@,#,,.JLBLBrrcTeZdZdZdZdZefdZeddZdZ	dZ
d	Zy
)TestCoveragech|jtjtjyr)rvrwrxryr|s rr}zTestCoverage.setUpdsclln5rc@ttttyr)rrrr|s rrzTestCoverage.tearDowngsvvrzif True:
        import unittest
        from test.test_pprint import QueryTestCase
        loader = unittest.TestLoader()
        tests = loader.loadTestsFromTestCase(QueryTestCase)
        tests(unittest.TestResult())
        cv|j||j}|jddty)NT)show_missingsummarycoverdir)runr
write_resultsr)r]rzcmdrs    r	_coveragezTestCoverage._coveragers+

3NN	T4&Ircpucttjdd}t5}|j|dddj	}|jd||jd|t
jt}|jd||jd|y#1swY{xYw)Nrr4rsrrz	pprint.pyzcase.pyzpprint.coverzunittest.case.cover)	rsrrrgetvalueassertInrlistdirr)r]rzstdoutfiless    r
test_coveragezTestCoverage.test_coveragews1A.

	#&NN6"	#"

k6*

i(

6"

ne,

+U3	#	#sB..B7c,tjjtjjtjjt}tjtjtj|gdd}t5}|j|dddtjjtr-tjt}|j|dgyy#1swYZxYw)Nrr4)
ignoredirsrsrrz_importlib.cover)rrnormpathdirnamerrsrrwbase_prefixbase_exec_prefixrrexistsrrr)r]libpathrzrrs     rtest_coverage_ignorez!TestCoverage.test_coverage_ignores''""277??277??83L#MN#:N:N$)&-.a9

	#&NN6"	#
77>>&!JJv&EU%7$89"	#	#sD

DcJtjdd}d}|tjvrtj|=d}t	5}|j||dddj
d|ji}|D]5}|jdd\}}}	t|t|ddf||	<7tjtj|j}|j|||j||dy#1swYxYw)	Nrr4rztest.tracedmodules.testmodz<import test.tracedmodules.testmod as t;t.func(0); t.func2();rr)r.d)rsrrwmodulesrrseekreadlinesplitint_fullmodnamerrr)
r]rzrrrcoveragelinelinescovmodules
          rtest_issue9936zTestCoverage.test_issue9936s1A..ckk!G$'

	(&NN63'	(A	;D!%bq!1E3 #E
CCRM:HV	;$$S[[%9%B%BC

gx('*H5	(	(s	DD"ctdz}t|d5}tiiddif|dddd|jt|tjii|i}|j|jddiy#1swYVxYw)Nz-infilewbcallerr4)protocol)	ropenrrvrrsCoverageResultsrr)r]infilerPrs    rtest_coverageresults_updatez(TestCoverage.test_coverageresults_updates)#
&$
	91"b8Q-(!a8	9'''B;8Q-8		9	9sA??BN)rirjrkr}rDEFAULT_SCRIPTrrrrrr
r%rrrrcsF6N%3J
u	4	4
:6*9rrceZdZdZy)Test_Ignorec	0tjj}tjddg|ddg}|j|j
dd|j|j
dd|j|j
dd	|j|j
|ddd
d|j|j
|ddd
|j|j
|dd
dy)Nr&zy.zfoobarzx.pyzxy.pyxyzy.pyr'zbaz.pybazzz.pyz)rrjoinrs_Ignore
assertTruenamesassertFalse)r]jnignores   rtest_ignoredzTest_Ignore.test_ignoreds
WW\\U|b.>-?@VS12gt45fc23Ruh%?GHb&7=>Rx%8%@ArN)rirjrkrr%rrr
r
s	Brr
c,eZdZdZdZdZdZdZdZy)TestCoverageCommandLineOutputztmp.pyz	tmp.coverct|jdd5}|jtjddddy#1swYyxYw)Nwiso-8859-15encodingu                # coding: iso-8859-15
                x = 'spœm'
                if []:
                    print('unreachable')
            )rcodefilewritetextwrapdedent)r]rPs  rr}z#TestCoverageCommandLineOutput.setUpsE
$--}
=	
GGHOO%
			s%AAcXt|jt|jyr)rr#	coverfiler|s rrz&TestCoverageCommandLineOutput.tearDownst}}t~~rctjjtjjtj
}tjj
|d}t|dj|jgz}t|\}}}|j|d|jtjj||jtjj|jt!|jd5}|j|j#ddddy#1swYyxYw)Nztrace.coverz-m trace --countrr r!u^       # coding: iso-8859-15
    1: x = 'spœm'
    1: if []:
           print('unreachable')
)rrrabspathrsrrrrr#r
rrrrr(rread)r]tracedirtracecoverpathargvstatusrstderrrPs        r%test_cover_files_written_no_highlightzCTestCoverageCommandLineOutput.test_cover_files_written_no_highlights77??277??5>>#BCh
>~!'')T]]O;!14!8%78t~~67
$..=
9	QQVVX4
			s/!EE"cdj|jgz}t|\}}}|jtj
j
|jt|jd5}|j|jtjddddy#1swYyxYw)Nz-m trace --count --missingr r!u                       # coding: iso-8859-15
                    1: x = 'spœm'
                    1: if []:
                >>>>>>     print('unreachable')
            )
rr#r
rrrrr(rrr+r%r&)r]r.r/rr0rPs      r'test_cover_files_written_with_highlightzETestCoverageCommandLineOutput.test_cover_files_written_with_highlights+113t}}oE!14!8t~~67
$..=
9	QQVVXx8(
			s:4B77CN)	rirjrkr#r(r}rr1r3r%rrrrs HI(
rrc*eZdZdZdZdZdZdZy)TestCommandLinec^d}|D]&^}}tddg|^}}|j||(y)N))s3progname is missing: required with the main options-lz-T)s8cannot specify both --listfuncs and (--trace or --count)z-lc)s>argument -R/--no-report: not allowed with argument -r/--reportz-rR)sLmust specify one of --trace, --count, --report, --listfuncs, or --trackcallsz-g)s-r/--report requires -f/--filez-r)s3--summary can only be used with --count or --reportz-sT)sunrecognized arguments: -yz-y-mrs)rr)r]_errorsmessagerG_r0s      r
test_failureszTestCommandLine.test_failuressA3&	+NGd.tWDtDJQMM'6*	+rctdz}tjjt}t	|dd5}|jt||jdtddd|d	\}}}|jd
|d|d|d
}|j|j|dddy#1swYyxYw)Nrrutf-8r!za = 1
r8rsr7PYTHONIOENCODINGsfunctions called:z
filename: z, modulename: z, funcname: <module>)rrrrrrvrr$r
rencode)r]r
modulenamefdr/rr0rs        rtest_listfuncs_flag_successz+TestCommandLine.test_listfuncs_flag_successsE>WW%%f-

(C'
2	5bOOFH-HHY%5dGT8GN&P"FFFMM.7#H:^J<G[\HMM(//+V4	5	5	5sA7B;;Cc`ttdd5}|jtt|j	d|j	ddddtt\}}}tdddtd	\}}}|j
|j|y#1swYUxYw)
Nrr>r!zimport sys
zprint(type(sys.argv))
r8rsr7r?)rrrvrr$r
rstrip)r]rCr/
direct_stdoutr0trace_stdouts      rtest_sys_argv_listz"TestCommandLine.test_sys_argv_list
s
&#
0	0BOOFF+HH^$HH./	0
)9(@%
v'7gtVIP(R$f

m))+\:	0	0s=B$$B-ctd}td}tjjt}t	|dd5}|jt||jt||jtjddddtddd	|d
\}}}|j}|j|d|jd||jd
|d|d|y#1swYkxYw)Nrz.coverrr>r!z                x = 1
                y = 2

                def f():
                    return x + y

                for i in range(10):
                    f()
            r8rsz-csr?rzlines   cov%   module   (path)z6   100%   z   ())rrrrrrvrr$r%r&r
decoderr)r]r
coverfilenamerBrCr/rr;s        rtest_count_and_summaryz&TestCommandLine.test_count_and_summarysXS>!(&)
WW%%f-

(C'
2	bOOFH-OOFM2HHX__	&		
	-T7E8>EG#

6?

J<tH:Q?H%		s
AC??Dc	Dtdddddddtdddddy)	Nr8rsr7z--moduletimeitz-n1not_a_module_zzzr	r|s rtest_run_as_modulez"TestCommandLine.test_run_as_module-s'wj(D#NdGT:?QRrN)rirjrkr<rDrIrNrSr%rrr5r5s+
5	;I0Srr5__main__)/rpicklerrwtest.supportrrtest.support.os_helperrrrtest.support.script_helperr
rr%rrsrtest.tracedmodulesr
rrr#r+r2r5r8r;r>rArErIrLrXobjectrZTestCaserorrrrr
rr5rimainr%rr<module>r]s>	
;;;N&)
(

#



&.h@X&&h@VK))K8@F!!@FFB(##B8H98$$H9Z
B(##
B0H$5$50d@Sh''@SFzHMMOr