python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_bdb.cpython-311.opt-1.pyc

eʮdZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZm
Z
ddlmZddlmZddlmZGdd	eZGd
deZGdd
eZGddeZdZdZdZGddejZGddeZGddZd/dZe
dZeddfdZ dZ!e!dzZ"dZ#dZ$d Z%d!Z&Gd"d#ej'Z(Gd$d%e(Z)Gd&d'e(Z*Gd(d)e(Z+Gd*d+e(Z,Gd,d-ej'Z-e.d.krej/dSdS)0a Test the bdb module.

    A test defines a list of tuples that may be seen as paired tuples, each
    pair being defined by 'expect_tuple, set_tuple' as follows:

        ([event, [lineno[, co_name[, eargs]]]]), (set_type, [sargs])

    * 'expect_tuple' describes the expected current state of the Bdb instance.
      It may be the empty tuple and no check is done in that case.
    * 'set_tuple' defines the set_*() method to be invoked when the Bdb
      instance reaches this state.

    Example of an 'expect_tuple, set_tuple' pair:

        ('line', 2, 'tfunc_main'), ('step', )

    Definitions of the members of the 'expect_tuple':
        event:
            Name of the trace event. The set methods that do not give back
            control to the tracer [1] do not trigger a tracer event and in
            that case the next 'event' may be 'None' by convention, its value
            is not checked.
            [1] Methods that trigger a trace event are set_step(), set_next(),
            set_return(), set_until() and set_continue().
        lineno:
            Line number. Line numbers are relative to the start of the
            function when tracing a function in the test_bdb module (i.e. this
            module).
        co_name:
            Name of the function being currently traced.
        eargs:
            A tuple:
            * On an 'exception' event the tuple holds a class object, the
              current exception must be an instance of this class.
            * On a 'line' event, the tuple holds a dictionary and a list. The
              dictionary maps each breakpoint number that has been hit on this
              line to its hits count. The list holds the list of breakpoint
              number temporaries that are being deleted.

    Definitions of the members of the 'set_tuple':
        set_type:
            The type of the set method to be invoked. This may
            be the type of one of the Bdb set methods: 'step', 'next',
            'until', 'return', 'continue', 'break', 'quit', or the type of one
            of the set methods added by test_bdb.Bdb: 'ignore', 'enable',
            'disable', 'clear', 'up', 'down'.
        sargs:
            The arguments of the set method if any, packed in a tuple.
