python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_trace.cpython-311.pyc

eRTddlZddlmZddlZddlmZmZddlmZm	Z	m
Z
ddlmZm
Z
ddlZddlZddlZddlmZddlmZdZd	Zd
ZdZdZd
ZdZdZdZdZdZdZdZ dZ!Gdde"Z#Gddej$Z%Gddej$Z&Gddej$Z'Gddej$Z(Gd d!ej$Z)Gd"d#ej$Z*Gd$d%ej$Z+Gd&d'ej$Z,e-d(krej.dSdS))N)dump)captured_stdoutrequires_resource)TESTFNrmtreeunlinkassert_python_okassert_python_failure)Trace)testmodcD|dr
|dd}|S)z8Given a .pyc filename converts it to the appropriate .pyz.pycN)endswith)filenames C/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_trace.py
fix_ext_pyrs*  !CRC=Octjtjtd}tt|fS)z4The .py file and module name of this file (__file__)r)ospathsplitextbasename__file__r)modnames rmy_file_and_modnamers?grw//99::1=Gh((rc|jjSN)__code__co_firstlinenofuncs rget_firstlinenor#!s
=''rc|}|}||z}|Sr)xyabcs     rtraced_func_linearr++s	A	A	AAHrc8|}tdD]}||z
}|SNrange)r&r'r*is    rtraced_func_loopr21s,	A
1XX	QHrc6||ztjdzS)N)r
r")r&r's  rtraced_func_importingr57sq57<??""rc,t||}||zSrr+)r&r*s  rtraced_func_simple_callerr8:s1a  Aq5LrcJt|}|t||z
}|Sr)r8r5)r&ks  rtraced_func_importing_callerr;>s)!!$$A	q!	$	$$AHrc#@Kd}t|D]	}||zV
dSr-r/)numr*r1s   rtraced_func_generatorr>Cs9	A
3ZZ!erc8d}tdD]}||z
}dS)Nr
)r>)r:r1s  rtraced_func_calling_generatorrAHs3	A
"2
&
&	Qrc|dzSNr%)r=s rtraced_doublerrEMs7Nrc
||fSrr%)argskwargss  rtraced_capturerrIPs<rc<d}dt|D}|S)Nr@c,g|]}t|Sr%)rE).0r1s  r
<listcomp>z4traced_caller_list_comprehension.<locals>.<listcomp>Us 
2
2
2AnQ
2
2
2rr/)r:mylists  r traced_caller_list_comprehensionrOSs%
A
2
2q
2
2
2FMrc\d}d}||d}|dS)Nc|Srr%fs r
decorator1z-traced_decorated_function.<locals>.decorator1Ysrcd}|S)Nc|Srr%rRs r
decorator2zGtraced_decorated_function.<locals>.decorator_fabric.<locals>.decorator2\sHrr%rWs rdecorator_fabricz3traced_decorated_function.<locals>.decorator_fabric[s			rcdSrr%r%rrr"z'traced_decorated_function.<locals>.func_s		
rr%)rTrYr"s   rtraced_decorated_functionr[Xs^

Z
DFFFFFrcLeZdZdZdZdZedZedZ	dS)TracedClassc||_dSrr()selfr&s  r__init__zTracedClass.__init__gs
rc|j|zSrr_)r`r's  rinst_method_linearzTracedClass.inst_method_linearjsvzrcR||}|t||zSr)rcr+)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_linearurirN)
__name__
__module____qualname__rarcreclassmethodrhstaticmethodrkr%rrr]r]fsw,,,[\rr]cBeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
S)TestLineCountsz/White-box testing of line-counting, via runfuncc|tjtjt	dddd|_t
t|_dS)Nr4rcounttrace
countfuncscountcallers)	
addCleanupsyssettracegettracertracerrrmy_py_filenamer`s rsetUpzTestLineCounts.setUpsLclnn555!1KKK(22rcH|jtdd}||di}t	t}tddD]}d||j||zf<||jj|dS)NrDr.r4)	r}runfuncr+assertEqualr#r0r~resultscounts)r`resultexpectedfirstlinenor1s     rtest_traced_func_linearz&TestLineCounts.test_traced_func_linears$$%7A>>###%&899q!	B	BA@AHd);!+;<==,,..5x@@@@@rc	8|jtddtt}|j|dzfd|j|dzfd|j|dzfd|j|dzfdi}||jj|dS)NrDr4r.)r}rr2r#r~rrrr`rrs   rtest_traced_func_loopz$TestLineCounts.test_traced_func_loops,a333%&677

 +/2A

 +/2A

 +/2A

 +/2A	
	
