+
    Big                        ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^ RIH
t
 ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt R tR t ! R R]P(                  4      t ! R R]P(                  4      t ! R R]P(                  4      t]P0                  ! ]P2                  R8g  R4       ! R R]P(                  4      4       t]R8X  d   ]P8                  ! 4        R# R# )    N)mock)BaseProactorEventLoop)_ProactorSocketTransport)_ProactorWritePipeTransport)_ProactorDuplexPipeTransport)_ProactorDatagramTransport)	os_helper)socket_helper)utilsc                  D    \         P                  P                  R 4       R # N)asyncioevents_set_event_loop_policy     =/usr/lib/python3.14/test/test_asyncio/test_proactor_events.pytearDownModuler      s    NN))$/r   c                 h    V P                   f   R # V P                   P                  4        R V n         R # r   )_sockclose)	transports   &r   close_transportr      s(     OOIOr   c                     a a ] tR t^!t oV 3R ltR0R ltR tR tR t]	P                  ! ]P                  P                  R4      R 4       tR tR	 tR
 tR tR tR tR tR tR t]P2                  ! R4      R 4       tR tR tR tR tR tR t R t!]P2                  ! R4      R 4       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) t0R* t1R+ t2R, t3R- t4R. t5R/t6Vt7V ;t8# )1ProactorSocketTransportTestsc                  < \         SV `  4        V P                  4       V n        V P	                  V P                  P
                  4       \        P                  ! 4       V n        V P                  V P                  n	        \        P                  ! \        P                  4      V n        \        P                  ! \        P                  4      V n        R V n        R# )i   N)supersetUpnew_test_looploop
addCleanupr   r   Mockproactor	_proactor
test_utilsmake_test_protocolr   Protocolprotocolsocketsockbuffer_sizeself	__class__s   &r   r   "ProactorSocketTransportTests.setUp#   s    &&(			(		"mm		"55g6F6FGIIfmm,	 r   c                    \        V P                  V P                  V P                  VR 7      pV P	                  \
        V4       V# )waiter)r   r    r*   r(   r!   r   )r-   r2   r   s   && r   socket_transport-ProactorSocketTransportTests.socket_transport-   s6    ,TYY		-1]]6K	3r   c                   V P                   P                  4       pV P                  VR 7      p\        P                  ! V P                   4       V P                  VP                  4       4       V P                  P                  V4       V P                  P                  P                  V P                  \        V P                  4      4       R# )r1   N)r    create_futurer3   r%   run_brieflyassertIsNoneresultr(   connection_mader#   	recv_intoassert_called_withr*   	bytearrayr+   r-   futtrs   &  r   	test_ctor&ProactorSocketTransportTests.test_ctor3   s    ii%%'""#".tyy)#**,'%%b)22499iHXHX>YZr   c                   V P                  4       pVP                  4        V P                  P                  P                  P                  V P                  \        V P                  4      4       V P                  V P                  P                  P                  4       V P                  V P                  P                  P                  4       R # r   )r3   _loop_readingr    r$   r;   r<   r*   r=   r+   assertFalser(   data_receivedcalledeof_receivedr-   r@   s   & r   test_loop_reading.ProactorSocketTransportTests.test_loop_reading;   s    ""$
		%%88IdN^N^D_`44;;<33::;r   c                z   R pV P                   P                  4       pVP                  \        V4      4       V P	                  4       pW#n        WP                  R\        V4      % VP                  V4       \        V P                  4      pWR\        V4      % V P                   P                  P                  P                  V P                  V4       V P                  P                  P                  V4       V P!                  V P                  P                  P"                  P$                  ^ ,          \&        4       R#    dataN)r    r6   
set_resultlenr3   	_read_fut_datarD   r=   r+   r$   r;   r<   r*   r(   rF   assertIsInstance	call_argsargsbytes)r-   bufresr@   
called_bufs   &    r   test_loop_reading_data3ProactorSocketTransportTests.test_loop_reading_dataB   s    ii%%'s3x ""$!#c(
t//0
 #9CH		%%88JO##66s; 	dmm99CCHHKUSr   )Assertions are disabled in optimized modec                :   V P                   P                  4       pVP                  ^ 4       V P                  4       pV P	                  \
        VP                  V4       \        P                  ! 4       Vn	        Wn
        VP                  V4       V P                  V P                   P                  P                  P                  4       V P                  V P                   P"                  P                  4       V P                  VP                  P                  4       R# r   N)r    r6   rO   r3   assertRaisesAssertionErrorrD   r   r"   r   rQ   rE   r$   r;   rG   
assertTruer(   rH   r-   rX   r@   s   &  r   test_loop_reading_no_data6ProactorSocketTransportTests.test_loop_reading_no_dataS   s    ii%%'q""$."*:*:C@99;
,,66==>2299:(r   c                   \        4       ;qP                  P                  P                  n        V P                  4       p\        P                  ! 4       Vn        VP                  4        VP                  P                  VR 4       R# z"Fatal read error on pipe transportN)ConnectionAbortedErrorr    r$   r;   side_effectr3   r   r"   _fatal_errorrD   r<   r-   errr@   s   &  r   test_loop_reading_aborted6ProactorSocketTransportTests.test_loop_reading_abortedb   s`    :P:RRii!!++7""$))+

**@	Br   c                ,   \        4       V P                  P                  P                  n        V P                  4       pR Vn        \        P                  ! 4       Vn	        VP                  4        V P                  VP                  P                  4       R# TN)rg   r    r$   r;   rh   r3   _closingr   r"   ri   rD   rE   rG   rI   s   & r   !test_loop_reading_aborted_closing>ProactorSocketTransportTests.test_loop_reading_aborted_closingl   sc    4J4L		%%1""$))+
//0r   c                ,   \        4       V P                  P                  P                  n        V P                  4       pR Vn        \        P                  ! 4       Vn	        VP                  4        V P                  VP                  P                  4       R# FN)rg   r    r$   r;   rh   r3   rp   r   r"   ri   rD   ra   rG   rI   s   & r   "test_loop_reading_aborted_is_fatal?ProactorSocketTransportTests.test_loop_reading_aborted_is_fatalu   sa    4J4L		%%1""$))+
../r   c                   \        4       ;qP                  P                  P                  n        V P                  4       pR Vn        \        P                  ! 4       Vn	        \        P                  ! 4       Vn
        VP                  4        V P                  VP                  P                  4       VP                  P                  V4       R# rt   )ConnectionResetErrorr    r$   r;   rh   r3   rp   r   r"   ri   _force_closerD   rE   rG   r<   rj   s   &  r   !test_loop_reading_conn_reset_lost>ProactorSocketTransportTests.test_loop_reading_conn_reset_lost}   s    :N:PPii!!++7""$))+))+
