Your IP : 216.73.217.129


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_sys_settrace.cpython-35.opt-2.pyc



���]�c�@s)ddlmZddlZddlZddlZddlZdd�Zdldmdnge_d	d
�Zdodpdqdrdsge_d
d�Z	dtdudvdwdxge	_dd�Z
dydzd{d|d}d~dd�d�d�g
e
_dd�Zd�d�d�d�d�ge_dd�Zdd�Z
d�d�d�d�d�d�ge
_dd�Zdd�Zd�d�d�d�d�d�d�d�d�d�d�ge_dd�Zd d!�Zd�ge_d"d#�Zd$d%�Zd�d�d�d�ge_d&d'�Zd�d�d�d�d�d�d�ge_d(d)�Zd�d�d�d�d�d�d�d�d�d�d�d�d�g
e_d+d,�Zd�d�d�d�d�d�d�d�d�d�d�d�ge_d-d.�Zd/d0�Zd�d�d�d�d�d�d�d�d�d�g
d�d�gd1d�d�ge_Gd2d3�d3�ZGd4d5�d5ej�ZGd6d7�d7ej�ZGd8d9�d9�Zd:d;�Zd�e_dge_ d<d=�Z!d�e!_dddge!_ d>d?�Z"d�e"_ddge"_ d@dA�Z#d�e#_dddddddd*ge#_ dBdC�Z$d�e$_dge$_ dDdE�Z%d�e%_dddge%_ dFdG�Z&d�e&_ddHge&_ dIdJ�Z'd�e'_ddge'_ dKdL�Z(d�e(_ddMge(_ dNdO�Z)d�e)_ddMge)_ dPdQ�Z*d�e*_dMge*_ dRdS�Z+d�e+_dMge+_ dTdU�Z,d�e,_dMge,_ dVdW�Z-d�e-_dMge-_ dXdY�Z.d�e._dMge._ dZd[�Z/d�e/_dddMge/_ d\d]�Z0d�e0_dddMge0_ d^d_�Z1d�e1_ddMge1_ d`da�Z2d�e2_dMge2_ dcdd�Z3d�e3_ge3_ dedf�Z4Gdgdh�dhej�Z5didj�Z6e7dkkr%e6�dS)��)�supportNcCsdS)N��rrr�6/opt/alt/python35/lib64/python3.5/test_sys_settrace.py�basic
sr�callr�line�returncCsd}~d}dS)Nrr)�xrrr�
arigo_examplesr��cCsd}~d}dS)Nrr)r
rrr�one_instr_line(sr�cCs6d}x)td�D]}|r(d}qd}qWdS)Nrr)�range)r
�arrr�no_pop_tops3s
	r��cCs!d}x|stq	Wd}dS)Nr)Zbla)�yr
rrr�
no_pop_blocksFs	rcCs
d}dS)Nrr)r
rrr�calledRsrcCst�dS)N)rrrrrrUscCs
t�dS)N)�	Exceptionrrrr�raises_srcCs=yt�Wn+tk
r8}zd}WYdd}~XnXdS)Nr)rr)�excr
rrr�
test_raisebsr�	exceptioncCs#tj|�|tj�j_dS)N)�sys�settrace�	_getframe�f_back�f_trace)�	tracefuncrrr�_settrace_and_returnts
r#cCst|�dS)N)r#)r"rrr�settrace_and_returnwsr$cCs)tj|�|tj�j_t�dS)N)rrrr r!�RuntimeError)r"rrr�_settrace_and_raise|s
r&cCs:yt|�Wn%tk
r5}zWYdd}~XnXdS)N)r&r%)r"rrrr�settrace_and_raise�sr'cCs)d}d}||kr%|d}ndS)Nr
rr)r�brrr�ireturn_example�s