N)contextmanager)islicerepeat)
import_helper)	os_helper)
patch_listceZdZdS)BdbExceptionN)__name__
__module____qualname__A/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_bdb.pyr
r
Asrr
ceZdZdZdS)BdbErrorz!Error raised by the Bdb instance.Nrrr
__doc__rrrrrBsEEEErrceZdZdZdS)BdbSyntaxErrorzSyntax error in the test case.NrrrrrrCs$H$H$H$HrrceZdZdZdS)BdbNotExpectedErrorzUnexpected result.NrrrrrrDs)A)A)A)ArrcBtjdSN)_bdb
BreakpointclearBreakpointsrrrreset_BreakpointrLsO$$&&&&&rcFdtjjD}|sdSd}|D]|}|sd}d}|jrdnd}|jrdnd	}|d
|j|||j|jtj	
|j|jfzz
}|j
r
|d|j
z
}|dz
}}|S)
Ncg|]}||Srr).0bps  r
<listcomp>z$info_breakpoints.<locals>.<listcomp>Ps>>>r2>r>>>rFz!BpNum Temp Enb Hits Ignore Where
Tzyes zno  yeszno z%-5d %s %s %-4d %-6d at %s:%dz
	stop only if 
)rr
bpbynumber	temporaryenablednumberhitsignoreospathbasenamefilelinecond)bp_listheader_addedr"infodispenabs      rinfo_breakpointsr8Os>>T_7>>>GrL	 7DL1vv6
-uu0YdBGRYW%%bg..99	:7	7DRWW66DKrc`eZdZdZfdZ		d
fd	ZfdZdZdZd	Z	d
Z
dZdZxZ
S)Bdbz$Extend Bdb to enhance test coverage.cXd|_t|||Sr)	currentbpsupertrace_dispatch)selfframeeventarg	__class__s    rr>zBdb.trace_dispatchgs&ww%%eUC888rFNct|tri|tkrt}n#t	j|dd}|j}t||}|j}	|	j	}|	j
}|	j}t
|||||}
t|
trt|
|
S)N)r(r2funcname)
isinstancestr__file__globals	importlib
import_module__dict__eval__code__co_filenameco_firstlinenoco_namer=	set_breakr)r?filenamelinenor(r2rFglobals_modulefunccoderesrCs           rrSz
Bdb.set_breakksh$$
	$8##"99"0#2#??!?(++D=D'H(F|Hgg&I&*X ??c3	 3--
rct||\|_|_|j|jd|_|j|jfSNr)r=	get_stackstackindexr@)r?ftrCs   rr]z
Bdb.get_stacksI!&!2!21a!8!8
DJZ
+A.
z4:%%rcP||}|xjdz
c_dS)z8Increment the ignore count of Breakpoint number 'bpnum'.N)get_bpbynumberr,r?bpnumr"s   r
set_ignorezBdb.set_ignores(

 
 
'
'
		Q				rc>||}d|_dS)NTrdr)res   r
set_enablezBdb.set_enables 

 
 
'
'


rc>||}d|_dS)NFrires   rset_disablezBdb.set_disables 

 
 
'
'


rcT|||}|rt|dSr)clear_breakr)r?fnamerUerrs    r	set_clearz
Bdb.set_clears5uf--	 3--	 	 rc|jstd|xjdzc_|j|jd|_dS)zMove up in the frame stack.zOldest framercrN)r_rr^r@r?s rset_upz
Bdb.set_upsBz	+>***

a

Z
+A.


rc|jdzt|jkrtd|xjdz
c_|j|jd|_dS)zMove down in the frame stack.rczNewest framerN)r_lenr^rr@rss rset_downzBdb.set_downsQ:>S__,,>***

a

Z
+A.


r)FNN)rrr
rr>rSr]rgrjrlrqrtrw
__classcell__rCs@rr:r:ds..99999AE(&&&&&

   
//////////rr:ceZdZdZdfd	ZdZfdZdZdZd	Z	d
Z
dZdZd
Z
dZdZdZdZdZdZdZddZdZdZxZS)Tracerz$A tracer for testing the bdb module.NFct|||_||_|d|znd|_|dS)NskipzDry-run results for %s:)r=__init__
expect_setdry_runheader	init_test)r?rr~r	test_caserCs     rrzTracer.__init__s_
d###$ ,19<<26	
rcd|_d|_d|_tt	|jddd|_tt	|jddd|_dS)Nrrc)
cur_except
expect_set_nobreakpoint_hitslistrr
expected_listset_listrss rrzTracer.init_tests\#!&!T1"E"EFFVDOQa@@AA


rc|j|j|dkrK	t|||}|S#t$r}||_|jcYd}~Sd}~wwxYwt|||SN	exception)rr=r>r
)r?r@rArBrZerCs      rr>zTracer.trace_dispatchs
?&/!K
+gg,,UE3??

+
+
+"#*******
+77))%<<<s$<
A
AAAc||sdS|d|||dS)Ncall)	stop_here
process_eventnext_set_method)r?r@
argument_lists   r	user_callzTracer.user_callsM~~e$$	F65-888rcB|d||jrR|jrKtd}|dD]}t
d|z|d|_|dS)Nr1r&z  )	rrrr8stripsplitprintdelete_temporariesr)r?r@r5r1s    r	user_linezTracer.user_lines65)))<	#D0	##%%++D11D

4((
#
#dTk""""!!!#rc\|d|||dS)Nreturn)rr)r?r@return_values   ruser_returnzTracer.user_returns28UL999rch||_|d||dSr)exc_inforr)r?r@rs   ruser_exceptionzTracer.user_exceptions7 
;...rc(|jg}||f|_dSr)r<r)r?rBr3s   rdo_clearzTracer.do_clears>" '1rcb|jr%|jdD]}||dSdSNrc)rclear_bpbynumber)r?ns  rrzTracer.delete_temporariessO	))!,
)
)%%a((((	)	)
)
)rc|xjdz
c_	|jd|_n%#t$rtd|jzwxYw|jd|_dS)Nrcrz-expect_set list exhausted, cannot pop item %d)rrpopexpect
IndexErrorrr	set_tuplerss rpop_nextzTracer.pop_nextsa	$,0033DKK	$	$	$%?"#$$
$	$**1--s	2"Acxd}|dkr
jd}||jjsjg}|gf_|_jrjdSj	r6
j	d|d|dvrddStj	dkr:|dkrj	d\}t}jsdjz
|jdd	
fd
|DfdjdDd
t|jd
ddS|dkrNt%jd
j	ds*djjfzdSdSdSdS)NrrrzWrong event type)rrr1z(No breakpoints hit at expect_set item %dzBreakpoint numbers do not matchc g|]
}|Srr)r!rbpss  rr#z(Tracer.process_event.<locals>.<listcomp> s!9!9!9Q#a&!9!9!9rcDg|]}|jSr)rdr+)r!rr?s  rr#z(Tracer.process_event.<locals>.<listcomp>!s:666((++0666rzWrong breakpoint hit countrczWrong temporary breakpointsz/Wrong exception at expect_set item %d, got '%s')rr]r<rrArrprint_staterrcheck_equalcheck_lno_namecheck_expect_max_sizervsortedkeysraise_not_expectedrrG)	r?rAr@argstbr3temporariesbpnumsrs	`       @rrzTracer.process_eventsKq!Bub!!!>%d.B%~&G$+R=D 


