
    0hh             	       |	   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
rS SK
JrJr  S SKJr  \R                   R"                  R                  S5      rSrS rS rS rS	 rS
 rSrSrSrS r " S S\R:                  5      r " S S5      r " S S\\R:                  5      r \RB                  RD                  r#\#RH                  S4\#RJ                  S4\#RL                  S4\#RN                  S4\#RP                  S4\#RR                  S4/r*\#RV                  S4\#RX                  S4\#RZ                  S4/r.\*\.-   \#R^                  S4\#R`                  S4/-   r1\Rd                  " \Rf                  \1 V Vs/ s H  u  pU PM	     snn S 5      \#Rh                  -  r5S  r6/ S!Q\6l"        S" r7/ S#Q\7l"        S$ r8/ S%Q\8l"        S& r9/ S'Q\9l"        S( r:/ S)Q\:l"        \Rv                  \Rx                  4r= " S* S+\5      r> " S, S-\>\R:                  5      r?\#R`                  \#R^                  \#RL                  \#RX                  \#RN                  4r@\#RH                  \#RJ                  4rAS S.KBJCrC   " S/ S0\>\R:                  5      rD " S1 S25      rE " S3 S45      rF " S5 S6\\R:                  5      rG " S7 S8\\R:                  5      rH " S9 S:\\R:                  5      rI " S; S<\\R:                  5      rJ " S= S>5      rK " S? S@\\R:                  5      rL " SA SB\K5      rM " SC SD\K5      rN " SE SF\K5      rO " SG SH\K5      rP " SI SJ\K5      rQ " SK SL5      rR " SM SN5      rS " SO SP\L5      rT " SQ SR5      rU " SS ST5      rV " SU SV\V5      rW " SW SX\V5      rX\K\R\U\W\X4rY " SY SZ\L5      rZ " S[ S\5      r[\[\U4r\ " S] S^\L5      r] " S_ S`\\R:                  5      r^\R\U\W\X4r_ " Sa Sb\\R:                  5      r`Sc ra " Sd Se5      rb " Sf Sg\b5      rc\b\c4rd\b\c\U4re\b\c\U\K\S4rf " Sh Si\L5      rg " Sj Sk\L5      rh " Sl Sm\\R:                  5      ri " Sn So\R:                  \5      rj " Sp Sq\\R:                  5      rk " Sr Ss\\R:                  5      rl " St Su\L5      rm " Sv Sw\R:                  5      rn " Sx Sy\\R:                  5      rogs  snn f )z    N)requires_specializationscript_helper)import_module	_testcapir      c                      g N r       =/opt/python-3.13.8/usr/lib/python3.13/test/test_monitoring.pyf1r          r   c                  F    [        / 5        [        R                  " S5        g Nr   )lensys	getsizeofr   r   r   f2r      s    GMM!r   c                      [          H  n M     g r
   )PAIR)items    r   floopr      s     r   c               #      #    S v   S v   g 7fr
   r   r   r   r   genr   !   s     		   
c                  &    [        5        H  n M     g r
   )r   )_s    r   g1r   %   s    U r            c                 4    U R                   R                  U-   $ r
   )__code__co_firstlineno)funcoffsets     r   nth_liner(   -   s    ==''&00r   c                        \ rS rSrS rS rSrg)MonitoringBasicTest0   c                 p   [         R                  nUR                    UR                    UR                    UR
                    UR                    UR                    UR                    UR                    UR                    UR                    UR                    UR                    UR                  R                    g r
   )r   
