ó {G_Tc@s ddlZddlZddlmZmZmZmZmZddlZddl Z ddl m Z m Z ddl m Z d„Zd„Zd„Zd„Zd „Zd „Zd „Zd „Zd „Zd„Zd„Zd„Zdefd„ƒYZdejfd„ƒYZdejfd„ƒYZdejfd„ƒYZdejfd„ƒYZ dejfd„ƒYZ!d„Z"e#dkrœe"ƒndS(iÿÿÿÿN(t run_unittesttTESTFNtrmtreetunlinktcaptured_stdout(tCoverageResultstTrace(ttestmodcCs |jdƒr|d }n|S(s=Given a .pyc/.pyo filename converts it to the appropriate .pys.pycs.pyoiÿÿÿÿ(s.pycs.pyo(tendswith(tfilename((s+/usr/local/lib/python2.7/test/test_trace.pyt fix_ext_pys cCs2tjjtjjtƒƒd}ttƒ|fS(s4The .py file and module name of this file (__file__)i(tostpathtsplitexttbasenamet__file__R (tmodname((s+/usr/local/lib/python2.7/test/test_trace.pytmy_file_and_modnames"cCs |jjS(N(t__code__tco_firstlineno(tfunc((s+/usr/local/lib/python2.7/test/test_trace.pytget_firstlinenoscCs|}|}||}|S(N((txtytatbtc((s+/usr/local/lib/python2.7/test/test_trace.pyttraced_func_linear$s cCs+|}xtdƒD]}||7}qW|S(Ni(trange(RRRti((s+/usr/local/lib/python2.7/test/test_trace.pyttraced_func_loop*scCs||tjdƒS(Ni(RR(RR((s+/usr/local/lib/python2.7/test/test_trace.pyttraced_func_importing0scCst||ƒ}||S(N(R(RR((s+/usr/local/lib/python2.7/test/test_trace.pyttraced_func_simple_caller3scCs#t|ƒ}|t||ƒ7}|S(N(R R(Rtk((s+/usr/local/lib/python2.7/test/test_trace.pyttraced_func_importing_caller7s ccs*d}xt|ƒD]}||VqWdS(Ni(R(tnumRR((s+/usr/local/lib/python2.7/test/test_trace.pyttraced_func_generator<scCs+d}xtdƒD]}||7}qWdS(Nii (R$(R!R((s+/usr/local/lib/python2.7/test/test_trace.pyttraced_func_calling_generatorAscCs|dS(Ni((R#((s+/usr/local/lib/python2.7/test/test_trace.pyttraced_doublerFscCs/d}gt|ƒD]}t|ƒ^q}|S(Ni (RR&(R!Rtmylist((s+/usr/local/lib/python2.7/test/test_trace.pyt traced_caller_list_comprehensionIs%t TracedClasscBsAeZd„Zd„Zd„Zed„ƒZed„ƒZRS(cCs ||_dS(N(R(tselfR((s+/usr/local/lib/python2.7/test/test_trace.pyt__init__PscCs |j|S(N(R(R*R((s+/usr/local/lib/python2.7/test/test_trace.pytinst_method_linearSscCs |j|ƒ}|t||ƒS(N(R,R(R*RR((s+/usr/local/lib/python2.7/test/test_trace.pytinst_method_callingVscCs|dS(Ni((tclsR((s+/usr/local/lib/python2.7/test/test_trace.pytclass_method_linearZscCs|dS(Ni((R((s+/usr/local/lib/python2.7/test/test_trace.pytstatic_method_linear^s( t__name__t __module__R+R,R-t classmethodR/t staticmethodR0(((s+/usr/local/lib/python2.7/test/test_trace.pyR)Os    tTestLineCountscBsMeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS(s/White-box testing of line-counting, via runfuncc Cs7tddddddddƒ|_ttƒ|_dS(Ntcountittraceit countfuncst countcallers(RttracerR Rtmy_py_filename(R*((s+/usr/local/lib/python2.7/test/test_trace.pytsetUphs$cCs‹|jjtddƒ}|j|dƒi}ttƒ}x.tddƒD]}d||j||fR?R@(R*RCRB((s+/usr/local/lib/python2.7/test/test_trace.pyttest_traced_func_loopxs cCsˆ|jjtddƒttƒ}id|j|df6dttjƒdf6dttjƒdf6}|j|jj ƒj |ƒdS(Niiii( R:R=RRR;R RRR>R?R@(R*RCRB((s+/usr/local/lib/python2.7/test/test_trace.pyttest_traced_func_importing„s cCsÆ|jjtƒttƒ}ttƒ}id|j|df6d|j|df6d|j|df6d|j|df6d|j|df6d|j|df6}|j|jjƒj|ƒdS(Nii ii i( R:R=R%RR$R;R>R?R@(R*tfirstlineno_callingtfirstlineno_genRB((s+/usr/local/lib/python2.7/test/test_trace.pyttest_trace_func_generators  cCsž|jjtƒttƒ}ttƒ}id|j|df6d|j|df6d|j|df6d|j|df6}|j|jjƒj|ƒdS(Nii iii ( R:R=R(RR&R;R>R?R@(R*RGtfirstlineno_calledRB((s+/usr/local/lib/python2.7/test/test_trace.pyttest_trace_list_comprehensionŸs  c Cs£xœdgD]‘}tddddddddƒ}tdƒ}t||ƒ}|j|d ƒt|ƒ}id|j|df6}|j|jƒj|ƒq WdS( NR,R6iR7iR8R9ii( RR)tgetattrR=RR;R>R?R@(R*tmethnameR:t traced_objtmethodRCRB((s+/usr/local/lib/python2.7/test/test_trace.pyttest_linear_methods­s!  ( R1R2t__doc__R<RDRERFRIRKRP(((s+/usr/local/lib/python2.7/test/test_trace.pyR5fs   tTestRunExecCountscBs eZdZd„Zd„ZRS(s8A simple sanity test of line-counting, via runctx (exec)cCsttƒ|_dS(N(R RR;(R*((s+/usr/local/lib/python2.7/test/test_trace.pyR<¿sc Csùtddddddddƒ|_d}t|tdƒ}|jj|tƒtƒƒttƒ}id|j |df6d |j |d f6d |j |d f6d|j |d f6}x8|j ƒD]*}|j |jj ƒj |||ƒqÇWdS(NR6iR7iR8R9straced_func_loop(2, 5)texeciiiii(RR:tcompileRtrunctxtglobalstvarsRRR;tkeysR>R?R@(R*tcodeRCRBR!((s+/usr/local/lib/python2.7/test/test_trace.pyttest_exec_countsÂs$ (R1R2RQR<RZ(((s+/usr/local/lib/python2.7/test/test_trace.pyRR½s t TestFuncscBs2eZdZd„Zd„Zd„Zd„ZRS(s"White-box testing of funcs tracingcCs.tddddddƒ|_tƒ|_dS(NR6iR7R8i(RR:Rtfilemod(R*((s+/usr/local/lib/python2.7/test/test_trace.pyR<ÚscCsU|jjtdƒid|jd6d|jd6}|j|jjƒj|ƒdS(NiR R(straced_func_simple_caller(straced_func_linear(R:R=R R\R>R?t calledfuncs(R*RB((s+/usr/local/lib/python2.7/test/test_trace.pyttest_simple_callerÞs cCsŠ|jjtdƒid|jd6d|jd 6d|jd 6d|jd 6dttjƒddf6}|j|jjƒj |ƒdS( NiR RR"RRR(straced_func_simple_caller(straced_func_linear(straced_func_importing_caller(straced_func_importing( R:R=R"R\R RRR>R?R](R*RB((s+/usr/local/lib/python2.7/test/test_trace.pyttest_loop_caller_importingçscCsrtdƒ}|jj|jdƒid|jd6d|jd6d|jd6}|j|jjƒj|ƒdS( NiisTracedClass.inst_method_callingsTracedClass.inst_method_linearR(sTracedClass.inst_method_calling(sTracedClass.inst_method_linear(straced_func_linear(R)R:R=R-R\R>R?R](R*tobjRB((s+/usr/local/lib/python2.7/test/test_trace.pyttest_inst_method_callingós (R1R2RQR<R^R_Ra(((s+/usr/local/lib/python2.7/test/test_trace.pyR[Øs   t TestCallerscBs eZdZd„Zd„ZRS(s$White-box testing of callers tracingcCs.tddddddƒ|_tƒ|_dS(NR6iR7R9i(RR:RR\(R*((s+/usr/local/lib/python2.7/test/test_trace.pyR<scCsä|jjtdƒidtjjtjƒddddf|jd f6d|jd |jdf6d|jd|jdf6d|jd|jdf6d|jdt t jƒd d ff6}|j |jj ƒj |ƒdS(Niis.pyR7s Trace.runfuncR"R RRRR(straced_func_importing_caller(straced_func_simple_caller(straced_func_linear(straced_func_importing_caller(straced_func_simple_caller(straced_func_importing_caller(straced_func_importing(straced_func_importing(R:R=R"R R R R7RR\R RR>R?tcallers(R*RB((s+/usr/local/lib/python2.7/test/test_trace.pyR_s4)(R1R2RQR<R_(((s+/usr/local/lib/python2.7/test/test_trace.pyRbÿs t TestCoveragecBs8eZd„Zdd„Zd„Zd„Zd„ZRS(cCsttƒttƒdS(N(RRR(R*((s+/usr/local/lib/python2.7/test/test_trace.pyttearDowns s5from test import test_pprint; test_pprint.test_main()cCs9|j|ƒ|jƒ}|jdtdtdtƒdS(Nt show_missingtsummarytcoverdir(trunR?t write_resultstTrueR(R*R:tcmdtr((s+/usr/local/lib/python2.7/test/test_trace.pyt _coverages  cCs¢tjddddƒ}tƒ}|j|ƒWdQX|jƒ}|jd|kƒ|jd|kƒtjtƒ}|jd|kƒ|jd|kƒdS( NR7iR6is pprint.pyscase.pys pprint.coversunittest.case.cover( R7RRRntgetvaluet assertTrueR tlistdirR(R*R:tstdouttfiles((s+/usr/local/lib/python2.7/test/test_trace.pyt test_coverage#s  cCs¥tjjtjjtjƒƒ}tjdtjtj |gddddƒ}t ƒ}|j |ƒWdQXtjj t ƒr¡tjt ƒ}|j|gƒndS(Nt ignoredirsR7iR6i(R R tnormpathtdirnameRR7Rtsystprefixt exec_prefixRRntexistsRRqR>(R*tlibpathR:RrRs((s+/usr/local/lib/python2.7/test/test_trace.pyttest_coverage_ignore.s! c Cs tjddddƒ}d}|tjkr:tj|=nd}tƒ}|j||ƒWdQX|jdƒ|jƒi}xG|D]?}|jƒd \}}} t |ƒt |d ƒf|| ( R*R:RRlRrtcoveragetlinetlinestcovtmodule((s+/usr/local/lib/python2.7/test/test_trace.pyttest_issue9936:s      $(R1R2ReRnRtR}RŠ(((s+/usr/local/lib/python2.7/test/test_trace.pyRds    cCsttƒdS(N(RR1(((s+/usr/local/lib/python2.7/test/test_trace.pyt test_mainPst__main__($R Rxttest.test_supportRRRRRtunittestR7RRttest.tracedmodulesRR RRRRRR R"R$R%R&R(tobjectR)tTestCaseR5RRR[RbRdR‹R1(((s+/usr/local/lib/python2.7/test/test_trace.pyts6  (             W'8