+
    Bi^                     *   R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
Ht ^ RIt^ RIHt ^ RIt^ RIHt ^ RIHt R tR tR	 tR
 t ! R R]4      t ! R R]P4                  P6                  4      t ! R R4      t ! R R]P<                  4      t ! R R4      t ]PB                  ! ]"! ]R4      R4       ! R R] ]P<                  4      4       t#]PB                  ! ]"! ]R4      R4       ! R R] ]P<                  4      4       t$ ! R R] ]P<                  4      t% ! R R4      t&]PB                  ! ]"! ]R4      R4       ! R R ]&]P<                  4      4       t']PB                  ! ]"! ]R4      R4       ! R! R"]&]P<                  4      4       t( ! R# R$]&]P<                  4      t) ! R% R&4      t* ! R' R(]*]P<                  4      t+]PB                  ! ]"! ]R4      R4       ! R) R*]*]P<                  4      4       t,]-R+8X  d   ]P\                  ! 4        R# R# ),zTests for futures.py.N)mock)GenericAlias)futures)utils)supportc                  D    \         P                  P                  R 4       R # N)asyncioevents_set_event_loop_policy     5/usr/lib/python3.14/test/test_asyncio/test_futures.pytearDownModuler      s    NN))$/r   c                     V # r   r   fs   &r   	_fakefuncr      s    Hr   c                      R # r   r   r   r   r   first_cbr          r   c                      R # r   r   r   r   r   last_cbr      r   r   c                       ] tR t^#tRtRtR# )ReachableCodezyException to raise to indicate that some code was reached.

Use this exception if using mocks is not a good alternative.
r   N)__name__
__module____qualname____firstlineno____doc____static_attributes__r   r   r   r   r   #   s    r   r   c                   0   a  ] tR t^*t o RtR tR tRtV tR# )SimpleEvilEventLoopzEBase class for UAF and other evil stuff requiring an evil event loop.c                    R # Fr   selfs   &r   	get_debugSimpleEvilEventLoop.get_debug-   s    r   c                    V P                  4       '       g+   V P                  4       '       g   V P                  4        R # R # R # r   )	is_closed
is_runningcloser%   s   &r   __del__SimpleEvilEventLoop.__del__0   s,    ~~(9(9JJL ):r   r   N)	r   r   r   r   r   r'   r-   r    __classdictcell____classdict__s   @r   r"   r"   *   s     O r   r"   c                   `   a  ] tR t^6t o RtRtRtRtR tR t	R t
R tR tR tR	 tR
 tRtV tR# )