<	T[)))F;	"T[^U4FGGG!!!&&&&&q)))))



!
!#';q> [

+++,++B*+,,,  )=a)@5777  !9!9!9!9&!9!9!96666!1!46660222  !4!4d6J16M133333+%%!$-"2DKNCC=++I+T];<====='"
!"&%==rcV||krdS|d||j|fzdS)Nz"%s at expect_set item %d, got '%s')rr)r?expectedresultmsgs    rrzTracer.check_equal-sOvF D!$d&8& A!B	C	C	C	C	Crct|j}|dkr6|}||jd|d|dkr3||jd|jjjddSdS)z+Check the line number and function co_name.rczWrong line numberrzWrong function nameN)rvrlno_abs2relrr@f_coderR)r?srUs   rrzTracer.check_lno_name3sq55%%''FT[^V5HIIIq55T[^TZ->-F0E
G
G
G
G
G5rctt|j|krtd|jd|jdS)NzInvalid size of the z expect tuple: )rvrrrA)r?sizes  rrzTracer.check_expect_max_size=sGt{d"" ."&***dkk";<<
<#"rc||jjj}|jj}||t
kr||jjjz
dzn|Sr)canonicr@rrPf_linenorIrQr?rorUs   rrzTracer.lno_abs2relBs^TZ.:;;$X....$*+::Q>>4:	<rc|rH|||tkr|jjj|zdz
n|Sr)rrIr@rrQrs   rlno_rel2abszTracer.lno_rel2absHsO<<..$,,x2H2HHH
!069A==	rc|}|jjj}d|j||fz}|jrsd}|jdD]/}|dkr|dz
}||d||jz
}0|dz
}d|zdzt|jdzd	z}|d|zz
}n#|jd
kr|d|j	dj
zz
}|dz
}|dt|jzd
zS)Nz('%s', %d, '%s'{rz, z: }(rc)rz),  ,)
rr@rrRrArrdr+rHrrljustr)r?rUrRstaterrs      r	get_statezTracer.get_stateMs+!!##*#+!TZ$AA
	6C)!,
