HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_bdb.cpython-37.opt-2.pyc
B

��gפ�@s�ddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZddl
ZGdd�de�ZGdd�de�ZGdd	�d	e�ZGd
d�de�ZdZdd
�Zdd�ZGdd�dej�ZGdd�de�ZGdd�d�Zd4dd�Ze	dd��Zeddfdd�ZdZedZdd �Z d!d"�Z!d#d$�Z"d%d&�Z#Gd'd(�d(ej$�Z%Gd)d*�d*e%�Z&Gd+d,�d,e%�Z'Gd-d.�d.e%�Z(Gd/d0�d0e%�Z)d1d2�Z*e+d3k�r�e*�dS)5�N)�contextmanager)�islice�repeatc@seZdZdS)�BdbExceptionN)�__name__�
__module__�__qualname__�r	r	�)/usr/local/lib/python3.7/test/test_bdb.pyr>src@seZdZdS)�BdbErrorN)rrrr	r	r	r
r?src@seZdZdS)�BdbSyntaxErrorN)rrrr	r	r	r
r@src@seZdZdS)�BdbNotExpectedErrorN)rrrr	r	r	r
r
Asr
cCsdtj_itj_dgtj_dS)N�)�_bdb�
Breakpoint�nextZbplist�
bpbynumberr	r	r	r
�reset_BreakpointIsrcCs�dd�tjjD�}|sdSd}x~|D]v}|s4d}d}|jr>dnd}|jrLd	nd
}|d|j|||j|jtj	�
|j�|jf7}|j
r�|d|j
f7}|d
7}q$W|S)NcSsg|]}|r|�qSr	r	)�.0�bpr	r	r
�
<listcomp>Osz$info_breakpoints.<locals>.<listcomp>�Fz!BpNum Temp Enb Hits Ignore Where
Tzyes zno  Zyeszno z%-5d %s %s %-4d %-6d at %s:%dz
	stop only if %s�
)rrr�	temporary�enabledZnumber�hits�ignore�os�path�basename�file�line�cond)�bp_listZheader_addedr�infoZdispZenabr	r	r
�info_breakpointsNs"
r%csfeZdZ�fdd�Zd�fdd�	Z�fdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Z�ZS)�Bdbcsd|_t��|||�S)N)�	currentbp�super�trace_dispatch)�self�frame�event�arg)�	__class__r	r
r)fszBdb.trace_dispatchFNcs�t|t�rT|tkrt�}nt�|dd��}|j}t||�}|j}	|	j	}|	j
}|	j}t�j
|||||d�}
t|
t�r|t|
��|
S)N���)rr"�funcname)�
isinstance�str�__file__�globals�	importlib�
import_module�__dict__�eval�__code__�co_filename�co_firstlineno�co_namer(�	set_breakr)r*�filename�linenorr"r0�globals_�module�func�code�res)r.r	r
r=js