r)cCsMtdd�}y%d}x||}|d7}qWWntk
rHYnXdS)Nrrr)r�
IndexError)�items�ir(rrr�tightloop_example�s

r-�cCsCtdd�}yd}x||}qWWntk
r>YnXdS)Nrrr)rr*)r+r,rrr�tighterloop_example�s
r/c	csz	dVWdXdS)NTrrrrr�generator_function�sr0cCs0tt��}xtd�D]}|}qWdS)N�
)�anyr0r)r
rrrr�generator_example�sr3r1c@s4eZdZdd�Zdd�Zdd�ZdS)�TracercCs
g|_dS)N)�events)�selfrrr�__init__�szTracer.__init__cCs |jj|j|f�|jS)N)r5�append�f_lineno�trace)r6�frame�event�argrrrr:�szTracer.tracecCs4dd�dgD�|jj|j|f�|jS)Ncss|]}|VqdS)Nr)�.0�orrr�	<genexpr>�sz)Tracer.traceWithGenexp.<locals>.<genexpr>r)r5r8r9r:)r6r;r<r=rrr�traceWithGenexp�szTracer.traceWithGenexpN)�__name__�
__module__�__qualname__r7r:rArrrrr4�sr4c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3S)4�
TraceTestCasecCs6tj�|_tj�|jtjtj��dS)N)�gc�	isenabled�using_gc�disable�
addCleanuprr�gettrace)r6rrr�setUp�s
zTraceTestCase.setUpcCs|jrtj�dS)N)rHrF�enable)r6rrr�tearDowns	zTraceTestCase.tearDowncsi�fdd�|D�}||kre|jddjtjdd�|D�dd�|D����dS)Ncs&g|]\}}|�|f�qSrr)r>�l�e)�line_offsetrr�
<listcomp>s	z0TraceTestCase.compare_events.<locals>.<listcomp>z"events did not match expectation:
�
cSsg|]}t|��qSr)�str)r>r
rrrrR	s	cSsg|]}t|��qSr)rT)r>r
rrrrR
s	)�fail�join�difflibZndiff)r6rQr5Zexpected_eventsr)rQr�compare_eventsszTraceTestCase.compare_eventscCsMt�}tj|j�|�tjd�|j|jj|j|�dS)N)r4rrr:rX�__code__�co_firstlinenor5)r6�funcr5�tracerrrr�run_and_compares	
zTraceTestCase.run_and_comparecCs|j||j�dS)N)r]r5)r6r[rrr�run_testszTraceTestCase.run_testcCsFt�}||j�tjd�|j|jj|j|j�dS)N)r4r:rrrXrYrZr5)r6r[r\rrr�	run_test2s
	

zTraceTestCase.run_test2cCstjd�dS)N)rr)r6rrr�test_set_and_retrieve_nones
z(TraceTestCase.test_set_and_retrieve_nonecCs2dd�}tj|�zWdtjd�XdS)NcWsdS)Nr)�argsrrr�fn#sz4TraceTestCase.test_set_and_retrieve_func.<locals>.fn)rr)r6rbrrr�test_set_and_retrieve_func"s

z(TraceTestCase.test_set_and_retrieve_funccCs|jt�dS)N)r^r)r6rrr�
test_01_basic,szTraceTestCase.test_01_basiccCs|jt�dS)N)r^r)r6rrr�
test_02_arigo.szTraceTestCase.test_02_arigocCs|jt�dS)N)r^r)r6rrr�test_03_one_instr0szTraceTestCase.test_03_one_instrcCs|jt�dS)N)r^r)r6rrr�test_04_no_pop_blocks2sz#TraceTestCase.test_04_no_pop_blockscCs|jt�dS)N)r^r)r6rrr�test_05_no_pop_tops4sz!TraceTestCase.test_05_no_pop_topscCs|jt�dS)N)r^r)r6rrr�test_06_call6szTraceTestCase.test_06_callcCs|jt�dS)N)r^r)r6rrr�
test_07_raise8szTraceTestCase.test_07_raisecCs|jt�dS)N)r_r$)r6rrr�test_08_settrace_and_return;sz)TraceTestCase.test_08_settrace_and_returncCs|jt�dS)N)r_r')r6rrr�test_09_settrace_and_raise=sz(TraceTestCase.test_09_settrace_and_raisecCs|jt�dS)N)r^r))r6rrr�test_10_ireturn?szTraceTestCase.test_10_ireturncCs|jt�dS)N)r^r-)r6rrr�test_11_tightloopAszTraceTestCase.test_11_tightloopcCs|jt�dS)N)r^r/)r6rrr�test_12_tighterloopCsz!TraceTestCase.test_12_tighterloopcCs]|jt�t�}tj|j�t�tjd�|jtjj|j	tj	�dS)N)
r^r3r4rrrArXrYrZr5)r6r\rrr�test_13_genexpFs
	