C
C#::4KC111d&9&9!&<&<&A&ABB3JC)d"S)=a)@%A%AACGCTCZEE
Z;
&
&TDM!,555E
{{2T^!4!44s::rc|(|jdkrtt|td|j|fzdS)Nrcz%d: %s)rrr)r?rs  rrzTracer.print_state_sT$"4"9"9GGG&MMM
h$,dnn.>.>??@@@@@rc|dz
}|dt|jzz
}|d|zz
}t|)Nr&z  Expected: %s
z  Got:      )rHrrrr?rs  rrzTracer.raise_not_expectedesLt!C$4$444~ 0 000!#&&&rcT|jd}t|jdkr
|jdnd}t|d|z}|dvr|dS|dvr||jdS|dkrBd}|r+||jjj|d}||j|dS|r|dvs|d	vr|d
vr:|^}}}|||}||g}||||n|dvr||n|d	vr
|d|_|	|j
r|n0|jr|
|d|dSt!d
|jz)Nrrrcset_)stepcontinuequit)nextruntil)breakclearr,enabledisable)updown)rr)r,rrrz"%s" is an invalid set_tuple)rrvgetattrr@rrrPextendrArrrrrrrr)r?set_typer
set_methodrUroremains       rrzTracer.next_set_methodks+>!$$'$7$71$<$<t~a  $T6H#455
333JLLLF
+
+
+Jtz"""F

 
 F
3))$**;*G*.q'33Jtz6***F
	1X"///3;~3M3M---)-&v))%88vF###
D!!!<<<
D!!!^++
DJMMOOO|
.  """";*'')))**1---  """"" !?!%"011
1r)NFNr)rrr
rrrr>rrrrrrrrrrrrrrrrrrxrys@rr{r{s}..BBB=====$
222
)))
...0=0=0=dCCCGGG<<<
<<<
;;;$AAAA'''01010101010101rr{c(eZdZdZddZdZddZdS)	TracerRunzAProvide a context for running a Tracer instance with a test case.Nc||_|j|_t|j||j||_d|_dS)N)r~rr)rrr{ridtracer_original_tracer)r?rr~s   rrzTracerRun.__init__sP" (Y1%)\Y\\^^MMM $rc\ttj|_|jSr)rsysgettracerrrss r	__enter__zTracerRun.__enter__s$ #{rcttj|jd}|jjr|dz
}|d|jjzz
}|{tt|rft|trQ|jrJ|jd}|r|d|zz
}|jrt|dS|j|	|r4|jrt|dS|j|dSdS)Nr$z+All paired tuples have not been processed, zthe last one was number %drr&T)rrsettracerrrr
issubclassrrG
BaseExceptionrrrrfail)r?type_value	traceback	not_emptyerr_msgs      r__exit__zTracerRun.__exit__s0T*+++	;	5FFI6+34
5I,?!G!G%//

DEJ

D*Q-0ti//G<1'NNN4N''0000	/|
/i     ##I.....		/	/rr)NNN)rrr
rrrrrrrrrsQKK%%%%//////rrcd}ddg}||t}d|_d|_t	|tdt
||_t|5t||5}|
tdddn#1swxYwYddddS#1swxYwYdS)	a{Run a test and print the dry-run results.

    'modules':  A dictionary mapping module names to their source code as a
                string. The dictionary MUST include one module named
                'test_module' with a main() function.
    'set_list': A list of set_type tuples to be run on the module.

    For example, running the following script outputs the following results:

    *****************************   SCRIPT   ********************************

    from test.test_bdb import run_test, break_in_func

    code = '''
        def func():
            lno = 3

        def main():
            func()
            lno = 7
    '''

    set_list = [
                break_in_func('func', 'test_module.py'),
                ('continue', ),
                ('step', ),
                ('step', ),
                ('step', ),
                ('quit', ),
            ]

    modules = { 'test_module': code }
    run_test(modules, set_list)

    ****************************   results   ********************************

    1: ('line', 2, 'tfunc_import'),    ('next',),
    2: ('line', 3, 'tfunc_import'),    ('step',),
    3: ('call', 5, 'main'),            ('break', ('test_module.py', None, False, None, 'func')),
    4: ('None', 5, 'main'),            ('continue',),
    5: ('line', 3, 'func', ({1: 1}, [])), ('step',),
      BpNum Temp Enb Hits Ignore Where
      1     no   yes 1    0      at test_module.py:2
    6: ('return', 3, 'func'),          ('step',),
    7: ('line', 7, 'main'),            ('step',),
    8: ('return', 7, 'main'),          ('quit',),

    *************************************************************************

    c3zK		t|}t|}|V|V'#t$rYdSwxYwr)r
StopIteration)abxys    rgenzrun_test.<locals>.gensa	
GGGG	

			FF	s(,
::rrTcdSrrrrr<lambda>zrun_test.<locals>.<lambda>strrr}N)rBaseTestCaserrrriterrcreate_modulesrruncalltfunc_import)modulesrr~rsltestrs       rrun_testrsYfj	!BIIh>>DDLmDG33vbzz4884455DO		 	 ))
t$
'
'
'	)6NN<(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)))))))))))))))))))s6CB:.C:B>	>CB>	CCCc	#Ktj5tjtj	|D]r}|dz}t|dd5}|tj
||dddn#1swxYwYtj|stjdV|D]}tj|tjn<#|D]}tj|tjwxYw	ddddS#1swxYwYdS)N.pywzutf-8)encoding)rtemp_cwdrr.appendr-getcwdopenwritetextwrapdedent	linecache
checkcacherKinvalidate_cachesrforgetr)rmror`s    rrrs				

	$$$	
,
,E	%w77791GGHOGAJ77888999999999999999$U++++')))EEE
(
($Q''''HLLNNNN
(
($Q''''HLLNNNNN

















sM1ED#.BDB!!D$B!%/D8E9EEEEFcd|d|||ffS)Nrr)rFror(r2s    r
break_in_funcr+&sUD)T8<<<rtest_module_for_bdbrc6ddl}|dSr\)r,main)r,s rrr+s&rcNd}ttd}d}d}dS)Nr)tfunc_firsttfunc_secondlnos r
tfunc_mainr7/s,
CMMMNNN
C
C
CCCrcd}d}d}dS)Nrrrr5s rr3r37s
C
C
CCCrc
d}dS)Nrrr5s rr4r4<s
CCCrceZdZdZeZddZdS)rzBase class for all tests.Nc.||dr)failureExceptionrs  rrzBaseTestCase.failDs##C((d2rr)rrr
rrrrrrrr?s3##G333333rrceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZeejd
ZdZdZdZdS)
StateTestCasez;Test the step, next, return, until and quit 'set_' methods.cgd|_t|5}|tddddS#1swxYwYdS)N)r1rr7rr1rr7rrrcr3rr1rr3rrrrr7r?rs  r	test_stepzStateTestCase.test_stepL


t__	'NN:&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'AAAc8dD]}||5ddddddtdffd	d
dddd
d
igff|fddg|_t|5}|t
dddn#1swxYwYdddn#1swxYwYdS)N)rrrrArrBrCrr)Nonercr3rr1r3rcr1r9r3rE)subTestrIrrrr7)r?rrs   r test_step_next_on_last_statementz.StateTestCase.test_step_next_on_last_statementVs;(	/	/Hx00

/

/-Z-Z.gRS}=U.^Q
1r{;h\.Z
#t__/NN:...///////////////

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/	/	/s55BA7+B7A;;B>A;?BB	B	cgd|_t|5}|tddddS#1swxYwYdS)N)
rArrBr
r1r9r7r)rrcr4r)r1rr4rErFrGs  r	test_nextzStateTestCase.test_nextd


t__	'NN:&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'rJcd}t|i}t|5gd|_t|5}|t
dddn#1swxYwYddddS#1swxYwYdS)N9
            def main():
                lno = 3
        )r1rrr
r1rrrE)TEST_MODULErrrrrr?rYrrs    rtest_next_over_importz#StateTestCase.test_next_over_importos '
G
$
$	-	-DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s4A3AA3A	A3"A	#A33A7:A7cgd|_t|5}|tddddS#1swxYwYdS)N)rArrBrrCr
rDrErFrGs  rtest_next_on_plain_statementz*StateTestCase.test_next_on_plain_statement}s


t__	'NN:&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'rJcgd|_t|5}|tddddS#1swxYwYdS)N)
rArrBrrCrrMrr7r
rSrErFrGs  rtest_next_in_caller_framez'StateTestCase.test_next_in_caller_frames


t__	'NN:&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'rJcgd|_t|5}|tddddS#1swxYwYdS)N)rArrBrrCrrDrrr9r3rrSrErFrGs  rtest_returnzStateTestCase.test_returns


t__	'NN:&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'rJcgd|_t|5}|tddddS#1swxYwYdS)N)
rArrBrrCr`rard)rr2r7rErFrGs  rtest_return_in_caller_framez)StateTestCase.test_return_in_caller_framerUrJcgd|_t|5}|tddddS#1swxYwYdS)N)
rArrBrrCrrD)r)r9rOrErFrGs  r
test_untilzStateTestCase.test_untilrUrJc	dtddddddddigffdd	d
g|_t|5}|tddddS#1swxYwYdS)NrAr3)rMrr7rNr1rrc)r)i'rerE)r+rrrr7rGs  rtest_until_with_too_large_countz-StateTestCase.test_until_with_too_large_counts%]=5Q5Q%^
Q
1r{35H(Z	
t__	'NN:&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'sAA #A cgd|_t|5}|tddddS#1swxYwYdS)N)
rArrBrrCr`ra)r)r1)r1r1r7rErFrGs  rtest_until_in_caller_framez(StateTestCase.test_until_in_caller_framerUrJcddtjDtjdd<d}t|i}t|5gd|_dddtf}t||5}|tdddn#1swxYwYddddS#1swxYwYdS)Nc3NK|] }|jd|V!dS)_frozen_importlibN)r
startswith)r!items  r	<genexpr>z*StateTestCase.test_skip.<locals>.<genexpr>sM

))*=>>






rrW)rXrrYrEz
importlib*	zipimportzencodings.*r})r	meta_pathrZrrrrr)r?rYrr~rs     r	test_skipzStateTestCase.test_skipsL






aaa '
G
$
$	-	-DO!+}kJD4d+++
-v|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s6&B%&B
B%
B	B%B	B%%B),B)cztdg}||dddS)Nz	anything*r}F)r:assertIsis_skipped_module)r?bdbs  rtest_skip_with_no_name_modulez+StateTestCase.test_skip_with_no_name_modules>}%%%

c++D11599999rcddg|_t|5}|t|jt
ddddS#1swxYwYdS)NrA)r)rrassertRaisesrrr7rGs  r	test_downzStateTestCase.test_downs
&z
t__	Dh
CCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D'A

AAcgd|_t|5}|tddddS#1swxYwYdS)N)rArrBrrCr`rarErFrGs  rtest_upzStateTestCase.test_uprIrJN)rrr
rrHrQrTr\r^rbrfrhrjrlrnrrrvrwr|rrrrrr?r?IsEE'''///	'	'	'---
'
'
''''
'
'
'	'	'	'	'	'	''''	'	'	'Z
---2:::DDD'''''rr?cTeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
S)BreakpointTestCasezTest the breakpoint set method.cddg|_t|5}|t|jt
ddddS#1swxYwYdS)NrX)r)z/non/existent/module.pyrc)rrr~rrrrGs  rtest_bp_on_non_existent_modulez1BreakpointTestCase.test_bp_on_non_existent_modules')R
t__	FhEEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	Frc*d}t|i}t|5ddtdffg|_t	|5}|t|jtdddn#1swxYwYddddS#1swxYwYdS)NrWrXrr9)	rZrTEST_MODULE_FNAMErrr~rrrr[s    rtest_bp_after_last_statementz/BreakpointTestCase.test_bp_after_last_statement
s> '
G
$
$	J	J+g8I17M-NDO4
JF!!(FNLIII
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J		J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	Js4"B'A0$B0A4	4B7A4	8BBBcd}t|i}t|5dtdtddtdtddddddd	d	id	gffddddd
d	id
gffdg
|_t|5}|tdddn#1swxYwYddddS#1swxYwYdS)N
            def func():
                lno = 3

            def main():
                for i in range(2):
                    func()
        rXrXTrMrrrNr1rrcrrErZrr+rrrrrr[s    rtest_temporary_bpz$BreakpointTestCase.test_temporary_bps] '
G
$
$	-	-+!&*;TBB+!&*;TBB+>FaUQCL1>FaUQCL1:DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s6AB56BB5B!	!B5$B!	%B55B9<B9cd}t|i}t|5dtdtdtdtddddddd	dd
d
igffddd
dddd	ddd
idgffddddd	dd
digffdg|_t|5}|tdddn#1swxYwYddddS#1swxYwYdS)N
            def func():
                lno = 3

            def main():
                for i in range(3):
                    func()
        rXrXrT)rrrNr1rrc)rrrMrrXrrcrrrrErr[s    rtest_disabled_temporary_bpz-BreakpointTestCase.test_disabled_temporary_bp.s '
G
$
$	-	-+!&*;<<+!&*;TBB+3E+>FaUBK03D#3E#>FaUQCL13D#>FaUBK0:
DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s6A+CB-!C-B1	1C4B1	5CC	C	c
Bd}t|i}t|5dtdtdddddd	dd
d	igffdg|_t|5}|tdddn#1swxYwYddddS#1swxYwYdS)Nz
            def func(a):
                lno = 3

            def main():
                for i in range(3):
                    func(i)
        rXrXFza == 2rrNr1rrcrErr[s    rtest_bp_conditionz$BreakpointTestCase.test_bp_conditionJs2 '
G
$
$	-	-+!&*;UHMM+>FaUBK0:	DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-5:BA<0B<B	BB	BBBc
Bd}t|i}t|5dtdtdddddd	dd
d
igffdg|_t|5}|tdddn#1swxYwYddddS#1swxYwYdS)Nzk
            def func(a):
                lno = 3

            def main():
                func(0)
        rXrXFz1 / 0rrNr1rrcrErr[s    r)test_bp_exception_on_condition_evaluationz<BreakpointTestCase.test_bp_exception_on_condition_evaluation^s2 '
G
$
$	-	-+!&*;UGLL+>FaUBK0:	DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-rcBd}t|i}t|5dtdtdddddddd	d
igffdg|_t|5}|tdddn#1swxYwYddddS#1swxYwYdS)NrrXrXrr,rrNr1rrcrrErr[s    rtest_bp_ignore_countz'BreakpointTestCase.test_bp_ignore_countqs4 '
G
$
$		-		-+!&*;<<+2C+.FaUBK0*DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-		-		-		-		-		-		-		-		-		-		-		-		-		-		-		-		-		-		-rcd}t|i}t|5dtdtdtdtdddddddd	dd
digffdd
ddd	dd
d
igffddd	ddd
igffdg|_t|5}|tdddn#1swxYwYddddS#1swxYwYdS)NrrXrXrrrrNr1rrrcrrrErr[s    r test_ignore_count_on_disabled_bpz3BreakpointTestCase.test_ignore_count_on_disabled_bps} '
G
$
$	-	-+!&*;<<+!&*;<<+2C+2D+.FaUBK02C#.FaUBK0.FaUBK0*DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s6A'CB)C)B-	-C0B-	1CCCcd}t|i}t|5ddtdffddtdffddtdffddddd	d
d
igffdddd	dd
igffdtdffddddd	dd
igffdg|_t	|5}|tdddn#1swxYwYddddS#1swxYwYdS)Nz
            def func():
                lno = 3
                lno = 4

            def main():
                for i in range(3):
                    func()
        rXrrrr9rNr1rXrcr)rMr9rXrrE)rZrrrrrrr[s    rtest_clear_two_bp_on_same_linez1BreakpointTestCase.test_clear_two_bp_on_same_lines '
G
$
$	-	-+7=NPQ<R2S+7=NPQ<R2S+7=NPQ<R2S+.FaUBK0.FaUBK07=NPQ<R2S#.FaUBK0*	DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s6A#B=>B%B=%B)	)B=,B)	-B==CCcddtdffg|_t|5}|t|jtddddS#1swxYwYdS)NrXrrc)rIrrr~rrrrGs  rtest_clear_at_no_bpz&BreakpointTestCase.test_clear_at_no_bps''Ha=)A
t__	FhEEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	Fs'AAAc~	tt}|t}|td|||dgit}|td|td|td|||dgi|||gdi|td|||dgi|||gdit}|||dgi|||gdi|||gdi|td|||dgi|||ddgi|||gdit}|td|||dgi|||ddgi|||gdi|||gditt}|td	|||dgi|||ddgi|||gdi|||gdi|||d	gidS)
Nrcrrr9)rcrrr9)rrr9r0)rr9r0r1)rr:rrIrSassertEqualget_all_breaksrn)r?db1rodb2db3db4db5s       r(test_load_bps_from_previous_Bdb_instancez;BreakpointTestCase.test_load_bps_from_previous_Bdb_instances?eeH%%

h"""++--s|<<<ee