z
Bdb.set_breakcs4t��||�\|_|_|j|jd|_|j|jfS)Nr)r(�	get_stack�stack�indexr+)r*�f�t)r.r	r
rE~sz
Bdb.get_stackcCs|�|�}|jd7_dS)Nr)�get_bpbynumberr)r*�bpnumrr	r	r
�
set_ignore�s
zBdb.set_ignorecCs|�|�}d|_dS)NT)rJr)r*rKrr	r	r
�
set_enable�s
zBdb.set_enablecCs|�|�}d|_dS)NF)rJr)r*rKrr	r	r
�set_disable�s
zBdb.set_disablecCs|�||�}|rt|��dS)N)Zclear_breakr)r*�fnamer?�errr	r	r
�	set_clear�sz
Bdb.set_clearcCs2|jstd��|jd8_|j|jd|_dS)NzOldest framerr)rGrrFr+)r*r	r	r
�set_up�sz
Bdb.set_upcCs@|jdt|j�krtd��|jd7_|j|jd|_dS)NrzNewest framer)rG�lenrFrr+)r*r	r	r
�set_down�szBdb.set_down)FNN)
rrrr)r=rErLrMrNrQrRrT�
__classcell__r	r	)r.r
r&csr&cs�eZdZd+�fdd�	Zdd�Z�fdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd,d%d&�Zd'd(�Zd)d*�Z�ZS)-�TracerNFcs<t�j|d�||_||_|dk	r*d|nd|_|��dS)N)�skipzDry-run results for %s:)r(�__init__�
expect_set�dry_run�header�	init_test)r*rYrWrZ�	test_case)r.r	r
rX�s
zTracer.__init__cCsBd|_d|_d|_tt|jddd��|_tt|jddd��|_dS)Nr�r)�
cur_except�
expect_set_no�breakpoint_hits�listrrY�
expected_list�set_list)r*r	r	r
r\�s
zTracer.init_testc
sn|jdk	r|j�|dkrZyt��|||�}|Stk
rV}z||_|jSd}~XYqjXnt��|||�SdS)N�	exception)r_r(r)r)r*r+r,r-rD�e)r.r	r
r)�s
zTracer.trace_dispatchcCs(|�|�sdS|�d||�|��dS)N�call)Z	stop_here�
process_event�next_set_method)r*r+Z
argument_listr	r	r
�	user_call�s
zTracer.user_callcCs^|�d|�|jrD|jrDt��d�}x|�d�D]}td|�q0W|��d|_|��dS)Nr!rz  )	rhrZrar%�strip�split�print�delete_temporariesri)r*r+r$r!r	r	r
�	user_line�szTracer.user_linecCs|�d||�|��dS)N�return)rhri)r*r+Zreturn_valuer	r	r
�user_return�szTracer.user_returncCs||_|�d|�|��dS)Nre)�exc_inforhri)r*r+rrr	r	r
�user_exception�szTracer.user_exceptioncCs|jg}||f|_dS)N)r'ra)r*r-r#r	r	r
�do_clear�szTracer.do_clearcCs(|jr$x|jdD]}|�|�qWdS)Nr)raZclear_bpbynumber)r*�nr	r	r
rn�szTracer.delete_temporariescCsV|jd7_y|j�d�|_Wn"tk
rBtd|j��YnX|j�d�|_dS)Nrrz-expect_set list exhausted, cannot pop item %d)r`rc�pop�expect�
IndexErrorr
rd�	set_tuple)r*r	r	r
�pop_next�szTracer.pop_nextcs�d}|dkr�jd}��||��jdk	rD�jsD�jg}|gf�_|�_����jrh���j�dS�j	r���
�j	d|d����|dkr���d�n�t
�j	�dk�r~|dk�rF�j	d\�}t����}�js��d�j���
|�jdd	���
�fd
d�|D��fdd��jdD�d
���
t|��jdd�n8|dk�r~t�jd�j	d��s~��d�j�jf�dS)Nrer^rzWrong event type)rgrp�r!z(No breakpoints hit at expect_set item %dzBreakpoint numbers do not matchcsg|]}�|�qSr	r	)rru)�bpsr	r
rsz(Tracer.process_event.<locals>.<listcomp>csg|]}��|�j�qSr	)rJr)rru)r*r	r
r szWrong breakpoint hit countrzWrong temporary breakpointsz/Wrong exception at expect_set item %d, got '%s')rrrEr'rar,rzrZ�print_stater[rw�check_equal�check_lno_name�check_expect_max_sizerS�sorted�keys�raise_not_expectedr`r1)r*r,r+�args�tbr#ZtemporariesZbpnumsr	)r|r*r
rh�sL