zTraceTestCase.test_13_genexpcCs,dd�}|j|d	d
ddg�dS)
NcSsddS)NFrrrrrr�onlinersTsz2TraceTestCase.test_14_onliner_if.<locals>.onlinersrrrrrr	)rr)rr)rr)rr	)r])r6rqrrr�test_14_onliner_ifSsz TraceTestCase.test_14_onliner_ifcCsidd�}|j|d
ddddddg�d	d
�}|j|ddddddddg�dS)NcSsxtd�D]}q
WdS)Nr)r)r
rrr�for_exampleasz0TraceTestCase.test_15_loops.<locals>.for_examplerrrrrr	cSs'd}x|dkr"|d8}q	WdS)Nrrrr)r
rrr�
while_examplensz2TraceTestCase.test_15_loops.<locals>.while_examplerr)rr)rr)rr)rr)rr)rr)rr	)rr)rr)rr)rr)rr)rr)rr)rr	)r])r6rsrtrrr�
test_15_loops_s*
zTraceTestCase.test_15_loopscCs@i}tdddd|�|j|dddd
g�dS)Nz	def f():
rS�z    pass�frr�rr	)rr)rxr)rxr	)�execr])r6�	namespacerrr�test_16_blank_lines~sz!TraceTestCase.test_16_blank_linescCs&dd�}|j|ddg�dS)	NcSsdtj�_d}dS)Nr)rrr!)�linenorrrr[�sz0TraceTestCase.test_17_none_f_trace.<locals>.funcrrrr)rr)rr)r])r6r[rrr�test_17_none_f_trace�s	z"TraceTestCase.test_17_none_f_traceN)rBrCrDrLrNrXr]r^r_r`rcrdrerfrgrhrirjrkrlrmrnrorprrrur{r}rrrrrE�s2

	rEc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�RaisingTraceFuncTestCasecCs|jtjtj��dS)N)rJrrrK)r6rrrrL�szRaisingTraceFuncTestCase.setUpcCs#||jkrt�n|jSdS)N)�raiseOnEvent�
ValueErrorr:)r6r;r<r=rrrr:�s	zRaisingTraceFuncTestCase.tracecCs*|jdkr"d}d|}ndSdS)Nrrr)r)r6r
rrrrrw�s
zRaisingTraceFuncTestCase.fcCs�||_yex^ttj�d�D]F}tj|j�y|j�Wntk
r[Yq#X|jd�q#WWnt	k
r�|jd�YnXdS)Nrzexception not raised!zrecursion counter not reset)
rrr�getrecursionlimitrr:rwr�rUr%)r6r<r,rrr�run_test_for_event�s	

z+RaisingTraceFuncTestCase.run_test_for_eventcCs|jd�dS)Nr)r�)r6rrr�	test_call�sz"RaisingTraceFuncTestCase.test_callcCs|jd�dS)Nr)r�)r6rrr�	test_line�sz"RaisingTraceFuncTestCase.test_linecCs|jd�dS)Nr	)r�)r6rrr�test_return�sz$RaisingTraceFuncTestCase.test_returncCs|jd�dS)Nr)r�)r6rrr�test_exception�sz'RaisingTraceFuncTestCase.test_exceptioncsudd����fdd��tj��y��Wn(tk
rcddl}|j�YnX|jd�dS)NcSs%xtd�D]}t|�q
WdS)Nr
)r�print)r,rrrrw�sz4RaisingTraceFuncTestCase.test_trash_stack.<locals>.fcs5|dkr1|j�jjdkr1td���S)Nrrz
i am crashing)r9rYrZr%)r;�why�extra)rw�grrr��sz4RaisingTraceFuncTestCase.test_trash_stack.<locals>.grzexception not propagated)rrr%rFZcollectrU)r6rFr)rwr�r�test_trash_stack�s

