+
    Bi*                     2   R t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIt^ RIt^ RI	t	]P                  ! 4       R 4       t ! R R]P                  4      t ! R R]P                  4      t ! R	 R
]4      t ! R R]4      tR t]R8X  d   ]P&                  ! 4        R# R# )z&Unit tests for socket timeout feature.N)support)socket_helperc                    \         P                  ! V 4      ;_uu_ 4        \        P                  ! W\        P                  \        P
                  4      ^ ,          ^,          uuRRR4       #   + '       g   i     R# ; i)zResolve an (host, port) to an address.

We must perform name resolution before timeout tests, otherwise it will be
performed by connect().
N)r   transient_internetsocketgetaddrinfoAF_INETSOCK_STREAM)hostports   &&(/usr/lib/python3.14/test/test_timeout.pyresolve_addressr      sS     
	)	)$	/	/!!$fnn"("4"466799:< 
0	/	/	/s   AA,,A=	c                   T   a  ] tR t^t o RtR tR tR tR tR t	R t
R tR	 tR
tV tR# )CreationTestCasez9Test case for socket.gettimeout() and socket.settimeout()c                    V P                  \        P                  ! \        P                  \        P                  4      4      V n        R # N)enterContextr   r   r	   sockselfs   &r   setUpCreationTestCase.setUp   s,    %%MM&..&*<*<=?	    c                \    V P                  V P                  P                  4       R R4       R # )Nztimeout not disabled by default)assertEqualr   
gettimeoutr   s   &r   testObjectCreation#CreationTestCase.testObjectCreation    s$    --/:	<r   c                   V P                   P                  R 4       V P                  V P                   P                  4       R 4       V P                   P                  ^4       V P                  V P                   P                  4       ^4       V P                   P                  R4       V P                  V P                   P                  4       R4       R# )gzGa@N)r   
settimeoutr   r   r   s   &r   testFloatReturnValue%CreationTestCase.testFloatReturnValue%   s    		U#--/7		Q--/3		T"--/6r   c                N   V P                   P                  ^4       V P                  \        V P                   P	                  4       4      \
        4       V P                   P                  R4       V P                  \        V P                   P	                  4       4      \
        4       R# )   g333333@N)r   r   assertIstyper   floatr   s   &r   testReturnTypeCreationTestCase.testReturnType0   sf    		Qd499//12E:		S!d499//12E:r   c                   V P                   P                  ^ 4       V P                   P                  ^ 4       V P                   P                  R4       V P                   P                  R4       V P                  \        V P                   P                  R4       V P                  \        V P                   P                  R4       V P                  \        V P                   P                  R4       V P                  \        V P                   P                  . 4       V P                  \        V P                   P                  / 4       V P                  \        V P                   P                  R4       R# )            N y                 )r   r   assertRaises	TypeErrorr   s   &r   testTypeCheckCreationTestCase.testTypeCheck8   s    		Q		Q		S!		T")TYY%9%92>)TYY%9%92>)TYY%9%92>)TYY%9%92>)TYY%9%92>)TYY%9%92>r   c                   V P                  \        V P                  P                  R4       V P                  \        V P                  P                  R4       V P                  \        V P                  P                  R4       R# )r#   Ng      )r.   