zTracer.process_eventcCs&||krdS|�d||j|f�dS)Nz"%s at expect_set item %d, got '%s')r�r`)r*Zexpected�result�msgr	r	r
r~,szTracer.check_equalcCsTt|j�}|dkr.|��}|�|jd|d�|dkrP|�|jd|jjjd�dS)NrzWrong line numberr^zWrong function name)rSrw�lno_abs2relr~r+�f_coder<)r*�sr?r	r	r
r2s
zTracer.check_lno_namecCs&t|j�|kr"td|j|jf��dS)Nz'Invalid size of the %s expect tuple: %s)rSrwrr,)r*�sizer	r	r
r�<szTracer.check_expect_max_sizecCs<|�|jjj�}|jj}||�t�kr8||jjjdS|S)Nr)�canonicr+r�r:�f_linenor3r;)r*rOr?r	r	r
r�AszTracer.lno_abs2relcCs.|r*|�|�|�t�kr*|jjj|dS|S)Nr)r�r3r+r�r;)r*rOr?r	r	r
�lno_rel2absGs*zTracer.lno_rel2abscCs�|��}|jjj}d|j||f}|jr�d}x:|jdD],}|dkrL|d7}|d||�|�jf7}q8W|d7}d|dt|jd�d	}|d|7}n|jd
kr�|d|j	dj
7}|d7}|�d�t|j�d
S)Nz('%s', %d, '%s'�{rz, z%s: %s�}�(r�)rez), � �,)
r�r+r�r<r,rarJrr2rrr�ljustry)r*r?r<�stater|rur	r	r
�	get_stateLs 

zTracer.get_statecCs:|dk	r |jdkr t�t|�td|j|��f�dS)Nrz%d: %s)r`rmr�)r*r[r	r	r
r}^szTracer.print_statecCs6|d7}|dt|j�7}|d|��7}t|��dS)Nrz  Expected: %s
z  Got:      )r2rwr�r
)r*r�r	r	r
r�dszTracer.raise_not_expectedcCsZ|jd}t|j�dkr"|jdnd}t|d|�}|dkrF|�dS|dkr\||j�dS|dkr�d}|r�|�|jjj|d�}||j|�dS|r�|dks�|d	k�rH|d
kr�|^}}}|�||�}||g}|�|�||�n"|dkr�||�n|d	k�r|�d|_|�	�|j
�r$|��n|j�r4|�
�|�d�|��ntd
|j��dS)Nrr^rZset_)�step�continue�quit)rrp�until)�break�clearr�enable�disable)�up�down)r�r�)rr�r�r{z"%s" is an invalid set_tuple)ryrS�getattrr+r�r�r:�extendr,rzrZr}rwrr�rir)r*�set_typer�Z
set_methodr?rOZremainr	r	r
rijsL











zTracer.next_set_method)NFN)N)rrrrXr\r)rjrorqrsrtrnrzrhr~rr�r�r�r�r}r�rirUr	r	)r.r
rV�s(	

2

rVc@s(eZdZddd�Zdd�Zd	dd�ZdS)
�	TracerRunNcCs2||_|j|_t|j||j|��d�|_d|_dS)N)rWrZr])r]rZrVrY�id�tracer�_original_tracer)r*r]rWr	r	r
rX�s
zTracerRun.__init__cCst�t��|_|jS)N)r�sys�gettracer�r�)r*r	r	r
�	__enter__�s
zTracerRun.__enter__cCs�t�t�|j�d}|jjr6|d7}|d|jj7}|dk	r�tt|�r�t	|t
�r�|jr�|jd}|rr|d|7}|jr�t
|�dS|j�|�n|r�|jr�t
|�n|j�|�dS)Nrz+All paired tuples have not been processed, zthe last one was number %drrT)rr��settracer�r�rdr`�
issubclassr
r1�
BaseExceptionr�rZrmr]�fail)r*Ztype_�value�	tracebackZ	not_emptyZerr_msgr	r	r
�__exit__�s(

zTracerRun.__exit__)N)NNN)rrrrXr�r�r	r	r	r
r��s
r�c
Cs�dd�}ddg}|�|�t�}d|_dd�|_t|td�t|���|_t|��(t	||d	��}|�
t�WdQRXWdQRXdS)
Ncss@y&x t|�}t|�}|V|VqWWntk
r:dSXdS)N)r�
StopIteration)�a�b�x�yr	r	r
�gen�szrun_test.<locals>.gen)r)r�TcSsdS)Nr	r	r	r	r
�<lambda>�zrun_test.<locals>.<lambda>r	)rW)r��BaseTestCaserZr�rbr�iterrY�create_modulesr��runcall�tfunc_import)�modulesrdrWr��sl�testr�r	r	r
�run_test�s3