z)RaisingTraceFuncTestCase.test_trash_stackcssdd�}��fdd��tj�}z1tj��y|�Wntk
r\YnXWdtj|�XdS)NcSsd}|jdS)Nr)Zno_such_attr)r
rrrrw�sz<RaisingTraceFuncTestCase.test_exception_arguments.<locals>.fcs/|dkr+|\}}}�j|t��S)Nr)ZassertIsInstancer)r;r<r=�typerr:)r�r6rrr��sz<RaisingTraceFuncTestCase.test_exception_arguments.<locals>.g)rrKr�AttributeError)r6rwZexistingr)r�r6r�test_exception_arguments�s

	z1RaisingTraceFuncTestCase.test_exception_argumentsN)
rBrCrDrLr:rwr�r�r�r�r�r�r�rrrrr~�s	r~c@s(eZdZdd�Zdd�ZdS)�
JumpTracercCs6||_|jd|_|jd|_d|_dS)NrrF)�function�jump�jumpFrom�jumpTo�done)r6r�rrrr7�s	zJumpTracer.__init__cCs�|jr�|j|jjkr�|jj}|dkr�|j||jkr�y||j|_Wntk
r�|j|_YnXd|_|j	S)NrT)
r��f_coder�rYrZr9r�r��	TypeErrorr:)r6r;r<r=Z	firstLinerrrr:�s"
	zJumpTracer.traceN)rBrCrDr7r:rrrrr��sr�cCs+|jd�|jd�|jd�dS)Nrrr)r8)�outputrrr�jump_simple_forwardss

r�cCs|jd�|jd�dS)Nrr)r8)r�rrr�jump_simple_backwardss
r�cCsPx<dD]4}|jd�xdgD]}|jd�q$WqW|jd�dS)Nrrrrr
)rr)r8)r�r,�jrrr�jump_out_of_block_forwardss


r�cCsm|jd�xLdgD]A}|jd�xdgD]}|jd�q4W|jd�qW|jd�dS)Nrrrr
rr.)r8)r�r,r�rrr�jump_out_of_block_backwards$s

r�cCs|jd�|jd�dS)Nrr)r8)r�rrr�jump_to_codeless_line0s
r�cCs+|jd�|jd�|jd�dS)Nrrr)r8)r�rrr�jump_to_same_line8s

r�cCsUz|jd�Wd|jd�z|jd�Wd|jd�X|jd�XdS)Nrrr��	)r8)r�rrr�jump_in_nested_finallyAs
r�r�cCs2|jd�x|jd�qW|jd�dS)Nrrr)r8)r�rrr�jump_infinite_while_loopOs
r�cCscy|jd�|jd�Wn>tk
r^}z|jdt|�k�WYdd}~XnXdS)Nrr�after)r8r�rT)r�rPrrr�no_jump_too_far_forwardsZs

r�TcCscy|jd�|jd�Wn>tk
r^}z|jdt|�k�WYdd}~XnXdS)NrrZbefore)r8r�rT)r�rPrrr�no_jump_too_far_backwardsds

r�c
CsIy|jd�Wn1tj�d}|jdt|�k�YnXdS)Nrr�except)r8r�exc_inforT)r�rPrrr�no_jump_to_except_1os
r�cCsSy|jd�Wn;tk
rNtj�d}|jdt|�k�YnXdS)Nrrr�)r8r�rr�rT)r�rPrrr�no_jump_to_except_2ys

r�cCsVy|jd�Wn>tk
rQ}z|jdt|�k�WYdd}~XnXdS)Nrr�)r8r�rT)r�rPrrr�no_jump_to_except_3�sr�cCs\y|jd�WnDttfk
rW}z|jdt|�k�WYdd}~XnXdS)Nrr�)r8r�r%rT)r�rPrrr�no_jump_to_except_4�sr�cCsty/|jd�xdD]}|jd�qWWn>tk
ro}z|jdt|�k�WYdd}~XnXdS)Nrrr�into)rr)r8r�rT)r�r,rPrrr�no_jump_forwards_into_block�s