ValueErrorr   r   r   s   &r   testRangeCheckCreationTestCase.testRangeCheckE   sV    *dii&:&:B?*dii&:&:B?*dii&:&:DAr   c                   V P                   P                  ^
4       V P                   P                  R4       V P                  V P                   P	                  4       R4       V P                   P                  R4       V P                  V P                   P	                  4       R4       V P                   P                  ^
4       V P                   P                  R4       V P                  V P                   P	                  4       R4       V P                   P                  R4       V P                  V P                   P	                  4       R4       R# )
   TNFr+   )r   r   setblockingr   r   r   s   &r   testTimeoutThenBlocking(CreationTestCase.testTimeoutThenBlockingK   s    		R 		d#--/6		e$--/5		R 		e$--/5		d#--/6r   c                   V P                   P                  R 4       V P                   P                  ^4       V P                  V P                   P	                  4       ^4       V P                   P                  R4       V P                   P                  ^4       V P                  V P                   P	                  4       ^4       R# )FTN)r   r9   r   r   r   r   s   &r   testBlockingThenTimeout(CreationTestCase.testBlockingThenTimeoutY   s    		e$		Q--/3		d#		Q--/3r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   r    r'   r0   r5   r:   r=   __static_attributes____classdictcell____classdict__s   @r   r   r      s6     C?<
	7;?B74 4r   r   c                   H   a  ] tR t^dt o Rt]P                  tR tR t	Rt
V tR# )TimeoutTestCaseg       @c                    \        4       hr   )NotImplementedErrorr   s   &r   r   TimeoutTestCase.setUpo   s    !##r   c                   V P                   P                  V4       \        V P                   V4      p\        V4       F  p\        P
                  ! 4       p V! V!   K!  	  V P                  R4       V P                  XW P                  ,           4       V P                  WR,
          4       R#   \         d)   p\        P
                  ! 4       T,
          p Rp? Kj  Rp?ii ; i)z
Test the specified socket method.

The method is run at most `count` times and must raise a TimeoutError
within `timeout` + self.fuzz seconds.
NzTimeoutError was not raisedg      ?)r   r   getattrrangetime	monotonicTimeoutErrorfail
assertLessfuzzassertGreater)	r   counttimeoutmethodargsit1edeltas	   &&&&*    r   _sock_operationTimeoutTestCase._sock_operationr   s     			W%F+uA!B  II34w235C-0   (2-s   B--C 8CC r-   N)r@   rA   rB   rC   rV   r   HOST	localhostr   r`   rE   rF   rG   s   @r   rJ   rJ   d   s&      D""I$1 1r   rJ   c                   N   a  ] tR t^t o RtR tR tR tR tR t	R t
R tR	tV tR
# )TCPTimeoutTestCasez3TCP test case for socket.socket() timeout functionsc                    V P                  \        P                  ! \        P                  \        P                  4      4      V n        \        R ^P4      V n        R# )zwww.python.org.N)r   r   r   r	   r   r   addr_remoter   s   &r   r   TCPTimeoutTestCase.setUp   s<    %%MM&..&*<*<=?	*+<bAr   c           
     H   \        R R4      p\        R R4      pRp\        P                  ! \        P                  \        P                  4      ;_uu_ 4       p \        P
                  pVP                  V4       VP                  V4       RRR4       V'       dA   V P                  RP                  V^ ,          V^,          XV^ ,          V^,          4      4       Wn        \        P                   ! V P                  ^ ,          4      ;_uu_ 4        V P#                  ^RRV P                  4       RRR4       R#   \         d     L\         d,   pTP                  \        P                  8X  d   Rp Rp?LRp?ii ; i  + '       g   i     L; i  + '       g   i     R# ; i)	zpythontest.netiZ  i[  TFNzWe didn't receive a connection reset (RST) packet from {}:{} within {} seconds, so we're unable to test connect timeout against the corresponding {}:{} (which is configured to silently drop packets).gMbP?connect)r   r   r   r	   r   LOOPBACK_TIMEOUTr   rj   rS   OSErrorerrnoECONNREFUSEDskipTestformatrg   r   r   r`   )r   	blackhole	whiteholeskipr   rY   errs   &      r   testConnectTimeout%TCPTimeoutTestCase.testConnectTimeout   sD   
 $$4e<	 $$4e<	0 ]]6>>6+=+=>>$!!22(i)	 ? MM8 V!!!!!!!! %--d.>.>q.ABB  E9d6F6FG CB/    !99 2 22 D! ?>8 CBBsN   E=2D8F8E:E=E:E:!E50E=5E::E==F	F!	c                   \         P                  ! V P                  ^ ,          4      ;_uu_ 4        V P                  P	                  V P                  4       V P                  ^RRR4       RRR4       R#   + '       g   i     R# ; i)r*         ?recv   N)r   r   rg   r   rj   r`   r   s   &r   testRecvTimeout"TCPTimeoutTestCase.testRecvTimeout   sZ    --d.>.>q.ABBIId../  C6 CBBBs   :A44B	c                    \         P                  ! V P                  V P                  4       V P                  P	                  4        V P                  ^RR4       R# )r#   rx   acceptN)r   	bind_portr   rc   listenr`   r   s   &r   testAcceptTimeout$TCPTimeoutTestCase.testAcceptTimeout   s<    		4>>:		QX.r   c           	        \         P                   ! \         P                  \         P                  4      ;_uu_ 4       p\        P                  ! WP
                  4       VP                  4        V P                  P                  VP                  4       4       V P                  ^dRRRR,          4       RRR4       R#   + '       g   i     R# ; i)d   rx   send   X@ Nr   r   r	   r   r   rc   r   r   rj   getsocknamer`   r   servs   & r   testSendTCPTimeoutTestCase.testSend   s|    ]]6>>6+=+=>>$##D..9KKMIId..01  c64&=A ?>>>   A5B;;C	c           
        \         P                   ! \         P                  \         P                  4      ;_uu_ 4       p\        P                  ! WP
                  4       VP                  4        V P                  P                  VP                  4       4       V P                  ^dRRRR,          VP                  4       4       RRR4       R#   + '       g   i     R# ; i)r   rx   sendtor   r   Nr   r   s   & r   