r�ccs�tj����tj�t���z\xH|D]@}|d}t|d��}|�	t
�||��WdQRXt�
|�q$Wt��dVWdx|D]}tj�|�q�Wtj��XWdQRXdS)Nz.py�w)r��supportZtemp_cwdr�r�appendr�getcwd�open�write�textwrap�dedent�	linecache�
checkcacher5�invalidate_cachesZforgetrv)r��mrOrHr	r	r
r�s


r�FcCsd|d|||ffS)Nr�r	)r0rOrr"r	r	r
�
break_in_func%sr��test_module_for_bdbz.pycCsddl}|��dS)Nr)r��main)r�r	r	r
r�*sr�cCs d}t�t�d}d}d}dS)Nr^���)�tfunc_first�tfunc_second)�lnor	r	r
�
tfunc_main.sr�cCsd}d}d}dS)Nr^r{�r	)r�r	r	r
r�6sr�cCsd}dS)Nr^r	)r�r	r	r
r�;sr�c@seZdZeZddd�ZdS)r�NcCs|�|�d�dS)N)ZfailureException)r*r�r	r	r
r�CszBaseTestCase.fail)N)rrrrZr�r	r	r	r
r�>sr�c@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�
StateTestCasec	Cs8ddddddddg|_t|��}|�t�WdQRXdS)N)r!r^r�)r�)r!r{r�)rgrr�)r!r^r�)r�)rYr�r�r�)r*r�r	r	r
�	test_stepKs

zStateTestCase.test_stepcCs�xzdD]r}|j|d��\ddddddtdffd	d
dddd
d
igff|fddg|_t|��}|�t�WdQRXWdQRXqWdS)N)r�r)r�)r!r^r�)r�)r!r{r�)rgrr�r�r{)�Nonerr�)r�r!r�r)r!r�r�)r�)�subTestr3rYr�r�r�)r*r�r�r	r	r
� test_step_next_on_last_statementUs


z.StateTestCase.test_step_next_on_last_statementc
Cs<ddddddddddg
|_t|��}|�t�WdQRXdS)	N)r!r^r�)r�)r!r{r�)r)r!r�r�)rgrr�)r!r^r�)r�)rYr�r�r�)r*r�r	r	r
�	test_nextcs

zStateTestCase.test_nextc
CsPd}t|i}t|��2ddddg|_t|��}|�t�WdQRXWdQRXdS)Nz9
            def main():
                lno = 3
        )r!r^r�)r)r!r{r�)r�)�TEST_MODULEr�rYr�r�r�)r*rCr�r�r	r	r
�test_next_over_importns


z#StateTestCase.test_next_over_importc	Cs8ddddddddg|_t|��}|�t�WdQRXdS)N)r!r^r�)r�)r!r{r�)rgrr�)r)r!r^r�)r�)rYr�r�r�)r*r�r	r	r
�test_next_on_plain_statement|s

z*StateTestCase.test_next_on_plain_statementc
Cs<dddddddddd	g
|_t|��}|�t�WdQRXdS)
N)r!r^r�)r�)r!r{r�)rgrr�)r�)r�r{r�)r)r!r�r�)r�)rYr�r�r�)r*r�r	r	r
�test_next_in_caller_frame�s

z'StateTestCase.test_next_in_caller_framecCs@dddddddddddd	g|_t|��}|�t�WdQRXdS)
N)r!r^r�)r�)r!r{r�)rgrr�)r!r^r�)rp)rpr�r�)r!r�r�)r�)rYr�r�r�)r*r�r	r	r
�test_return�s