r�cCsty/xdD]}|jd�q
W|jd�Wn>tk
ro}z|jdt|�k�WYdd}~XnXdS)Nrrrrr�)rr)r8r�rT)r�r,rPrrr�no_jump_backwards_into_block�s
r�cCsqy,z|jd�d}Wd|jd�XWn>tk
rl}z|jdt|�k�WYdd}~XnXdS)Nrrr�finally)r8r�rT)r�r
rPrrr�no_jump_into_finally_block�s

r�cCsxy3z|jd�Wd|jd�|jd�XWn>tk
rs}z|jdt|�k�WYdd}~XnXdS)Nrr
rr�)r8r�rT)r�rPrrr�no_jump_out_of_finally_block�s
r�cCsVy|jd�Wn>tk
rQ}z|jdt|�k�WYdd}~XnXdS)NrZinteger)r8r�rT)r�rPrrr�no_jump_to_non_integers�sr��SpamcCs<ttjd��}WdQRXttjd��}WdQRXdS)N�wb)�openr�TESTFN)r��fprrr�jump_across_with�sr�cCslytj�j}|j|_Wn:tk
r[}zdt|�krI�WYdd}~Xn
Xtd��dS)Nr:z'Trace-function-less jump failed to fail)rrr r9r�rTr%)Zprevious_framerPrrr�no_jump_without_trace_function�sr�c@sHeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5S)6�JumpTestCasecCs*|jtjtj��tjd�dS)N)rJrrrK)r6rrrrL�szJumpTestCase.setUpcCs=||kr9|jddt|�ddt|��dS)NzOutputs don't match:
z
Expected: rSz
Received: )rU�repr)r6ZexpectedZreceivedrrr�compare_jump_output�sz JumpTestCase.compare_jump_outputcCsPt|�}tj|j�g}||�tjd�|j|j|�dS)N)r�rrr:r�r�)r6r[r\r�rrrr^�s

zJumpTestCase.run_testcCs|jt�dS)N)r^r�)r6rrr�test_01_jump_simple_forwards�sz)JumpTestCase.test_01_jump_simple_forwardscCs|jt�dS)N)r^r�)r6rrr�test_02_jump_simple_backwards�sz*JumpTestCase.test_02_jump_simple_backwardscCs|jt�dS)N)r^r�)r6rrr�"test_03_jump_out_of_block_forwards�sz/JumpTestCase.test_03_jump_out_of_block_forwardscCs|jt�dS)N)r^r�)r6rrr�#test_04_jump_out_of_block_backwardssz0JumpTestCase.test_04_jump_out_of_block_backwardscCs|jt�dS)N)r^r�)r6rrr�test_05_jump_to_codeless_linesz*JumpTestCase.test_05_jump_to_codeless_linecCs|jt�dS)N)r^r�)r6rrr�test_06_jump_to_same_linesz&JumpTestCase.test_06_jump_to_same_linecCs|jt�dS)N)r^r�)r6rrr�test_07_jump_in_nested_finallysz+JumpTestCase.test_07_jump_in_nested_finallycCs|jt�dS)N)r^r�)r6rrr�test_jump_infinite_while_loopsz*JumpTestCase.test_jump_infinite_while_loopcCs|jt�dS)N)r^r�)r6rrr� test_08_no_jump_too_far_forwards
sz-JumpTestCase.test_08_no_jump_too_far_forwardscCs|jt�dS)N)r^r�)r6rrr�!test_09_no_jump_too_far_backwardssz.JumpTestCase.test_09_no_jump_too_far_backwardscCs|jt�dS)N)r^r�)r6rrr�test_10_no_jump_to_except_1sz(JumpTestCase.test_10_no_jump_to_except_1cCs|jt�dS)N)r^r�)r6rrr�test_11_no_jump_to_except_2sz(JumpTestCase.test_11_no_jump_to_except_2cCs|jt�dS)N)r^r�)r6rrr�test_12_no_jump_to_except_3sz(JumpTestCase.test_12_no_jump_to_except_3cCs|jt�dS)N)r^r�)r6rrr�test_13_no_jump_to_except_4sz(JumpTestCase.test_13_no_jump_to_except_4cCs|jt�dS)N)r^r�)r6rrr�#test_14_no_jump_forwards_into_blocksz0JumpTestCase.test_14_no_jump_forwards_into_blockcCs|jt�dS)N)r^r�)r6rrr�$test_15_no_jump_backwards_into_blocksz1JumpTestCase.test_15_no_jump_backwards_into_blockcCs|jt�dS)N)r^r�)r6rrr�"test_16_no_jump_into_finally_blocksz/JumpTestCase.test_16_no_jump_into_finally_blockcCs|jt�dS)N)r^r�)r6rrr�$test_17_no_jump_out_of_finally_blocksz1JumpTestCase.test_17_no_jump_out_of_finally_blockcCs|jt�dS)N)r^r�)r6rrr�test_18_no_jump_to_non_integerssz,JumpTestCase.test_18_no_jump_to_non_integerscCst�dS)N)r�)r6rrr�&test_19_no_jump_without_trace_function sz3JumpTestCase.test_19_no_jump_without_trace_functioncCs'|jtjtj�|jt�dS)N)rJr�unlinkr�r^r�)r6rrr�test_jump_across_with$sz"JumpTestCase.test_jump_across_withcCsNi}tdddf|�|d}d|_dg|_|j|�dS)	Na�def f(output):        # line 0
            x = 0                     # line 1
            y = 1                     # line 2
            '''                       # line 3
            %s                        # lines 4-1004
            '''                       # line 1005
            x += 1                    # line 1006
            output.append(x)          # line 1007
            returnrSi�rwr��r)rr�)ryr�r�r^)r6�drwrrr�test_20_large_function(s
	z#JumpTestCase.test_20_large_functioncs�tddd��G�fdd�d�}t|�}tj|j�dgi}t�|�tjd�|jddddd	g|d�dS)
Nzd
# Comments don't count.
output.append(2)  # firstlineno is here.
output.append(3)
output.append(4)
z
<fake module>rycseZdZ�ZdZdS)z<JumpTestCase.test_jump_to_firstlineno.<locals>.fake_functionrrN)rr)rBrCrDrYr�r)�coderr�
fake_functionCsr�r�rrr)�compiler�rrr:ryr�)r6r�r\rzr)r�r�test_jump_to_firstlineno9s