,,..5x@@@@@rc\|jtddtt}|j|dzfdttjdfdttjdfdi}||j	j
|dS)NrDr.r4r)r}rr5r#r~rr
rrrrrs   rtest_traced_func_importingz)TestLineCounts.test_traced_func_importings11a888%&;<<

 +/2A
(
)
)1-q
(
)
)1-q
	
,,..5x@@@@@rc
|jttt}tt}|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|dzfdi}||jj|dS)Nr4rDrr@)	r}rrAr#r>r~rrr)r`firstlineno_callingfirstlineno_genrs    rtest_trace_func_generatorz(TestLineCounts.test_trace_func_generators9:::-.KLL)*?@@

 "5"9:A

 "5"9:B

 "5"9:B

 /A"56

 /A"56

 /A"56

	
,,..5x@@@@@rc	\|jttt}tt}|j|dzfd|j|dzfd|j|dzfd|j|dzfdi}||jj|dS)Nr4rDrr@)	r}rrOr#rEr~rrr)r`rfirstlineno_calledrs    rtest_trace_list_comprehensionz,TestLineCounts.test_trace_list_comprehensions<===-.NOO,^<<

 "5"9:A
 "5"9:B

 "5"9:A

 "4q"892

	
,,..5x@@@@@rc|jttt}|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|dzfd|j|d	zfd|j|d
zfd|j|dzfdi}||jj|dS)Nr4rDrrr.rr	r@r)r}rr[r#r~rrrrs   rtest_traced_decorated_functionz-TestLineCounts.test_traced_decorated_functions5666%&?@@

 +/2A

 +/2A

 +/2A

 +/2A

 +/2A

 +/2A

 +/2A

 +/2A

 +/2A

 +"23Q

 +"23Q
	
,,..5x@@@@@rc4dD]}tdddd}td}t||}||dt	|}|j|dzfdi}||j|dS)N)rcr4rrt)	rr]getattrrr#r~rrr)r`methnamer}
traced_objmethodrrs       rtest_linear_methodsz"TestLineCounts.test_linear_methodss0
	@
	@H!JJJF$RJZ22FNN62&&&)&11K$kAo6H
V^^--4h????
	@
	@rN)rlrmrn__doc__rrrrrrrrr%rrrrrr}s99333

A
A
A
A
A
A
A
A
A
A
A
A
A
A
AAAA&@@@@@rrrceZdZdZdZdZdS)TestRunExecCountsz8A simple sanity test of line-counting, via runctx (exec)ctt|_|tjt	jdSr)rrr~ryrzr{r|rs rrzTestRunExecCounts.setUps4(22clnn55555rc	tdddd|_d}t|td}|j|tt
tt}|j	|dzfd|j	|dzfd|j	|dzfd	|j	|d
zfdi}|
D]@}||jj
|||AdS)Nr4rrtztraced_func_loop(2, 5)execrDrrr.r)rr}compilerrunctxglobalsvarsr#r2r~keysrrr)r`coderrr:s     rtest_exec_countsz"TestRunExecCounts.test_exec_countss!1KKK,tXv..4DFF333%&677

 +/2A

 +/2A

 +/2A

 +/2A	
	K	KAT[00229!<hqkJJJJ	K	KrN)rlrmrnrrrr%rrrrs=BB666KKKKKrrceZdZdZdZdZdZdZdZe	j