//0
**3/r   c                   \        4       ;qP                  P                  P                  n        V P                  4       p\        P                  ! 4       Vn        VP                  4        VP                  P                  VR 4       R# rf   )OSErrorr    r$   r;   rh   r3   r   r"   ri   rD   r<   rj   s   &  r   test_loop_reading_exception8ProactorSocketTransportTests.test_loop_reading_exception   s_    ;B9Eii!!++7""$))+

**@	Br   c                    V P                  4       p\        P                  ! 4       Vn        VP	                  R 4       V P                  VP                  R4       VP                  P                  R R7       R# )rN   N)data)r3   r   r"   _loop_writingwriteassertEqual_bufferr<   rI   s   & r   
test_write'ProactorSocketTransportTests.test_write   sU    ""$99;
T*
+++9r   c                ~    V P                  4       pVP                  R 4       V P                  VP                  4       R# )r   N)r3   r   rE   r   rI   s   & r   test_write_no_data/ProactorSocketTransportTests.test_write_no_data   s-    ""$
$r   c                2   V P                  4       p\        P                  ! 4       Vn        \        P                  ! 4       Vn        VP                  R 4       V P                  VP                  R 4       V P                  VP                  P                  4       R# rM   )
r3   r   r"   
_write_futr   r   r   r   rE   rG   rI   s   & r   test_write_more,ProactorSocketTransportTests.test_write_more   se    ""$		99;
W-))001r   c                t   V P                  4       p\        R 4      Vn        VP                  4        V P                  P
                  P                  P                  V P                  R 4       V P                  P
                  P                  P                  P                  P                  VP                  4       R# rM   )r3   r=   r   r   r    r$   sendr<   r*   return_valueadd_done_callbackrI   s   & r   test_loop_writing.ProactorSocketTransportTests.test_loop_writing   s|    ""$w'

		  33DIIwG		  --??r//0r   asyncio.proactor_events.loggerc                F   \        4       ;q P                  P                  P                  n        V P                  4       p\        P                  ! 4       Vn        R R.Vn	        VP                  4        VP                  P                  VR4       ^Vn        VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       V P                  VP                  R4       VP                  P                  R4       R# )s   das   taz#Fatal write error on pipe transportrN   Nzsocket.send() raised exception.)r}   r    r$   r   rh   r3   r   r"   ri   r   r   r<   
_conn_lostr   r   warning)r-   m_logrk   r@   s   &&  r   test_loop_writing_err2ProactorSocketTransportTests.test_loop_writing_err   s    5<Y>ii!!&&2""$))+U^


**A	C 




T*(()JKr   c                    V P                   P                  4       pVP                  R 4       V P                  4       pWn        VP                  V4       V P                  VP                  4       R# rM   )r    r6   rO   r3   r   r   r8   r>   s   &  r   test_loop_writing_stop3ProactorSocketTransportTests.test_loop_writing_stop   sS    ii%%'w""$
"--(r   c                   V P                   P                  4       pVP                  ^4       V P                  4       pWn        VP                  4        VP                  V4       V P                  VP                  4       \        P                  ! V P                   4       V P                  P                  P                  R4       R#    N)r    r6   rO   r3   r   r   r   r8   r%   r7   r(   connection_lostr<   r>   s   &  r   test_loop_writing_closing6ProactorSocketTransportTests.test_loop_writing_closing   s    ii%%'q""$


"--(tyy)%%88>r   c                    V P                  4       p\        P                  ! 4       Vn        VP	                  4        VP                  P                  R 4       R # r   )r3   r   r"   ry   abortr<   rI   s   & r   
test_abort'ProactorSocketTransportTests.test_abort   s8    ""$))+


**40r   c                L   V P                  4       pVP                  4        \        P                  ! V P                  4       V P
                  P                  P                  R 4       V P                  VP                  4       4       V P                  VP                  ^4       V P
                  P                  P                  4        VP                  4        \        P                  ! V P                  4       V P                  V P
                  P                  P                  4       R # r   )r3   r   r%   r7   r    r(   r   r<   ra   
is_closingr   r   
reset_mockrE   rG   rI   s   & r   
test_close'ProactorSocketTransportTests.test_close   s    ""$

tyy)%%88>(*%%002

tyy)66==>r   c                   V P                  4       p\        P                  ! 4       Vn        VP	                  4        \
        P                  ! V P                  4       V P                  V P                  P                  P                  4       R # r   )r3   r   r"   r   r   r%   r7   r    rE   r(   r   rG   rI   s   & r   test_close_write_fut1ProactorSocketTransportTests.test_close_write_fut   sV    ""$		

tyy)66==>r   c                    V P                  4       pR .Vn        VP                  4        \        P                  ! V P
                  4       V P                  V P                  P                  P                  4       R# rM   )
r3   r   r   r%   r7   r    rE   r(   r   rG   rI   s   & r   test_close_buffer.ProactorSocketTransportTests.test_close_buffer   sR    ""$Y


tyy)66==>r   c                d   V P                  4       pRV P                  P                  n        VP	                  4        \
        P                  ! V P                  4       V P                  P                  P                  R4       V P                  V P                  P                  P                  4       R# )r   N)r3   r*   filenor   r   r%   r7   r    r(   r   r<   rE   shutdownrG   rI   s   & r   test_close_invalid_sockobj7ProactorSocketTransportTests.test_close_invalid_sockobj   ss    ""$(*		%

tyy)%%88>++223r   asyncio.base_events.loggerc                   V P                  4       p\        P                  ! 4       Vn        VP	                  R 4       V P                  VP                  P                  4       V P                  VP                  P                  4       R # r   )r3   r   r"   ry   ri   ra   rG   error)r-   	m_loggingr@   s   && r   test_fatal_error-ProactorSocketTransportTests.test_fatal_error   sU    ""$))+
../	../r   c                &   V P                  4       pR .Vn        \        P                  ! 4       ;q!n        \        P                  ! 4       ;q1n        VP                  R4       VP                  P                  4        VP                  P                  4        \        P                  ! V P                  4       V P                  P                  P                  R4       V P                  RVP                  4       V P                  VP                  ^4       R# rM   )r3   r   r   r"   rQ   r   ry   cancelr<   r%   r7   r    r(   r   r   r   )r-   r@   read_fut	write_futs   &   r   test_force_close-ProactorSocketTransportTests.test_force_close  s    ""$Y
"&))+-<$(IIK/	M
**,++-tyy)%%88>rzz**r   c                   \         P                  ! 4       pV P                  P                  V4       V P                  P	                  4       pVP                  ^4       W P                  P                  n        V P                  4       pVP                  R4       VP                  R4       \        P                  ! V P                  4       VP                  4        R# )r   rN   N)r   r"   r    set_exception_handlerr6   rO   r#   r   r   r3   r   ry   r%   r7   assert_not_called)r-   exc_handlerr?   r@   s   &   r   test_loop_writing_force_close:ProactorSocketTransportTests.test_loop_writing_force_close  s    iik		''4ii%%'q*-'""$