zStateTestCase.test_returnc
Cs<dddddddddd	g
|_t|��}|�t�WdQRXdS)
N)r!r^r�)r�)r!r{r�)rgrr�)r�)r�r{r�)rp)rpr�r�)r�)rYr�r�r�)r*r�r	r	r
�test_return_in_caller_frame�s

z)StateTestCase.test_return_in_caller_framec
Cs<ddddddddddg
|_t|��}|�t�WdQRXdS)	N)r!r^r�)r�)r!r{r�)rgrr�)r!r^r�)r�)r�)r!r�r�)r�)rYr�r�r�)r*r�r	r	r
�
test_until�s

zStateTestCase.test_untilc	CsLdtd�dddddddigffdd	d
g|_t|��}|�t�WdQRXdS)N)r!r^r�r�)r�r^r�)r�r!r^r)r�)i')rpr�r�)r�)r�rYr�r�r�)r*r�r	r	r
�test_until_with_too_large_count�s

z-StateTestCase.test_until_with_too_large_countc
Cs<dddddddddd	g
|_t|��}|�t�WdQRXdS)
N)r!r^r�)r�)r!r{r�)rgrr�)r�)r�r{r�)r�)r�)r!r�r�)r�)rYr�r�r�)r*r�r	r	r
�test_until_in_caller_frame�s

z(StateTestCase.test_until_in_caller_framec
Cs\d}t|i}t|��>ddddg|_dtf}t||d��}|�t�WdQRXWdQRXdS)Nz9
            def main():
                lno = 3
        )r!r^r�)r�)r!r{r�)r�z
importlib*)rW)r�r�rYr�r�r�)r*rCr�rWr�r	r	r
�	test_skip�s

zStateTestCase.test_skipc	Cs2ddg|_t|��}|�t|jt�WdQRXdS)N)r!r^r�)r�)rYr��assertRaisesrr�r�)r*r�r	r	r
�	test_down�s

zStateTestCase.test_downc	Cs8ddddddddg|_t|��}|�t�WdQRXdS)N)r!r^r�)r�)r!r{r�)rgrr�)r�)r�r{r�)r�)rYr�r�r�)r*r�r	r	r
�test_up�s

zStateTestCase.test_upN)rrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r	r	r	r
r�Hs


r�c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�BreakpointTestCasec	Cs2ddg|_t|��}|�t|jt�WdQRXdS)N)r!r^r�)r�)z/non/existent/module.pyr)rYr�r�rr�r�)r*r�r	r	r
�test_bp_on_non_existent_module�s

z1BreakpointTestCase.test_bp_on_non_existent_modulec
CsZd}t|i}t|��<ddtdffg|_t|��}|�t|jt�WdQRXWdQRXdS)Nz9
            def main():
                lno = 3
        )r!r^r�r�r�)	r�r��TEST_MODULE_FNAMErYr�r�rr�r�)r*rCr�r�r	r	r
�test_bp_after_last_statement�s

z/BreakpointTestCase.test_bp_after_last_statementcCs�d}t|i}t|��rdtdtd�dtdtd�dddddd	d	id	gffddddd
d	id
gffdg
|_t|��}|�t�WdQRXWdQRXdS)Nz�
            def func():
                lno = 3

            def main():
                for i in range(2):
                    func()
        )r!r^r�rBT)r�r^r�)r�r!r{rr^)r�)r�r�r�r�rYr�r�r�)r*rCr�r�r	r	r
�test_temporary_bps



z$BreakpointTestCase.test_temporary_bpcCs�d}t|i}t|���dtdt�dtdtd�dddddd	dd
d
igffddd
dddd	ddd
idgffddddd	dd
digffdg|_t|��}|�t�WdQRXWdQRXdS)Nz�
            def func():
                lno = 3

            def main():
                for i in range(3):
                    func()
        )r!r^r�rB)r�r^r�T)r�)r^)r�r!r{r)r�)r^)r�r{rB)r�)rr^)r�)r)r�)r�r�r�r�rYr�r�r�)r*rCr�r�r	r	r