eedoej
dd	Zd
ZdS)	TestFuncsz"White-box testing of funcs tracingc|tjtjt	ddd|_t
|_tj|_dS)Nrr4)rurvrw)	ryrzr{r|rr}rfilemod_saved_tracefuncrs rrzTestFuncs.setUpsUclnn555!1;;;*,, #rcJ|jtj|jdSdSr)rrzr{rs rtearDownzTestFuncs.tearDowns, ,L./////-,rc|jtd|jdzd|jdzdi}||jj|dS)Nr4r8r7)r}rr8rrrcalledfuncsr`rs  rtest_simple_callerzTestFuncs.test_simple_callersm5q999
L991L22A
	
,,..:HEEEEErc|jtdddd}||ddddf|t
5|jtddddn#1swxYwY|t
5|jddddS#1swxYwYdS)Nr4rDrr)r`r")r4rD)r"arg)r}rrIrassertRaises	TypeError)r`ress  rtest_arg_errorszTestFuncs.test_arg_errorssUk!!/1aaa!HHv1'='=>???


y
)
)	=	=K_!<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=


y
)
)	"	"K!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"s$"BBB-CCCc6|jtd|jdzd|jdzd|jdzd|jdzdt	t
jddfdi}||jj	|dS)Nr4rr7r;r5r
r")
r}rr;rrr
rrrrrs  rtest_loop_caller_importingz$TestFuncs.test_loop_caller_importing#s8!<<<
L991L22AL<<aL55q
(
)
)9f=q
	
,,..:HEEEEErr|3pre-existing trace function throws off measurementsctd}|j|jd|jdzd|jdzd|jdzdi}||jj|dS)Nrr4)zTracedClass.inst_method_calling)zTracedClass.inst_method_linearr7)r]r}rrerrrr)r`objrs   rtest_inst_method_callingz"TestFuncs.test_inst_method_calling/s"ooC3Q777
L??L>>L22A

	
,,..:HEEEEErc
|jt|jdzd|jdzd|jdzd|jdzd|jdzdi}||jj|dS)N)r[r4)rYrX)rTr!)r}rr[rrrrrs  rrz(TestFuncs.test_traced_decorated_function<s5666
L991L00!L?*AL?*AL9$a
	
,,..:HEEEEErN)rlrmrnrrrrrrunittestskipIfhasattrrzr|rrr%rrrrs,,///000FFF"""
F
F
FX_WWS*--@,#,..JLL	F	FLL	F
F
F
F
F
Frrc~eZdZdZdZejeedoej	ddZ
dS)TestCallersz$White-box testing of callers tracingc|tjtjt	ddd|_t
|_dS)Nrr4)rurvrx)ryrzr{r|rr}rrrs rrzTestCallers.setUpKsEclnn555!11===*,,rr|rc|jtdtjtjddzddf|jdzfd|jdz|jdzfd|jdz|jdzfd|jdz|jd	zfd|jd	zttjd
dffdi}||jj
|dS)Nr4r.pyrvz
Trace.runfuncrrr7rr
r")r}rr;rrrrvrrrr
rrcallersrs  rrz&TestCallers.test_loop_caller_importingPs	
8!<<<gu~..q1E97O
T AA
DEFl;; 77
:;<l>> >>
ABCl>> ::
=>?l77G,--y&A
CDE
	
,,..6AAAAArN)rlrmrnrrrrrrzr|rr%rrrrIs|..---
X_WWS*--@,#,..JLLBBLLBBBrrcbeZdZdZdZdZefdZeddZdZ	dZ
d	Zd
S)TestCoveragech|tjtjdSr)ryrzr{r|rs rrzTestCoverage.setUpfs$clnn55555rcVttttdSr)rrrrs rrzTestCoverage.tearDownisvvrzif True:
        import unittest
        from test.test_pprint import QueryTestCase
        loader = unittest.TestLoader()
        tests = loader.loadTestsFromTestCase(QueryTestCase)
        tests(unittest.TestResult())
        c|||}|ddtdS)NT)show_missingsummarycoverdir)runr
write_resultsr)r`r}cmdrs    r	_coveragezTestCoverage._coveragets>