tyy)%%'r   c                    V P                  4       pR Vn        VP                  R4       \        P                  ! V P
                  4       V P                  V P                  P                  P                  4       R# ro   )
r3   rp   ry   r%   r7   r    ra   r(   r   rG   rI   s   & r   test_force_close_idempotent8ProactorSocketTransportTests.test_force_close_idempotent#  sS    ""$
tyy) 	55<<=r   c                v   V P                  4       pV P                  V P                  P                  P                  4       R Vn        VP                  R4       VP                  R4       \        P                  ! V P                  4       V P                  ^V P                  P                  P                  4       R# ro   )r3   rE   r(   r   rG   rp   ry   r%   r7   r    r   
call_countrI   s   & r   .test_force_close_protocol_connection_lost_onceKProactorSocketTransportTests.test_force_close_protocol_connection_lost_once/  s    ""$66==> 	
tyy)DMM99DDEr   c                d   V P                  4       pV P                  V P                  P                  P                  4       VP                  4        VP                  4        \        P                  ! V P                  4       V P                  ^V P                  P                  P                  4       R# r   )r3   rE   r(   r   rG   r   r%   r7   r    r   r   rI   s   & r   (test_close_protocol_connection_lost_onceEProactorSocketTransportTests.test_close_protocol_connection_lost_once:  st    ""$66==> 	


tyy)DMM99DDEr   c                   V P                  4       pR .Vn        VP                  R4       \        P                  ! V P
                  4       V P                  P                  P                  R4       V P                  RVP                  4       R# rM   )
r3   r   ry   r%   r7   r    r(   r   r<   r   rI   s   & r   test_fatal_error_2/ProactorSocketTransportTests.test_fatal_error_2D  sc    ""$Y

tyy)%%88>rzz*r   c                   V P                  4       pVP                  R 4       V P                  V P                  P                  P
                  4       V P                  V P                  P                  P
                  4       R # r   )r3   _call_connection_lostra   r(   r   rG   r*   r   rI   s   & r   test_call_connection_lost6ProactorSocketTransportTests.test_call_connection_lostM  sT    ""$
  &55<<=		../r   c                   V P                  4       pV P                  VP                  4       4       VP                  4        V P                  P
                  P                  \        P                  4       VP                  4        V P                  V P                  P
                  P                  ^4       VP                  4        R# r   )r3   ra   can_write_eof	write_eofr*   r   r<   r)   SHUT_WRr   r   r   rI   s   & r   test_write_eof+ProactorSocketTransportTests.test_write_eofS  s|    ""$((*+
		--fnn=
++66:

r   c                   V P                  4       pV P                  P                  4       pW!P                  P                  P
                  n        VP                  R 4       VP                  4        V P                  VP                  4       V P                  V P                  P                  P                  4       VP                  P                  P
                  P                  V P                  R 4       VP!                  ^4       V P                  P#                  4        V P                  P                  P                  \$        P&                  4       VP)                  4        R# rM   )r3   r    r6   _loopr$   r   r   r   r   ra   _eof_writtenrE   r*   r   rG   r<   rO   	_run_oncer)   r   r   r-   r@   fs   &  r   test_write_eof_buffer2ProactorSocketTransportTests.test_write_eof_buffer\  s    ""$II##%/0,

