mň %U˛Ic@sdklZdkZdkZdkZd„ZdBdCdDge_d„ZdEdFdGdHdIdJge_d „ZdKdLdMdNdOge_d „Z dPdQdRdSdTdUdVdWdXdYg e _d„Z dZd[d\d]ge _d„Z d„Z d^d_d`dadbdcge _d„Z d„Zdddedfdgdhdidjdkdldmdng e_d„Zd„Zdoge_d„Zd„Zdpdqdrdsge_d„Zdtdudvdwdxdyge_d„Zdzd{d|d}d~dd€dd‚dƒd„d…d†g e_d„Zd‡dˆd‰dŠd‹dŒddŽddd‘d’g e_d fd!„ƒYZd"eifd#„ƒYZd$eifd%„ƒYZd&fd'„ƒYZd(„Zd“e_d ge_d)„Zd”e_ddd ge_d*„Zd•e_d d ge_d+„Z d–e _dd d dd d ddge _d,„Z!d—e!_d ge!_d-„Z"d˜e"_dd d ge"_d.„Z#d™e#_d d/ge#_d0„Z$dše$_d e%ge$_d1„Z&d›e&_d e%ge&_d3„Z'dœe'_e%ge'_d4„Z(de(_e%ge(_d5„Z)dže)_e%ge)_d6„Z*dŸe*_e%ge*_d7„Z+d e+_e%ge+_d8„Z,dĄe,_d d e%ge,_d9„Z-d˘e-_d de%ge-_d:„Z.dŁe._d e%ge._d;„Z/d¤e/_e%ge/_d=„Z0d>eifd?„ƒYZ1d@„Z2e3dAjo e2ƒndS(Ľ(s test_supportNcCsdS(Ni((((t,/data/zmath/lib/python2.4/test/test_trace.pytbasic sitcallitlinetreturncCs"d}~x doq Wd}dS(Nii(tx(R((Rt arigo_examples iiicCsd}~d}dS(Ni(R(R((Rtone_instr_line scCs8d}x+tdƒD]}|o d}qd}qWdS(Nii(Rtrangeta(R R((Rt no_pop_tops+s   iicCsxdotqWd}dS(Nii(tblaR(R((Rt no_pop_blocks>s cCs d}dS(Ni(R(R((RtcalledHscCs tƒdS(N(R (((RRKsiý˙˙˙iţ˙˙˙cCs t‚dS(N(t Exception(((RtraisesUscCs-y tƒWntj o}d}nXdS(Ni(RRtexcR(RR((Rt test_raiseXs t exceptioncCs#ti|ƒ|tiƒi_dS(N(tsystsettracet tracefunct _getframetf_backtf_trace(R((Rt_settrace_and_returnjs cCst|ƒdS(N(RR(R((Rtsettrace_and_returnmscCs)ti|ƒ|tiƒi_t‚dS(N(RRRRRRt RuntimeError(R((Rt_settrace_and_raisers cCs*yt|ƒWntj o }nXdS(N(RRRR(RR((Rtsettrace_and_raisevscCs+d}d}||jo|d}ndS(Nii(R tb(R R((Rtireturn_example‚s cCsOtddƒ}y&d}x||}|d7}qWWntj onXdS(Niii(RtitemstiRt IndexError(R!R R((Rttightloop_example’sicCsEtddƒ}yd}x||}qWWntj onXdS(Niii(RR R!R"(R!R ((Rttighterloop_exampleŠstTracercBstZd„Zd„ZRS(NcCs g|_dS(N(tselftevents(R&((Rt__init__żscCs |ii|i|fƒ|iS(N(R&R'tappendtframetf_linenoteventttrace(R&R*R,targ((RR-Ás(t__name__t __module__R(R-(((RR%žs t TraceTestCasecBstZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„Zd„ZRS(NcCs~g}|D]\}}||||fq ~}||jo<|iddit i t t |ƒt t |ƒƒƒƒndS(Ns"events did not match expectation: s ( t_[1]R'tltet line_offsettexpected_eventsR&tfailtjointdifflibtndifftmaptstr(R&R5R'R6R4R3R2((Rtcompare_eventsĆs1 !cCsPtƒ}ti|iƒ|ƒtidƒ|i|i i |i |i ƒdS(N( R%ttracerRRR-tfunctNoneR&R=t func_codetco_firstlinenoR'(R&R?R>((Rtrun_testĎs   cCsFtƒ}||iƒtidƒ|i|i i |i |i ƒdS(N( R%R>R?R-RRR@R&R=RARBR'(R&R?R>((Rt run_test2×s    cCs|itƒdS(N(R&RCR(R&((Rt test_01_basicŢscCs|itƒdS(N(R&RCR(R&((Rt test_02_arigoŕscCs|itƒdS(N(R&RCR(R&((Rttest_03_one_instrâscCs|itƒdS(N(R&RCR (R&((Rttest_04_no_pop_blocksäscCs|itƒdS(N(R&RCR (R&((Rttest_05_no_pop_topsćscCs|itƒdS(N(R&RCR(R&((Rt test_06_callčscCs|itƒdS(N(R&RCR(R&((Rt test_07_raiseęscCs|itƒdS(N(R&RDR(R&((Rttest_08_settrace_and_returníscCs|itƒdS(N(R&RDR(R&((Rttest_09_settrace_and_raiseďscCs|itƒdS(N(R&RCR(R&((Rttest_10_ireturnńscCs|itƒdS(N(R&RCR#(R&((Rttest_11_tightloopóscCs|itƒdS(N(R&RCR$(R&((Rttest_12_tighterloopős(R/R0R=RCRDRERFRGRHRIRJRKRLRMRNRORP(((RR1Ĺs             tRaisingTraceFuncTestCasecBsPtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS( NcCs%||ijo t‚n|iSdS(sXA trace function that raises an exception in response to a specific trace event.N(R,R&t raiseOnEventt ValueErrorR-(R&R*R,R.((RR-ůs cCs,|idjod}d|}ndSdS(sThe function to trace; raises an exception if that's the case we're testing, so that the 'exception' trace event fires.RiiN(R&RRRty(R&RTR((Rtfs cCs–||_yfx_ttiƒdƒD]G}ti|iƒy|i ƒWnt j oq#X|i dƒq#WWn t j o|i dƒnXdS(sTTests that an exception raised in response to the given event is handled OK.isexception not thrown!srecursion counter not resetN( R,R&RRtxrangeRtgetrecursionlimitR!RR-RURSR7R(R&R,R!((Rtrun_test_for_event s cCs|idƒdS(NR(R&RX(R&((Rt test_callscCs|idƒdS(NR(R&RX(R&((Rt test_linescCs|idƒdS(NR(R&RX(R&((Rt test_returnscCs|idƒdS(NR(R&RX(R&((Rttest_exception!scsjd„‰‡‡d†‰tiˆƒy ˆƒWn&tj odk}|iƒnX|idƒdS(NcCs xtdƒD] }|GHq WdS(Ni(RR!(R!((RRU%s cs8|djo'|iˆiidjo td‚nˆS(NRis i am crashing(twhyR*R+RURARBRtg(R*R]textra(R^RU(RR^)s' sexception not propagated( RUR^RRRtgctcollectR&R7(R&R^RUR`((R^RURttest_trash_stack$s    ( R/R0R-RURXRYRZR[R\Rb(((RRQřs      t JumpTracercBs tZdZd„Zd„ZRS(sšDefines a trace function that jumps from one place to another, with the source and destination lines of the jump being defined by the 'jump' property of the function under test.cCs6||_|id|_|id|_t|_dS(Nii(tfunctionR&tjumptjumpFromtjumpTotFalsetdone(R&Rd((RR(Cs cCs’|i o€|i|iijoj|ii}|i||i joCy||i |_Wnt j o|i |_nXt |_q‹n|i S(N(R&RiR*tf_codeRdRARBt firstLineR+RfRgt TypeErrortTrueR-(R&R*R,R.Rk((RR-Is! (R/R0t__doc__R(R-(((RRc>s  cCs+|idƒ|idƒ|idƒdS(Niii(toutputR)(Ro((Rtjump_simple_forwardsXs  cCs|idƒ|idƒdS(Nii(RoR)(Ro((Rtjump_simple_backwards`s cCsPx<dD]4}|idƒxdgD]}|idƒq$WqW|idƒdS(Niiiii(ii(R!RoR)tj(RoR!Rr((Rtjump_out_of_block_forwardsgs  cCsm|idƒxLdgD]A}|idƒxdgD]}|idƒq4W|idƒqW|idƒdS(Niiiiii(RoR)R!Rr(RoR!Rr((Rtjump_out_of_block_backwardsqs    cCs|idƒ|idƒdS(Nii(RoR)(Ro((Rtjump_to_codeless_line}s cCs+|idƒ|idƒ|idƒdS(Niii(RoR)(Ro((Rtjump_to_same_line…s  cCsUz|idƒWd|idƒz|idƒWd|idƒX|idƒXdS(Niiiii (RoR)(Ro((Rtjump_in_nested_finallyŽs i cCsSy|idƒ|idƒWn.tj o"}|idt|ƒjƒnXdS(Niitafter(RoR)RSR4R<(RoR4((Rtno_jump_too_far_forwardsžs  cCsSy|idƒ|idƒWn.tj o"}|idt|ƒjƒnXdS(Niitbefore(RoR)RSR4R<(RoR4((Rtno_jump_too_far_backwards¨s  i˙˙˙˙cCsHy|idƒWn0tiƒd}|idt|ƒjƒnXdS(Niitexcept(RoR)Rtexc_infoR4R<(RoR4((Rtno_jump_to_except_1łs cCsTy|idƒWn<tj o0tiƒd}|idt|ƒjƒnXdS(NiiR|(RoR)RSRR}R4R<(RoR4((Rtno_jump_to_except_2˝s cCsFy|idƒWn.tj o"}|idt|ƒjƒnXdS(NiR|(RoR)RSR4R<(RoR4((Rtno_jump_to_except_3ÇscCsLy|idƒWn4ttfj o"}|idt|ƒjƒnXdS(NiR|(RoR)RSRR4R<(RoR4((Rtno_jump_to_except_4ĐscCsdy/|idƒxdD]}|idƒqWWn.tj o"}|idt|ƒjƒnXdS(Niiitinto(ii(RoR)R!RSR4R<(RoR!R4((Rtno_jump_forwards_into_blockŮs cCsdy/xdD]}|idƒq W|idƒWn.tj o"}|idt|ƒjƒnXdS(NiiiiR‚(ii(R!RoR)RSR4R<(RoR!R4((Rtno_jump_backwards_into_blockäscCsay,z|idƒd}Wd|idƒXWn.tj o"}|idt|ƒjƒnXdS(Niiitfinally(RoR)RRSR4R<(RoR4R((Rtno_jump_into_finally_blockďs  cCshy3z|idƒWd|idƒ|idƒXWn.tj o"}|idt|ƒjƒnXdS(NiiiR…(RoR)RSR4R<(RoR4((Rtno_jump_out_of_finally_blocküs cCsFy|idƒWn.tj o"}|idt|ƒjƒnXdS(Nitinteger(RoR)RSR4R<(RoR4((Rtno_jump_to_non_integers stSpamcCs^ytiƒi}|i|_Wn/tj o#}dt|ƒjo‚qZn Xtd‚dS(NR-s'Trace-function-less jump failed to fail( RRRtprevious_frameR+RSR4R<R(R4R‹((Rtno_jump_without_trace_functions t JumpTestCasecBsĹtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(NcCsB||jo1|iddt|ƒddt|ƒƒndS(NsOutputs don't match: s Expected: s s Received: (treceivedtexpectedR&R7trepr(R&RRŽ((Rtcompare_jump_output$s cCsPt|ƒ}ti|iƒg}||ƒtidƒ|i |i|ƒdS(N( RcR?R>RRR-RoR@R&R‘(R&R?RoR>((RRC*s    cCs|itƒdS(N(R&RCRp(R&((Rttest_01_jump_simple_forwards2scCs|itƒdS(N(R&RCRq(R&((Rttest_02_jump_simple_backwards4scCs|itƒdS(N(R&RCRs(R&((Rt"test_03_jump_out_of_block_forwards6scCs|itƒdS(N(R&RCRt(R&((Rt#test_04_jump_out_of_block_backwards8scCs|itƒdS(N(R&RCRu(R&((Rttest_05_jump_to_codeless_line:scCs|itƒdS(N(R&RCRv(R&((Rttest_06_jump_to_same_line<scCs|itƒdS(N(R&RCRw(R&((Rttest_07_jump_in_nested_finally>scCs|itƒdS(N(R&RCRy(R&((Rt test_08_no_jump_too_far_forwards@scCs|itƒdS(N(R&RCR{(R&((Rt!test_09_no_jump_too_far_backwardsBscCs|itƒdS(N(R&RCR~(R&((Rttest_10_no_jump_to_except_1DscCs|itƒdS(N(R&RCR(R&((Rttest_11_no_jump_to_except_2FscCs|itƒdS(N(R&RCR€(R&((Rttest_12_no_jump_to_except_3HscCs|itƒdS(N(R&RCR(R&((Rttest_13_no_jump_to_except_4JscCs|itƒdS(N(R&RCRƒ(R&((Rt#test_14_no_jump_forwards_into_blockLscCs|itƒdS(N(R&RCR„(R&((Rt$test_15_no_jump_backwards_into_blockNscCs|itƒdS(N(R&RCR†(R&((Rt"test_16_no_jump_into_finally_blockPscCs|itƒdS(N(R&RCR‡(R&((Rt$test_17_no_jump_out_of_finally_blockRscCs|itƒdS(N(R&RCR‰(R&((Rttest_18_no_jump_to_non_integersTscCs tƒdS(N(RŒ(R&((Rt&test_19_no_jump_without_trace_functionVs(R/R0R‘RCR’R“R”R•R–R—R˜R™RšR›RœRRžRŸR RĄR˘RŁR¤(((RR#s*                    cCstitttƒdS(N(t test_supportt run_unittestR1RQR(((Rt test_mainYs t__main__(iscall(isline(isreturn(iscall(isline(isline(isline(isline(isreturn(iscall(isline(isline(isline(isreturn(iscall(isline(isline(isline(isline(isline(isline(isline(isline(isreturn(iscall(isline(isline(isreturn(iscall(isline(iý˙˙˙scall(iţ˙˙˙sline(iţ˙˙˙sreturn(isreturn(iscall(isline(isline(iý˙˙˙scall(iţ˙˙˙sline(iţ˙˙˙s exception(iţ˙˙˙sreturn(is exception(isline(isline(isreturn(isreturn(is exception(isline(isline(isreturn(iscall(isline(isline(isline(isline(isreturn(iscall(isline(isline(isline(isline(isline(isline(isline(isline(is exception(isline(isline(isreturn(iscall(isline(isline(isline(isline(isline(isline(isline(is exception(isline(isline(isreturn(ii(ii(ii(ii(ii(ii(ii (ii(ii˙˙˙˙(ii(ii(ii(ii(ii(ii(ii(ii(iRŠ(4ttestRĽtunittestRR9RR'RRR R R RRRRRRRRR#R$R%tTestCaseR1RQRcRpReRoRqRsRtRuRvRwRyRmR{R~RR€RRƒR„R†R‡R‰RŒRR§R/(-RĽR„RŞRR€R†RR RRcR$RRRRqRRQRR§RuRpRRvRRtR{RR#RsRyR~R%RRŒR1R R9RR‰RR‡RwRƒR R((Rt?sź        '     *       0 - 3F        !                                 6