�test_disabled_temporary_bps"


z-BreakpointTestCase.test_disabled_temporary_bpc
Csnd}t|i}t|��Pdtdtdd�dddd	dd
d	igffdg|_t|��}|�t�WdQRXWdQRXdS)Nz�
            def func(a):
                lno = 3

            def main():
                for i in range(3):
                    func(i)
        )r!r^r�rBFza == 2)r�r^r�)r�r!r{r)r�)r�r�r�r�rYr�r�r�)r*rCr�r�r	r	r
�test_bp_condition9s

z$BreakpointTestCase.test_bp_conditionc
Csnd}t|i}t|��Pdtdtdd�dddd	dd
d
igffdg|_t|��}|�t�WdQRXWdQRXdS)Nzk
            def func(a):
                lno = 3

            def main():
                func(0)
        )r!r^r�rBFz1 / 0)r�r^r�)r�r!r{r)r�)r�r�r�r�rYr�r�r�)r*rCr�r�r	r	r
�)test_bp_exception_on_condition_evaluationMs

z<BreakpointTestCase.test_bp_exception_on_condition_evaluationcCsnd}t|i}t|��Pdtdt�dddddddd	d
igffdg|_t|��}|�t�WdQRXWdQRXdS)Nz�
            def func():
                lno = 3

            def main():
                for i in range(2):
                    func()
        )r!r^r�rB)r�r^r�)r)r)r�r!r{rr^)r�)r�r�r�r�rYr�r�r�)r*rCr�r�r	r	r