(++223
22499gF	Q				--fnn=

r   c                   \        V P                  V P                  V P                  4      pV P	                  VP                  4       4       VP                  4        V P	                  VP                  4       4       V P                  P                  4        V P	                  V P                  P                  P                  4       VP                  4        R # r   )r   r    r*   r(   ra   r   r   r   r   r   rG   rI   s   & r   test_write_eof_write_pipe6ProactorSocketTransportTests.test_write_eof_write_pipej  s    (IItyy$--1((*+
(				../

r   c                2   \        V P                  V P                  V P                  4      pV P                  P	                  4       pW!P
                  P                  P                  n        VP                  R 4       VP                  4        V P                  VP                  4       4       V P                  V P                  P                  P                  4       VP
                  P                  P                  P!                  V P                  R 4       VP#                  ^4       V P                  P%                  4        V P                  P%                  4        V P                  V P                  P&                  P                  4       VP'                  4        R# rM   )r   r    r*   r(   r6   r   r$   r   r   r   r   ra   r   rE   r   rG   r<   rO   r   r   r   s   &  r    test_write_eof_buffer_write_pipe=ProactorSocketTransportTests.test_write_eof_buffer_write_pipet  s    (DIIt}}MII##%/0,

(++223
22499gF	Q						../

r   c                B   \        V P                  V P                  V P                  4      pV P	                  VP                  4       4       V P                  \        4      ;_uu_ 4        VP                  4        R R R 4       \        V4       R #   + '       g   i     L; ir   )
r   r    r*   r(   rE   r   r_   NotImplementedErrorr   r   rI   s   & r   test_write_eof_duplex_pipe7ProactorSocketTransportTests.test_write_eof_duplex_pipe  sg    )IItyy$--1))+,233LLN 4 43s   (BB	c                  a a S P                  4       p^ p. ROp\        \        V4      4      oVV 3R lpVS P                  P                  P
                  n        S P                  P                  4        S P                  VP                  4       S P                  VP                  4       4       VR,           FK  pS P                  P                  4        S P                  P                  P                  \        V4      4       KM  	  VP!                  4        VP!                  4        S P                  VP                  4       S P                  VP                  4       4       \#        ^
4       F  pS P                  P                  4        K  	  S P                  P                  P                  \        V^,          4      4       VP%                  4        VP%                  4        S P                  VP                  4       S P                  VP                  4       4       VR,           FK  pS P                  P                  4        S P                  P                  P                  \        V4      4       KM  	  VP!                  4        VP%                  4        \&        P(                  ! 4       S P                  n        S P                  P                  4        S P                  P*                  P-                  4        S P                  P                  P                  \        V^,          4      4       VP/                  4        S P                  VP                  4       4       R# )r   c                    <aaa SP                   P                  4       pSP                  4       oVP                  oVVV3R  lpW2n        VP	                  \        S4      4       V# )c                  .   < SS R \        S4      % S! 4       # r   )rP   )r   msgr9   s   r   monkeyYProactorSocketTransportTests.test_pause_resume_reading.<locals>.recv_into.<locals>.monkey  s    "%Yc#hxr   )r    r6   popr9   rO   rP   )r*   r   r   r   r   r9   reversed_msgsr-   s   &f  @@r   r;   IProactorSocketTransportTests.test_pause_resume_reading.<locals>.recv_into  sM    		'')A##%CXXF  HLLS"Hr   :N   N:r      NN)   data1   data2s   data3s   data4s   data5r   )r3   listreversedr    r$   r;   rh   r   rE   _pausedra   
is_readingr(   rF   r<   r=   pause_readingrangeresume_readingr   r"   call_exception_handlerr   r   )r-   r@   indexmsgsr;   r   ir   s   f      @r   test_pause_resume_reading6ProactorSocketTransportTests.test_pause_resume_reading  s=   ""$FXd^,	 5>		%%1		$(88CII!MM''::9S>J  	


#)rAII! ##66ya7IJ

$(99CII!MM''::9S>J  	
+/99;		(				((::<##66ya7IJ

)r   c                  a V P                  4       oV3R  lV P                  P                  n        \        P
                  ! V P                  4       V P                  SP                  4       4       V P                  P                  ^4       SP                  4        V P                  SP                  4       4       SP                  4        V P                  SP                  4       4       R# )c                 $   < SP                  4       # r   )r  )_r@   s   &r   <lambda>QProactorSocketTransportTests.test_pause_reading_connection_made.<locals>.<lambda>  s    b>N>N>Pr   N)r3   r(   r:   rh   r%   r7   r    rE   r  assert_no_readerr  ra   r   rI   s   &@r   "test_pause_reading_connection_made?ProactorSocketTransportTests.test_pause_reading_connection_made  s    ""$4P%%1tyy))		""1%
(

)r   c                F   V P                  4       pVP                  VR 7       V P                  VP                  4       ^ 4       V P	                  V P
                  P                  P                  4       V P	                  V P
                  P                  P                  4       V# )high)	r3   set_write_buffer_limitsr   get_write_buffer_sizerE   r(   pause_writingrG   resume_writing)r-   r  r@   s   && r   pause_writing_transport4ProactorSocketTransportTests.pause_writing_transport  s{    ""$
"""-113Q744;;<55<<=	r   c                N   V P                  ^R7      pV P                  P                  4       pW P                  P                  P                  n        VP                  R4       V P                  P                  4        V P                  V P                  P                  P                  4       VP                  R4       V P                  P                  4        V P                  VP                  4       ^ 4       V P                  V P                  P                  P                  4       R# )r   r  s
   large dataN)r  r    r6   r$   r   r   r   r   ra   r(   r  rG   rO   r   r  r  r-   r@   r?   s   &  r   test_pause_resume_writing6ProactorSocketTransportTests.test_pause_resume_writing  s    ))q)1 ii%%'03		  -
		33::; 	t		113Q744;;<r   c                   V P                  ^R7      pV P                  P                  4       pW P                  P                  P                  n        VP                  R4       V P                  P                  4        V P                  VP                  4       ^4       V P                  V P                  P                  P                  4       VP                  R4       V P                  P                  4        V P                  VP                  4       ^4       V P                  V P                  P                  P                  4       R# )r   r  s   123   abcNr  r    r6   r$   r   r   r   r   r   r  rE   r(   r  rG   ra   )r-   r@   fut1s   &  r   test_pause_writing_2write6ProactorSocketTransportTests.test_pause_writing_2write  s    ))q)1 yy&&(04		  -
		113Q744;;< 			113Q733::;r   c                   V P                  ^R7      pV P                  P                  4       pW P                  P                  P                  n        VP                  R4       V P                  P                  4        V P                  VP                  4       ^4       V P                  V P                  P                  P                  4       VP                  R4       V P                  P                  4        V P                  VP                  4       ^4       V P                  V P                  P                  P                  4       VP                  R4       V P                  P                  4        V P                  VP                  4       ^4       V P                  V P                  P                  P                  4       R# )r   r     1s   23r%  Nr&  r!  s   &  r   test_pause_writing_3write6ProactorSocketTransportTests.test_pause_writing_3write  s8   ))q)1 ii%%'03		  -
		113Q744;;< 			113Q744;;< 			113Q733::;r   c                   V P                  ^R7      pV P                  P                  4       pVP                  R4       W P                  P                  P
                  n        VP                  R4       V P                  P                  4        V P                  VP                  4       ^ 4       V P                  V P                  P                  P                  4       R# )r   r  Ns   very large data)r  r    r6   rO   r$   r   r   r   r   r   r  rE   r(   r  rG   r!  s   &  r   test_dont_pause_writing4ProactorSocketTransportTests.test_dont_pause_writing  s    ))q)1 ii%%'t03		  -
#$		113Q744;;<r   )r+   r    r#   r(   r*   r   )9__name__
__module____qualname____firstlineno__r   r3   rA   rJ   rZ   unittestskipIfsysflagsoptimizerc   rl   rq   ru   rz   r~   r   r   r   r   r   patchr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r"  r(  r,  r/  __static_attributes____classdictcell____classcell__r.   __classdict__s   @@r   r   r   !   sB    ![<T" __SYY'')TU) V)B10	0B:%
21 
ZZ01L 2L&)
?1???4 
ZZ,-0 .0+(
>	FF+05*n*= <"<.= =r   r   c                     a a ] tR tRt oV 3R ltRR l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 tR tR tR tR tR tR t]P                  ! R4      R 4       tRtVtV ;t# )ProactorDatagramTransportTestsi  c                  < \         SV `  4        V P                  4       V n        \        P
                  ! 4       V n        V P                  V P                  n        \        P                  ! \        P                  4      V n        \        P
                  ! \        P                  R 7      V n        ^V P                  P                  n        R# ))spec_setN)r   r   r   r    r   r"   r#   r$   r%   r&   r   DatagramProtocolr(   r)   r*   r   r   r,   s   &r   r   $ProactorDatagramTransportTests.setUp!  sw    &&(			"mm		"55g6N6NOIIv}}5	()		%r   c                    V'       d   R M\         V P                  P                  n        \	        V P
                  V P                  V P                  VR7      pV P                  \        V4       V# )Naddress)	r}   r*   getpeernamerh   r   r    r(   r!   r   )r-   rH  r   s   && r   datagram_transport1ProactorDatagramTransportTests.datagram_transport*  sO    4;D		).tyy$))/3}}7>@	 	3r   c                   R pV P                  4       pVP                  VR4       V P                  V P                  P                  P                  4       V P                  P                  P                  V P                  VRR7       R# rN   addrN0.0.0.0i  rJ  sendtora   r#   rG   r<   r*   r-   r   r   s   &  r   test_sendto*ProactorDatagramTransportTests.test_sendto2  sk    ++-	01,,334//IIt"3 	0 	5r   c                "   \        R 4      pV P                  4       pVP                  VR4       V P                  V P                  P                  P
                  4       V P                  P                  P                  V P                  R RR7       R# rM  )r=   rJ  rS  ra   r#   rG   r<   r*   rT  s   &  r   test_sendto_bytearray4ProactorDatagramTransportTests.test_sendto_bytearray:  sp    !++-	01,,334//IIw%6 	0 	8r   c                "   \        R 4      pV P                  4       pVP                  VR4       V P                  V P                  P                  P
                  4       V P                  P                  P                  V P                  R RR7       R# rM  )
memoryviewrJ  rS  ra   r#   rG   r<   r*   rT  s   &  r   test_sendto_memoryview5ProactorDatagramTransportTests.test_sendto_memoryviewB  sp    '"++-	01,,334//IIw%6 	0 	8r   c                   V P                  4       pVP                  R R4       V P                  V P                  P                  P                  4       V P                  P                  P                  V P                  R RR7       R# )r   rN  NrP  rR  r-   r   s   & r   test_sendto_no_data2ProactorDatagramTransportTests.test_sendto_no_dataJ  sf    ++-	/0,,334//IIs!2 	0 	4r   c                J   V P                  4       pVP                  P                  R4       \        4       Vn        VP                  RR4       V P                  V P                  P
                  P                  4       V P                  RR.\        VP                  4      4       R# )r   r  NrQ  i90  r   rc  r  rc  )rJ  r   appendobjectr   rS  rE   r#   rG   r   r  r_  s   & r   test_sendto_buffer1ProactorDatagramTransportTests.test_sendto_bufferQ  s    ++-	  !?@%x	#56--445++-""#	%r   c                   \        R 4      pV P                  4       pVP                  P                  R4       \	        4       Vn        VP                  VR4       V P                  V P                  P                  P                  4       V P                  RR.\        VP                  4      4       V P                  VP                  ^,          ^ ,          \        4       R# r  Nrc  rd  re  )r=   rJ  r   rf  rg  r   rS  rE   r#   rG   r   r  rS   rV   r-   data2r   s   &  r   test_sendto_buffer_bytearray;ProactorDatagramTransportTests.test_sendto_buffer_bytearray\  s    (#++-	  !?@%x	 23--445++-""#	% 	i//215u=r   c                   \        R 4      pV P                  4       pVP                  P                  R4       \	        4       Vn        VP                  VR4       V P                  V P                  P                  P                  4       V P                  RR.\        VP                  4      4       V P                  VP                  ^,          ^ ,          \        4       R# rk  )r[  rJ  r   rf  rg  r   rS  rE   r#   rG   r   r  rS   rV   rl  s   &  r   test_sendto_buffer_memoryview<ProactorDatagramTransportTests.test_sendto_buffer_memoryviewi  s    8$++-	  !?@%x	 23--445++-""#	% 	i//215u=r   c                   R pV P                  4       pVP                  P                  R4       \        4       Vn        VP                  VR4       V P                  V P                  P
                  P                  4       V P                  RR.\        VP                  4      4       V P                  VP                  ^,          ^ ,          \        4       R# )r   Nrc  rd  )r   rc  )rJ  r   rf  rg  r   rS  rE   r#   rG   r   r  rS   rV   rl  s   &  r   test_sendto_buffer_nodata8ProactorDatagramTransportTests.test_sendto_buffer_nodatav  s    ++-	  !?@%x	 23--445+&(""#	% 	i//215u=r   r   c                H   R p\        4       ;q0P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  VR4       V P                  VP                  P                  4       VP                  P                  VR4       ^Vn        RVn        VP                  V4       VP                  V4       VP                  V4       VP                  V4       VP                  V4       VP                  P                  R4       R# )rN   'Fatal write error on datagram transportz!socket.sendto() raised exception.Nr   )123)RuntimeErrorr#   rS  rh   rJ  r   r"   ri   ra   rG   r<   r   _addressr   )r-   r   r   rk   r   s   &&   r   test_sendto_exception4ProactorDatagramTransportTests.test_sendto_exception  s    1=?mm"".++-	!%	r"	..55611#&#L	N  !	%	(()LMr   c                B   R p\         V P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  VR4       V P                  VP                  ^ 4       V P                  VP                  P                  4       R# )rN   Nr   )ConnectionRefusedErrorr*   rS  rh   rJ  r   r"   ri   r   r   rE   rG   rT  s   &  r   test_sendto_error_received9ProactorDatagramTransportTests.test_sendto_error_received  su    '=		$++-	!%	r"--q1//667r   c                j   R p\         V P                  P                  n        V P	                  RR7      p\
        P                  ! 4       Vn        VP                  V4       V P                  VP                  P                  4       V P                  V P                  P                  P                  4       R# )rN   rG  NrQ  r   )r~  r#   r   rh   rJ  r   r"   ri   rS  rE   rG   ra   r(   error_receivedrT  s   &  r   $test_sendto_error_received_connectedCProactorDatagramTransportTests.test_sendto_error_received_connected  s~    )?&++N+C	!%	//66744;;<r   c                j    V P                  4       pV P                  \        VP                  R R4       R# )strNr   )rJ  r_   	TypeErrorrS  r_  s   & r   test_sendto_str.ProactorDatagramTransportTests.test_sendto_str  s*    ++-	)Y%5%5ubAr   c                n    V P                  RR7      pV P                  \        VP                  RR4       R# )rQ  rG  s   strNr  )rQ  r   )rJ  r_   
ValueErrorrS  r_  s   & r   test_sendto_connected_addr9ProactorDatagramTransportTests.test_sendto_connected_addr  s3    ++N+C		((&.	Br   c                    V P                  RR7      pVP                  4        V P                  VP                  ^4       VP	                  RR4       V P                  VP                  ^4       R# )r   rG  rN   N)r   )rJ  r   r   r   rS  r_  s   & r   test_sendto_closing2ProactorDatagramTransportTests.test_sendto_closing  s[    ++D+9	--q1$'--q1r   c                \   V P                  4       pR Vn        VP                  4        V P                  VP                  4       \
        P                  ! V P                  4       V P                  P                  P                  4        V P                  P                  P                  R4       R# ro   )rJ  rp   r   r8   r   r%   r7   r    r*   r   r<   r(   r   r_  s   & r   test__loop_writing_closing9ProactorDatagramTransportTests.test__loop_writing_closing  sv    ++-	!	!)../tyy)		**,%%88>r   c                0   \        4       ;qP                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  P                  R4       VP                  4        VP                  P                  VR4       R# )rN   rw  NrN   r   )ry  r#   rS  rh   rJ  r   r"   ri   r   rf  r   r<   )r-   rk   r   s   &  r   test__loop_writing_exception;ProactorDatagramTransportTests.test__loop_writing_exception  sp    1=?mm"".++-	!%	  /!11#&#L	Nr   c                8   \         V P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  P                  R4       VP                  4        V P                  VP                  P                  4       R# )rN   Nr  )r~  r#   rS  rh   rJ  r   r"   ri   r   rf  r   rE   rG   r_  s   & r   !test__loop_writing_error_received@ProactorDatagramTransportTests.test__loop_writing_error_received  sj    +A(++-	!%	  /!//667r   c                   \         V P                  P                  n        V P	                  RR7      p\
        P                  ! 4       Vn        VP                  P                  R4       VP                  4        V P                  VP                  P                  4       V P                  V P                  P                  P                  4       R# )rQ  rG  Nr  r  )r~  r#   r   rh   rJ  r   r"   ri   r   rf  r   rE   rG   ra   r(   r  r_  s   & r   ,test__loop_writing_error_received_connectionKProactorDatagramTransportTests.test__loop_writing_error_received_connection  s    )?&++N+C	!%	  /!//66744;;<r   z asyncio.base_events.logger.errorc                    V P                  RR7      p\        4       pVP                  V4       V P                  V P                  P
                  P                  4       VP                  4        R# )rQ  rG  Nr  )rJ  r~  ri   rE   r(   r  rG   r   )r-   m_excr   rk   s   &&  r   test_fatal_error_connected9ProactorDatagramTransportTests.test_fatal_error_connected  sU    ++N+C	$&s#55<<=!r   )r    r#   r(   r*   r   )r1  r2  r3  r4  r   rJ  rU  rX  r\  r`  rh  rn  rq  rt  r   r:  r{  r  r  r  r  r  r  r  r  r  r  r;  r<  r=  r>  s   @@r   rA  rA    s     *5884	%>>> 
ZZ01N 2N,
8
=BB
2?
N8	= 
ZZ23" 4" "r   rA  c                   R  a a ] tR tRt oV 3R l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 tR tR tR tR t]P2                  ! ]P6                  P8                  R4      R 4       tR tR tRt Vt!V ;t"# )BaseProactorEventLoopTestsi  c           	     x  < \         SV `  4        \        P                  ! 4       V n        \
        P                  ! 4       V n        \
        P                  ! 4       \
        P                  ! 4       uV n        V n	        \
        P                  ! R V P                  V P                  3R7      ;_uu_ 4        \
        P                  ! R4      ;_uu_ 4        \        V P                  4      V n        RRR4       RRR4       V P                  V P                  4       R#   + '       g   i     L5; i  + '       g   i     L@; i))asyncio.proactor_events.socket.socketpair)r   signal.set_wakeup_fdN)r   r   r%   mock_nonblocking_socketr*   r   r"   r#   ssockcsockr:  r   r    set_event_loopr,   s   &r   r    BaseProactorEventLoopTests.setUp  s    668			!%diik
DJZZC&*jj$**%=? ?2331$--@	 4? 	DII& 43? ?s$   /D)D	)D)D&!D))D9	r  c                   \         P                  ! 4       \         P                  ! 4       3;w  r#Vn        \         P                  ! R 4      ;_uu_ 4        \	        V P
                  4      pRRR4       V P                  XP                  V4       V P                  VP                  V4       V P                  VP                  ^4       VP                  4        R#   + '       g   i     Lv; i)r  N)r   r"   r   r:  r   r#   assertIs_ssock_csockr   _internal_fdsr   )r-   
socketpairr  r  r    s   &&   r   rA   $BaseProactorEventLoopTests.test_ctor  s     IIK2& 	&z.ZZ.//(7D 0dkk5)dkk5)++Q/

 0/s   CC&	c                   V P                   P                  4        V P                  V P                   P                  ^ 4       V P	                  V P
                  P                  P                  4       V P	                  V P                  P                  P                  4       V P                  V P                   P                  4       V P                  V P                   P                  4       RV P                   n        R# )r   TN)r    _close_self_piper   r  ra   r  r   rG   r  r8   r  r  _closedr-   s   &r   test_close_self_pipe/BaseProactorEventLoopTests.test_close_self_pipe  s    		""$00!4

((//0

((//0$))**+$))**+ !		r   c                b   \         P                  ! 4       V P                  n        V P                  P	                  4        V P                  V P                  P                  P                  4       V P                  V P                  P                  P                  4       V P                  V P                  P                  4       V P                  P                  P                  4        V P                  P	                  4        V P                  V P                  P                  P                  4       R # r   )r   r"   r    r  r   ra   rG   r#   r8   r$   r   rE   r  s   &r   r   %BaseProactorEventLoopTests.test_close  s    %)YY[		"				2299:++223$))--.		""--/		33::;r   c                    V P                   P                  V P                  \        P                  ! 4       4      pV P                  V\        4       \        V4       R # r   )r    _make_socket_transportr*   r   r'   rS   r   r   rI   s   & r   test_make_socket_transport5BaseProactorEventLoopTests.test_make_socket_transport&  s>    YY--dii9I9I9KLb":;r   c                4   V P                   P                  4        V P                  P                  P	                  V P
                  R 4       V P                  P                  P                  P                  P	                  V P                   P                  4       R# i   N)r    _loop_self_readingr#   recvr<   r  r   r   r  s   &r   test_loop_self_reading1BaseProactorEventLoopTests.test_loop_self_reading+  sa    		$$&--djj$?''99LLII((	*r   c                   \         P                  ! 4       pWP                  n        V P                  P	                  V4       V P                  VP                  P                  4       V P                  P                  P                  V P                  R 4       V P                  P                  P                  P                  P                  V P                  P                  4       R# r  )r   r"   r    _self_reading_futurer  ra   r9   rG   r#   r  r<   r  r   r   )r-   r?   s   & r   test_loop_self_reading_fut5BaseProactorEventLoopTests.test_loop_self_reading_fut1  s    iik),		&		$$S)

))*--djj$?''99LLII((	*r   c                &   \         P                  ! 4       V P                  n        \	        4       V P
                  P                  n        V P                  P                  4        V P                  V P                  P                  P                  4       R # r   )r   r"   r    r	  r}   r#   r  rh   r  ra   rG   r  s   &r    test_loop_self_reading_exception;BaseProactorEventLoopTests.test_loop_self_reading_exception:  sT    +/99;		()0&		$$&		88??@r   c                    V P                   P                  4        V P                  P                  P	                  R 4       R# )    N)r    _write_to_selfr  r   r<   r  s   &r   test_write_to_self-BaseProactorEventLoopTests.test_write_to_self@  s(    		  "

**51r   c                <    V P                   P                  . 4       R # r   )r    _process_eventsr  s   &r   test_process_events.BaseProactorEventLoopTests.test_process_eventsD  s    		!!"%r   r   c                   \         P                  ! 4       p\         P                  ! 4       ;q0P                  n        V P                  P	                  W P
                  4       V P                  VP                  4       VP                  ^ ,          ^ ,          pV! 4        V P                  P                  P                  V P
                  4       \         P                  ! 4       p\         P                  ! 4       \         P                  ! 4       3VP                  n        \         P                  ! 4       ;q`P                  n        V! V4       V P                  VP                  P                  4       V P                  VP                  4       \        4       VP                  n        V! V4       V P                  V P
                  P"                  P                  4       V P                  VP$                  P                  4       R# r^   )r   r"   r    	call_soon_start_servingr*   ra   rG   rT   r#   acceptr<   r9   r   r  r}   rh   r   r   )r-   r   pfr  r    r?   make_trs   &&     r   test_create_server-BaseProactorEventLoopTests.test_create_serverG  s5   YY[*.))+5	II'		  YY/	(() ""1%a(//		: iik#'99;		"<

59YY[@))2S	

))*' ")

S			../**+r   c                   \         P                  ! 4       p\         P                  ! 4       ;q P                  n        V P                  P	                  WP
                  4       VP                  ^ ,          ^ ,          pV P                  P                  4       pVP                  4        V! V4       V P                  V P
                  P                  P                  4       R# r^   )r   r"   r    r  r  r*   rT   r6   r   ra   r   rG   )r-   r  r  r    r?   s   &    r   test_create_server_cancel4BaseProactorEventLoopTests.test_create_server_cancelc  s    YY[*.))+5	II'		  YY/""1%a( ii%%'

S			../r   c                   \         P                  ! 4       p\         P                  ! 4       p\         P                  ! 4       p\         P                  ! 4       pVP                  4       VVP                  4       V/V P                  n        V P                  P                  V4       V P                  VP                  P                  4       V P                  VP                  P                  4       V P                  P
                  P                  V4       V P                  VP                  P                  4       V P                  VP                  P                  4       R # r   )r   r"   r   r    _accept_futures_stop_servingra   r   rG   r   r#   r<   rE   )r-   sock1future1sock2future2s   &    r   test_stop_serving,BaseProactorEventLoopTests.test_stop_servingp  s    		))+		))+LLNGLLNG%
		!
 			&**+--.##66u=++,../r   c                    \         P                  ! \        P                  4      V n        V P
                  P                  V P                  V P                  4      # r   )r%   r&   r   rD  r(   r    _make_datagram_transportr*   r  s   &r   rJ  -BaseProactorEventLoopTests.datagram_transport  s9    "55g6N6NOyy11$))T]]KKr   c                    V P                  4       pV P                  V\        4       V P                  V\        P                  4       \        V4       R # r   )rJ  rS   r   r   DatagramTransportr   rI   s   & r   test_make_datagram_transport7BaseProactorEventLoopTests.test_make_datagram_transport  s?    $$&b"<=b'";";<r   c                   V P                  4       pVP                  P                  R4       VP                  4        V P                  P
                  P                  P                  V P                  R RR7       V P                  P
                  P                  P                  P                  P                  VP                  4       \        V4       R# )rN   rN  N	127.0.0.1i$/  rN   r  )rJ  r   
appendleftr   r    r$   rS  r<   r*   r   r   r   rI   s   & r   test_datagram_loop_writing5BaseProactorEventLoopTests.test_datagram_loop_writing  s    $$&


=>
		""55diiOc5d		""//AAr//0r   c                   V P                  4       pVP                  4        V P                  P                  P                  P                  V P                  R4       V P                  V P                  P                  P                  4       V P                  V P                  P                  P                  4       \        V4       R# )   N   )rJ  rD   r    r$   recvfromr<   r*   rE   r(   datagram_receivedrG   r  r   rI   s   & r   test_datagram_loop_reading5BaseProactorEventLoopTests.test_datagram_loop_reading  s    $$&
		$$77		:N88??@55<<=r   c                   V P                   P                  4       pVP                  R4       V P                  4       pWn        VP                  V4       V P                   P                  P                  P                  V P                  R4       V P                  P                  P                  R R4       \        V4       R# )rN   Nr  r  r  )r    r6   rO   rJ  rQ   rD   r$   r  r<   r*   r(   r  r   rb   s   &  r   test_datagram_loop_reading_data:BaseProactorEventLoopTests.test_datagram_loop_reading_data  s    ii%%'67$$&
		$$77		:N''::7DXYr   r\   c                P   V P                   P                  4       pVP                  R4       V P                  4       pV P	                  \
        VP                  V4       \        P                  ! 4       Vn	        Wn
        VP                  V4       V P                  V P                   P                  P                  P                  4       V P                  V P                   P"                  P                  4       V P                  VP                  P                  4       \%        V4       R# )r   N)r   r  )r    r6   rO   rJ  r_   r`   rD   r   r"   r   rQ   ra   r$   r  rG   rE   r(   r  r   rb   s   &  r   "test_datagram_loop_reading_no_data=BaseProactorEventLoopTests.test_datagram_loop_reading_no_data  s    ii%%'23$$&."*:*:C@99;
		++44;;<55<<=)r   c                ~   \        4       ;qP                  P                  P                  n        V P                  4       p\        P                  ! 4       Vn        \        P                  ! 4       VP                  n
        VP                  4        VP                  P                  P                  V4       \        V4       R # r   )rg   r    r$   r  rh   rJ  r   r"   ri   	_protocolr  rD   r<   r   rj   s   &  r   "test_datagram_loop_reading_aborted=BaseProactorEventLoopTests.test_datagram_loop_reading_aborted  sy    9O9QQii!!**6$$&))+&*iik#

##66s;r   c                   \        4       ;qP                  P                  P                  n        V P                  4       p\        P                  ! 4       Vn        \        P                  ! 4       VP                  n
        VP                  P                  R4       VP                  4        VP                  P                  P                  V4       \        V4       R# )   HelloN)r
  r  )rg   r    r$   rS  rh   rJ  r   r"   ri   r  r  r   r  r   r<   r   rj   s   &  r   "test_datagram_loop_writing_aborted=BaseProactorEventLoopTests.test_datagram_loop_writing_aborted  s    7M7OOii!!((4$$&))+&*iik#


>?

##66s;r   )r  r    r#   r(   r*   r  )#r1  r2  r3  r4  r   r   r:  rA   r  r   r  r  r  r  r  r  r  r  r  rJ  r  r  r  r   r5  r6  r7  r8  r9  r  r  r  r;  r<  r=  r>  s   @@r   r  r    s     ' 
ZZ;< =	!	<
**A2& 
ZZ,-, .,600"L	 __SYY'')TU V	 	r   r  win32z%Proactor is supported on Windows onlyc                      a a ] tR tRt oRR,          t ! R R]P                  4      t]V 3R l4       t	]V 3R l4       t
V 3R ltRR ltR	 tR
 tR tR tR tR tRtVtV ;t# )&ProactorEventLoopUnixSockSendfileTestsi     c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	.ProactorEventLoopUnixSockSendfileTests.MyProtoi  c                x    R V n         R V n        \        4       V n        VP	                  4       V n        RV n        R# rt   )startedclosedr=   r   r6   r?   r   )r-   r    s   &&r   __init__7ProactorEventLoopUnixSockSendfileTests.MyProto.__init__  s0     DLDK!DI))+DH!DNr   c                     R V n         Wn        R# ro   )r  r   r_  s   &&r   r:   >ProactorEventLoopUnixSockSendfileTests.MyProto.connection_made  s    DL&Nr   c                <    V P                   P                  V4       R # r   )r   extend)r-   r   s   &&r   rF   <ProactorEventLoopUnixSockSendfileTests.MyProto.data_received  s    IIT"r   c                J    R V n         V P                  P                  R4       R# ro   )r  r?   rO   )r-   excs   &&r   r   >ProactorEventLoopUnixSockSendfileTests.MyProto.connection_lost  s    DKHH%r   c                :   "   V P                   G R j  xL
  R #  L5ir   )r?   r  s   &r   wait_closed:ProactorEventLoopUnixSockSendfileTests.MyProto.wait_closed  s     ((NNs   )r  r   r?   r  r   N)r1  r2  r3  r4  r  r:   rF   r   r!  r;  r<  )r?  s   @r   MyProtor    s#     	"	'	#	&	 	r   r#  c                   < \        \        P                  R 4      ;_uu_ 4       pVP                  V P                  4       RRR4       \
        SV `  4        R#   + '       g   i     L ; i)wbN)openr	   TESTFNr   DATAr   
setUpClass)clsfpr.   s   & r   r)  1ProactorEventLoopUnixSockSendfileTests.setUpClass  sA    )""D))RHHSXX * *)s   AA(	c                l   < \         P                  ! \         P                  4       \        SV `  4        R # r   )r	   unlinkr'  r   tearDownClass)r*  r.   s   &r   r/  4ProactorEventLoopUnixSockSendfileTests.tearDownClass  s"    ))*r   c                `  < \         P                  ! 4       V n        V P                  V P                  4       V P	                  V P                  P
                  4       \        \        P                  R 4      V n	        V P	                  V P                  P
                  4       \        SV `-  4        R# )rbN)r   ProactorEventLoopr    r  r!   r   r&  r	   r'  filer   r   r,   s   &r   r   ,ProactorEventLoopUnixSockSendfileTests.setUp  sj    --/	DII&		())40			(r   c                   \         P                   ! \         P                  \         P                  4      pVP                  V4       VP	                  \         P
                  \         P                  R 4       VP	                  \         P
                  \         P                  R 4       V'       d   V P                  VP                  4       V# )r  )
r)   AF_INETSOCK_STREAMsetblocking
setsockopt
SOL_SOCKET	SO_SNDBUF	SO_RCVBUFr!   r   )r-   cleanupblockingr*   s   &&& r   make_socket2ProactorEventLoopUnixSockSendfileTests.make_socket  sz    }}V^^V-?-?@"))6+;+;TB))6+;+;TBOODJJ'r   c                8    V P                   P                  V4      # r   )r    run_until_complete)r-   coros   &&r   run_loop/ProactorEventLoopUnixSockSendfileTests.run_loop  s    yy++D11r   c                  a aa S P                  4       pS P                  S P                  4      o\        P                  ! 4       pS P                  R R7      pVP                  RV34       S P                  S P                  P                  V3R lVR7      4      oS P                  S P                  P                  WP                  4       4      4       VV V3R lpS P                  V4       VS3# )F)r>  r  c                     < S # r   r   )protos   r   r  @ProactorEventLoopUnixSockSendfileTests.prepare.<locals>.<lambda>  s    Er   )r*   c                     < S P                   e:   S P                   P                  4        SP                  S P                  4       4       SP                  4        SP                  SP                  4       4       R # r   )r   r   rE  r!  )rI  r-   servers   r   r>  ?ProactorEventLoopUnixSockSendfileTests.prepare.<locals>.cleanup  sR    * %%'e//12LLNMM&,,./r   )r@  r#  r    r
   find_unused_portbindrE  create_serversock_connectgetsocknamer!   )r-   r*   portsrv_sockr>  rI  rL  s   f    @@r   prepare.ProactorEventLoopUnixSockSendfileTests.prepare	  s    !TYY'--/##E#2{D)*tyy66  7  * +dii,,T3G3G3IJK	0 	 U{r   c           
     r   V P                  4       w  r\        4       pV P                  \        P                  R 4      ;_uu_ 4        V P                  V P                  P                  W^ R4      4       RRR4       V P                  V P                  P                  4       ^ 4       R#   + '       g   i     L<; inot a regular fileN)rU  rg  assertRaisesRegexr   SendfileNotAvailableErrorrE  r    _sock_sendfile_nativer   r4  tellr-   r*   rI  r   s   &   r   test_sock_sendfile_not_a_fileDProactorEventLoopUnixSockSendfileTests.test_sock_sendfile_not_a_file!  s    llnH##G$E$E$8: :MM$))99$:;TC D: 	)1-	: :s   -B&&B6	c           
        V P                  4       w  r\        P                  ! 4       pV P                  \        P
                  R 4      ;_uu_ 4        V P                  V P                  P                  W^ R4      4       RRR4       V P                  V P                  P                  4       ^ 4       R#   + '       g   i     L<; irX  )rU  ioBytesIOrZ  r   r[  rE  r    r\  r   r4  r]  r^  s   &   r   test_sock_sendfile_iobufferBProactorEventLoopUnixSockSendfileTests.test_sock_sendfile_iobuffer*  s    llnJJL##G$E$E$8: :MM$))99$:;TC D: 	)1-	: :s   -B11C	c           
        V P                  4       w  r\        P                  ! 4       pRVP                  n        V P                  \        P                  R4      ;_uu_ 4        V P                  V P                  P                  W^ R4      4       RRR4       V P                  V P                  P                  4       ^ 4       R#   + '       g   i     L<; i)r   rY  Nr   )rU  r   r"   r   r   rZ  r   r[  rE  r    r\  r   r4  r]  r^  s   &   r   #test_sock_sendfile_not_regular_fileJProactorEventLoopUnixSockSendfileTests.test_sock_sendfile_not_regular_file3  s    llnIIK "##G$E$E$8: :MM$))99$:;TC D: 	)1-	: :s   !-CC	c                >   V P                   P                  R 4       V P                  R R7      pV P                  \        R4      ;_uu_ 4        V P                  V P                   P                  WP                  4      4       RRR4       R#   + '       g   i     R# ; i)T)r?  zmust be non-blockingN)r    	set_debugr@  rZ  r  rE  sock_sendfiler4  )r-   r*   s   & r   test_blocking_socket;ProactorEventLoopUnixSockSendfileTests.test_blocking_socket=  sj    		D!.##J0FGGMM$))11$		BC HGGGs   5BB	)r4  r    s   12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde)TF)r1  r2  r3  r4  r(  r   r'   r#  classmethodr)  r/  r   r@  rE  rU  r_  rd  rg  rl  r;  r<  r=  r>  s   @@r   r  r    sz      $D'"" .  
    20...D Dr   r  __main__)rb  r)   r5  r7  r   r   asyncio.proactor_eventsr   r   r   r   r   test.supportr	   r
   test.test_asyncior   r%   r   r   TestCaser   rA  r  r6  platformr  r1  mainr   r   r   <module>rv     s    
   
   9 < ? @ > " & 10{=:#6#6 {=|S"Z%8%8 S"lV!4!4 Vr 
(8:qDZ-@-@ qD:qDf zMMO r   