+
    Bi6                         ^ RI t ^ RIt^ RIt^ RIHtHtHt  ! R R]P                  4      t ! R R]P                  4      t	]
R8X  d   ]P                  ! 4        R# R# )    N)	swap_item	swap_attrskip_wasi_stack_overflowc                   z   a  ] tR t^
t o RtR tR tR tR tR t	R t
R tR	 tR
 tR t]! 4       R 4       tRtV tR# )RebindBuiltinsTestsz=Test all the ways that we can change/shadow globals/builtins.c                    R# )a  Perform TestCase-specific configuration on a function before testing.

By default, this does nothing. Example usage: spinning a function so
that a JIT will optimize it. Subclasses should override this as needed.

Args:
    func: function to configure.
    *args: any arguments that should be passed to func, if calling it.

Returns:
    Nothing. Work will be performed on func in-place.
N )selffuncargss   &&*(/usr/lib/python3.14/test/test_dynamic.pyconfigure_func"RebindBuiltinsTests.configure_func   s     	    c                    R  pV P                  V4       V P                  V! 4       ^4       \        \        4       RR 4      ;_uu_ 4        V P                  V! 4       ^4       RRR4       R#   + '       g   i     R# ; i)c                      \        . RO4      #    )r         lenr	   r   r   foo=RebindBuiltinsTests.test_globals_shadow_builtins.<locals>.foo       y>!r   r   c                     ^#    r	   xs   &r   <lambda>BRebindBuiltinsTests.test_globals_shadow_builtins.<locals>.<lambda>$   s    1r   Nr   assertEqualr   globalsr
   r   s   & r   test_globals_shadow_builtins0RebindBuiltinsTests.test_globals_shadow_builtins   sY    	"C "wy%55SUA& 6555s   
A,,A=	c                    R  pV P                  V4       V P                  V! 4       ^4       \        \        RR 4      ;_uu_ 4        V P                  V! 4       ^4       RRR4       R#   + '       g   i     R# ; i)c                      \        . RO4      # r   r   r	   r   r   r   5RebindBuiltinsTests.test_modify_builtins.<locals>.foo)   r   r   r   c                     ^# r   r	   r   s   &r   r!   :RebindBuiltinsTests.test_modify_builtins.<locals>.<lambda>.       !r   N)r   r$   r   builtinsr&   s   & r   test_modify_builtins(RebindBuiltinsTests.test_modify_builtins'   sW    	"C "x44SUA& 5444s   A((A9	c                   R  pV P                  V4       V! 4       pV P                  \        V4      ^4       \        \        RR 4      ;_uu_ 4        V P                  \        V4      ^4       RRR4       R#   + '       g   i     R# ; i)c               3   X   "   \        ^4      p \        V 4      x  \        V 4      x  R# 5ir   Nranger   r   s    r   r   LRebindBuiltinsTests.test_modify_builtins_while_generator_active.<locals>.foo3         aAa&La&L   (*r   c                     ^# r   r	   r   s   &r   r!   QRebindBuiltinsTests.test_modify_builtins_while_generator_active.<locals>.<lambda>;   r.   r   N)r   r$   nextr   r/   r
   r   gs   &  r   +test_modify_builtins_while_generator_active?RebindBuiltinsTests.test_modify_builtins_while_generator_active1   sd    	 	C Ea!$x44T!Wa( 5444s   A77B	c                    \        \        R \        4      ;_uu_ 4        R pR pV P                  VR 4       V P	                  V! V4      ^^.4       RRR4       R#   + '       g   i     R# ; i)r   c                      R  \         n        R# )c                     ^# )   r	   r   s   &r   r!   ZRebindBuiltinsTests.test_modify_builtins_from_leaf_function.<locals>.bar.<locals>.<lambda>C       r   N)r/   r   r	   r   r   barHRebindBuiltinsTests.test_modify_builtins_from_leaf_function.<locals>.barB   s	    *r   c                     . pVP                  \        \        ^4      4      4       V ! 4        VP                  \        \        ^4      4      4       V# r   )appendr   r6   )modifierls   & r   r   HRebindBuiltinsTests.test_modify_builtins_from_leaf_function.<locals>.fooE   s9    U1X'
U1X'r   c                      R # Nr	   r	   r   r   r!   MRebindBuiltinsTests.test_modify_builtins_from_leaf_function.<locals>.<lambda>K   s    Tr   N)r   r/   r   r   r$   )r
   rG   r   s   &  r   'test_modify_builtins_from_leaf_function;RebindBuiltinsTests.test_modify_builtins_from_leaf_function>   sV     x,,+ \2SX1v. -,,,s   4AA-	c                    R  pV P                  V4       RR /pRVRVRR /pV P                  \        RV4      ^4       V P                  \        RRV/4      ^4       R# )c                      \        . RO4      # r   r   r	   r   r   r   QRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_eval.<locals>.fooP   r   r   r   c                     ^# r   r	   r   s   &r   r!   VRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_eval.<locals>.<lambda>U       !r   r   __builtins__c                     ^#    r	   r   s   &r   r!   rW   W   rF   r   zfoo()N)r   r$   eval)r
   r   builtins_dictglobals_dicts   &   r   0test_cannot_change_globals_or_builtins_with_evalDRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_evalO   sh    	"C  ,sNM{,g|4a8gs|4a8r   c                    R  pV P                  V4       RV/p\        RV4       V P                  VR,          ^4       RR /pRVRVRR /p\        RV4       V P                  VR,          ^4       R# )	c                      \        . RO4      # r   r   r	   r   r   r   QRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_exec.<locals>.foo]   r   r   r   z	x = foo()r    r   c                     ^# r   r	   r   s   &r   r!   VRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_exec.<locals>.<lambda>f   rX   r   rY   c                     ^# r[   r	   r   s   &r   r!   rf   h   rF   r   N)r   execr$   )r
   r   r_   r^   s   &   r   0test_cannot_change_globals_or_builtins_with_execDRebindBuiltinsTests.test_cannot_change_globals_or_builtins_with_exec\   s    	"C s|[,'c*A. ,sNM{, 	[,'c*A.r   c                "   R  pV P                  V4       V! 4       pV P                  \        V4      ^4       \        \	        4       RRR /4      ;_uu_ 4        V P                  \        V4      ^4       RRR4       R#   + '       g   i     R# ; i)c               3   X   "   \        ^4      p \        V 4      x  \        V 4      x  R# 5ir4   r5   r   s    r   r   ORebindBuiltinsTests.test_cannot_replace_builtins_dict_while_active.<locals>.foon   r8   r9   rY   r   c                     ^# r   r	   r   s   &r   r!   TRebindBuiltinsTests.test_cannot_replace_builtins_dict_while_active.<locals>.<lambda>v       Ar   N)r   r$   r<   r   r%   r=   s   &  r   .test_cannot_replace_builtins_dict_while_activeBRebindBuiltinsTests.test_cannot_replace_builtins_dict_while_activem   sl    	 	C Ea!$wy.5+2FGGT!Wa( HGGGs   A==B	c                   R  pV P                  V4       V P                  V! 4       ^4       \        \        4       RRR /4      ;_uu_ 4        V P                  V! 4       ^4       RRR4       R#   + '       g   i     R# ; i)c                      \        . RO4      # r   r   r	   r   r   r   PRebindBuiltinsTests.test_cannot_replace_builtins_dict_between_calls.<locals>.fooz   r   r   rY   r   c                     ^# r   r	   r   s   &r   r!   URebindBuiltinsTests.test_cannot_replace_builtins_dict_between_calls.<locals>.<lambda>   rp   r   Nr#   r&   s   & r   /test_cannot_replace_builtins_dict_between_callsCRebindBuiltinsTests.test_cannot_replace_builtins_dict_between_callsy   s_    	"C "wy.5+2FGGSUA& HGGGs   A..A?	c                x    R R /p\        RV4      pV P                  V4       V P                  V! 4       ^4       R# )r   c                     ^# r   r	   r   s   &r   r!   KRebindBuiltinsTests.test_eval_gives_lambda_custom_globals.<locals>.<lambda>   rF   r   zlambda: len([])N)r]   r   r$   )r
   r_   r   s   &  r   %test_eval_gives_lambda_custom_globals9RebindBuiltinsTests.test_eval_gives_lambda_custom_globals   s9    {+$l3C "r   c                    ! R  R\         4      pRpRRP                  R \        V4       4       4      ,           p\        W1! 4       4      p\	        \        V4      4      p\        ^4       F  pV P                  V! 4       V4       K  	  R# )c                   &   a  ] tR t^t o R tRtV tR# )ZRebindBuiltinsTests.test_load_global_specialization_failure_keeps_oparg.<locals>.MyGlobalsc                6    \        VP                  R 4      4      # )_number_)intremoveprefix)r
   keys   &&r   __missing__fRebindBuiltinsTests.test_load_global_specialization_failure_keeps_oparg.<locals>.MyGlobals.__missing__   s    3++J788r   r	   N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   	MyGlobalsr      s     9 9r   r   i  zlambda: +c              3   ,   "   T F
  pR V 2x  K  	  R# 5i)r   Nr	   ).0is   & r   	<genexpr>ZRebindBuiltinsTests.test_load_global_specialization_failure_keeps_oparg.<locals>.<genexpr>   s     $N=Mxs^=Ms   N)dictjoinr6   r]   sumr$   )r
   r   	variablescodesum_funcexpected_s   &      r   3test_load_global_specialization_failure_keeps_opargGRebindBuiltinsTests.test_load_global_specialization_failure_keeps_oparg   sp    	9 	9
 	CHH$NU9=M$NNNik*uY'(rAXZ2 r   r	   N)r   r   r   r   __doc__r   r'   r0   r?   rQ   r`   ri   rq   rx   r}   r   r   r   r   r   s   @r   r   r   
   sQ     G'')/"9/"
)'# 3  3r   r   c                   ,   a  ] tR t^t o R tR tRtV tR# )TestTracingc                    V P                  \        P                  \        P                  ! 4       4       \        P                  ! R 4       R # rO   )
addCleanupsyssettracegettrace)r
   s   &r   setUpTestTracing.setUp   s&    clln5Tr   c                f  aaa V3R  loRo ! VV3R lR4      oV3R lpV3R lpV3R lpWV3 Fi  pV P                  VP                  4      ;_uu_ 4        \        ^:4       F
  pV! 4        K  	  RoV! 4        \        P                  ! R4       RoRRR4       Kk  	  R#   + '       g   i     K  ; i)	c                    < S# rO   r	   )frameeventargtraces   &&&r   r   4TestTracing.test_after_specialization.<locals>.trace   s    Lr   Fc                   6   <a  ] tR t^t o R tVV3R ltRtV tR# )0TestTracing.test_after_specialization.<locals>.Cc                    Wn         R # rO   r   )r
   r    s   &&r   __init__9TestTracing.test_after_specialization.<locals>.C.__init__   s    r   c                H   < S'       d   \         P                  ! S4       R # R # rO   )r   r   )r
   r   turn_on_traces   &r   __del__8TestTracing.test_after_specialization.<locals>.C.__del__   s     LL' !r   r   N)r   r   r   r   r   r   r   r   )r   r   r   s   @r   Cr      s     ( (r   r   c                  8   < S ! ^ 4      P                   \        3 R# r   N)r    r   r   s   r   f0TestTracing.test_after_specialization.<locals>.f   s    aDFFCKr   c                  <   < ^ .S ! ^ 4      P                   ,           R# r   r   r   s   r   r>   0TestTracing.test_after_specialization.<locals>.g   s    C!KKr   c                  :   < ^ S ! ^ 4      P                   ,            R# r   r   r   s   r   h0TestTracing.test_after_specialization.<locals>.h   s    !JJr   TN)subTestr   r6   r   r   )	r
   r   r>   r   r   r   r   r   r   s	   &     @@@r   test_after_specialization%TestTracing.test_after_specialization   s    	 	( 	(			 1IDdmm,,rAF # $T" % -, ,,,s   ;BB0r	   N)r   r   r   r   r   r   r   r   r   s   @r   r   r      s     !& !&r   r   __main__)r/   r   unittesttest.supportr   r   r   TestCaser   r   r   mainr	   r   r   <module>r      sV     
  G GN3(++ N3b'&(## '&T zMMO r   