3NN	T4&IIIIIrcpuctjdd}t5}||dddn#1swxYwY|}|d||d|t
jt}|d||d|dS)Nrr4rvruz	pprint.pyzcase.pyzpprint.coverzunittest.case.cover)	rvrrrgetvalueassertInrlistdirr)r`r}stdoutfiless    r
test_coveragezTestCoverage.test_coverageys1A...


	#&NN6"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#""

k6***

i(((
6""

ne,,,

+U33333sAAAc@tjtjtjt}tjtjtj	|gdd}t5}||dddn#1swxYwYtjtr2tjt}||dgdSdS)Nrr4)
ignoredirsrvruz_importlib.cover)rrnormpathdirnamerrvrrzbase_prefixbase_exec_prefixrrexistsrrr)r`libpathr}rrs     rtest_coverage_ignorez!TestCoverage.test_coverage_ignores'""27??27??83L3L#M#MNN#:N$)&-.a999


	#&NN6"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#
7>>&!!	:Jv&&EU%7$899999	:	:sB==CCctjdd}d}|tjvr
tj|=d}t	5}|||dddn#1swxYwY|d|i}|D]K}|dd\}}}	t|t|ddf||	<Ltj
tj|j}||||
||ddS)	Nrr4rztest.tracedmodules.testmodz<import test.tracedmodules.testmod as t;t.func(0); t.func2();rr)r.d)rvrrzmodulesrrseekreadlinesplitint_fullmodnamerrr)
r`r}rrrcoveragelinelinescovmodules
          rtest_issue9936zTestCoverage.test_issue9936sp1A....ck!!G$'


	(&NN63'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(A	;	;D!%bqb!1E3 #E

CCRCMM:HV$S[%9%BCC

gx((('*H55555sA''A+.A+c6tdz}t|d5}tiiddif|ddddn#1swxYwY|t|tjii|i}||jddidS)Nz-infilewbcallerr4)protocol)	ropenrryrrvCoverageResultsrr)r`infilerSrs    rtest_coverageresults_updatez(TestCoverage.test_coverageresults_updates)#
&$

	91"b8Q-(!a8888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9''''B;;8Q-88888s?AAN)rlrmrnrrDEFAULT_SCRIPTrrrrrr
r%rrrres666N%3JJJJ
u	4	4	4
:
:
:666*99999rrceZdZdZdS)Test_Ignorec	tjj}tjddg|ddg}||dd||dd||dd	|||ddd
d|||ddd
|||dd
ddS)Nr&zy.zfoobarzx.pyzxy.pyxyzy.pyr'zbaz.pybazzz.pyz)rrjoinrv_Ignore
assertTruenamesassertFalse)r`jnignores   rtest_ignoredzTest_Ignore.test_ignoreds!
W\U|bb.>.>-?@@VS11222gt44555fc22333RRuh%?%?GGHHHbb&7&7==>>>RRx%8%8%@@AAAAArN)rlrmrnrr%rrrrs(	B	B	B	B	Brrc.eZdZdZdZdZdZdZdZdS)TestCoverageCommandLineOutputztmp.pyz	tmp.coverct|jdd5}|tjdddddS#1swxYwYdS)Nwiso-8859-15encodingu                # coding: iso-8859-15
                x = 'spœm'
                if []:
                    print('unreachable')
            )r
codefilewritetextwrapdedent)r`rSs  rrz#TestCoverageCommandLineOutput.setUps
$-}
=
=
=	
GGHO%


																		s(A

AAcVt|jt|jdSr)rr&	coverfilers rrz&TestCoverageCommandLineOutput.tearDowns(t}t~rctjtjtj}tj|d}t|d|j	gz}t|\}}}||d|tj
||tj
|jt!|jd5}||dddddS#1swxYwYdS)Nztrace.coverz-m trace --countrr#r$u^       # coding: iso-8859-15
    1: x = 'spœm'
    1: if []:
           print('unreachable')
)rrrabspathrvrrrrr&r
rrrrr+r
read)r`tracedirtracecoverpathargvstatusrstderrrSs        r%test_cover_files_written_no_highlightzCTestCoverageCommandLineOutput.test_cover_files_written_no_highlightsl7??27??5>#B#BCCh
>>~!''))T]O;!14!8%%%77888t~66777
$.=
9
9
9	QQVVXX4


																		s5)E++E/2E/cd|jgz}t|\}}}|tj|jt|jd5}|	|
tjdddddS#1swxYwYdS)Nz-m trace --count --missingr#r$u                       # coding: iso-8859-15
                    1: x = 'spœm'
                    1: if []:
                >>>>>>     print('unreachable')
            )
rr&r
rrrrr+r
rr.r(r))r`r1r2rr3rSs      r'test_cover_files_written_with_highlightzETestCoverageCommandLineOutput.test_cover_files_written_with_highlights+1133t}oE!14!8t~66777
$.=
9
9
9	QQVVXXx8((


																		s8;CCCN)	rlrmrnr&r+rrr4r6r%rrr r sZHI(




rr c,eZdZdZdZdZdZdZdS)TestCommandLinecfd}|D]+^}}tddg|R^}}|||,dS)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-mrv)rr)r`_errorsmessagerG_r3s      r
test_failureszTestCommandLine.test_failuressZ3&	+	+NGd.tWDtDDDJQMM'6****	+	+rctdz}tjt}t	|dd5}|t||dtddd|d	\}}}|	d
|d|d|d
}|	|
|ddddS#1swxYwYdS)Nrr"utf-8r$za = 1
r;rvr:PYTHONIOENCODINGsfunctions called:z
filename: z, modulename: z, funcname: <module>)rrrrr
ryrr'r
rencode)r`r
modulenamefdr2rr3rs        rtest_listfuncs_flag_successz+TestCommandLine.test_listfuncs_flag_successs0E>W%%f--