testSendtoTCPTimeoutTestCase.testSendto   s    ]]6>>6+=+=>>$##D..9KKMIId..01  c8TF]!%!1!1!35 ?>>>s   BC

C	c           	        \         P                   ! \         P                  \         P                  4      ;_uu_ 4       p\        P                  ! WP
                  4       VP                  4        V P                  P                  VP                  4       4       V P                  ^dRRRR,          4       RRR4       R#   + '       g   i     R# ; i)r   rx   sendallr   r   Nr   r   s   & r   testSendallTCPTimeoutTestCase.testSendall   s|    ]]6>>6+=+=>>$##D..9KKMIId..01  c9dVmD ?>>>r   )rg   r   N)r@   rA   rB   rC   rD   r   ru   r{   r   r   r   r   rE   rF   rG   s   @r   re   re      s7     =B
GHR7/B5E Er   re   c                   0   a  ] tR tRt o RtR tR tRtV tR# )UDPTimeoutTestCasei  z3UDP test case for socket.socket() timeout functionsc                    V P                  \        P                  ! \        P                  \        P                  4      4      V n        R # r   )r   r   r   
SOCK_DGRAMr   r   s   &r   r   UDPTimeoutTestCase.setUp  s,    %%MM&..&*;*;<>	r   c                    \         P                  ! V P                  V P                  4       V P	                  ^RRR4       R# )r#   rx   recvfromrz   N)r   r   r   rc   r`   r   s   &r   testRecvfromTimeout&UDPTimeoutTestCase.testRecvfromTimeout
  s0     			4>>:QZ6r   r?   N)	r@   rA   rB   rC   rD   r   r   rE   rF   rG   s   @r   r   r     s     =>7 7r   r   c                  `    \         P                  ! R 4       \         P                  ! RR7       R# )networkT)moduleN)r   requiresrequires_working_socketr-   r   r   setUpModuler     s    Y##40r   __main__)rD   	functoolsunittesttestr   test.supportr   rQ   rm   r   	lru_cacher   TestCaser   rJ   re   r   r   r@   mainr-   r   r   <module>r      s    ,    &    < <H4x(( H4V"1h'' "1JwE wEt7 71
 zMMO r   