monitoringeventsuse_tool_idfree_tool_idget_tool
get_events
set_eventsget_local_eventsset_local_eventsregister_callbackrestart_eventsDISABLEMISSING	NO_EVENTS)selfms     r   test_has_objects$MonitoringBasicTest.test_has_objects2   st    NN				

													r   c                    [         R                  R                  [        S5        U R	                  [         R                  R                  [        5      S5        [         R                  R                  [        S5        U R	                  [         R                  R                  [        5      S5        [         R                  R                  [        S5        U R                  [        5         [         R                  R                  [        [         R                  R                  R                  5        S S S 5        U R                  [        5         [         R                  R                  [        [         R                  R                  R                  5        S S S 5        [         R                  R                  [        5        U R	                  [         R                  R                  [        5      S 5        U R                  [        5         [         R                  R                  [        [         R                  R                  R                  5        S S S 5        g ! , (       d  f       GN.= f! , (       d  f       N= f! , (       d  f       g = f)NzMonitoringTest.Tool   r   )r   r-   r/   	TEST_TOOLassertEqualr1   r3   r2   assertRaises
ValueErrorr.   C_RETURNC_RAISEr0   CALLr;   s    r   	test_toolMonitoringBasicTest.test_toolB   sp   ""9.CD00;=RS!!)R0229=rB!!)Q/z*NN%%i1F1F1O1OP +z*NN%%i1F1F1N1NO +##I.00;TBz*NN%%i1F1F1K1KL +* +*** +*s'   (AIAI(AI9
I%(
I69
Jr   N)__name__
__module____qualname____firstlineno__r=   rI   __static_attributes__r   r   r   r*   r*   0   s     Mr   r*   c                        \ rS rSrS rS rSrg)MonitoringTestBaseR   c                    [        S5       H2  nU R                  [        R                  R	                  U5      S5        M4     U R                  [        R                  R                  [        5      S 5        U R                  [        R                  R                  [        5      S 5        U R                  [        R                  R                  [        5      S 5        [        R                  R                  [        SU R                  R                  -   5        [        R                  R                  [        SU R                  R                  -   5        [        R                  R                  [        SU R                  R                  -   5        g )N   r   ztest ztest2 ztest3 )rangerB   r   r-   r2   assertIsr1   rA   
TEST_TOOL2
TEST_TOOL3r/   	__class__rK   r;   tools     r   setUpMonitoringTestBase.setUpT   s    !HDS^^66t<a@ cnn--i8$?cnn--j94@cnn--j94@""9g8O8O.OP"":x$..:Q:Q/QR"":x$..:Q:Q/QRr   c                 X   [        S5       H2  nU R                  [        R                  R	                  U5      S5        M4     [        R                  R                  [        5        [        R                  R                  [        5        [        R                  R                  [        5        g )NrT   r   )	rU   rB   r   r-   r2   r0   rA   rW   rX   rZ   s     r   tearDownMonitoringTestBase.tearDown_   se    !HDS^^66t<a@ ##I.##J/##J/r   r   N)rK   rL   rM   rN   r\   r_   rO   r   r   r   rQ   rQ   R   s    	S0r   rQ   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
MonitoringCountTesth   c                      " S S5      nU" 5       n[         R                  R                  [        X%5        U[        R
                  :X  d  U[        R                  :X  a3  [         R                  R                  [        [        R                  5        O$[         R                  R                  [        U5        U R                  UR                  S5        SUl
        U" 5         U R                  UR                  U5        [         R                  R                  [        US 5      nSUl
        U" 5         U R                  UR                  S5        U R                  Xe5        [         R                  R                  [        S5        g )Nc                        \ rS rSrS rS rSrg)6MonitoringCountTest.check_event_count.<locals>.Counterl   c                     SU l         g r   countrH   s    r   __init__?MonitoringCountTest.check_event_count.<locals>.Counter.__init__m   s	    
r   c                 .    U =R                   S-  sl         g Nr   ri   r;   argss     r   __call__?MonitoringCountTest.check_event_count.<locals>.Counter.__call__o   s    

a
r   ri   NrK   rL   rM   rN   rk   rq   rO   r   r   r   Counterrf   l   s     r   rt   r   )r   r-   r6   rA   ErE   rF   r3   rG   rB   rj   )r;   r&   eventexpectedrt   counterprevs          r   check_event_count%MonitoringCountTest.check_event_countj   s    	  	  )((ECAJJ%199"4NN%%i8NN%%i7*1~~//	5$G*'!!)Q/r   c                 N    U R                  [        [        R                  S5        g rn   )rz   r   ru   PY_STARTrH   s    r   test_start_count$MonitoringCountTest.test_start_count       r1::q1r   c                 N    U R                  [        [        R                  S5        g Nr    )rz   r   ru   	PY_RESUMErH   s    r   test_resume_count%MonitoringCountTest.test_resume_count       r1;;2r   c                 N    U R                  [        [        R                  S5        g rn   )rz   r   ru   	PY_RETURNrH   s    r   test_return_count%MonitoringCountTest.test_return_count   r   r   c                 N    U R                  [        [        R                  S5        g )Nr!   )rz   r   ru   rG   rH   s    r   test_call_count#MonitoringCountTest.test_call_count   s    r1661-r   c                 N    U R                  [        [        R                  S5        g r   )rz   r   ru   rE   rH   s    r   test_c_return_count'MonitoringCountTest.test_c_return_count   r   r   r   N)rK   rL   rM   rN   rz   r~   r   r   r   r   rO   r   r   r   rb   rb   h   s     02233.2r   rb   startresumereturnyieldjumpbranchraiseunwindexception_handledc_raisec_returnc                      g r
   r   r   r   r   	just_passr      r   r   )py_callr   r   c                      [         er
   	Exceptionr   r   r   
just_raiser      s    
Or   )r   r   r   r   c                      [        / 5        g r
   r   r   r   r   	just_callr      s	    Gr   )r   r   c_callr   r   c                  0     SS-    g ! [          a     g f = fNr   r   r   r   r   r   caughtr      s     	! s    
)r   r   r   r   r   r   c                      [        5         g r
   )r   r   r   r   nested_callr      s    Kr   )r   r   r   r   r   r   c                   $    \ rS rSrS rSS jrSrg)MonitoringEventsBase   c                   ^ / m[          H3  u  p#US.U4S jjn[        R                  R                  [        X$5        M5     U4S jn[        R                  R                  [        [
        R                  U5        [        R                  R                  [        [        5        / m U" 5         [        R                  R                  [        S5        TS S mT$ !    N/= f)N)
event_namec                 (   > TR                  U 5        g r
   append)r   rp   r.   s     r   record2MonitoringEventsBase.gather_events.<locals>.record   s    j)r   c                 v   > [        U[        5      (       a  TR                  S5        g TR                  S5        g )Nr   r   )
isinstancePY_CALLABLESr   )coder'   objargr.   s       r   record_call7MonitoringEventsBase.gather_events.<locals>.record_call   s(    #|,,i(h'r   r   )	SIMPLE_EVENTSr   r-   r6   rA   ru   rG   r3   SIMPLE_EVENT_SET)r;   r&   rv   r   r   r   r.   s         @r   gather_events"MonitoringEventsBase.gather_events   s    !.E)3 * *NN,,YF "/	(
 	((AFFKH!!)-=>	F 	!!)Q/	s   %C CNc                 f    U R                  U5      nUc  UR                  nU R                  X25        g r
   )r   r.   rB   )r;   r&   rw   r.   s       r   check_events!MonitoringEventsBase.check_events  s/    ##D){{H*r   r   r
   )rK   rL   rM   rN   r   r   rO   r   r   r   r   r      s    .+r   r   c                   2    \ rS rSrS rS rS rS rS rSr	g)	MonitoringEventsTesti  c                 .    U R                  [        5        g r
   )r   r   rH   s    r   test_just_pass#MonitoringEventsTest.test_just_pass	      )$r   c                      U R                  [        5        U R                  [        R
                  R                  [        5      S5        g ! [         a     N@f = fr   )r   r   r   rB   r   r-   r2   rA   rH   s    r   test_just_raise$MonitoringEventsTest.test_just_raise  sJ    	j) 	229=qA  		s   A 
AAc                 .    U R                  [        5        g r
   )r   r   rH   s    r   test_just_call#MonitoringEventsTest.test_just_call  r   r   c                 .    U R                  [        5        g r
   )r   r   rH   s    r   test_caught MonitoringEventsTest.test_caught  s    &!r   c                 .    U R                  [        5        g r
   )r   r   rH   s    r   test_nested_call%MonitoringEventsTest.test_nested_call  s    +&r   r   N)
rK   rL   rM   rN   r   r   r   r   r   rO   r   r   r   r   r     s    %B%"'r   r   )testfuncc                        \ rS rSrS rS rSrg)SimulateProfileTesti!  c                    U R                  [        5      n[        R                  " U5      nU R	                  US   US   5        U R	                  US   US   US   -   5        U R	                  US   US   US   -   5        g )Nr   r   r   r   r   r   r   )r   r   collectionsrt   rB   )r;   r.   cs      r   test_balanced!SimulateProfileTest.test_balanced#  s~    ##H-'8a
m47Qx[1X;%>?7Q':%;ak%IJr   c                   ^^^ S U l         / m/ m[        5       mUU4S jnUU4S jnU4S jn[         H'  n[        R                  R                  [        XA5        M)     [         H'  n[        R                  R                  [        XB5        M)     [        R                  R                  [        [        R                  U5        [        R                  R                  [        [        5        [        5         [        R                  R                  [        S5        U R                  T/ 5        U R                  T[        R                  " 5       /5        U R                  [        T5      S5        g )Nc                     > [         R                  " S5      nT(       d  TR                  S5        g TR                  5       nX:w  a  TR                  SU SU 35        g g )Nr   emptyz	 Popping z
 expected )r   	_getframer   pop)rp   framerw   errorsstacks      r   up0SimulateProfileTest.test_frame_stack.<locals>.up/  sO    MM!$Eg& 99;$MMIeWJxj"IJ %r   c                     > [         R                  " S5      nTR                  U5        TR                  UR                  5        g rn   )r   r   r   addf_code)rp   r   seenr   s     r   down2SimulateProfileTest.test_frame_stack.<locals>.down7  s-    MM!$ELLHHU\\"r   c                 |   > [        U[        5      (       d&  TR                  [        R                  " S5      5        g g rn   )r   r   r   r   r   )r   r'   callabler   r   s       r   call2SimulateProfileTest.test_frame_stack.<locals>.call;  s*    h55S]]1-. 6r   r   	   )maxDiffset	UP_EVENTSr   r-   r6   rA   DOWN_EVENTSru   rG   r3   r   r   rB   r   r   )r;   r   r   r   rv   r   r   r   s        @@@r   test_frame_stack$SimulateProfileTest.test_frame_stack*  s    u	K	#	/ ENN,,YB  ENN,,YD !((AFFDA!!)-=>
!!)Q/$ 12TA&r   )r   N)rK   rL   rM   rN   r   r   rO   r   r   r   r   r   !  s    K'r   r   c                        \ rS rSrS rS rSrg)CounterWithDisableiK  c                      SU l         SU l        g )NFr   )disablerj   rH   s    r   rk   CounterWithDisable.__init__M  s    
r   c                     U =R                   S-  sl         U R                  (       a  [        R                  R                  $ g rn   )rj   r   r   r-   r8   ro   s     r   rq   CounterWithDisable.__call__Q  s+    

a
<<>>))) r   )rj   r   Nrs   r   r   r   r   r   K  s    *r   r   c                        \ rS rSrS rS rSrg)RecorderWithDisableiW  c                     SU l         Xl        g )NFr   r.   r;   r.   s     r   rk   RecorderWithDisable.__init__Y  s    r   c                     U R                   R                  U5        U R                  (       a  [        R                  R
                  $ g r
   )r.   r   r   r   r-   r8   )r;   r   rv   s      r   rq   RecorderWithDisable.__call__]  s0    5!<<>>))) r   r  Nrs   r   r   r   r  r  W  s    *r   r  c                        \ rS rSrS rS rSrg)MontoringDisableAndRestartTestic  c                     [        5       n[        R                  R                  [        [
        R                  U5        [        R                  R                  [        [
        R                  5        U R                  UR                  S5        SUl	        [        5         U R                  UR                  S5        SUl        SUl	        [        5         U R                  UR                  S5        SUl	        [        5         U R                  UR                  S5        [        R                  R                  [        S5        [        R                  R                  5         g ! [        R                  R                  5         f = f)Nr   r   T)r   r   r-   r6   rA   ru   r}   r3   rB   rj   r   r   r7   r;   rx   s     r   test_disable+MontoringDisableAndRestartTest.test_disablee  s    	,(*GNN,,Y

GLNN%%i<W]]A.GMDW]]A."GOGMDW]]A.GMDW]]A.NN%%i3NN))+CNN))+s   D=E  E>c                     [        5       n[        R                  R                  [        [
        R                  U5        [        R                  R                  [        [
        R                  5        SUl        [        5         SUl
        [        5         U R                  UR                  S5        [        R                  R                  5         SUl
        [        5         U R                  UR                  S5        [        R                  R                  [        S5        [        R                  R                  5         g ! [        R                  R                  5         f = f)NTr   r   )r   r   r-   r6   rA   ru   r}   r3   r   r   rj   rB   r7   r  s     r   test_restart+MontoringDisableAndRestartTest.test_restarty  s    	,(*GNN,,Y

GLNN%%i<"GODGMDW]]A.NN))+GMDW]]A.NN%%i3NN))+CNN))+s   DD= = Er   N)rK   rL   rM   rN   r  r  rO   r   r   r   r  r  c  s    ,(,r   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	MultipleMonitorsTesti  c                     U R                  [        R                  R                  5       0 5        [	        5       n[	        5       n[        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  5        [        R                  R                  [        [        R                  5        U R                  [        R                  R                  [        5      [        R                  5        U R                  [        R                  R                  [        5      [        R                  5        U R                  [        R                  R                  5       SS[        -  S[        -  -  05        SUl        SUl        [        5         UR                  nUR                  nU R                  X44S5        [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        g ! [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        f = f)Nr}   r   r   r   r   )rB   r   r-   _all_eventsr   r6   rA   ru   r}   rW   r3   r2   rj   r   r;   counter1counter2count1count2s        r   test_two_same"MultipleMonitorsTest.test_two_same  s>   	?S^^7792>)+H)+HNN,,Y

HMNN,,ZXNNN%%i<NN%%j!**=S^^66yA1::NS^^66zBAJJOS^^779Ji\]ak\kHl;mnHNHND^^F^^Ff-v6NN%%i3NN%%j!4NN,,Y

DINN,,ZTJS^^7792>	 NN%%i3NN%%j!4NN,,Y

DINN,,ZTJS^^7792>s   HK1 1COc                 
    U R                  [        R                  R                  5       0 5        [	        5       n[	        5       n[	        5       n[        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  5        [        R                  R                  [        [        R                  5        [        R                  R                  [        [        R                  5        U R                  [        R                  R                  [        5      [        R                  5        U R                  [        R                  R                  [        5      [        R                  5        U R                  [        R                  R                  [        5      [        R                  5        U R                  [        R                  R                  5       SS[        -  S[        -  -  S[        -  -  05        SUl        SUl        SUl        [        5         UR                  nUR                  nUR                  nU R                  XEU4S5        [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        g ! [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        f = f)Nr}   r   r   )r   r   r   )rB   r   r-   r  r   r6   rA   ru   r}   rW   rX   r3   r2   rj   r   )r;   r  r  counter3r  r  count3s          r   test_three_same$MultipleMonitorsTest.test_three_same  s   	?S^^7792>)+H)+H)+HNN,,Y

HMNN,,ZXNNN,,ZXNNN%%i<NN%%j!**=NN%%j!**=S^^66yA1::NS^^66zBAJJOS^^66zBAJJOS^^779Ji\]ak\kHlpqup  IA  <B  CHNHNHND^^F^^F^^Fff5yANN%%i3NN%%j!4NN%%j!4NN,,Y

DINN,,ZTJNN,,ZTJS^^7792> NN%%i3NN%%j!4NN%%j!4NN,,Y

DINN,,ZTJNN,,ZTJS^^7792>s   K P D5Uc                     U R                  [        R                  R                  5       0 5        [	        5       n[	        5       n[        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  5        [        R                  R                  [        [        R                  5        U R                  [        R                  R                  [        5      [        R                  5        U R                  [        R                  R                  [        5      [        R                  5        U R                  [        R                  R                  5       S[        -  S[        -  S.5        SUl        SUl        [        5         UR                  nUR                  nU R                  X44S5        [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        g ! [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        f = f)Nr   )r}   r   r   r  )rB   r   r-   r  r   r6   rA   ru   r}   rW   r   r3   r2   rj   r   r  s        r   test_two_different'MultipleMonitorsTest.test_two_different  s9   	?S^^7792>)+H)+HNN,,Y

HMNN,,ZhONN%%i<NN%%j!++>S^^66yA1::NS^^66zBAKKPS^^779Yefjtet;uvHNHND^^F^^Ff-v6NN%%i3NN%%j!4NN,,Y

DINN,,ZdKS^^7792>	 NN%%i3NN%%j!4NN,,Y

DINN,,ZdKS^^7792>s   HK/ /COc                     U R                  [        R                  R                  5       0 5        [	        5       n[	        5       n[        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  5        [        R                  R                  [        [        R                  5        U R                  [        R                  R                  [        5      [        R                  5        U R                  [        R                  R                  [        5      [        R                  5        U R                  [        R                  R                  5       SS[        -  S[        -  -  05        SUl        SUl        SUl        [        5         UR                  nUR                  nU R                  X44S5        SUl        SUl        [        5         UR                  nUR                  nU R                  X44S5        [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        [        R                  R                  5         g ! [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        [        R                  R                  5         f = f)Nr}   r   r   Tr  r   )rB   r   r-   r  r   r6   rA   ru   r}   rW   r3   r2   rj   r   r   r7   r  s        r   test_two_with_disable*MultipleMonitorsTest.test_two_with_disable  s   	,S^^7792>)+H)+HNN,,Y

HMNN,,ZXNNN%%i<NN%%j!**=S^^66yA1::NS^^66zBAJJOS^^779Ji\]ak\kHl;mnHNHN#HD^^F^^Ff-v6HNHND^^F^^Ff-v6NN%%i3NN%%j!4NN,,Y

DINN,,ZTJS^^7792>NN))+ NN%%i3NN%%j!4NN,,Y

DINN,,ZTJS^^7792>NN))+s   IM C<Qc                 P   S nUR                   n U R                  [        R                  R	                  5       0 5        [        R                  R                  [        U[        R                  [        R                  -  5        [        R                  R                  [        U[        R                  5        [        R                  R                  [        S5        [        R                  R                  [        S5        U R                  [        R                  R	                  5       0 5        g ! [        R                  R                  [        S5        [        R                  R                  [        S5        U R                  [        R                  R	                  5       0 5        f = f)Nc                      g r
   r   r   r   r   f;MultipleMonitorsTest.test_with_instruction_event.<locals>.f      r   r   )r$   rB   r   r-   r  r5   rA   ru   INSTRUCTIONLINErW   r3   )r;   r,  r   s      r   test_with_instruction_event0MultipleMonitorsTest.test_with_instruction_event  s    	zz	?S^^7792>NN++ItQ]]QVV=STNN++JaffENN%%i3NN%%j!4S^^7792> NN%%i3NN%%j!4S^^7792>s   B%D- -A8F%r   N)
rK   rL   rM   rN   r  r"  r%  r(  r1  rO   r   r   r   r  r    s    ?2?B?2,B?r   r  c                   J    \ rS rSrS rS rS r\4S jrS r	S r
S rS	 rS
rg)LineMonitoringTesti  c                 "    U R                  [        R                  R                  5       0 5        / n[	        U5      n[        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  5        [        5         [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        [        R                  S5      nU R                  XS-   [        [        S5      US-   /5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        [        R                  R                  5         g ! [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        [        R                  R                  5         f = f)Nr      r      )rB   r   r-   r  r  r6   rA   ru   r0  r3   r   r(   r4  test_lines_singler7   )r;   r.   recorderr   s       r   r8  $LineMonitoringTest.test_lines_single  s   	,S^^7792>F*62HNN,,YINN%%i8DNN%%i3NN,,YE/AA1EEVAgxAa%HINN%%i3NN,,YES^^7792>NN))+ NN%%i3NN,,YES^^7792>NN))+s   EG) )B%Jc                 J    U R                  [        R                  R                  5       0 5        / n[	        U5      n[        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  5        [        5         [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        [        R                  S5      n[        [        S5      n[        [        S5      nU R                  UUS-   XEXEXCS-   /5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        [        R                  R                  5         g ! [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        [        R                  R                  5         f = f)Nr   r   r    r6  r7  )rB   r   r-   r  r  r6   rA   ru   r0  r3   r   r(   r4  test_lines_loopr7   )r;   r.   r9  r   floop_1floop_2s         r   r<  "LineMonitoringTest.test_lines_loop&  s   	,S^^7792>F*62HNN,,YINN%%i8GNN%%i3NN,,YE/??CEua(Gua(Gq'GgQwO
 NN%%i3NN,,YES^^7792>NN))+ NN%%i3NN,,YES^^7792>NN))+s   EG= =B%J"c                 6    U R                  [        R                  R                  5       0 5        / n[	        U5      n/ n[	        U5      n[        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  U5        [        R                  R                  [        [        R                  5        [        R                  R                  [        [        R                  5        [        5         [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        [        [        R                  S5      nUS-   [        [        S5      US-   /nU R                  X5        U R                  X65        [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        [        R                  R                  5         g ! [        R                  R                  [        S5        [        R                  R                  [        S5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        [        R                  S 5        U R                  [        R                  R                  5       0 5        [        R                  R                  5         f = f)Nr   
   r      )rB   r   r-   r  r  r6   rA   ru   r0  rW   r3   r   r(   r4  test_lines_twor7   )r;   r.   r9  events2	recorder2r   rw   s          r   rC  !LineMonitoringTest.test_lines_two=  si   	,S^^7792>F*62HG+G4INN,,YINN,,ZKNN%%i8#..:S:ST^`a`f`f:gDNN%%i3S^^5N5Nz[\5]NN,,YENN,,ZF/>>BEb(2q/58<HV.W/NN%%i3NN%%j!4NN,,YENN,,ZFS^^7792>NN))+ NN%%i3NN%%j!4NN,,YENN,,ZFS^^7792>NN))+s   HL C<Pc                     U R                  [        R                  R                  5       0 5        / n[	        U5      n[        R                  R                  U[        R                  U5        [        R                  R                  U[        R                  5        U" 5         [        R                  R                  US5        [        R                  R                  U[        R                  S 5        USS  Vs/ s H  ofUR                  R                  -
  PM     nnU R                  Xr5        [        R                  R                  US5        g s  snf ! [        R                  R                  US5        f = f)Nr   r   r   )rB   r   r-   r  r  r6   ru   r0  r3   r$   r%   )r;   r&   rw   r[   r.   r9  lineliness           r   check_linesLineMonitoringTest.check_linesW  s    	/S^^7792>F*62HNN,,T1668DNN%%dAFF3FNN%%dA.NN,,T1664@FLQrlTldT]]999lETU-NN%%dA. U NN%%dA.s   C5E 7"EE E "E4c                 2    S nU R                  U/ SQ5        g )Nc                      Sn Sn Sn Sn Sn g )Nr   r    r!   r"      r   rH  s    r   r&   ,LineMonitoringTest.test_linear.<locals>.funci  s    DDDDDr   )r   r    r!   r"   rN  rJ  r;   r&   s     r   test_linearLineMonitoringTest.test_linearg  s    	 	{+r   c                 2    S nU R                  U/ SQ5        g )Nc                  F    SR                  S5      (       a  Sn Sn Sn g Sn Sn g )Ntruetr    r!   rN  rT   )
startswithrO  s    r   r&   ,LineMonitoringTest.test_branch.<locals>.funcs  s0      %% D Dr   r   r    r!   rT   rQ  rR  s     r   test_branchLineMonitoringTest.test_branchr  s    	 	y)r   c                 `    S nU R                  U/ SQ5        S nU R                  U/ SQ5        g )Nc                  (     Sn Sn Sn g !   Sn  Sn g = fNr    r!   rN  rT   r   rO  s    r   func11LineMonitoringTest.test_try_except.<locals>.func1  s)     DDs   	 r[  c                  "     Sn Se!   Sn  Sn g = fr`  r   rO  s    r   func21LineMonitoringTest.test_try_except.<locals>.func2  s"    Ds    )r   r    r!   r"   rN  rT   rQ  )r;   ra  rd  s      r   test_try_except"LineMonitoringTest.test_try_except}  s0    	 		*	 	.r   c                 2    S nU R                  U/ SQ5        g )Nc                  8   ^ S mU4S jn [        U " 5       5        g )Nc               3      #    S v   g 7fr
   r   r   r   r   aALineMonitoringTest.test_generator_with_line.<locals>.f.<locals>.a  s        c               3   0   >#    T " 5        S h  vN   g  N7fr
   r   )rk  s   r   bALineMonitoringTest.test_generator_with_line.<locals>.f.<locals>.b  s     3s   )next)ro  rk  s    @r   r,  6LineMonitoringTest.test_generator_with_line.<locals>.f  s    Ir   )r   r!   rN  r"   r    r"   rQ  )r;   r,  s     r   test_generator_with_line+LineMonitoringTest.test_generator_with_line  s    	 	M*r   r   N)rK   rL   rM   rN   r8  r<  rC  rA   rJ  rS  r\  rf  rs  rO   r   r   r   r4  r4    s/    ,$,.,4 09 / 	,	*/,	+r   r4  c                   ,    \ rS rSrS rS rS rS rSrg)TestDisablei  c              #   R   #    [        S5       H  nU(       a  Sv   M  Sv   M     g 7f)NrA  r   r    rU   )r;   condis      r   r   TestDisable.gen  s      rA	 s   %'c                      SS-    g !   e = fr   r   rH   s    r   raise_handle_reraise TestDisable.raise_handle_reraise  s    	aC	s    c                 l   [          H  u  p [        5       nSUl        [        R                  R                  [        X5        [        R                  R                  [        U5        U R                  S5       H  nM     U R                  UR                  S5        [        R                  R                  [        S5        [        R                  R                  [        US 5        M     g ! [        R                  R                  [        S5        [        R                  R                  [        US 5        f = f)NTr   r"   r   )INSTRUMENTED_EVENTSr   r   r   r-   r6   rA   r3   r   
assertLessrj   )r;   rv   namerx   r   s        r   test_disable_legal_events%TestDisable.test_disable_legal_events  s    .KE
I,."&00EK)))U;!A %q1)))Q700E4H / )))Q700E4Hs   BC((AD3c                    [          H  u  p [        5       nSUl        [        R                  R                  [        X5        [        R                  R                  [        U5        U R                  [        5         U R                  5         S S S 5        [        R                  R                  [        S5        [        R                  R                  [        US 5        M     g ! , (       d  f       N\= f! [        R                  R                  [        S5        [        R                  R                  [        US 5        f = f)NTr   )EXCEPT_EVENTSr   r   r   r-   r6   rA   r3   rC   rD   r}  )r;   rv   r  rx   s       r   test_disable_illegal_events'TestDisable.test_disable_illegal_events  s    (KE	I,."&00EK)))U;&&z2--/ 3 )))Q700E4H ) 32 )))Q700E4Hs%   A.C3;C"C3"
C0	,C33AD>r   N)	rK   rL   rM   rN   r   r}  r  r  rO   r   r   r   rv  rv    s    IIr   rv  c                   8    \ rS rSr\R
                  rS rS rSr	g)ExceptionRecorderi  c                     Xl         g r
   r.   r  s     r   rk   ExceptionRecorder.__init__      r   c                 P    U R                   R                  S[        U5      45        g )Nr   r.   r   typer;   r   r'   excs       r   rq   ExceptionRecorder.__call__      GT#Y/0r   r  N)
rK   rL   rM   rN   ru   RAISE
event_typerk   rq   rO   r   r   r   r  r    s    J1r   r  c                   0    \ rS rSrS r\\44S jrS rSr	g)CheckEventsi  c                 2    U R                  [        R                  R                  5       0 5        / nSnU H9  nUR                  n[        R                  R                  X'U" U5      5        XW-  nM;     [        R                  R                  X%5        U" 5         [        R                  R                  US5        U H-  n[        R                  R                  X&R                  S 5        M/     U[        R                  R                  US5        U H-  n[        R                  R                  X&R                  S 5        M/     $ ! [        R                  R                  US5        U H-  n[        R                  R                  X&R                  S 5        M/     f = fr   )rB   r   r-   r  r  r6   r3   )r;   r&   r[   	recorders
event_list
all_eventsr9  evs           r   r2   CheckEvents.get_events  s-   	RS^^7792>JJ%((008J;OP 
 & NN%%d7FNN%%dA.%007J7JDQ &NN%%dA.%007J7JDQ & NN%%dA.%007J7JDQ &s   C+E AFc                     U R                  XU5      nXR:w  a  [        U[        R                  S9  U R	                  XR5        g )N)file)r2   printr   stderrrB   )r;   r&   rw   r[   r  r.   s         r   r   CheckEvents.check_events  s4    Y7&,*r   c                 <   U R                  U[        U5      nU R                  [        U5      S-  S5        [	        US S S2   USS S2   5       HK  u  pEUS   nU R                  US5        US   nU R                  US5        U R                  US   US   5        MM     g )Nr    r   r   )r   reraise)handledr   )r2   rA   rB   r   zipassertIn)r;   r&   r  r.   rhr0h0s           r   check_balancedCheckEvents.check_balanced  s    y)<VQ*ssF14a4L1DA1BMM"231BMM"34QqT1Q4( 2r   r   N)
rK   rL   rM   rN   r2   rA   r  r   r  rO   r   r   r   r  r    s    R( 1:FWEY +)r   r  c                   ,    \ rS rSr\R
                  rSrg)StopiterationRecorderi  r   N)rK   rL   rM   rN   ru   STOP_ITERATIONr  rO   r   r   r   r  r    s    !!Jr   r  c                   2    \ rS rSr\R
                  rS rSrg)ReraiseRecorderi  c                 P    U R                   R                  S[        U5      45        g )Nr  r  r  s       r   rq   ReraiseRecorder.__call__      ItCy12r   r   N)	rK   rL   rM   rN   ru   RERAISEr  rq   rO   r   r   r   r  r    s    J3r   r  c                   2    \ rS rSr\R
                  rS rSrg)UnwindRecorderi  c                 f    U R                   R                  S[        U5      UR                  45        g )Nr   )r.   r   r  co_namer  s       r   rq   UnwindRecorder.__call__
  s#    Hd3i>?r   r   N)	rK   rL   rM   rN   ru   	PY_UNWINDr  rq   rO   r   r   r   r  r    s    J@r   r  c                   2    \ rS rSr\R
                  rS rSrg)ExceptionHandledRecorderi  c                 P    U R                   R                  S[        U5      45        g )Nr  r  r  s       r   rq   !ExceptionHandledRecorder.__call__  r  r   r   N)	rK   rL   rM   rN   ru   EXCEPTION_HANDLEDr  rq   rO   r   r   r   r  r    s    $$J3r   r  c                   2    \ rS rSr\R
                  rS rSrg)ThrowRecorderi  c                 P    U R                   R                  S[        U5      45        g )Nthrowr  r  s       r   rq   ThrowRecorder.__call__  r  r   r   N)	rK   rL   rM   rN   ru   PY_THROWr  rq   rO   r   r   r   r  r    s    J1r   r  c                   8    \ rS rSr\R
                  rS rS rSr	g)CallRecorderi  c                     Xl         g r
   r  r  s     r   rk   CallRecorder.__init__  r  r   c                 T    U R                   R                  SUR                  U45        g )Nr   )r.   r   rK   r;   r   r'   r&   r   s        r   rq   CallRecorder.__call__"  s    FDMM378r   r  N)
rK   rL   rM   rN   ru   rG   r  rk   rq   rO   r   r   r   r  r    s    J9r   r  c                   8    \ rS rSr\R
                  rS rS rSr	g)ReturnRecorderi%  c                     Xl         g r
   r  r  s     r   rk   ReturnRecorder.__init__)  r  r   c                 T    U R                   R                  SUR                  U45        g )Nr   )r.   r   r  )r;   r   r'   vals       r   rq   ReturnRecorder.__call__,  s    HdllC89r   r  N)
rK   rL   rM   rN   ru   r   r  rk   rq   rO   r   r   r   r  r  %  s    J:r   r  c                       \ rS rSr\\\\4rS r	\
S 5       rS\4S\4/rS\4S\4/rS rS rS	 rS
 rS rS rS r\
S 5       rSrg)ExceptionMonitoringTesti/  c                 <    S nU R                  US[        4/5        g )Nc                  *     Sn [         e!   Sn  Sn g = fNr    rN  rT   KeyErrorrO  s    r   ra  =ExceptionMonitoringTest.test_simple_try_except.<locals>.func1:  "    D   
 r   )r   r  r;   ra  s     r   test_simple_try_except.ExceptionMonitoringTest.test_simple_try_except8  s!    	 	%7H"5!67r   c                 R   ^ S mU4S jnU R                  US[        4/[        4S9  g )Nc               3      #    Sv   g7fNr   r    r   r   r   r   r   AExceptionMonitoringTest.test_implicit_stop_iteration.<locals>.genI  s     Grm  c                  "   > T" 5        H  n M     g r
   r   )r   r   s    r   implicit_stop_iterationUExceptionMonitoringTest.test_implicit_stop_iteration.<locals>.implicit_stop_iterationM  s    U r   r   r  )r   StopIterationr  )r;   r  r   s     @r   test_implicit_stop_iteration4ExceptionMonitoringTest.test_implicit_stop_iterationF  s1    		 	1Wm4L3MZoYqrr   r   r  r  c                 >    S nU R                  UU R                  S9  g )Nc                  ,      SS-    g !   e = f!    g = fr   r   r   r   r   r&   ;ExceptionMonitoringTest.test_explicit_reraise.<locals>.func_  s&    aCs   	  r  r  exception_recordersrR  s     r   test_explicit_reraise-ExceptionMonitoringTest.test_explicit_reraise]  (    	 	00 	 	2r   c                 >    S nU R                  UU R                  S9  g )Nc                  F      SS-    g ! [          a  n e S n A ff = f!    g = fr   r   exs    r   r&   AExceptionMonitoringTest.test_explicit_reraise_named.<locals>.funcn  s/    aC  s   	 
  r  r  rR  s     r   test_explicit_reraise_named3ExceptionMonitoringTest.test_explicit_reraise_namedl  r  r   c                 >    S nU R                  UU R                  S9  g )Nc                  @      SS-    g ! [          a     g f = f!    g = fr   rD   r   r   r   r&   ;ExceptionMonitoringTest.test_implicit_reraise.<locals>.func}  s.    aC! s   	 
  r  r  rR  s     r   test_implicit_reraise-ExceptionMonitoringTest.test_implicit_reraise{  r  r   c                 >    S nU R                  UU R                  S9  g )Nc                  N      SS-    g ! [          a
  n  S n A g S n A ff = f!    g = fr   r  r  s    r   r&   AExceptionMonitoringTest.test_implicit_reraise_named.<locals>.func  s/    aC! s   	 
    $r  r  rR  s     r   test_implicit_reraise_named3ExceptionMonitoringTest.test_implicit_reraise_named  r  r   c                 >    S nU R                  UU R                  S9  g )Nc                  *      SS-    g ! f = f!    g = fr   r   r   r   r   r&   6ExceptionMonitoringTest.test_try_finally.<locals>.func  s#    aCDs   	  r  r  rR  s     r   test_try_finally(ExceptionMonitoringTest.test_try_finally  r  r   c                 >    S nU R                  UU R                  S9  g )Nc                  f   ^ S mU4S jn  U " 5       R                  S 5        g ! [         a     g f = f)Nc                 8   #    [        S5       H  n [        e   g 7frn   )rU   ZeroDivisionError)rz  s    r   async_generatorMExceptionMonitoringTest.test_async_for.<locals>.func.<locals>.async_generator  s     qA++ "s   c                  Z   >#     T" 5         S h  vN n M   N
 g ! [          a     g f = f7fr
   r   )r   r  s    r   
async_loopHExceptionMonitoringTest.test_async_for.<locals>.func.<locals>.async_loop  s4     &5&7 d&7  s4   +   +
(+(+)sendr  )r  r  s    @r   r&   4ExceptionMonitoringTest.test_async_for.<locals>.func  s4    
!!$'  s   # 
00r  r  rR  s     r   test_async_for&ExceptionMonitoringTest.test_async_for  s(    	& 	00 	 	2r   c                    ^ S mU4S jnU R                  UU R                  S9  U R                  U[        U R                  [        4-   5      nU R                  US   S[        45        g )Nc               3      #    Sv   Sv   g 7fr  r   r   r   r   r   /ExceptionMonitoringTest.test_throw.<locals>.gen  s     GGr   c                  v   >  T" 5       n [        U 5        U R                  [        5        g ! [         a     g f = fr
   )rq  r  
IndexError)gr   s    r   r&   0ExceptionMonitoringTest.test_throw.<locals>.func  s4    EQ
# s   '+ 
88r  r   r  )r  r  r2   rA   r  rB   r   )r;   r&   r.   r   s      @r   
test_throw"ExceptionMonitoringTest.test_throw  sp    		 	00 	 	2 $$'77

 	Wj$9:r   c                 b  ^  " S S5      mU4S jn[        S5       H
  nU" 5         M     [        [        4nU R                  U[        U5      n[
        R                  " USS9nU R                  SU Vs/ s H  ofR                  PM     sn5        S[        S	4S
/nU R                  XG5        g s  snf )Nc                       \ rS rSrS rSrg)@ExceptionMonitoringTest.test_no_unwind_for_shim_frame.<locals>.Bi  c                     [        5       er
   r  rH   s    r   rk   IExceptionMonitoringTest.test_no_unwind_for_shim_frame.<locals>.B.__init__  s
     l"r   r   NrK   rL   rM   rN   rk   rO   r   r   r   Br'    s    #r   r+  c                  4   >  T " 5       $ ! [          a     g f = fr
   r  )r+  s   r   r,  @ExceptionMonitoringTest.test_no_unwind_for_shim_frame.<locals>.f  s!    s
 s   
 
d   T)adaptiveCALL_ALLOC_AND_ENTER_INITr   rk   )r   r,  N)rU   r  r  r2   rA   disget_instructionsr  opnamerD   rB   )	r;   r,  r   r  r.   adaptive_instsrz  rw   r+  s	           @r   test_no_unwind_for_shim_frame5ExceptionMonitoringTest.test_no_unwind_for_shim_frame  s    	# 	#	 sAC  
	 Iy9--a$?'-.~!XX~.	
 z:.!

 	* /s   3B,
r   N)rK   rL   rM   rN   r  r  r  r  r  r  r   r  r  initialr  r  r  r  r  r  r  r#  r5  rO   r   r   r   r  r  /  s     	 	
8 
s 
s 
#$	%&G 
%&	%&G
222 2222;2 + +r   r  c                   8    \ rS rSr\R
                  rS rS rSr	g)LineRecorderi  c                     Xl         g r
   r  r  s     r   rk   LineRecorder.__init__  r  r   c                 l    U R                   R                  SUR                  X!R                  -
  45        g NrH  )r.   r   r  r%   )r;   r   rH  s      r   rq   LineRecorder.__call__  s(    FDLL$9L9L2LMNr   r  N)
rK   rL   rM   rN   ru   r0  r  rk   rq   rO   r   r   r   r9  r9    s    JOr   r9  c                        \ rS rSrS rS rSrg)CEventRecorderi  c                     Xl         g r
   r  r  s     r   rk   CEventRecorder.__init__	  r  r   c                 h    U R                   R                  U R                  UR                  U45        g r
   )r.   r   r   rK   r  s        r   rq   CEventRecorder.__call__  s#    DOOT]]C@Ar   r  Nrs   r   r   r   r@  r@    s    Br   r@  c                   0    \ rS rSr\R
                  rSrSrg)CReturnRecorderi  C returnr   N)	rK   rL   rM   rN   ru   rE   r  r   rO   r   r   r   rF  rF    s    JJr   rF  c                   0    \ rS rSr\R
                  rSrSrg)CRaiseRecorderi  C raiser   N)	rK   rL   rM   rN   ru   rF   r  r   rO   r   r   r   rI  rI    s    JJr   rI  c                   &    \ rS rSrS rS rS rSrg)TestManyEventsi  c                 x    S nU R                  U[        SSS[        R                  R                  4SSSSS	/S
9  g )Nc                      Sn SnSng Nr   r    r!   r   line1line2line3s      r   ra  )TestManyEvents.test_simple.<locals>.func1      EEEr   rH  r2   rA  r   ra  rH  ra  r   rH  ra  r    rH  ra  r!   rH  r2   rB  r   r3   r    r  rw   r   MANY_RECORDERSr   r-   r9   r  s     r   test_simpleTestManyEvents.test_simple  sJ    	
 	%^&Wcnn445   &%I' 	(r   c                     S nU R                  U[        SSS[        R                  R                  4SSSSS/4S	SS/4S
SS/	S9  g )Nc                  .    Sn / R                  S5        Sng rO  r   rQ  rS  s     r   rd  )TestManyEvents.test_c_call.<locals>.func2/      EIIaLEr   rV  r   rd  rH  rd  r   rH  rd  r    r   r    rG  rH  rd  r!   rZ  r[  r\  r]  r;   rd  s     r   test_c_callTestManyEvents.test_c_call-  sb    	
 	%^&Wcnn445  Xs#A3' &%	I' 		(r   c                     S nU R                  U[        SSS[        R                  R                  4SSSS[
        4S	S
SSS/S9  g )Nc                  *     Sn [         e!   Sn  Sn g = fr  r  rO  s    r   func3-TestManyEvents.test_try_except.<locals>.func3A  r  r  rV  r   rn  rH  rn  r   rH  rn  r    rH  rn  r!   r   rH  rn  r"   rH  rn  rN  rH  rn  rT   rZ  r[  r\  )r   r^  r   r-   r9   r  r;   rn  s     r   rf  TestManyEvents.test_try_except?  s[    	 	%^&Wcnn445   h   &%I' 	(r   r   N)rK   rL   rM   rN   r_  rj  rf  rO   r   r   r   rL  rL    s    ( ($(r   rL  c                   8    \ rS rSr\R
                  rS rS rSr	g)InstructionRecorderiV  c                     Xl         g r
   r  r  s     r   rk   InstructionRecorder.__init__Z  r  r   c                 v    UR                   S:w  a)  U R                  R                  SUR                   U45        g g )Nr2   instruction)r  r.   r   )r;   r   r'   s      r   rq   InstructionRecorder.__call__]  s0    <<<'KKt||VDE (r   r  N)
rK   rL   rM   rN   ru   r/  r  rk   rq   rO   r   r   r   ry  ry  V  s    JFr   ry  c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g)	TestLineAndInstructionEventsie  Nc                 8    S nU R                  U[        / SQS9  g )Nc                      Sn SnSng rO  r   rP  s      r   ra  7TestLineAndInstructionEvents.test_simple.<locals>.func1j  rU  r   rV  rW  r}  ra  r    r}  ra  r"   rX  r}  ra  rT   )r}  ra  r7  rY  )r}  ra  rA  )r}  ra     )r}  ra     rZ  r\  r   LINE_AND_INSTRUCTION_RECORDERSr  s     r   r_  (TestLineAndInstructionEvents.test_simpleh  s%    	
 	%-K Y( 	)r   c                 8    S nU R                  U[        / SQS9  g )Nc                  .    Sn / R                  S5        Sng rO  r   rc  s     r   rd  7TestLineAndInstructionEvents.test_c_call.<locals>.func2  re  r   )rV  rf  r}  rd  r    )r}  rd  r"   rg  )r}  rd  rT   )r}  rd  r7  )r}  rd     )r}  rd     )r}  rd  &   rh  )r}  rd  (   )r}  rd  *   )r}  rd  ,   rZ  r\  r  ri  s     r   rj  (TestLineAndInstructionEvents.test_c_call}  s%    	
 	%-K Y( 	)r   c                 8    S nU R                  U[        / SQS9  g )Nc                  *     Sn [         e!   Sn  Sn g = fr  r  rO  s    r   rn  ;TestLineAndInstructionEvents.test_try_except.<locals>.func3  r  r  )rV  rp  )r}  rn  r    rq  )r}  rn  r"   )r}  rn  rT   rr  )r}  rn  r7  )r}  rn     )r}  rn     rs  )r}  rn     rt  )r}  rn     )r}  rn     )r}  rn  r  ru  )r}  rn  r  )r}  rn      )r}  rn  "   rZ  r\  r  rv  s     r   rf  ,TestLineAndInstructionEvents.test_try_except  s%    	 	%-K Y( 	)r   c                     S nU R                  U[        / SQS9  [        R                  R	                  5         U R                  U[        / SQS9  g )Nc                      Sn SnSng rO  r   rP  s      r   ra  =TestLineAndInstructionEvents.test_with_restart.<locals>.func1  rU  r   r  r\  )r   r  r   r-   r7   r  s     r   test_with_restart.TestLineAndInstructionEvents.test_with_restart  sS    	
 	%-K Y( 	) 	%%'%-K Y( 	)r   c                   ^ / mU4S jn[         R                  R                  [        S5        [         R                  R	                  [        [
        R                  U5        [         R                  R	                  [        [
        R                  S 5        [         R                  R                  [        [
        R                  [
        R                  -  5        [         R                  R                  [        [
        R                  5        / mSn[         R                  R                  [        S5        U R                  [        T5      S5        g )Nc                  (   > TR                  S5        g r=  r   )rp   r.   s    r   rH  ITestLineAndInstructionEvents.test_turn_off_only_instruction.<locals>.line  s    MM&!r   r   c                      g r
   r   rp   s    r   <lambda>MTestLineAndInstructionEvents.test_turn_off_only_instruction.<locals>.<lambda>  s    QUr   )
r   r-   r3   rA   r6   ru   r0  r/  assertGreaterr   )r;   rH  rk  r.   s      @r   test_turn_off_only_instruction;TestLineAndInstructionEvents.test_turn_off_only_instruction  s     	"!!)Q/((AFFDA((AMMCUV!!)QVVamm-CD!!)QVV4!!)Q/3v;*r   r   )rK   rL   rM   rN   r   r_  rj  rf  r  r  rO   r   r   r   r  r  e  s"    G)*)0)B")H+r   r  c                       \ rS rSr\\44S jr\S 5       r/ SQr	S r
S r\S 5       rSS	S
\R                  R                  4SSS/rS rS rSrg)TestInstallIncrementallyi  c                     U R                  [        R                  R                  5       0 5        / nSnU H0  nXgR                  -  n[        R                  R                  X65        M2     U H3  n[        R                  R                  X7R                  U" U5      5        M5     U" 5         [        R                  R                  US5        U H-  n[        R                  R                  X7R                  S 5        M/     U H  nU R                  X5        M     [        R                  R                  US5        U H-  n[        R                  R                  X7R                  S 5        M/     g ! [        R                  R                  US5        U H-  n[        R                  R                  X7R                  S 5        M/     f = fr   )rB   r   r-   r  r  r3   r6   r  )	r;   r&   must_includer[   r  r  r  r9  rH  s	            r   r   %TestInstallIncrementally.check_events  sN   	RS^^7792>JJ%111
))$; & &007J7JHU_L`a &FNN%%dA.%007J7JDQ &$d/ % NN%%dA.%007J7JDQ & NN%%dA.%007J7JDQ &s   DE+ +AG c                      Sn g rn   r   )rQ  s    r   ra  TestInstallIncrementally.func1  s    r   )r  rX  r  r  c                 d    [         [        /nU R                  U R                  XR                  S9  g N)r  r  )r9  ry  r   ra  MUST_INCLUDE_LIr;   r  s     r   test_line_then_instruction3TestInstallIncrementally.test_line_then_instruction  0    "$79	$**&/@T@T 	 	Vr   c                 d    [         [        /nU R                  U R                  XR                  S9  g r  )ry  r9  r   ra  r  r  s     r   test_instruction_then_line3TestInstallIncrementally.test_instruction_then_line  /    )<9	$**&/@T@T 	 	Vr   c                      [        S5        g )Nr   r   r   r   r   rd  TestInstallIncrementally.func2  s	    Br   r  r   rd  )r   r   r   )r}  rd  r  )r}  rd  r  c                 d    [         [        /nU R                  U R                  XR                  S9  g r  )r  ry  r   rd  MUST_INCLUDE_CIr  s     r   test_call_then_instruction3TestInstallIncrementally.test_call_then_instruction#  r  r   c                 d    [         [        /nU R                  U R                  XR                  S9  g r  )ry  r  r   rd  r  r  s     r   test_instruction_then_call3TestInstallIncrementally.test_instruction_then_call(  r  r   r   N)rK   rL   rM   rN   rA   r  r   staticmethodra  r  r  r  rd  r   r-   r9   r  r  r  rO   r   r   r   r  r    s    4=J[I] R*  )OV
V
   (Wcnn445((*OV
Vr   r  c                   :    \ rS rSr\S4S jrS rS rS rS r	Sr
g)	TestLocalEventsi/  r   c                     U R                  [        R                  R                  5       0 5        / nSnU H9  nUR                  n[        R                  R                  X8U" U5      5        Xh-  nM;     [        R                  R                  X1R                  U5        U" 5         [        R                  R                  X1R                  S5        U H-  n[        R                  R                  X7R                  S 5        M/     U R                  XR5        [        R                  R                  X1R                  S5        U H-  n[        R                  R                  X7R                  S 5        M/     g ! [        R                  R                  X1R                  S5        U H-  n[        R                  R                  X7R                  S 5        M/     f = fr   )rB   r   r-   r  r  r6   r5   r$   )	r;   r&   rw   r[   r  r  r  r9  r  s	            r   r   TestLocalEvents.check_events1  sJ   	RS^^7792>JJ%((008J;OP 
 & NN++D--LFNN++D--C%007J7JDQ &Z2NN++D--C%007J7JDQ & NN++D--C%007J7JDQ &s   DE0 0AGc                 8    S nU R                  U[        / SQS9  g )Nc                      Sn SnSng rO  r   rP  s      r   ra  *TestLocalEvents.test_simple.<locals>.func1H  rU  r   )rW  rX  rY  r\  r   LOCAL_RECORDERSr  s     r   r_  TestLocalEvents.test_simpleF  s$    	
 	%_ J" 	#r   c           
      N    S nU R                  U[        SSSSS/4SSS/4S/S	9  g )
Nc                  .    Sn / R                  S5        Sng rO  r   rc  s     r   rd  *TestLocalEvents.test_c_call.<locals>.func2T  re  r   rf  rg  r   r   r    rG  rh  r\  r  ri  s     r   rj  TestLocalEvents.test_c_callR  sE    	
 	%_  Xs#A3' J" 	#r   c                 8    S nU R                  U[        / SQS9  g )Nc                  *     Sn [         e!   Sn  Sn g = fr  r  rO  s    r   rn  .TestLocalEvents.test_try_except.<locals>.func3b  r  r  )rp  rq  rr  rs  rt  ru  r\  r  rv  s     r   rf  TestLocalEvents.test_try_except`  s$    	 	%_ J" 	#r   c                     U R                  [        5         [        R                  R	                  [
        [        R                  [        R                  5        S S S 5        g ! , (       d  f       g = fr
   )
rC   rD   r   r-   r5   rA   r   r$   ru   r  rH   s    r   test_set_non_local_event(TestLocalEvents.test_set_non_local_eventr  s<    z*NN++Iy7I7I177S +**s   AA!!
A/N)rK   rL   rM   rN   rA   r   r_  rj  rf  r  rO   r   r   r   r  r  /  s"    09R R*
###$Tr   r  c                     U R                  5        H1  u  p#nX!s=::  a  U:  d  M  O  M  Uc  SU S3s  $ X@R                  -
  s  $    g)Nz[offset=]r   )co_linesr%   )r   r'   r   endrH  s        r   line_from_offsetr  v  sM     MMOD S  |!&++----	 ,
 r   c                   <    \ rS rSr\R
                  rSrS rS r	Sr
g)JumpRecorderi~  r   c                     Xl         g r
   r  r  s     r   rk   JumpRecorder.__init__  r  r   c                     [        X5      n[        X5      nU R                  R                  U R                  UR                  XE45        g r
   )r  r.   r   r  r  )r;   r   from_to	from_lineto_lines         r   rq   JumpRecorder.__call__  s7    $T1	"4,DIIt||YHIr   r  N)rK   rL   rM   rN   ru   JUMPr  r  rk   rq   rO   r   r   r   r  r  ~  s    JDJr   r  c                   0    \ rS rSr\R
                  rSrSrg)BranchRecorderi  r   r   N)	rK   rL   rM   rN   ru   BRANCHr  r  rO   r   r   r   r  r    s    JDr   r  c                   $    \ rS rSrSrS rS rSrg)TestBranchAndJumpEventsi  Nc                 f    S nU R                  U[        / SQS9  U R                  U[        / SQS9  g )Nc                  F    Sn [        S5       H  nU(       a  Sn M  Sn M     g )Nr   r    r"   rT   rx  )xrk  s     r   r&   /TestBranchAndJumpEvents.test_loop.<locals>.func  s'    A1XAA	 
 r   )r   r&   r    r    r   r&   r!   rT   r   r&   rT   r    r  r   r&   r!   r"   r   r&   r"   r    r   r&   r    r6  r\  )rV  rH  r&   r   rH  r&   r    r  rH  r&   r!   r  )rH  r&   rT   r  r  r  r  r  rH  r&   r"   r   r  r  )rH  r&   r6  rZ  )r   JUMP_AND_BRANCH_RECORDERSJUMP_BRANCH_AND_LINE_RECORDERSrR  s     r   	test_loop!TestBranchAndJumpEvents.test_loop  sC    	 	$,E S& 	' 	$,J X( 	)r   c                    ^  " S S5      mU4S jnU R                  U[        / SQS9  U R                  U[        SSSS	S
[        4SSSSSSSSS/S9  g )Nc                       \ rS rSrS rSrg)5TestBranchAndJumpEvents.test_except_star.<locals>.Fooi  c                     g r
   r   rH   s    r   meth:TestBranchAndJumpEvents.test_except_star.<locals>.Foo.meth  s    r   r   N)rK   rL   rM   rN   r  rO   r   r   r   Foor    s    r   r  c                     >   [         e! / =[         =b#  n T" 5       oR                  5         S n A PO	S n A P  PO  P8=c     g s f = f! [          a     g f = fr
   )r  r   r  )er,  r  s     r   r&   6TestBranchAndJumpEvents.test_except_star.<locals>.func  sG    ("N(	 (Avvxx( s*   
 A2	A A A 
AA)rV  r  r  r  r  r   r&   r"   r"   rH  r&   rN  rH  r  r   r   r&   rN  z[offset=118]r   r&   z[offset=122]z[offset=126]rZ  r\  rV  r  r  r  r   r  r  r  r  )r   r  Nr  r  )r   r&   NrZ  )r   r  FLOW_AND_LINE_RECORDERSr  )r;   r&   r  s     @r   test_except_star(TestBranchAndJumpEvents.test_except_star  s}    	 		 	$,J X( 	) 	$,C&h$$/>$&Q( 	)r   r   )rK   rL   rM   rN   r   r  r  rO   r   r   r   r  r    s    G&)P+)r   r  c                   l    \ rS rSr\\\\4rS r	SS jr
S rSS jrS rSS jrS rSS	 jrS
 rS rSrg)TestLoadSuperAttri  c                 "    0 n[        XU5        U$ r
   )exec)r;   cods      r   _execTestLoadSuperAttr._exec  s    RAr   c                     U(       a  SOSnU S[         R                  " U5       3n[        USS5      nU R                  U R	                  U5      U5        U R                  U5      $ )Nzx = 1zsuper = super
<string>r  )textwrapdedentcompilerB   _has_load_super_attrr"  )r;   codestr	optimized
assignmentr   s        r   _exec_superTestLoadSuperAttr._exec_super  s^     !*W
L8??7#;"<=Wj&12226	Bzz"~r   c                    ^  [        S [        R                  " U5       5       5      nU(       d  [        U 4S jUR                   5       5      nU$ )Nc              3   >   #    U  H  oR                   S :H  v   M     g7f)LOAD_SUPER_ATTRN)r3  ).0instrs     r   	<genexpr>9TestLoadSuperAttr._has_load_super_attr.<locals>.<genexpr>  s     ZAY,,"33AYs   c              3      >#    U  H7  n[        U[        R                  5      =(       a    TR                  U5      v   M9     g 7fr
   )r   typesCodeTyper*  )r3  r   r;   s     r   r5  r6    s6      %A 1enn-N$2K2KA2NN%s   ?A)anyr1  r2  	co_consts)r;   r   hass   `  r   r*  &TestLoadSuperAttr._has_load_super_attr  sD    ZAUAUVXAYZZ  C 
r   c                    SnU R                  X!5      nSSS[        R                  R                  4SSSUS   4SSS	[        R                  R                  4S
S	[        R                  R                  4SSSSSSSS/nUS   U4$ )Na[  
            class A:
                def method(self, x):
                    return x

            class B(A):
                def method(self, x):
                    return super(
                    ).method(
                        x
                    )

            b = B()
            def f():
                return b.method(1)
        rV  r   r,  rH  r,  r   methodro  rH  r@  r   superrG  rH  r@  r    rH  r@  r!   )r   r@  r   rZ  r[  r.  r   r-   r9   r;   r,  r+  r!  rw   s        r   _super_method_call$TestLoadSuperAttr._super_method_call  s      W0&S#..001Xqv&!Wcnn445#.."8"89!!!!!!&%
" vxr   c                     U R                  SS9u  pU R                  SS9u  p4U R                  XR                  US9  U R                  X0R                  US9  g NF)r,  Tr\  )rG  r   	RECORDERSr;   nonopt_funcnonopt_expectedopt_funcopt_expecteds        r   test_method_call"TestLoadSuperAttr.test_method_call3  s\    '+'>'>'>'O$!%!8!84!8!H+/Z(nn|Tr   c                     SnU R                  X!5      nSSS[        R                  R                  4SSSSUS   4S	S
SS	SSSSSS/nUS   U4$ )Na?  
            class A:
                def method(self, x):
                    return x

            class B(A):
                def method(self, x):
                    return super(
                        x,
                        self,
                    ).method(
                        x
                    )

            b = B()
            def f():
                try:
                    return b.method(1)
                except TypeError:
                    pass
                else:
                    assert False, "should have raised TypeError"
        rV  r   r,  r?  )rH  r,  r    r@  ro  rA  rC  rD  )r   rB  r   )rJ  rB  r   )rH  r,  r!   )rH  r,  r"   rZ  r[  rE  rF  s        r   _super_method_call_error*TestLoadSuperAttr._super_method_call_error:  s|    . W0&S#..001Xqv&!!!! #&%
" vxr   c                     U R                  SS9u  pU R                  SS9u  p4U R                  XR                  US9  U R                  X0R                  US9  g rJ  )rT  r   rK  rL  s        r   test_method_call_error(TestLoadSuperAttr.test_method_call_errorf  s\    '+'D'Du'D'U$!%!>!>!>!N+/Z(nn|Tr   c                     SnU R                  X!5      nSSS[        R                  R                  4SSSUS   4SSS	[        R                  R                  4S
S	[        R                  R                  4SSSS/nUS   U4$ )Nz
            class A:
                x = 1

            class B(A):
                def method(self):
                    return super(
                    ).x

            b = B()
            def f():
                return b.method()
        rV  r   r,  r?  r@  ro  rA  rB  rG  rC  rZ  r[  rE  rF  s        r   _super_attrTestLoadSuperAttr._super_attrm  s     W0&S#..001Xqv&!Wcnn445#.."8"89!!&%
 vxr   c                     U R                  SS9u  pU R                  SS9u  p4U R                  XR                  US9  U R                  X0R                  US9  g rJ  )rZ  r   rK  rL  s        r   	test_attrTestLoadSuperAttr.test_attr  s\    '+'7'7%'7'H$!%!1!1D!1!A+/Z(nn|Tr   c                 $   [         R                  " S5      nS nS H  nU R                  US9   U(       a  SOSnUR                  SUS9nUR                  S	US9n[	        US
S5      nU R                  U R                  U5      5        U R                  U5      nU R                  U5      n	U R                  US   U R                  U" SX85      S9  U R                  U	S   U R                  U" S	X95      S9  S S S 5        M     g ! , (       d  f       M  = f)Nz
            class C:
                def method(self):
                    return {cls}().__repr__{call}
            c = C()
            def f():
                return c.method()
        c           	      4   U S:X  a  SO[         R                  R                  nSSS[         R                  R                  4SSSUS   4S	SU [         R                  R                  4S
U [         R                  R                  4/U(       a
  SSU4S
SU4/O/ QSPSP$ )Nintr   rV  r   r,  r?  r@  r   rA  rG  __repr__rZ  r[  )r   r-   r9   )r  call_methodnsrepr_args       r   get_expected?TestLoadSuperAttr.test_vs_other_type_call.<locals>.get_expected  s     EMqs~~/E/EH*cnn445 2c7+%s~~556T3>>#9#9: %  X6#Z: +- + * r   )TF)rc  z() rB  )clsr   ra  r&  r  r,  r\  )
r'  r(  subTestformatr)  
assertTruer*  r"  r   rK  )
r;   code_templaterf  rc  call_str
code_supercode_intco_superns_superns_ints
             r   test_vs_other_type_call)TestLoadSuperAttr.test_vs_other_type_call  s     ) 	( )K+6#.4B*11gH1M
(//E/I":z6B 9 9( CD::h/H-!!SM"nn)';I " 
 !!3K"nn)%E "  76 )66s   CD  
D	r   N)F)rK   rL   rM   rN   r  r9  rI  rF  rK  r"  r.  r*  rG  rQ  rT  rW  rZ  r]  rt  rO   r   r   r   r  r    sG    lNOKI
# JU* XU <U1r   r  c                        \ rS rSrS rS rSrg)TestSetGetEventsi  c                 ,   [         R                  R                  [        [        R
                  5        U R                  [         R                  R                  [        5      [        R
                  5        [         R                  R                  [        [        R
                  5        U R                  [         R                  R                  [        5      [        R
                  5        [         R                  R                  [        S5        U R                  [         R                  R                  [        5      S5        [         R                  R                  [        S5        U R                  [         R                  R                  [        5      S5        g r   )	r   r-   r3   rA   ru   r}   rB   r2   rW   rH   s    r   test_globalTestSetGetEvents.test_global  s    !!)QZZ8229=qzzJ!!*ajj922:>

K!!)Q/229=qA!!*Q/22:>Br   c                 \   [         R                  n[        R                  R	                  [
        U[        R                  5        U R                  [        R                  R                  [
        U5      [        R                  5        [        R                  R	                  [        U[        R                  5        U R                  [        R                  R                  [        U5      [        R                  5        [        R                  R	                  [
        US5        U R                  [        R                  R                  [
        U5      S5        [        R                  R	                  [        US5        U R                  [        R                  R                  [        U5      S5        g r   )r   r$   r   r-   r5   rA   ru   r}   rB   r4   rW   )r;   r   s     r   
test_localTestSetGetEvents.test_local  s    {{''	4D88DI1::V''
D!**E88TJAJJW''	4;88DI1M''
D!<88TJANr   r   N)rK   rL   rM   rN   ry  r|  rO   r   r   r   rw  rw    s    C	Or   rw  c                   *    \ rS rSr\S 5       rS rSrg)TestUninitializedi  c                      g r
   r   r   r   r   r,  TestUninitialized.f  s    r   c                     U R                  [        R                  R                  [        U R
                  R                  5      S5        g r   )rB   r   r-   r4   rA   r,  r$   rH   s    r   #test_get_local_events_uninitialized5TestUninitialized.test_get_local_events_uninitialized  s,    88DFFOOTVWXr   r   N)rK   rL   rM   rN   r  r,  r  rO   r   r   r   r  r    s     Yr   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestRegressionsi  c                   ^^^ S mU4S jmUU4S jmU4S jnU" 5         U R                  TS5        S m [        R                  R                  [        [
        R                  5        U" 5         U R                  TS5        [        R                  R                  [        S5        g ! [        R                  R                  [        S5        f = f)Nc               3   D   >#     S v   g ! [          a	    Sm S v    g f = f7f)Ninnerr   )r   s   r   r  *TestRegressions.test_105162.<locals>.inner  s$       s    
    c               3   ^   >#     T" 5        S h  vN   g  N! [          a	    Sm S v    g f = f7f)Nouterr   )r   r  s   r   r  *TestRegressions.test_105162.<locals>.outer  s,      7""  s(   -
  - *-*-c                  `   > T" 5       n U R                  S 5        U R                  [        5        g r
   )r  r  r   )r   r  s    r   run(TestRegressions.test_105162.<locals>.run  s!    'CHHTNIIi r   r  r   )rB   r   r-   r3   rA   ru   r   )r;   r  r   r  r  s     @@@r   test_105162TestRegressions.test_105162  s    			! 	)	4NN%%i=EVW-NN%%i3CNN%%i3s   AB% %&Cc                    ^  " S S5      mU4S jn U" 5         [         R                  R                  [        S5        g ! [         R                  R                  [        S5        f = f)Nc                       \ rS rSrS rSrg)(TestRegressions.test_108390.<locals>.Fooi  c                 x    U(       a3  [         R                  R                  [        [        R
                  5        g g r
   )r   r-   r3   rA   ru   r   )r;   	set_events     r   rk   1TestRegressions.test_108390.<locals>.Foo.__init__  s"    NN--iE r   r   Nr*  r   r   r   r  r    s    Fr   r  c                  @   > [        S5       H  n T" U S:H  5        M     g )Nr.  c   rx  )rz  r  s    r   !make_foo_optimized_then_set_eventFTestRegressions.test_108390.<locals>.make_foo_optimized_then_set_event  s    3ZAG  r   r   )r   r-   r3   rA   )r;   r  r  s     @r   test_108390TestRegressions.test_108390	  sH    	F 	F
		4-/NN%%i3CNN%%i3s	   ? &A%c                 V   [         R                  R                  SS5        U R                  [         R                  R                  S5        [         R                  R                  SS5        [         R                  R                  S[        R                  S 5        [         R                  R                  S[        R                  S 5        [         R                  R                  S[        R                  [        R                  -  5        [         R                  R                  SS5        g )Nr   testc                  B    [         R                  R                  SS5      $ r   )r   r-   r3   r  s    r   r  /TestRegressions.test_gh108976.<locals>.<lambda>  s    #..B[B[\]_`Bar   c                      gr   r   r  s    r   r  r    s    r   )
r   r-   r/   
addCleanupr0   r3   r6   ru   r0  r/  rH   s    r   test_gh108976TestRegressions.test_gh108976  s    ""1f-33Q7!!!Q'((AFF4ab((AMM?K!!!QVVamm%;<!!!Q'r   c                   ^ SS jnSn/ n/ m[         R                  R                  SS5        U R                  [         R                  R                  S5        [         R                  R                  SS5        [         R                  R                  S[        R                  U4S j5        [         R                  R                  S[        R                  5        U" U6   U" U6   [         R                  R                  SS5        U R                  TS   US45        U R                  TS   U[         R                  R                  45        g )Nr   c                 
    X-   $ r
   r   )rk  ro  s     r   r,  0TestRegressions.test_call_function_ex.<locals>.f#  s	    5Lr   )r   r    r   r  c                 (   > TR                  X#45      $ r
   r   )r   r'   r   arg0	call_datas       r   r  7TestRegressions.test_call_function_ex.<locals>.<lambda>,  s    YbYiYiksjzY{r   )r   r-   r/   r  r0   r3   r6   ru   rG   rB   r9   )r;   r,  rp   
empty_argsr  s       @r   test_call_function_ex%TestRegressions.test_call_function_ex"  s    	
	""1f-33Q7!!!Q'((AFF4{|!!!QVV,	4	:!!!Q'11v.13>>+A+A'BCr   c                 6   S n[         R                  R                  SS5        U R                  [         R                  R                  S5        [         R                  R                  S[         R                  R                  R                  U5        [         R                  R                  S[         R                  R                  R                  5        U" S S5        [         R                  R                  5         [         R                  R                  SS5        g )Nc                     g r
   r   )r   instruction_offsets     r   callbackDTestRegressions.test_instruction_explicit_callback.<locals>.callback8  r.  r   r   r  )
r   r-   r/   r  r0   r6   r.   r/  r3   r7   )r;   r  s     r   "test_instruction_explicit_callback2TestRegressions.test_instruction_explicit_callback4  s    	 	""1f-33Q7((CNN,A,A,M,MxX!!!S^^%:%:%F%FGq%%'!!!Q'r   r   N)
rK   rL   rM   rN   r  r  r  r  r  rO   r   r   r   r  r    s    4B4 (D$(r   r  c                   :   ^  \ rS rSrU 4S jrU 4S jrS rSrU =r$ )TestOptimizeriD  c                    > [        S5      n[        US5      (       a6  UR                  5       U l        UR	                  5       nUR                  U5        [        [        U ]#  5         g )N_testinternalcapiget_optimizer)	r   hasattrr  old_optnew_counter_optimizerset_optimizerrB  r  r\   )r;   r  optrY   s      r   r\   TestOptimizer.setUpF  sV    )*=>$o66,::<DL#99;C++C0mT(*r   c                    > [         [        U ]  5         SS Kn[	        US5      (       a  UR                  U R                  5        g g )Nr   r  )rB  r  r_   r  r  r  r  )r;   r  rY   s     r   r_   TestOptimizer.tearDownN  s8    mT+- $o66++DLL9 7r   c                    S nUR                   n[        R                  R                  [        U[
        R                  5        U R                  [        R                  R                  [        U5      [
        R                  5        U" S5        [        R                  R                  [        US5        U R                  [        R                  R                  [        U5      S5        g )Nc                 ,    SnX:  a  US-  nX:  a  M  g g Nr   r   r   )r  rz  s     r   	test_func.TestOptimizer.test_for_loop.<locals>.test_funcU  s    A%Q %r   i  r   )	r$   r   r-   r5   rA   ru   r}   rB   r4   )r;   r  r   s      r   test_for_loopTestOptimizer.test_for_loopT  s    	
 !!''	4D88DI1::V$''	4;88DI1Mr   )r  )	rK   rL   rM   rN   r\   r_   r  rO   __classcell__rY   s   @r   r  r  D  s    +:N Nr   r  c                       \ rS rSrS rSrg)TestTier2Optimizeria  c                    S nU R                  [        R                  R                  5       0 5        / n[	        U5      n[        R                  R                  [        [        R                  U5         U" U5        [        R                  R                  [        [        R                  S 5        [        R                  R                  [        S5        U R                  [        U5      S5        g ! [        R                  R                  [        [        R                  S 5        [        R                  R                  [        S5        f = f)Nc           	          [         R                  R                  n[        R                  nSn[        S5       H!  nU" [        U[        US:  5      -  5          M#     g )Nr   i'  i  )r   r-   r3   ru   r0  rU   rA   ra  )r9  r3   rH  rz  s       r   r  KTestTier2Optimizer.test_monitoring_already_opimized_loop.<locals>.test_funcd  sM    22J66DA3Z9dSc]&:;  r   r      )rB   r   r-   r  r9  r6   rA   ru   r0  r3   r  r   )r;   r  r.   r9  s       r   %test_monitoring_already_opimized_loop8TestTier2Optimizer.test_monitoring_already_opimized_loopc  s    		 	335r:'((AFFHE	4hNN,,YENN%%i33v;, NN,,YENN%%i3s   3C. .AEr   N)rK   rL   rM   rN   r  rO   r   r   r   r  r  a  s    -r   r  c                       \ rS rSrS rSrg)TestMonitoringAtShutdowniz  c                 n    [         R                  R                  S5      n[        R                  " U5        g )Nz_test_monitoring_shutdown.py)r  supportfindfiler   run_test_script)r;   scripts     r    test_monitoring_live_at_shutdown9TestMonitoringAtShutdown.test_monitoring_live_at_shutdown|  s'     &&'EF%%f-r   r   N)rK   rL   rM   rN   r  rO   r   r   r   r  r  z  s    .r   r  c                      ^  \ rS rSr " S S5      rU 4S jrSS jrS rS rS r	\
R                  \
R                  \
R                  \
R                  \
R                  1rS	 rS
 rS rSrU =r$ )TestCApiEventGenerationi  c                   &    \ rS rSrS rS rS rSrg)TestCApiEventGeneration.Scopei  c                     Xl         g r
   r  ro   s     r   rk   &TestCApiEventGeneration.Scope.__init__  s    Ir   c                 >    [         R                  " U R                  6   g r
   )r   monitoring_enter_scoperp   rH   s    r   	__enter__'TestCApiEventGeneration.Scope.__enter__  s    ,,dii8r   c                 ,    [         R                  5         g r
   )r   monitoring_exit_scopero   s     r   __exit__&TestCApiEventGeneration.Scope.__exit__  s    ++-r   r  N)rK   rL   rM   rN   rk   r  r  rO   r   r   r   Scoper    s    		9	.r   r  c                 H  > [         [        U ]  5         [        nUR	                  S5      U l        S[        R                  UR                  4S[        R                  UR                  4S[        R                  UR                  S4S[        R                  UR                  S4S[        R                  UR                   ["        S4S[        R$                  UR&                  S4S[        R(                  UR*                  S4S[        R,                  UR.                  [1        S5      4S[        R2                  UR4                  [1        S5      4S[        R6                  UR8                  [1        S5      4S[        R:                  UR<                  [1        S	5      4S[        R>                  UR@                  S
4S[        R>                  UR@                  [C        S5      4/U l"        [        R,                  [        R2                  [        R6                  [        R:                  /U l#        g )Nr    r   rA  r  r  <   F   rN  rT   r6  r7  )$rB  r  r\   r   CodeLikecodelikeru   r}   fire_event_py_startr   fire_event_py_resumePY_YIELDfire_event_py_yieldr   fire_event_py_returnrG   fire_event_callr   r  fire_event_jumpr  fire_event_branchr  fire_event_py_throwrD   r  fire_event_raiser  fire_event_exception_handledr  fire_event_py_unwindr  fire_event_stop_iterationr  casesEXPECT_RAISED_EXCEPTION)r;   capirY   s     r   r\   TestCApiEventGeneration.setUp  s   %t24a( T556d778T55r:d77<--x<--r241126T55z!}E$//A?$$d&G&GTUWd77AG!!4#A#A1E!!4#A#A=QRCST

" )*

AGGQ=P=PRSR]R]'^$r   c                 ,    " S S5      n U" U5      n[         R                  R                  [        X5        U[        R
                  :X  d  U[        R                  :X  a3  [         R                  R                  [        [        R                  5        O$[         R                  R                  [        U5        [        [        R                  " U5      5      nU R                  U R                  U5         SUl         U" U6   U R                  UR                  U5         S S S 5        [         R                  R                  [        US 5      n
U R                  U R                  U5         SUl        U" U6   U R                  UR                  S5        U R                  X5        S S S 5        [         R                  R                  [        S5        g ! [          ap  n	U R#                  U[         5        U R                  [%        U	5      [%        U5      5         S n	A	S S S 5        [         R                  R                  [        S5        g S n	A	ff = f! , (       d  f       GN4= f! , (       d  f       N= f! [         R                  R                  [        S5        f = f)Nc                        \ rS rSrS rS rSrg):TestCApiEventGeneration.check_event_count.<locals>.Counteri  c                     Xl         SU l        g r   callback_raisesrj   )r;   r	  s     r   rk   CTestCApiEventGeneration.check_event_count.<locals>.Counter.__init__  s    '6$
r   c                 z    U =R                   S-  sl         U R                  (       a  U R                  nS U l        Ueg rn   )rj   r	  )r;   rp   r  s      r   rq   CTestCApiEventGeneration.check_event_count.<locals>.Counter.__call__  s5    

a
''..C+/D(I (r   r  Nrs   r   r   r   rt   r    s    r   rt   r   )r   r-   r6   rA   ru   rE   rF   r3   rG   ra  mathlog2r  r  rj   rB   rD   assertIsInstancestr)r;   rv   r&   rp   rw   r	  rt   rx   event_valuer  ry   s              r   rz   )TestCApiEventGeneration.check_event_count  s   
	 
		4o.GNN,,YG

"eqyy&8)))QVV<)))U;dii./KDMM;7 !>$K $$W]]H= 8 >>33IudKDDMM;7 !d  2  /	 8 NN%%i3 " ))(J?$$SVS]; 8$ NN%%i3	 87 87 NN%%i3sm   C&I- 2I
;G I
A	I- &:I I- 
I:II
I- II


II- 
I*&I- -&Jc                 *   U R                    Hq  tpp4Sn[        R                  S5      U l        U R	                  UR
                  5         U R                  U4[        U5      -   nU R                  X#Xa5        S S S 5        Ms     g ! , (       d  f       M  = fr  )r   r   r  r  rj  rK   tuplerz   r;   rw   rv   functionrp   r'   args_s          r   test_fire_event'TestCApiEventGeneration.test_fire_event  sv    04

,HXF%..q1DMh//0/%+=&&uH 10 1; 10   	-B
B	c                    U R                    H  tpp4X R                  ;  a  M  Sn[        R                  S5      U l        U R                  UR                  5         U R                  U4[        US S 5      -   S-   n[        [        R                  " U5      5      n[        SU S35      nU R                  X#Xh5        S S S 5        M     g ! , (       d  f       M  = f)Nr   r   r   r
   zFiring event z with no exception set)r   r  r   r  r  rj  rK   r  ra  r  r  rD   rz   )	r;   r   rv   r  rp   r'   r  evtrw   s	            r   test_missing_exception.TestCApiEventGeneration.test_missing_exception  s    )-%Ah888F%..q1DMh//0/%Sb	2BBWL$))E*+%cU:P&QR&&uH	 10 *4 10s   A!C
C	c                    U R                    H  tpp4Sn[        R                  S5      U l        U R	                  UR
                  5         U R                  U4[        U5      -   n[        S5      nU R                  [        U5      5         U R                  X#XaUS9  S S S 5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       M  = f)Nr   r   r  )r	  )r   r   r  r  rj  rK   r  OSErrorrC   r  rz   )r;   rw   rv   r  rp   r'   r  r  s           r    test_fire_event_failing_callback8TestCApiEventGeneration.test_fire_event_failing_callback  s    04

,HXF%..q1DMh//0/%+=bk&&tCy1**5E;> + @ 2 10 1; 21 10s%   	A C	B0C0
B>:C
C	c                 \    [        5       n[        R                  R                  [        X5        U[
        R                  :X  d  U[
        R                  :X  a3  [        R                  R                  [        [
        R                  5        O$[        R                  R                  [        U5        [        [        R                  " U5      5      nU R                  U R                  U5         SUl        U" U6   U R!                  UR                  U5        SUl        XR$                  ;   a;   SUl        U" U6   U R!                  UR                  U5        U R'                  S5        OSSUl        U" U6   U R!                  UR                  U5        SUl        U" U6   U R!                  UR                  US-
  5        S S S 5        [        R                  R                  [        S5        g ! [(         a     N9f = f! , (       d  f       NC= f! [        R                  R                  [        S5        f = f)Nr   TzExpected a ValueErrorr   )r   r   r-   r6   rA   ru   rE   rF   r3   rG   ra  r  r  r  r  rj   rB   r   CANNOT_DISABLEErrorrD   )r;   rv   r&   rp   rw   rx   r  s          r   check_disable%TestCApiEventGeneration.check_disable  s    	4(*GNN,,YG

"eqyy&8)))QVV<)))U;dii./KDMM;7 !d  9"&///<()d((A 

#:;$%GM$K$$W]]H=$%GM$K$$W]]HqLA- 80 NN%%i3 &  870 NN%%i3sI   C(H *?G4*(G$A%G47H $
G1.G40G11G44
H>H &H+c                 *   U R                    Hq  tpp4Sn[        R                  S5      U l        U R	                  UR
                  5         U R                  S4[        U5      -   nU R                  X#Xa5        S S S 5        Ms     g ! , (       d  f       M  = f)Nr   r    )r   r   r  r  rj  rK   r  r&  r  s          r   test_disable_event*TestCApiEventGeneration.test_disable_event  sv    04

,HXF%..q1DMh//0*U4[8""5ED 10 1; 10r  c                     [        5       n[        5       n[        R                  R                  [        [
        R                  U5        [        R                  R                  [        [
        R                  U5        [        R                  R                  [        [
        R                  [
        R                  -  5        [        [        R                  " [
        R                  5      5      n[        [        R                  " [
        R                  5      5      n[        R                  S5      nUS4nU R                  XSU5         SUl        SUl        [        R                   " / UQ[#        S5      P76   [        R$                  " / UQ[#        S5      P76   SUl        [        R$                  " / UQ[#        S5      P76   [        R$                  " / UQ[#        S5      P76   S S S 5        [        R                  R                  [        S5        g ! , (       d  f       N3= f! [        R                  R                  [        S5        f = f)Nr    r   r  T)r   r   r-   r6   rA   ru   r  r  r3   ra  r  r  r   r  r  rj   r  rD   r  r   )r;   yield_counterunwind_counteryield_valueunwind_valueclcommon_argss          r   test_enter_scope_two_events3TestCApiEventGeneration.test_enter_scope_two_events#  s   !	4.0M/1NNN,,Y

MRNN,,Y^TNN%%iakk1IJdii

34Ktyy56L##A&Bq'KB\:&'#'($..LLZ^L --K{KJrNK )-%--K{KJrNK --K{KJrNK# ;, NN%%i3- ;:, NN%%i3s%   EH BHH 
HH &I)r  r   r  r
   )rK   rL   rM   rN   r  r\   rz   r  r  r!  ru   r  r  r  r  r  r$  r&  r)  r2  rO   r  r  s   @r   r  r    sl    . ._6'4RII	@ zz177AII**AKK:N!4FE"4 "4r   r  )pr   r1  	functoolsr  operatorr   r'  r8  unittestasynciotest.supportr  r   r   test.support.import_helperr   r  import_helperr   r   r   r   r   r   r   rA   rW   rX   r(   TestCaser*   rQ   rb   r-   r.   ru   r}   r   r   r  r  r  r  r  r  r  r  rF   rE   r   reduceor_rG   r   r   r   r   r   r   FunctionType
MethodTyper   r   r   r   r   test.profileer   r   r   r  r  r  r4  rv  r  r  r  r  r  r  r  r  r  r  r9  r@  rF  rI  r^  rL  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  rw  r  r  r  r  r  r  )r  r   s   00r   <module>rA     s5    
    
      ? 4LL&&44[A		
 	

1M(++ MD0 0,(2,h.?.? (2V NN ZZ[[([[(ZZVVVXXx  WWg[[(-. $m3YY	ZZ7  ##HLL]2S]'22]2SUVWZ[Z`Z`` 		 
 	   ""E$4$45+- +>'/1B1B '* ZZAKKajjI	zz1;;' "''.0A0A ''T	* 	*	* 	*&,%79J9J &,RC?-x/@/@ C?LJ++X->-> J+X)I$h&7&7 )IX1 1$)$h&7&7 $)N"- "3' 3@& @30 31% 19 9: :K+k K+Z	O 	OB Bn 
^ 
 #L,Q__9([ 9(v
F 
F "5l!B D+; D+L@V183D3D @VD o~MET((*;*; ETNJ J\  ).8 !-~|!K &FWYgg V)k V)pT TnO)8+<+< O.Y))+= Y[(((*;*; [(|N&(9(9 N:- -2.x00 .A40(2C2C A4u6 3Ts   <R8