�test_bp_ignore_count`s

z'BreakpointTestCase.test_bp_ignore_countcCs�d}t|i}t|���dtdt�dtdt�dddddddd	dd
digffdd
ddd	dd
d
igffddd	ddd
igffdg|_t|��}|�t�WdQRXWdQRXdS)Nz�
            def func():
                lno = 3

            def main():
                for i in range(3):
                    func()
        )r!r^r�rB)r�r^r�)r)r)r�)r)r�r!r{r^r)r�)r)r�r{rB)r�)r�r�r�r�rYr�r�r�)r*rCr�r�r	r	r
� test_ignore_count_on_disabled_bpus 

z3BreakpointTestCase.test_ignore_count_on_disabled_bpcCs�d}t|i}t|���ddtdffddtdffddtdffddddd	d
d
igffdddd	dd
igffdtdffddddd	dd
igffdg|_t|��}|�t�WdQRXWdQRXdS)Nz�
            def func():
                lno = 3
                lno = 4

            def main():
                for i in range(3):
                    func()
        )r!r^r�r�r{)r�r^r�r�)r�r!rBrr�)r�r�rBr^)r�)r�r�r�rYr�r�r�)r*rCr�r�r	r	r
�test_clear_two_bp_on_same_line�s	

z1BreakpointTestCase.test_clear_two_bp_on_same_linec	Cs:ddtdffg|_t|��}|�t|jt�WdQRXdS)N)r!r^r�r�r)r3rYr�r�rr�r�)r*r�r	r	r
�test_clear_at_no_bp�s
z&BreakpointTestCase.test_clear_at_no_bpN)
rrrr�r�r�r�r�r�r�r�r�r�r	r	r	r
r��s
r�c@seZdZdd�Zdd�ZdS)�RunTestCasec	CsBd}ddddg|_t|��}|�tt�|�dd��WdQRXdS)Nz
            lno = 2
        )r!r^z<module>)r�)rpr^z<module>)r�z<string>�exec)rYr��run�compiler�r�)r*rCr�r	r	r
�
test_run_step�s


zRunTestCase.test_run_stepcCsld}t|i}t|��Nddddddddddg
|_d	dl}t|��}|�d
t�t��WdQRXWdQRXdS)Nz9
            def main():
                lno = 3
        )r!rz<module>)r�)rgr^r�)r!r{r�)rpr{r�)rprz<module>)r�rztest_module_for_bdb.main())r�r�rYr�r�Zrunevalr4�locals)r*rCr�r�r�r	r	r
�test_runeval_step�s


zRunTestCase.test_runeval_stepN)rrrr�rr	r	r	r
r��sr�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�IssuesTestCasecCszd}d}t|d|i}t|��Tdtdd�ddd	d
dddigffdd
dddg
|_t|��}|�t�WdQRXWdQRXdS)Nz�
            from test_module_for_bdb_2 import func
            def main():
                func()
                lno = 5
        z9
            def func():
                lno = 3
        Ztest_module_for_bdb_2)r!r^r�rBztest_module_for_bdb_2.py)r�r^r�)r�r!r{r)r�)rpr{rB)r!r�r�)r�)r�r�r�rYr�r�r�)r*Zcode_1Zcode_2r�r�r	r	r
�+test_step_at_return_with_no_trace_in_caller�s	


z:IssuesTestCase.test_step_at_return_with_no_trace_in_callercCs�d}t|i}x�dD]�}|j|d���t|���dtdt�dddd	dd
d
igff|fg|_|dkr~|j�dd
dtfdddg�n|j�ddg�t|��}|�	t
�WdQRXWdQRXWdQRXqWdS)Nz�
            def test_gen():
                yield 0
                lno = 4
                return 123

            def main():
                it = test_gen()
                next(it)
                next(it)
                lno = 11
        )rr�rp)r�)r!r^r��test_gen)r�r^r�)r�r!r{rrpre�
r�)r�)rprr�)r�)r!r�r)r�r�r�r�r�rYr�r�r�r�r�)r*rCr�r�r�r	r	r
�#test_next_until_return_in_generator�s"



z2IssuesTestCase.test_next_until_return_in_generatorcCs�d}t|i}t|��hdtdt�dddddddigffd	d
d	dd	dd	d
ddtfdddg|_t|��}|�t�WdQRXWdQRXdS)Nz�
            def test_gen():
                yield 0
                lno = 4
                yield 1
                return 123

            def main():
                for i in test_gen():
                    lno = 10
                lno = 11
        )r!r^r�r)r�r^r�)r�r!r{r)r)r!r�r)r!r�r)r!r�rre�	r�)r�)r!�r�)r�)	r�r�r�r�r�rYr�r�r�)r*rCr�r�r	r	r
�'test_next_command_in_generator_for_loops



z6IssuesTestCase.test_next_command_in_generator_for_loopc
Cs~d}t|i}t|��`dtdt�dddddddigffd	d
d	ddd
tfdddg|_t|��}|�t�WdQRXWdQRXdS)Na4
            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
        )r!r^r�r)r�r^r�)r�r!r�r)r)r!�rrerr�)r�)r!�
r�)r�)	r�r�r�r�r�rYr�r�r�)r*rCr�r�r	r	r
�/test_next_command_in_generator_with_subiterator;s


z>IssuesTestCase.test_next_command_in_generator_with_subiteratorc
Cs�d}t|i}t|��hdtdt�dddddddigffd	d
ddtfd	d
d
dtfdddg|_t|��}|�t�WdQRXWdQRXdS)Na4
            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
        )r!r^r�Ztest_subgen)r�r^r�)r�r!r{r)rprer�rrr�)r�)r!r
r�)r�)	r�r�r�r�r�rYr�r�r�)r*rCr�r�r	r	r
�1test_return_command_in_generator_with_subiteratorZs


z@IssuesTestCase.test_return_command_in_generator_with_subiteratorN)rrrrrrrrr	r	r	r
r�s
)rcCstj�tttt�dS)N)r�r�Zrun_unittestr�r�r�rr	r	r	r
�	test_mainys
r
�__main__)N),Zbdbrr�rZunittestr�r5r��
contextlibr�	itertoolsrrZtest.supportr��	Exceptionrrrr
rZrr%r&rVr�r�r�r3r�r�r�r�r�r�r�ZTestCaser�r�r�r�rr
rr	r	r	r
�<module>3sP@z.
J
(B"(