(C'
2
2
2	5bOOFH---HHY%5dGT8GN&P&P&P"FFFMM.777\H\\J\\\HMM(//++V444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5sBCC"%C"cttdd5}|tt|d|ddddn#1swxYwYtt\}}}tdddtd	\}}}|||dS)
Nr"rAr$zimport sys
zprint(type(sys.argv))
r;rvr:rB)r
rryrr'r
rstrip)r`rFr2
direct_stdoutr3trace_stdouts      rtest_sys_argv_listz"TestCommandLine.test_sys_argv_lists
&#
0
0
0	0BOOFF+++HH^$$$HH.///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
)9(@(@%
v'7gtVIP(R(R(R$f

m))++\:::::sAA//A36A3cntd}td}tjt}t	|dd5}|t||t||tj	ddddn#1swxYwYtddd	|d
\}}}|}||d|
d||
d
|d|d|dS)Nrz.coverr"rAr$z                x = 1
                y = 2

                def f():
                    return x + y

                for i in range(10):
                    f()
            r;rvz-csrBrzlines   cov%   module   (path)z6   100%   z   ())rrrrr
ryrr'r(r)r
decoderr)r`r
coverfilenamerErFr2rr>s        rtest_count_and_summaryz&TestCommandLine.test_count_and_summarysy>>>!)))
W%%f--

(C'
2
2
2	bOOFH---OOFM222HHX_	&			
	
	
															-T7E8>EGGG###

6???

?J??H???HHHHHsAB55B9<B9c	VtdddddddtddddddS)	Nr;rvr:z--moduletimeitz-n1not_a_module_zzzr	rs rtest_run_as_modulez"TestCommandLine.test_run_as_module/s9wj(D#NNNdGT:?QRRRRRrN)rlrmrnr?rGrLrQrVr%rrr8r8sg+++
5
5
5	;	;	;III0SSSSSrr8__main__)/rpicklerrztest.supportrrtest.support.os_helperrrrtest.support.script_helperr
rr(rrvrtest.tracedmodulesr
rrr#r+r2r5r8r;r>rArErIrOr[objectr]TestCaserrrrrrrr r8rlmainr%rr<module>r`s				



;;;;;;;;;;;;;;;;;;NNNNNNNN&&&&&&)))
(((





###





&.j@j@j@j@j@X&j@j@j@ZKKKKK)KKK8@F@F@F@F@F!@F@F@FFBBBBB(#BBB8H9H9H9H9H98$H9H9H9Z
B
B
B
B
B(#
B
B
B00000H$5000d@S@S@S@S@Sh'@S@S@SFzHMOOOOOr