a ze,@sddlZddlZddlmZddlmZed ZddlZddl Z ddl Z e ddZ Gdddej ZGd d d ej ZGd d d eZGd ddeZddZedkredS)N)support) socket_helpernetworkcCsJt|,t||tjtjddWdS1s<0YdS)Nr)rtransient_internetsocket getaddrinfoAF_INET SOCK_STREAM)hostportr E/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_timeout.pyresolve_addresss  rc@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)CreationTestCasecCsttjtj|_dSN)rr r sockselfr r rsetUpszCreationTestCase.setUpcCs|jdSrrcloserr r rtearDown"szCreationTestCase.tearDowncCs||jdddS)Nztimeout not disabled by default) assertEqualr gettimeoutrr r rtestObjectCreation%sz#CreationTestCase.testObjectCreationcCs^|jd||jd|jd||jd|jd||jddS)NgzGa@)r settimeoutrrrr r rtestFloatReturnValue*s    z%CreationTestCase.testFloatReturnValuecCsP|jd|t|jtd|jd|t|jtddS)N?g333333@)rrrtyperrr r rtestReturnType5s  zCreationTestCase.testReturnTypecCs|jd|jd|jd|jd|t|jjd|t|jjd|t|jjd|t|jjg|t|jji|t|jjddS)Nrr y)rr assertRaises TypeErrorrr r r testTypeCheck=s    zCreationTestCase.testTypeCheckcCs:|t|jjd|t|jjd|t|jjddS)Ng)r% ValueErrorrrrr r rtestRangeCheckJszCreationTestCase.testRangeCheckcCs|jd|jd||jd|jd||jd|jd|jd||jd|jd||jddS)N TFr#)rr setblockingrrrr r rtestTimeoutThenBlockingPs      z(CreationTestCase.testTimeoutThenBlockingcCsX|jd|jd||jd|jd|jd||jddS)NFrT)rr,rrrrr r rtestBlockingThenTimeout^s     z(CreationTestCase.testBlockingThenTimeoutN) __name__ __module__ __qualname__rrrrr"r'r*r-r.r r r rrs  rc@s*eZdZdZejZddZeZddZ dS)TimeoutTestCaseg@cCs tdSr)NotImplementedErrorrr r rrtszTimeoutTestCase.setUpc Gs|j|t|j|}t|D]Z}t}z ||Wq tjyx}z&t|}WYd}~qWYd}~q d}~00q |d| |||j | ||ddS)Nzsocket.timeout was not raisedr ) rrgetattrrangetime monotonicrtimeoutZfailZ assertLessfuzzZ assertGreater) rcountr8methodargsit1eZdeltar r r_sock_operationys     & zTimeoutTestCase._sock_operationN) r/r0r1r9rZHOST localhostrrr@r r r rr2is r2c@sXeZdZddZddZeddddZd d Zd d Z d dZ ddZ ddZ dS)TCPTimeoutTestCasecCs"ttjtj|_tdd|_dS)Nzwww.python.org.P)rr r rr addr_remoterr r rrszTCPTimeoutTestCase.setUpcCs|jdSrrrr r rrszTCPTimeoutTestCase.tearDownTz*need to replace these hosts; see bpo-35518c Cs$tdd}tdd}d}ttjtj}tj}||zdz||WnFtjy\Yn4t y}z|j t j krzd}WYd}~n d}~00W| ~n | ~0|r| d|d|d ||d|d ||_t|jd"|d d d |jWdn1s0YdS) Nzblackhole.snakebite.netiZzwhitehole.snakebite.neti[TFzWe 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).rrgMbP?connect)rrr r rZLOOPBACK_TIMEOUTrrEr8OSErrorerrnoZ ECONNREFUSEDrZskipTestformatrDrrr@)rZ blackholeZ whiteholeskiprr8errr r rtestConnectTimeouts<   z%TCPTimeoutTestCase.testConnectTimeoutcCsRt|jd.|j|j|ddddWdn1sD0YdS)Nrr?recv)rrrDrrEr@rr r rtestRecvTimeoutsz"TCPTimeoutTestCase.testRecvTimeoutcCs,t|j|j|j|ddddS)NrrLaccept)r bind_portrrAlistenr@rr r rtestAcceptTimeouts z$TCPTimeoutTestCase.testAcceptTimeoutcCsnttjtjJ}t||j||j| | dddddWdn1s`0YdS)NdrLsendX@  rr r rrQrArRrrE getsocknamer@rZservr r rtestSends zTCPTimeoutTestCase.testSendc CstttjtjP}t||j||j| | ddddd| Wdn1sf0YdS)NrTrLsendtorVrWrXrZr r r testSendtoszTCPTimeoutTestCase.testSendtocCsnttjtjJ}t||j||j| | dddddWdn1s`0YdS)NrTrLsendallrVrWrXrZr r r testSendall s zTCPTimeoutTestCase.testSendallN) r/r0r1rrunittestZskipIfrKrOrSr[r]r_r r r rrBs  Q  rBc@s$eZdZddZddZddZdS)UDPTimeoutTestCasecCsttjtj|_dSr)rr SOCK_DGRAMrrr r rrszUDPTimeoutTestCase.setUpcCs|jdSrrrr r rrszUDPTimeoutTestCase.tearDowncCs$t|j|j|dddddS)NrrLrecvfromrN)rrQrrAr@rr r rtestRecvfromTimeoutsz&UDPTimeoutTestCase.testRecvfromTimeoutN)r/r0r1rrrdr r r rrasracCstddS)Nr)rZrequiresr r r r setUpModule%sre__main__) functoolsr`testrZ test.supportrZis_resource_enabledZ skip_expectedr6rGr lru_cacherZTestCaserr2rBrarer/mainr r r rs"    M'