DuckFutureFNc                D    V P                  4       '       d   R # RV n        R# )FT)done_DuckFuture__cancelledr%   s   &r   cancelDuckFuture.cancel?   s    99;;r   c                    V P                   # r   )r6   r%   s   &r   	cancelledDuckFuture.cancelledE   s    r   c                r    V P                   ;'       g%    V P                  R J;'       g    V P                  R J# r   )r6   _DuckFuture__result_DuckFuture__exceptionr%   s   &r   r5   DuckFuture.doneH   s>       0 0==,0 0##4/	1r   c                    V P                  V P                  4       4       V P                  e   V P                  hV P                  # r   )assertFalser:   r>   r=   r%   s   &r   resultDuckFuture.resultM   s9    )*'"""}}r   c                X    V P                  V P                  4       4       V P                  # r   )rA   r:   r>   r%   s   &r   	exceptionDuckFuture.exceptionS   s#    )*r   c                r    V P                  V P                  4       4       V P                  V4       Wn        R # r   )rA   r5   assertIsNotNoner=   )r&   rB   s   &&r   
set_resultDuckFuture.set_resultW   s)    %V$r   c                r    V P                  V P                  4       4       V P                  V4       Wn        R # r   )rA   r5   rH   r>   )r&   rE   s   &&r   set_exceptionDuckFuture.set_exception\   s*    %Y'$r   c              #     "   V P                  4       '       g   R V n        V x  V P                  V P                  4       4       V P                  4       # 5iT)r5   _asyncio_future_blocking
assertTruerB   r%   s   &r   __iter__DuckFuture.__iter__a   s;     yy{{,0D)J		${{}s   AA)__cancelled__exception__resultrP   )r   r   r   r   rP   r6   r=   r>   r7   r:   r5   rB   rE   rI   rL   rR   r    r/   r0   s   @r   r3   r3   6   sI       %KHK 1
 
%
 r   r3   c                   >   a a ] tR t^it oV 3R ltR tR tRtVtV ;t	# )	DuckTestsc                   < \         SV `  4        V P                  4       V n        V P	                  V P                  P
                  4       R # r   supersetUpnew_test_looploop
addCleanupr,   r&   	__class__s   &r   r\   DuckTests.setUpk   0    &&(			(r   c                h    \        4       p\        P                  ! V4      pV P                  W!4       R # r   )r3   r	   wrap_futureassertIsr&   r   gs   &  r   test_wrap_futureDuckTests.test_wrap_futurep   s%    L"ar   c                h    \        4       p\        P                  ! V4      pV P                  W!4       R # r   )r3   r	   ensure_futurerf   rg   s   &  r   test_ensure_futureDuckTests.test_ensure_futureu   s%    L!!!$ar   r^   )
r   r   r   r   r\   ri   rm   r    r/   __classcell__ra   r1   s   @@r   rX   rX   i   s     )

 r   rX   c                     a a ] tR t^{t oR tV 3R ltR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR t]3R ltR tR tR tR tR tR tR t]P:                  ! R4      R 4       t]P:                  ! R4      R 4       t]P:                  ! R4      R 4       t ]P:                  ! R4      R 4       t!]P:                  ! R4      R 4       t"]P:                  ! R4      R 4       t#]P:                  ! R4      R 4       t$R  t%R! t&R" t'R# t(R$ t)R% t*R& t+R' t,]P:                  ! R4      R( 4       t-R) t.R* t/R+ t0R, t1R- t2R. t3R/ t4R0 t5R1t6Vt7V ;t8# )2BaseFutureTestsc                &    V P                   ! V/ VB # r   )clsr&   argskwargss   &*,r   _new_futureBaseFutureTests._new_future}   s    xx(((r   c                   < \         SV `  4        V P                  4       V n        V P	                  V P                  P
                  4       R # r   rZ   r`   s   &r   r\   BaseFutureTests.setUp   rc   r   c                    V P                   \        ,          pV P                  VP                  \        34       V P	                  V\
        4       R # r   )ru   strassertEqual__args__assertIsInstancer   )r&   futures   & r   test_generic_alias"BaseFutureTests.test_generic_alias   s5    #3&1fl3r   c           	         ! R  R4      pV P                  \        P                  ! V4      4       V P                  \        P                  ! V! 4       4      4       V P                  \        P                  ! ^4      4       V P                  \        P                  ! \        P
                  ! 4       4      4       V P                  V P                  R7      pV P                  \        P                  ! V4      4       V P                  \        P                  ! \        V4      4      4       V P                  \        P                  ! \        P
                  ! \        V4      4      4      4       VP                  4        R# )c                   *   a  ] tR t^t o RtR tRtV tR# )/BaseFutureTests.test_isfuture.<locals>.MyFutureNc                    R V n         R# FNrP   r%   s   &r   __init__8BaseFutureTests.test_isfuture.<locals>.MyFuture.__init__   s
    05-r   r   )r   r   r   r   rP   r   r    r/   r0   s   @r   MyFuturer      s     '+$6 6r   r   ro   N)
rA   r	   isfuturerQ   r   Mockry   r^   typer7   )r&   r   r   s   &  r   test_isfutureBaseFutureTests.test_isfuture   s    	6 	6 	))(34((45))!,- 	))$))+67$)),((+,))$q'23 	((47);<=	
r   c                   V P                  V P                  R 7      pV P                  VP                  4       4       V P                  VP	                  4       4       VP                  4        V P                  VP                  4       4       R# ro   N)ry   r^   rA   r:   r5   r7   rQ   r&   r   s   & r   test_initial_state"BaseFutureTests.test_initial_state   s\    $)),'"	
&r   c                    V P                  \        R 4      ;_uu_ 4        V P                  4        RRR4       R#   + '       g   i     R# ; i)no current event loopN)assertRaisesRegexRuntimeErrorry   r%   s   &r   test_constructor_without_loop-BaseFutureTests.test_constructor_without_loop   s2    ##L2IJJ KJJJs	   :A	c                   a  V 3R  lpS P                   P                  V! 4       4      pS P                  VP                  S P                   4       S P                  VP	                  4       S P                   4       R# )c                  ,   <"   S P                  4       # 5ir   )ry   r%   s   r   test?BaseFutureTests.test_constructor_use_running_loop.<locals>.test   s     ##%%s   N)r^   run_until_completerf   _loopget_loop)r&   r   r   s   f  r   !test_constructor_use_running_loop1BaseFutureTests.test_constructor_use_running_loop   sL    	&II((0aggtyy)ajjlDII.r   c                F   \         P                  ! V P                  4       V P                  \         P                  R 4       V P	                  4       pV P                  VP                  V P                  4       V P                  VP                  4       V P                  4       R # r   )r	   set_event_loopr^   r_   ry   rf   r   r   r   s   & r    test_constructor_use_global_loop0BaseFutureTests.test_constructor_use_global_loop   sd    tyy)..5aggtyy)ajjlDII.r   c                H    V P                  \        V P                  ^*4       R# )*   N)assertRaises	TypeErrorry   r%   s   &r   test_constructor_positional+BaseFutureTests.test_constructor_positional   s    )T%5%5r:r   c                ^	   V P                   P                  V P                   V P                  R 7      pV P                  \        P
                  VP                  4       V P                   P                  V P                   V P                  R 7      pV P                  \        P
                  VP                  4       V P                   P                  V P                   V P                  R 7      pV P                  \        \        34      ;_uu_ 4        VP                  R4       RRR4       V P                   P                  V P                   V P                  R 7      pV P                  \        \        34      ;_uu_ 4        VP                  \        4       RRR4       V P                   P                  V P                   V P                  R 7      pV P                  \        \        34      ;_uu_ 4        VP                  4        RRR4       V P                   P                  V P                   V P                  R 7      pV P                  \        \        34      ;_uu_ 4        VP                  R 4       RRR4       V P                   P                  V P                   V P                  R 7      pV P                  \        \        34      ;_uu_ 4        VP                  R 4       RRR4       V P                   P                  V P                   V P                  R 7      p \!        V4       V P                   P                  V P                   V P                  R 7      p VP#                  4        V P                   P                  V P                   V P                  R 7      p \%        V4       V P                   P                  V P                   V P                  R 7      pV P'                  VP)                  4       4       V P'                  VP+                  4       4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELD; i  + '       g   i     EL; i  + '       g   i     EL; i  \        \        3 d     ELhi ; i  \         d     EL8i ; i  \         d     ELi ; i)ro   Nc                     R # r   r   r   s   &r   <lambda>4BaseFutureTests.test_uninitialized.<locals>.<lambda>   s    Dr   c                     R # r   r   r   s   &r   r   r      s    tr   )ru   __new__r^   r   r	   InvalidStateErrorrB   rE   r   AttributeErrorrI   rL   	Exceptionr7   add_done_callbackremove_done_callbackrepr	__await__iterrA   r:   r5   r&   futs   & r   test_uninitialized"BaseFutureTests.test_uninitialized   sB    hhtxxdii8'33SZZ@hhtxxdii8'33S]]Chhtxxdii8n=>>NN4  ? hhtxxdii8n=>>i( ? hhtxxdii8n=>>JJL ? hhtxxdii8n=>>!!.1 ? hhtxxdii8n=>>$$^4 ? hhtxxdii8	I hhtxxdii8	MMO hhtxxdii8	I hhtxxdii8)$O ?>> ?>> ?>> ?>> ?>> n- 		  		  		sr   P9P#+P7QQQ3 R R P 	#P4	7Q	Q	Q0	3RRRRR,+R,c                   V P                  V P                  R 7      pV P                  VR4       V P                  VP                  R4       VP                  R4       V P                  \        P                  4      ;_uu_ 4        V P                  P                  V4       RRR4       V P                  VP                  R4       R#   + '       g   i     L.; i)ro   _cancel_messageN
my message)
ry   r^   assertHasAttrr   r   r7   r   r	   CancelledErrorr   r   s   & r   !test_future_cancel_message_getter1BaseFutureTests.test_future_cancel_message_getter   s    $)),1/0**D1	w5566II((+ 7**L9 76s   CC	c                   V P                  V P                  R 7      pVP                  R4       RVn        V P	                  VP                  R4       V P                  \        P                  4      ;_uu_ 4        V P                  P                  V4       RRR4       V P	                  VP                  R4       R#   + '       g   i     L.; i)ro   r   zmy new messageN)	ry   r^   r7   r   r   r   r	   r   r   r   s   & r   !test_future_cancel_message_setter1BaseFutureTests.test_future_cancel_message_setter   s    $)),	,**,<= w5566II((+ 7**,<= 76s   8B::C
	c                   V P                  V P                  R 7      pV P                  VP                  4       4       V P                  VP	                  4       4       V P                  VP                  4       4       V P                  \        P                  VP                  4       V P                  \        P                  VP                  4       V P                  \        P                  VP                  R4       V P                  \        P                  VP                  R4       V P                  VP                  4       4       R# r   )ry   r^   rQ   r7   r:   r5   r   r	   r   rB   rE   r   rI   rL   rA   r   s   & r   test_cancelBaseFutureTests.test_cancel  s    $)),
#&!'00!((;'00!++>'33Q\\4H'33Q__dK$r   c                   V P                  V P                  R 7      pV P                  \        P                  VP
                  4       VP                  ^*4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  VP                  4       ^*4       V P                  VP                  4       R4       V P                  \        P                  VP                  R4       V P                  \        P                  VP                  R4       V P                  VP                  4       4       R# r   )ry   r^   r   r	   r   rB   rI   rA   r:   rQ   r5   r   rE   rL   r7   r   s   & r   test_resultBaseFutureTests.test_result  s    $)),'33QXX>	R'!R(-'33Q\\4H'33Q__dK$r   c                   \        4       pV P                  V P                  R 7      pV P                  \        P
                  VP                  4       VP                  V4       V P                  VP                  4       4       V P                  VP                  4       4       V P                  \         VP                  4       V P                  VP                  4       V4       V P                  \        P
                  VP                  R4       V P                  \        P
                  VP                  R4       V P                  VP                  4       4       R# r   )r   ry   r^   r   r	   r   rE   rL   rA   r:   rQ   r5   rB   r   rI   r7   )r&   excr   s   &  r   test_exceptionBaseFutureTests.test_exception   s    n$)),'33Q[[A	'!,1,'33Q\\4H'33Q__dK$r   c                   V! 4       pV P                  V P                  R 7      pVP                  V4       V P                  VP	                  4       4       V P                  VP                  4       4       V P                  \        VP                  4       VP                  4       pVP                  pV P                  V\        4       V P                  \        V4      R4       V P                  WA4       R# )ro   z!StopIteration .* cannot be raisedN)ry   r^   rL   rA   r:   rQ   r5   r   r   rB   rE   	__cause__r   assertRegexr~   )r&   stop_iteration_classr   r   causes   &&   r   test_stop_iteration_exception-BaseFutureTests.test_stop_iteration_exception.  s    "$$)),	'!,1kkmc<0S#FGe:r   c                F     ! R  R\         4      pV P                  V4       R# )c                       ] tR tRtRtR# )OBaseFutureTests.test_stop_iteration_subclass_exception.<locals>.MyStopIterationi<  r   Nr   r   r   r   r    r   r   r   MyStopIterationr   <      r   r   N)StopIterationr   )r&   r   s   & r   &test_stop_iteration_subclass_exception6BaseFutureTests.test_stop_iteration_subclass_exception;  s    	m 	 	**?;r   c                    V P                  V P                  R 7      pVP                  \        4       V P	                  VP                  4       \        4       R# r   )ry   r^   rL   r   r   rE   r   s   & r   test_exception_class$BaseFutureTests.test_exception_classA  s;    $)),	%akkm\:r   c                T  a V P                  V P                  R 7      oV3R lpV! 4       pV P                  \        V4      R4       V P                  \        V4      S4       SP	                  ^*4       V P                  \        V4      R4       V P                  \        V4      R4       R# )ro   c               3   `   <"   R x  S Rj  xL
 p RV 3x  S Rj  xL
 pRV3x  R#  L L5i)ANBCr   )xyr   s     r   fixture6BaseFutureTests.test_yield_from_twice.<locals>.fixtureI  s3     IAq&LAq&L s   
.*.,..r   N)r   r   )r   r   )ry   r^   r   nextrI   )r&   r   rh   r   s   &  @r   test_yield_from_twice%BaseFutureTests.test_yield_from_twiceF  s    $)),	 Ia#&a!$	Ra),a),r   c           
     	   V P                   P                  R 4       V P                  V P                   R7      pVP                  R,          pV P	                  \        V4      RV P                  P                   RV^ ,           RV^,           R24       VP                  4        V P                   P                  R4       V P                  V P                   R7      pV P	                  \        V4      RV P                  P                   R24       VP                  4        V P                  V P                   R7      pVP                  4        V P	                  \        V4      RV P                  P                   R24       V P                  V P                   R7      pVP                  ^4       V P	                  \        V4      RV P                  P                   R	24       V P	                  VP                  4       ^4       \        4       pV P                  V P                   R7      pVP                  V4       V P	                  \        V4      RV P                  P                   R
24       V P                  VP                  4       V4       R pV P                  V P                   R7      p	V	P                  \         4       V! \         4      p
V P#                  \        V	4      RV P                  P                  ,           RV
,          ,           4       V	P                  4        V P	                  \        V	4      RV P                  P                   R24       V P                  V P                   R7      pVP                  \$        4       VP                  \&        4       V! \$        4      pV! \&        4      pV P#                  \        V4      RV P                  P                  ,           RV: RV: R2,           4       V P                  V P                   R7      pVP                  \$        4       \)        ^4       F  pVP                  \         4       K  	  VP                  \&        4       V: RV: 2pV P#                  \        V4      RV P                  P                  ,           RV,          ,           4       VP                  4        V P	                  \        V4      RV P                  P                   R24       R# )Tro   <z pending created at :>Fz	 pending>z cancelled>z finished result=4>z# finished exception=RuntimeError()>c                     \         P                  ! V 4      w  rV P                  : R V: RV: 2p\        P                  ! V4      # )z() at r   )
test_utilsget_function_sourcer   reescape)funcfilenamelinenotexts   &   r   	func_repr3BaseFutureTests.test_future_repr.<locals>.func_reprx  s5    )==dCH&*&7&76JD99T?"r   z pending cb=\[%s\]>z pending cb=\[z, z\]>z, <8 more>, N)r^   	set_debugry   _source_tracebackr   r   ru   r   r7   rI   rB   r   rL   rf   rE   r   r   r   r   r   range)r&   f_pending_debugframe	f_pendingf_cancelledf_resultr   f_exceptionr  f_one_callbacks	fake_reprf_two_callbacks
first_repr	last_reprf_many_callbacksicb_regexs   &                r   test_future_repr BaseFutureTests.test_future_reprX  s   		D!**		*:11"5!!!""6uQxj%(1M	O 	 		E"$$$))$4	iAdhh.?.?-@	*JK&&DII&6k*a0A0A/B+,NO###3ANa 1 122EF	H*A.n&&DII&6!!#&!!""EF	H 	k++-s3	#
 **		*:)))4i(	!488$$$'=	'II	K 	 o.TXX../{;	= **		*:))(3))'2x(
g&	o. 1 11&	53 3	4  +++;**84qA..y9 **73*4i@!"488$$$'='HH	J 	!./TXX../{;	=r   c                   ^ RI Hp V P                  V P                  R7      pVP	                  ^
4       V P                  V P                  R7      pV! W#4       V P                  VP                  4       4       V P                  VP                  4       ^
4       V P                  V P                  R7      pVP                  \        4       4       V P                  V P                  R7      pV! WE4       V P                  VP                  4       4       V P                  \        VP                  4       V P                  V P                  R7      pVP                  4        V P                  V P                  R7      pV! Wg4       V P                  VP                  4       4        \        P                  P                   h  \"         d   pTp	 Rp?MRp?ii ; iT P                  T P                  R7      p
T
P                  T	4       T P                  T P                  R7      pT! Y4       T P                  TP                  4       4        TP                  4        M  \"         d   pTp Rp?MRp?ii ; iRP%                  \&        P(                  ! XP*                  4      4      pT P                  TP-                  R4      ^4       R# )    )_copy_future_statero   N z*raise concurrent.futures.InvalidStateError)asyncio.futuresr  ry   r^   rI   rQ   r5   r   rB   rL   r   r   r7   r:   
concurrentr   r   BaseExceptionjoin	traceback	format_tb__traceback__count)r&   r  r   newfr  newf_exceptionr  newf_cancelledef_excf_conexcnewf_conexcnewf_excnewf_tbs   &             r   test_copy_stateBaseFutureTests.test_copy_state  s   6$)),	RTYY/1#		$+&&DII&6!!,.1))tyy)9;7++-.,(=(=>&&DII&6))tyy)9;70023	$$666 	E	 ###3u%&&DII&681((*+	  	H	'')--h.D.DEF'STVWXs0   F9 9GGGI I, I''I,c                   aa V P                  V P                  R 7      oV3R loV3R lpV P                  \        R4      ;_uu_ 4        V! 4        RRR4       SP	                  4        R#   + '       g   i     L"; i)ro   c               3   (   <"   S  R j  xL
  R #  L5ir   r   )r   s   r   coro'BaseFutureTests.test_iter.<locals>.coro  s     NNs   c                     < S! 4       w  rR # r   r   )arg1arg2r2  s     r   r   'BaseFutureTests.test_iter.<locals>.test  s    JD$r   zawait wasn't usedN)ry   r^   r   r   r7   )r&   r   r2  r   s   & @@r   	test_iterBaseFutureTests.test_iter  sX    DII.		  ##L2EFFF G

 GFs   	A++A;	c                    V P                  V P                  R 7      pV P                  \        R4      ;_uu_ 4        RVn        RRR4       R#   + '       g   i     R# ; i)ro   zcan only be set to FalseTN)ry   r^   r   
ValueError_log_tracebackr   s   & r   test_log_traceback"BaseFutureTests.test_log_traceback  sE    DII.##J0JKK!%C LKKKs   AA	zasyncio.base_events.loggerc                    V P                  V P                  R 7      p?V P                  VP                  P                  4       R# r   )ry   r^   rA   errorcalledr&   m_logr   s   && r   test_tb_logger_abandoned(BaseFutureTests.test_tb_logger_abandoned  s4    DII.++,r   c                    V P                  V P                  R 7      pVP                  \        4       4       VP	                  4        ?V P                  VP                  P                  4       R# r   )ry   r^   rL   r   r7   rA   r@  rA  rB  s   && r   &test_tb_logger_not_called_after_cancel6BaseFutureTests.test_tb_logger_not_called_after_cancel  sM    DII.)+&

++,r   c                    V P                  V P                  R 7      pVP                  ^*4       ?V P                  VP                  P
                  4       R# r   )ry   r^   rI   rA   r@  rA  rB  s   && r   !test_tb_logger_result_unretrieved1BaseFutureTests.test_tb_logger_result_unretrieved  s@    DII.r++,r   c                    V P                  V P                  R 7      pVP                  ^*4       VP                  4        ?V P	                  VP
                  P                  4       R# r   )ry   r^   rI   rB   rA   r@  rA  rB  s   && r   test_tb_logger_result_retrieved/BaseFutureTests.test_tb_logger_result_retrieved  sI    DII.r

++,r   c                (   V P                  V P                  R 7      pVP                  \        R4      4       ?\        P
                  ! V P                  4       \        P                  ! 4        V P                  VP                  P                  4       R# ro   boomN)ry   r^   rL   r   r   run_brieflyr   
gc_collectrQ   r@  rA  rB  s   && r   $test_tb_logger_exception_unretrieved4BaseFutureTests.test_tb_logger_exception_unretrieved  sc    DII.,v./tyy)**+r   c                    V P                  V P                  R 7      pVP                  \        R4      4       VP	                  4        ?V P                  VP                  P                  4       R# rP  )ry   r^   rL   r   rE   rA   r@  rA  rB  s   && r   "test_tb_logger_exception_retrieved2BaseFutureTests.test_tb_logger_exception_retrieved  sP    DII.,v./++,r   c                    V P                  V P                  R 7      pVP                  \        R4      4       V P	                  \        VP
                  4       ?V P                  VP                  P                  4       R# rP  )	ry   r^   rL   r   r   rB   rA   r@  rA  rB  s   && r   )test_tb_logger_exception_result_retrieved9BaseFutureTests.test_tb_logger_exception_result_retrieved	  s[    DII.,v./,

3++,r   c                   R  p\         P                  P                  ^4      pVP                  VR4      p\        P
                  ! W0P                  R7      pV P                  P                  V4      w  rVV P                  \        P                  ! V4      4       V P                  VR4       V P                  V\        P                  ! 4       4       VP                  RR7       R# )c                 0    V \         P                  ! 4       3# r   	threading	get_identargs   &r   run-BaseFutureTests.test_wrap_future.<locals>.run      ,,.//r   oiro   TwaitN)r  r   ThreadPoolExecutorsubmitr	   re   r^   r   rQ   r   r   assertNotEqualr_  r`  shutdown)r&   rc  exf1f2residents   &      r   ri    BaseFutureTests.test_wrap_future  s    	02215YYsD!  ))4YY11"5
((,-d#E9#6#6#89
r   c                    V P                  V P                  R 7      p\        P                  ! V4      pV P	                  W4       R# r   )ry   r^   r	   re   rf   r&   rn  ro  s   &  r   test_wrap_future_future'BaseFutureTests.test_wrap_future_future  s5    499-  $br   c                2   R  p\         P                  P                  ^4      pVP                  VR4      pV P	                  \
        R4      ;_uu_ 4        \        P                  ! V4       RRR4       VP                  RR7       R#   + '       g   i     L$; i)c                 0    V \         P                  ! 4       3# r   r^  ra  s   &r   rc  :BaseFutureTests.test_wrap_future_without_loop.<locals>.run$  re  r   rf  r   NTrg  )	r  r   ri  rj  r   r   r	   re   rl  )r&   rc  rm  rn  s   &   r   test_wrap_future_without_loop-BaseFutureTests.test_wrap_future_without_loop#  sm    	02215YYsD!##L2IJJ# K
 KJs   BB	c                ,  a R  p\         P                  P                  ^4      pVP                  VR4      oV3R lpV P                  P                  V! 4       4      pV P                  V P                  VP                  4       VP                  RR7       R# )c                 0    V \         P                  ! 4       3# r   r^  ra  s   &r   rc  >BaseFutureTests.test_wrap_future_use_running_loop.<locals>.run-  re  r   rf  c                  8   <"   \         P                  ! S 4      # 5ir   )r	   re   )rn  s   r   r   ?BaseFutureTests.test_wrap_future_use_running_loop.<locals>.test1  s     &&r**s   Trg  N)	r  r   ri  rj  r^   r   rf   r   rl  )r&   rc  rm  r   ro  rn  s   &    @r   !test_wrap_future_use_running_loop1BaseFutureTests.test_wrap_future_use_running_loop,  sm    	02215YYsD!	+YY))$&1dii*
r   c                   \         P                  ! V P                  4       V P                  \         P                  R 4       R p\        P
                  P                  ^4      pVP                  VR4      p\         P                  ! V4      pV P                  V P                  VP                  4       VP                  RR7       R # )Nc                 0    V \         P                  ! 4       3# r   r^  ra  s   &r   rc  =BaseFutureTests.test_wrap_future_use_global_loop.<locals>.run;  re  r   rf  Trg  )r	   r   r^   r_   r  r   ri  rj  re   rf   r   rl  )r&   rc  rm  rn  ro  s   &    r    test_wrap_future_use_global_loop0BaseFutureTests.test_wrap_future_use_global_loop7  s    tyy)..5	02215YYsD!  $dii*
r   c                `   \         P                  P                  4       p\        P                  ! WP
                  R 7      pVP                  4        \        P                  ! V P
                  4       V P                  VP                  4       4       V P                  VP                  4       4       R# r   )r  r   Futurer	   re   r^   r7   r   rR  rQ   r:   rt  s   &  r   test_wrap_future_cancel'BaseFutureTests.test_wrap_future_cancelC  si    &&(  ))4
		tyy)''r   c                   \         P                  P                  4       p\        P                  ! WP
                  R 7      pVP                  ^*4       VP                  4        \        P                  ! V P
                  4       V P                  VP                  4       4       V P                  VP                  4       ^*4       V P                  VP                  4       4       R# r   )r  r   r  r	   re   r^   rI   r7   r   rR  rA   r:   r   rB   rQ   rt  s   &  r   test_wrap_future_cancel2(BaseFutureTests.test_wrap_future_cancel2K  s    &&(  ))4
b
		tyy)(b)'r   c                b   V P                   P                  R 4       V P                  V P                   R7      p\        P                  ! 4       P
                  ^,
          pV P                  VP                  \        4       V P                  VP                  R,          R,          \        VR34       R# )Tro   :N   Ntest_future_source_tracebackN)r^   r  ry   sys	_getframef_linenor   r  listr   __file__)r&   r   r  s   &  r   r  ,BaseFutureTests.test_future_source_tracebackU  s    		D!!!tyy!1))A-f66=11"5b9" 8:	;r   c                   V P                   P                  V4       R  pV! 4       pV P                  V P                   R7      pVP                  V4       Rp\        P
                  ! V P                   4       \        P                  ! 4        RV P                  P                   R2p\        V4      WDP                  3pVP                  P                  \        P                  VR7       VP                  P                   ^ ,          ^ ,          pV P#                  V\$        P&                  ! V\$        P(                  4      4       R# )c                  L     \        4       h  \         d   p T u R p ? # R p ? ii ; ir   )MemoryErrorr  )r   s    r   memory_errorLBaseFutureTests.check_future_exception_never_retrieved.<locals>.memory_errord  s$    !m#  
s   
 ###ro   N^z exception was never retrieved
)exc_info)r^   r  ry   rL   r   rR  r   rS  ru   r   r   r#  r@  assert_called_once_withr   ANY	call_argsr   r   compileDOTALL)	r&   debugrC  r  r   r   regexr  messages	   &&&      r   &check_future_exception_never_retrieved6BaseFutureTests.check_future_exception_never_retrieved`  s    		E"	
 n!!tyy!1S!tyy)DHH%%&&FGIs$5$56++DHHx+H++''*1-"**UBII">?r   c                (    V P                  R 4       R# r   r  r%   s   &r   %test_future_exception_never_retrieved5BaseFutureTests.test_future_exception_never_retrievedx  s    33E:r   c                (    V P                  R 4       R# TNr  r%   s   &r   +test_future_exception_never_retrieved_debug;BaseFutureTests.test_future_exception_never_retrieved_debug{  s    33D9r   c                    V P                  V P                  R 7      pVP                  4        \        P                  ! V^4       V P                  VP                  4       4       R# r   )ry   r^   r7   r   _set_result_unless_cancelledrQ   r:   r   s   & r    test_set_result_unless_cancelled0BaseFutureTests.test_set_result_unless_cancelled~  sD    DII.

,,S!4(r   c                D   V P                  V P                  R 7      pVP                  R4       VP                  4       pRp VP	                  R4       V P                  R4       V P                  VR4       R#   \         d   pTP                  ^ ,          p Rp?L7Rp?ii ; i)ro   NzStopIteration was expected)      )	ry   r^   rI   rR   sendfailr   rw   r   )r&   r   firB   rm  s   &    r   test_future_stop_iteration_args/BaseFutureTests.test_future_stop_iteration_args  s    DII.v\\^	4GGDM II23(	  	 WWQZF	 s   A7 7BBBc           
     2   V P                  V P                  R 7      p\        V4      pV P                  \        4      ;_uu_ 4        V P                  \        VP                  \        \        R4      R4       RRR4       \        P                  ! 4       ;_uu_ 4        \        P                  ! R\        R7       V P                  \        VP                  \        \        R4      ^ 4       V P                  \        VP                  \        R4      \        R4      4       V P                  \        VP                  \        RR4       RRR4       V P                  \        VP                  \        4       R#   + '       g   i     EL; i  + '       g   i     LK; i)ro   zebraNignore)categoryelephant)ry   r^   r   assertWarnsDeprecationWarningr   r   throwwarningscatch_warningsfilterwarningsr   r;  r  )r&   r   r  s   &  r   test_future_iter_throw&BaseFutureTests.test_future_iter_throw  s   DII.#Y011i9i>PRVW 2$$&&##H7IJi%y'<bBi%j19Z3HJ j"((JdK ' 	)RXXt4 211&&s   1E2B(F2F	F	c                     ! R  R4      p\        ^d4       F5  pV P                  V P                  R7      pVP                  V! 4       4       K7  	  R# )c                   &   a  ] tR tRt o R tRtV tR# )5BaseFutureTests.test_future_del_collect.<locals>.Evili  c                0    \         P                  ! 4        R # r   )gccollectr%   s   &r   r-   =BaseFutureTests.test_future_del_collect.<locals>.Evil.__del__  s    

r   r   N)r   r   r   r   r-   r    r/   r0   s   @r   Evilr    s      r   r  ro   N)r  ry   r^   rI   )r&   r  r  r   s   &   r   test_future_del_collect'BaseFutureTests.test_future_del_collect  sA    	 	 sA""		"2CNN46" r   c                :   V P                  V P                  R 7      pVP                  4        Rp VP                  4        V P                  V4       V P                  \        P                  ! V4      . 4       R#   \        P
                   d   pTp Rp?LURp?ii ; ir   )
ry   r^   r7   rB   r	   r   rH   assertListEqualr  get_referrersr&   r   r   r(  s   &   r   &test_future_cancelled_result_refcycles6BaseFutureTests.test_future_cancelled_result_refcycles  s}    $)),	
	HHJ 	S!R--c2B7 %% 	C	   A9 9BBBc                :   V P                  V P                  R 7      pVP                  4        Rp VP                  4        V P                  V4       V P                  \        P                  ! V4      . 4       R#   \        P
                   d   pTp Rp?LURp?ii ; ir   )
ry   r^   r7   rE   r	   r   rH   r  r  r  r  s   &   r   )test_future_cancelled_exception_refcycles9BaseFutureTests.test_future_cancelled_exception_refcycles  s}    $)),	
	KKM 	S!R--c2B7 %% 	C	r  ro   )9r   r   r   r   ry   r\   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r.  r8  r=  r   patchrD  rG  rJ  rM  rT  rW  rZ  ri   ru  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r    r/   rp   rq   s   @@r   rs   rs   {   s    ))
4
.'//;2%h:	>	%%% BO ;<;
-$C=J*YX&
 
ZZ,-- .-
 
ZZ,-- .- 
ZZ,-- .- 
ZZ,-- .- 
ZZ,-, ., 
ZZ,-- .- 
ZZ,-- .-
	
((	; 
ZZ,-@ .@.;:))5#	8	8 	8r   rs   _CFuturezrequires the C _asyncio modulec                   d   a  ] tR tRt o  ]P
                  tR tR t	Rt
V tR#   ] d    Rt Li ; i)CFutureTestsi  Nc                ,   V P                  V P                  R 7      pV P                  \        4      ;_uu_ 4        V=RRR4       V P                  \        4      ;_uu_ 4        V=RRR4       R#   + '       g   i     L:; i  + '       g   i     R# ; ir   )ry   r^   r   r   rP   r<  r   s   & r   test_future_del_segfault%CFutureTests.test_future_del_segfault  sg    DII.~.., /~.." /. /....s   A/"B/A?	B	c                   V P                  V P                  R 7      pR pR pVP                  V4       VP                  V4       VP                  pV P	                  WAP                  4       VP                  V4       VP                  pV P	                  WAP                  4       VP                  V4       V P                  VP                  4       R# )ro   c                     ^# )r  r   _s   &r   r   2CFutureTests.test_callbacks_copy.<locals>.<lambda>      qr   c                     ^# )r  r   r  s   &r   r   r    r  r   N)ry   r^   r   
_callbacksassertIsNotr   assertIsNone)r&   r   rn  ro  	callbackss   &    r   test_callbacks_copy CFutureTests.test_callbacks_copy  s    
 DII.b!b!NN	NN3  $NN	NN3  $#..)r   r   )r   r   r   r   r   r  ru   r   r  r  r    r/   r0   s   @r   r  r    s:     #* *  s   # 	//r  c                   j    ] tR tRt  ! R R]P
                  4      t]tRt	R#   ] d	    Rt Rt	R# i ; i)CSubFutureTestsi  c                       ] tR tRtRtR# )CSubFutureTests.CSubFuturei  r   Nr   r   r   r   
CSubFuturer    r   r   r  Nr   )
r   r   r   r   r   r  r  ru   r   r    r   r   r   r  r    s4    	)) 	  s   # 	22r  c                   .    ] tR tRt]P
                  tRtR# )PyFutureTestsi  r   N)r   r   r   r   r   	_PyFutureru   r    r   r   r   r  r    s    


Cr   r  c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tRtVtV ;t# )BaseFutureDoneCallbackTestsi  c                N   < \         SV `  4        V P                  4       V n        R # r   )r[   r\   r]   r^   r`   s   &r   r\   !BaseFutureDoneCallbackTests.setUp  s    &&(	r   c                F    \         P                  ! V P                  4       R # r   )r   rR  r^   r%   s   &r   rR  'BaseFutureDoneCallbackTests.run_briefly  s    tyy)r   c                   aa VV3R  lpV# )c                 *   < SP                  S4       R # r   )append)r   bagthings   &r   bag_appender@BaseFutureDoneCallbackTests._make_callback.<locals>.bag_appender  s    JJur   r   )r&   r  r  r  s   &ff r   _make_callback*BaseFutureDoneCallbackTests._make_callback  s    	r   c                    \         hr   NotImplementedErrorr%   s   &r   ry   'BaseFutureDoneCallbackTests._new_future      !!r   c                   . pV P                  4       pV P                  V^*4      pV P                  V^4      pV P                  V^d4      pVP                  V4       VP                  V4       VP                  V4       VP                  V4       VP                  V4       V P	                  V. 4       VP                  R4       V P                  4        V P	                  V^^d.4       V P	                  VP                  4       R4       R# r   fooNry   r  r   r   r   rI   rR  rB   r&   r  r   cb1cb2cb3s   &     r   $test_callbacks_remove_first_callback@BaseFutureDoneCallbackTests.test_callbacks_remove_first_callback  s    !!#r*!!#r*!!#s+	C 	C 	C 	s#	s#b!	Ur3i(U+r   c                .   . pV P                  4       pV P                  V^*4      pV P                  V^4      pV P                  V^d4      pVP                  V4       VP                  V4       VP                  V4       VP                  V4       VP                  V4       VP                  V4       V P	                  V. 4       VP                  R4       V P                  4        V P	                  V^d.4       V P	                  VP                  4       R4       R# r  r  r  s   &     r   /test_callbacks_remove_first_and_second_callbackKBaseFutureDoneCallbackTests.test_callbacks_remove_first_and_second_callback  s    !!#r*!!#r*!!#s+	C 	C 	C 	s#	s#	s#b!	Use$U+r   c                   . pV P                  4       pV P                  V^*4      pV P                  V^4      pV P                  V^d4      pVP                  V4       VP                  V4       VP                  V4       VP                  V4       VP                  V4       V P	                  V. 4       VP                  R4       V P                  4        V P	                  V^*^.4       V P	                  VP                  4       R4       R# r  r  r  s   &     r   $test_callbacks_remove_third_callback@BaseFutureDoneCallbackTests.test_callbacks_remove_third_callback3  s    !!#r*!!#r*!!#s+	C 	C 	C 	s#	s#b!	Ur2h'U+r   c                |   . pV P                  4       pVP                  V P                  V^*4      4       VP                  V P                  V^4      4       V P                  V. 4       VP	                  R4       V P                  4        V P                  V^*^.4       V P                  VP                  4       R4       R# r  )ry   r   r  r   rI   rR  rB   )r&   r  r   s   &  r   $test_callbacks_invoked_on_set_result@BaseFutureDoneCallbackTests.test_callbacks_invoked_on_set_resultJ  s    	D//R89	D//R89b!	Ur2h'U+r   c                L   . pV P                  4       pVP                  V P                  V^d4      4       V P                  V. 4       \	        4       pVP                  V4       V P                  4        V P                  V^d.4       V P                  VP                  4       V4       R# )d   N)ry   r   r  r   r   rL   rR  rE   )r&   r  r   r   s   &   r   'test_callbacks_invoked_on_set_exceptionCBaseFutureDoneCallbackTests.test_callbacks_invoked_on_set_exceptionX  s    	D//S9:b!n	se$,r   c                   . pV P                  4       pV P                  V^4      pV P                  V^4      pV P                  V^4      pVP                  V4       VP                  V4       V P                  VP	                  V4      ^4       V P                  VP	                  V4      ^ 4       VP                  V4       \        ^4       F  pVP                  V4       K  	  V P                  VP	                  V4      ^4       V P                  V. 4       VP                  R4       V P                  4        V P                  V^.4       V P                  VP                  4       R4       R# )r  r  N)	ry   r  r   r   r   r  rI   rR  rB   )r&   r  r   r  r  r  r  s   &      r   test_remove_done_callback5BaseFutureDoneCallbackTests.test_remove_done_callbackf  s<   !!#q)!!#q)!!#q) 	
C 	C  	//4a8 	//4a8 	
C qA$  	//4a8b!	Uqc"U+r   c                   a V P                  4       oSP                  \        4       \        ^?4       F  pSP                  \        4       K  	   ! V3R lR4      pSP                  V! 4       4       R# )?   c                   .   <a  ] tR tRt o V3R ltRtV tR# )RBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation.<locals>.evili  c                2   < SP                  \        4       R # r$   )r   idr&   otherr   s   &&r   __eq__YBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation.<locals>.evil.__eq__  s    ((,r   r   Nr   r   r   r   r1  r    r/   r1   r   s   @r   evilr,    s      r   r5  Nry   r   r~   r  r.  r   r&   r  r5  r   s   &  @r   (test_remove_done_callbacks_list_mutationDBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_mutation  sY      c"rA!!"% 	 	
 	  (r   c                   a V P                  4       oSP                  \        4       \        ^?4       F  pSP                  \        4       K  	   ! V3R lR4      pSP                  V! 4       4       R# )r*  c                   .   <a  ] tR tRt o V3R ltRtV tR# )OBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_clear.<locals>.evili  c                *   < SP                  V4       R # r   )r   r/  s   &&r   r1  VBaseFutureDoneCallbackTests.test_remove_done_callbacks_list_clear.<locals>.evil.__eq__  s    ((/r   r   Nr3  r4  s   @r   r5  r<    s     0 0r   r5  Nr6  r7  s   &  @r   %test_remove_done_callbacks_list_clearABaseFutureDoneCallbackTests.test_remove_done_callbacks_list_clear  sY      c"rA!!"% 	0 	0 	  (r   c                   R  pV P                  4       pVP                  V4       VP                  \        4       VP                  \        4       VP                  ^4       \        P
                  ! V P                  4       R# )c                 0    V P                  \        4       R # r   )r   r~   r   s   &r   mutPBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_1.<locals>.mut  s    ""3'r   N)ry   r   r~   rI   r   rR  r^   )r&   rC  r   s   &  r   'test_schedule_callbacks_list_mutation_1CBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_1  s_    	(  c"c"c"qtyy)r   c                   aaa V P                  4       oSP                  \        4       \        ^?4       F  pSP                  \        4       K  	  ^do^ o ! VVV3R lR4      pSP                  V! 4       4       R# )r*  c                   2   <a  ] tR tRt o VVV3R ltRtV tR# )QBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2.<locals>.evili  c                R   < S^,          oSS8  d   SP                  \        4       R# )r  F)r   r.  )r&   r0  	extra_cbsr   max_extra_cbss   &&r   r1  XBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2.<locals>.evil.__eq__  s%    Q	},))"-r   r   Nr3  )r1   rK  r   rL  s   @r   r5  rI    s      r   r5  Nr6  )r&   r  r5  rK  r   rL  s   &  @@@r   'test_schedule_callbacks_list_mutation_2CBaseFutureDoneCallbackTests.test_schedule_callbacks_list_mutation_2  se      c"rA!!"%  		 	 	  (r   c                (  aaa R oR oVVV3R lp\        4       pWn        \        P                  P	                  V RV4      ;_uu_ 4        V P                  4       oV P                  SP                  4       V4       SP                  \        4       SP                  \        4       SP                  S4       SP                  S4       SP                  R4       V P                  SP                  R. 34       RRR4       R#   + '       g   i     R# ; i)Fc                      R # .r   r   r   r   r   OBaseFutureDoneCallbackTests.test_evil_call_soon_list_mutation.<locals>.<lambda>  s    cr   c                  l   < S'       d)   SP                  \        4       SP                  S4       R# R oR# r  )r   int)rw   rx   called_on_fut_callback0r   pads   *,r   evil_call_soonUBaseFutureDoneCallbackTests.test_evil_call_soon_list_mutation.<locals>.evil_call_soon  s*    & ((-((-*.'r   r^   rQ  N)r"   	call_soonr   r  objectry   rf   r   r   r~   rU  rI   assertInr  )r&   rX  fake_event_looprV  r   rW  s   &  @@@r   !test_evil_call_soon_list_mutation=BaseFutureDoneCallbackTests.test_evil_call_soon_list_mutation  s    "'	/ ./$2!ZZtV_==""$CMM#,,./:!!#&!!#&!!#&!!#&NN6" MM#..4*5 >===s   
B,D  D	c                   a V P                  4       o ! R  R4      p ! V3R lRV4      pSP                  V! 4       4       SP                  V! 4       4       R# )c                   &   a  ] tR tRt o R tRtV tR# )aBaseFutureDoneCallbackTests.test_use_after_free_on_fut_callback_0_with_evil__eq__.<locals>.cb_padi  c                    R # rO   r   )r&   r0  s   &&r   r1  hBaseFutureDoneCallbackTests.test_use_after_free_on_fut_callback_0_with_evil__eq__.<locals>.cb_pad.__eq__  s    r   r   Nr3  r0   s   @r   cb_padrb    s      r   re  c                   .   <a  ] tR tRt o V3R ltRtV tR# )_BaseFutureDoneCallbackTests.test_use_after_free_on_fut_callback_0_with_evil__eq__.<locals>.evili  c                2   < SP                  R 4       \        # r   )r   NotImplementedr/  s   &&r   r1  fBaseFutureDoneCallbackTests.test_use_after_free_on_fut_callback_0_with_evil__eq__.<locals>.evil.__eq__  s    ((.%%r   r   Nr3  r4  s   @r   r5  rg    s     & &r   r5  N)ry   r   r   )r&   re  r5  r   s   &  @r   5test_use_after_free_on_fut_callback_0_with_evil__eq__QBaseFutureDoneCallbackTests.test_use_after_free_on_fut_callback_0_with_evil__eq__  sK      	 		&6 	&
 	fh'  (r   c                  aa  ! VV3R  lR\         4      pV! 4       p\        P                  P                  V RV4      ;_uu_ 4        V P	                  4       oV P                  SP                  4       V4       R oSP                  S4       V P                  \        SP                  R4       RRR4       R#   + '       g   i     R# ; i)c                   B   <a a ] tR tRt oV 3R ltVV3R ltRtVtV ;t# )rBaseFutureDoneCallbackTests.test_use_after_free_on_fut_callback_0_with_evil__getattribute__.<locals>.EvilEventLoopi  c                0   < \         SV `  ! V/ VB  \        hr   r[   rZ  r   r&   rw   rx   ra   s   &*,r   rZ  |BaseFutureDoneCallbackTests.test_use_after_free_on_fut_callback_0_with_evil__getattribute__.<locals>.EvilEventLoop.call_soon       !4262##r   c                `   < VR 8X  d   SP                  S4       >\        P                  W4      # )rZ  )r   r[  __getattribute__)r&   namer   fut_callback_0s   &&r   rv  ڃBaseFutureDoneCallbackTests.test_use_after_free_on_fut_callback_0_with_evil__getattribute__.<locals>.EvilEventLoop.__getattribute__  s-    ;&,,^<&..t::r   r   	r   r   r   r   rZ  rv  r    r/   rp   )ra   r1   r   rx  s   @@r   EvilEventLoopro    s     $; ;r   r{  r^   c                      R # rR  r   r   r   r   r   mBaseFutureDoneCallbackTests.test_use_after_free_on_fut_callback_0_with_evil__getattribute__.<locals>.<lambda>  s    Sr   rQ  N)r"   r   r  r[  ry   rf   r   r   r   r   rI   )r&   r{  	evil_loopr   rx  s   &  @@r   ?test_use_after_free_on_fut_callback_0_with_evil__getattribute__[BaseFutureDoneCallbackTests.test_use_after_free_on_fut_callback_0_with_evil__getattribute__  s    
	; 
	;/ 
	; "O	ZZtVY77""$CMM#,,.)4(N!!.1mS^^VD 8777s   A&B66C	c                  a  ! V3R  lR\         4      pV! 4       p\        P                  P                  V RV4      ;_uu_ 4        V P	                  4       oV P                  SP                  4       V4       \        P                  ! 4       p\        P                  ! 4       pSP                  W4R7       ??V P                  \        SP                  R4       RRR4       R#   + '       g   i     R# ; i)c                   @   <a a ] tR tRt oV 3R ltV3R ltRtVtV ;t# )qBaseFutureDoneCallbackTests.test_use_after_free_on_fut_context_0_with_evil__getattribute__.<locals>.EvilEventLoopi  c                0   < \         SV `  ! V/ VB  \        hr   rq  rr  s   &*,r   rZ  {BaseFutureDoneCallbackTests.test_use_after_free_on_fut_context_0_with_evil__getattribute__.<locals>.EvilEventLoop.call_soon  rt  r   c                p   < VR 8X  d   SP                  \        4       R7       \        P                  W4      # )rZ  ro   )r   r"   r[  rv  )r&   rw  r   s   &&r   rv  ڂBaseFutureDoneCallbackTests.test_use_after_free_on_fut_context_0_with_evil__getattribute__.<locals>.EvilEventLoop.__getattribute__  s.    ;&LL&9&;L<..t::r   r   rz  )ra   r1   r   s   @@r   r{  r    s     $; ;r   r{  r^   )contextrQ  N)r"   r   r  r[  ry   rf   r   r   r   r   r   rI   )r&   r{  r~  rx  fut_context_0r   s   &    @r   >test_use_after_free_on_fut_context_0_with_evil__getattribute__ZBaseFutureDoneCallbackTests.test_use_after_free_on_fut_context_0_with_evil__getattribute__  s    		;/ 		; "O	ZZtVY77""$CMM#,,.)4!YY[N IIKM!!.!HmS^^VD 8777s   BCC/	ro   )r   r   r   r   r\   rR  r  ry   r  r  r  r   r$  r'  r8  r?  rE  rN  r^  rk  r  r  r    r/   rp   rq   s   @@r   r  r    si     )*",.,0,.,-,B) )*),6B)$E0E Er   r  c                   &   a  ] tR tRt o R tRtV tR# )CFutureDoneCallbackTestsi/  c                D    \         P                  ! V P                  R 7      # ro   r   r  r^   r%   s   &r   ry   $CFutureDoneCallbackTests._new_future4  s    TYY//r   r   Nr   r   r   r   ry   r    r/   r0   s   @r   r  r  /  s     
0 0r   r  c                   &   a  ] tR tRt o R tRtV tR# )CSubFutureDoneCallbackTestsi8  c                Z     ! R  R\         P                  4      pV! V P                  R7      # )c                       ] tR tRtRtR# );CSubFutureDoneCallbackTests._new_future.<locals>.CSubFuturei>  r   Nr   r   r   r   r  r  >  r   r   r  ro   r  )r&   r  s   & r   ry   'CSubFutureDoneCallbackTests._new_future=  s#    	)) 	tyy))r   r   Nr  r0   s   @r   r  r  8  s     
* *r   r  c                   &   a  ] tR tRt o R tRtV tR# )PyFutureDoneCallbackTestsiC  c                D    \         P                  ! V P                  R 7      # r  )r   r  r^   r%   s   &r   ry   %PyFutureDoneCallbackTests._new_futureF  s      dii00r   r   Nr  r0   s   @r   r  r  C  s     1 1r   r  c                   >   a a ] tR tRt oR tV 3R ltR tRtVtV ;t	# )BaseFutureInheritanceTestsiJ  c                    \         hr   r  r%   s   &r   _get_future_cls*BaseFutureInheritanceTests._get_future_clsL  r  r   c                   < \         SV `  4        V P                  4       V n        V P	                  V P                  P
                  4       R # r   rZ   r`   s   &r   r\    BaseFutureInheritanceTests.setUpO  rc   r   c                    V P                  4       p ! R  RV4      pV! V P                  R7      pV P                  \        R4      ;_uu_ 4        VP	                  4        RRR4       R#   + '       g   i     R# ; i)c                   &   a  ] tR tRt o R tRtV tR# )QBaseFutureInheritanceTests.test_inherit_without_calling_super_init.<locals>.MyFutiX  c                    R # r   r   rv   s   &*,r   r   ZBaseFutureInheritanceTests.test_inherit_without_calling_super_init.<locals>.MyFut.__init__Y  s    r   r   N)r   r   r   r   r   r    r/   r0   s   @r   MyFutr  X  s      r   r  ro   z!Future object is not initialized.N)r  r^   r   r   r   )r&   ru   r  r   s   &   r   'test_inherit_without_calling_super_initBBaseFutureInheritanceTests.test_inherit_without_calling_super_initT  se    ""$	C 	
 ###/
 
 LLN	
 
 
 
s   A((A9	ro   )
r   r   r   r   r  r\   r  r    r/   rp   rq   s   @@r   r  r  J  s     ")
 r   r  c                   &   a  ] tR tRt o R tRtV tR# )PyFutureInheritanceTestsie  c                "    \         P                  # r   )r   r  r%   s   &r   r  (PyFutureInheritanceTests._get_future_clsg  s       r   r   Nr   r   r   r   r  r    r/   r0   s   @r   r  r  e  s     ! !r   r  c                   &   a  ] tR tRt o R tRtV tR# )CFutureInheritanceTestsik  c                "    \         P                  # r   )r   r  r%   s   &r   r  'CFutureInheritanceTests._get_future_clso  s    r   r   Nr  r0   s   @r   r  r  k  s        r   r  __main__)/r   concurrent.futuresr  r  r   r  r_  r!  unittestr   typesr   r	   r   r  test.test_asyncior   r   r   r   r   r   r   r   r   r   base_eventsBaseEventLoopr"   r3   TestCaserX   rs   
skipUnlesshasattrr  r  r  r  r  r  r  r  r  r  r   mainr   r   r   <module>r     s.     	 	 
         1 0		I 	'--;; 	0 0f
## $B	8 B	8J 
WWj157*?J$7$7 *7*@ 
WWj157oz':': 7OZ%8%8 zE zEz	 
WWj1570:)22070 
WWj157*"=","5"5*7*1 ; * 3 31 6!9)22! 
WWj157 8(11 7  zMMO r   