h"""

h"""

h"""++--s|<<<++--|||/DEEE!$$$++--s|<<<++--yyy/ABBBee++--s|<<<++--yyy/ABBB++--yyy/ABBB!$$$++--s|<<<++--1v???++--yyy/ABBBee

h"""++--s|<<<++--1v???++--yyy/ABBB++--yyy/ABBBee

h"""++--s|<<<++--1v???++--yyy/ABBB++--yyy/ABBB++--s|<<<<<rN)rrr
rrrrrrrrrrrrrrrrrs))FFFJJJ---.---8---(---&---*---6---2FFF(=(=(=(=(=rrceZdZdZdZdZdS)RunTestCasez Test run, runeval and set_trace.cd}gd|_t|5}|tt	j|ddddddS#1swxYwYdS)Nz
            lno = 2
        ))r1r<module>r)rrrrEz<string>exec)rrruncompiler#r$)r?rYrs   r
test_run_stepzRunTestCase.test_run_steps


t__	KJJwxt44j&IIJJJ	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	Ks7AA#&A#c2d}t|i}t|5gd|_ddl}t	|5}|dt
tdddn#1swxYwYddddS#1swxYwYdS)NrW)
)r1rcrr)rrr.r)r1rr.r)rrr.r)rrcrrErztest_module_for_bdb.main())rZrrr,rrunevalrJlocals)r?rYrr,rs     rtest_runeval_stepzRunTestCase.test_runeval_stepsI '
G
$
$
	R
	RDO
'&&&4
RF;WYYQQQ
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
	R
	R
	R
	R
	R
	R
	R
	R
	R
	R
	R
	R
	R
	R
	R
	R
	R
	Rs4B0A4(B4A8	8B;A8	<BBBN)rrr
rrrrrrrrs@**
K
K
KRRRRRrrc0eZdZdZdZdZdZdZdZdS)IssuesTestCasezTest fixed bdb issues.cDd}d}t|d|i}t|5dtddddd	d
dddigffdd
dddg
|_t	|5}|tdddn#1swxYwYddddS#1swxYwYdS)Nz
            from test_module_for_bdb_2 import func
            def main():
                func()
                lno = 5
        z9
            def func():
                lno = 3
        test_module_for_bdb_2rXrXztest_module_for_bdb_2.pyrrNr1rrcr)rrrX)r1r0r.rE)rZrr+rrrr)r?code_1code_2rrs     r+test_step_at_return_with_no_trace_in_callerz:IssuesTestCase.test_step_at_return_with_no_trace_in_callersH

#V
G
$
$
	-
	-+!&*DEE+.FaUBK0*%*#*
DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
	-
	-
	-
	-
	-
	-
	-
	-
	-
	-
	-
	-
	-
	-
	-
	-
	-
	-s57BA=1B=B	BB	BBBc<d}t|i}dD]}||5t|5dtdtdddd	dd
d
igff|fg|_|dkr(|jdd
dtfdddgn|jddgt|5}|	tdddn#1swxYwYdddn#1swxYwYdddn#1swxYwYdS)Nz
            def test_gen():
                yield 0
                lno = 4
                return 123

            def main():
                it = test_gen()
                next(it)
                next(it)
                lno = 11
        )rrrrLrXtest_genrrNr1rrcrr
r.r)rrr.rEr1r9r)rZrPrr+rrrrrrr)r?rYrrrs     r#test_next_until_return_in_generatorz2IssuesTestCase.test_next_until_return_in_generator/s
 '3	5	5Hx00
5
5#G,,553)*6GHH3nJ!A<xl	'DO 8++..)2v}Ey3z..4jB#45F|444555555555555555%555555555555555
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5	5	5sYDBC8:C!	C8!C%
%C8(C%
)C8,D8C<<D?C<DD	D	cdd}t|i}t|5dtdtdddddddigffd	d
d	dd	dd	d
ddtfdddg|_t
|5}|tdddn#1swxYwYddddS#1swxYwYdS)Nz
            def test_gen():
                yield 0
                lno = 4
                yield 1
                return 123

            def main():
                for i in test_gen():
                    lno = 10
                lno = 11
        rXrrrNr1rrcr
r)r1r0r)r1r1rr	r.r)r1r.rE	rZrr+rrrrrrr[s    r'test_next_command_in_generator_for_loopz6IssuesTestCase.test_next_command_in_generator_for_loopXsP '
G
$
$	-	-+!*.?@@+J!A4'''a7$DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s6AB%&B
B%
B	B%B	B%%B),B)c
\d}t|i}t|5dtdtdddddddigffd	d
d	ddd
tfdddg|_t
|5}|tdddn#1swxYwYddddS#1swxYwYdS)N4
            def test_subgen():
                yield 0
                return 123

            def test_gen():
                x = yield from test_subgen()
                return 456

            def main():
                for i in test_gen():
                    lno = 12
                lno = 13
        rXrrrNr1r2rcr
)r1rrrr.rr1
r.rErr[s    r/test_next_command_in_generator_with_subiteratorz>IssuesTestCase.test_next_command_in_generator_with_subiteratorwsF
 '
G
$
$	-	-+!*.?@@+.J!A4*'*b&-8*$*	DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s6AB!"B	=B!	B
	
B!B
	B!!B%(B%c
nd}t|i}t|5dtdtdddddddigffd	d
ddtfd	d
d
dtfdddg|_t
|5}|tdddn#1swxYwYddddS#1swxYwYdS)NrrXtest_subgenrrNr1rrcrdrr2rrr.rrrErr[s    r1test_return_command_in_generator_with_subiteratorz@IssuesTestCase.test_return_command_in_generator_with_subiteratorsO
 '
G
$
$	-	-+!-1BCC+nMQqE2;7la];lb&-8j$j	DO4
-F|,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s6AB*+BB*B	B*B	B**B.1B.N)	rrr
rrrrrrrrrrrsf  ---<'5'5'5R--->--->-----rrceZdZdZdS)TestRegressionsc|dttjdfdS)NzWarning: lineno is None)assertInr:format_stack_entryr	_getframerss r!test_format_stack_entry_no_linenoz1TestRegressions.test_format_stack_entry_no_linenosJ

/ee..
/FGG	I	I	I	I	IrN)rrr
rrrrrrs(IIIIIrr__main__r)0rr{rrr-unittestr#rKr%
contextlibr	itertoolsrrtest.supportrrr	Exceptionr
rrrrrr8r:r{rrrrIr+rZrrr7r3r4TestCaserr?rrrrrr.rrr<module>rs00d



				%%%%%%$$$$$$$$&&&&&&""""""######$####9###EEEEE|EEEHHHHH\HHHAAAAA,AAA'''*>/>/>/>/>/$(>/>/>/@w1w1w1w1w1Sw1w1w1r,/,/,/,/,/,/,/,/\H)H)H)H)T #+e$====$%'
333338$333u'u'u'u'u'Lu'u'u'ni=i=i=i=i=i=i=i=X R R R R R, R R RDe-e-e-e-e-\e-e-e-PIIIIIh'IIIzHMOOOOOr