z%JumpTestCase.test_jump_to_firstlinenoN)rBrCrDrLr�r^r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr��s4r�cCstjttt�dS)N)rZrun_unittestrEr~r�rrrr�	test_mainNsr��__main__)rr)rr)rr	)rr)rr)rr)r
r)r
r	)rr)rr)rr)rr)rr	)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr	)rr)rr)rr)rr)rr	)rr)rr���)r�r���)r�rr�)r�r	)rr	)rr)rr)rrr�)r�rr�)r�rr�)r�rr�)r�r	)rr)rr)rr)rr	)rr	)rr)rr)rr)rr	)rr)rr)rr)rr)rr)rr)rr	)rr)rr)rr)rr)rr)r
r)r
r)r
r)r
r)r
r)rr)r.r)r.r	)rr)rr)rr)rr)rr)rr)rr)rr)rr)r
r)rr)rr	)rr)rr���)r�r���)r�r���)r�rr�)r�r	r�)r�rr�)r�r���)r�rr�)r�r	)r
r)rr)r
r)r
r	)rr)rr)rr
)rr)rr)rr)rr�)rr)rrr�)rr�)rr)rr)rr)rr)rr)rr)rr)r
r)rr�)rr)8ZtestrZunittestrrWrFrr5rrrrrrrrr#r$r&r'r)r-r/r0r3r4ZTestCaserEr~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�rBrrrr�<module>s^
	/�`					!												
	
				g