
    2hh,                        S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r
  S SKJr  S r " S S\R                  5      r " S S	\\R                   5      r " S
 S\R$                  5      r " S S\R$                  5      r\R*                  " \" \ S5      S5       " S S\\R                   5      5       r\S:X  a  \R2                  " 5         gg)    N)socket_helper)utils)
functionalc                  0    [         R                  " S 5        g N)asyncioset_event_loop_policy     F/opt/python-3.13.8/usr/lib/python3.13/test/test_asyncio/test_server.pytearDownModuler      s    !!$'r   c                        \ rS rSrS rS rSrg)BaseStartServer   c                     [         er   )NotImplementedErrorselfs    r   new_loopBaseStartServer.new_loop   s    !!r   c           	        ^^^^^ SS-  S-   mUU4S jmU4S jnS nU R                   R                  [        R                  " U[        R
                  SSS	95      mU R                  TR                  5       5        U R                   R                  U" T5      5      mTR                  S   R                  5       mU R                  [        R                  5         U R                  UU4S
 j5         U R                   R                  T5        S S S 5        S S S 5        U R                  TR                  S5        U R                  TR                   5        U R                  TR"                  5        U R                  TR                  5       5        U R%                  [&        S5         U R                   R                  TR)                  5       5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N   1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111      
c                 8  > [        S5       H0  n[        R                  " S5        TR                  5       (       d  M0    O   [        eU R                  S5        U R                  U5        U R                  T5        U R                  S5        U R                  5         g )N
   g?      )
rangetimesleep
is_servingRuntimeError
settimeoutconnectsendrecv_allclose)sockaddri	HELLO_MSGsrvs      r   client3BaseStartServer.test_start_server_1.<locals>.client   sm    2Y

3>>## 
 #"OOALLIIi MM!JJLr   c                    >#    U R                  5       I S h  vN   TR                  5         UR                  S5        UR                  5         UR	                  5       I S h  vN   g  NN N7fN   1readlinecancelwriter(   wait_closedreaderwriter	main_tasks     r   serve2BaseStartServer.test_start_server_1.<locals>.serve'   S     //###LLLLN$$&&&	 $ '"   A*A&AA* A(!A*(A*c                    #    U  IS h  vN   U R                  5       I S h  vN   S S S 5      IS h  vN   g  N- N N	! , IS h  vN  (       d  f       g = f7fr   )serve_forever)r-   s    r   main1BaseStartServer.test_start_server_1.<locals>.main.   s3     s''))) ss) ssssH   A7A=9=A;A=AAAAAr   Fstart_servingc                    > T" U T5      $ r   r
   r)   r*   r.   s    r   <lambda>5BaseStartServer.test_start_server_1.<locals>.<lambda>;   s    fT4.@r   r
   	is closed)looprun_until_completer   start_serverr   HOSTv4assertFalser"   create_tasksocketsgetsocknameassertRaisesCancelledError
tcp_clientassertEqualassertIsNone_sockets_waitersassertRaisesRegexr#   rA   )r   r<   rB   r,   r*   r.   r;   r-   s      @@@@@r   test_start_server_1#BaseStartServer.test_start_server_1   sw   !Oe+			'	* ii**7+?+?=''%,A B 	)*II))$s)4	{{1~))+w556!@A		,,Y7 B 7 	b)#,,'#,,')*##L,?II(():):)<= @? BA 76 @?s0   G&/GG&"*G7
G#	G&&
G47
Hr
   N)__name__
__module____qualname____firstlineno__r   r[   __static_attributes__r
   r   r   r   r      s    "/>r   r   c                   >    \ rS rSrS r\R                  S 5       rSrg)SelectorStartServerTestsH   c                 ,    [         R                  " 5       $ r   )r   SelectorEventLoopr   s    r   r   !SelectorStartServerTests.new_loopJ       ((**r   c           	        ^ ^^^^^ SS-  S-   m[         R                  " 5       mUU4S jmU4S jnU U4S jn[        R                  " 5        mT R                  R                  [        R                  " UTSS95      nT R                  R                  U" U5      5      mT R                  [        R                  5         T R                  UU4S	 j5         T R                  R                  T5        S S S 5        S S S 5        T R                  UR                  S
5        T R                  UR                  5        T R                  UR                   5        T R#                  UR%                  5       5        T R'                  [(        S5         T R                  R                  UR+                  5       5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N9= f! , (       d  f       g = f)Nr   r   r   c                    > U R                  S5        TR                  S5        U R                  U5        U R                  T5        U R	                  S5        U R                  5         g )Nr   r   r   )r$   waitr%   r&   r'   r(   )r)   r*   r,   starteds     r   r.   ASelectorStartServerTests.test_start_unix_server_1.<locals>.clientR   sG    OOALLOLLIIi MM!JJLr   c                    >#    U R                  5       I S h  vN   TR                  5         UR                  S5        UR                  5         UR	                  5       I S h  vN   g  NN N7fr1   r3   r8   s     r   r<   @SelectorStartServerTests.test_start_unix_server_1.<locals>.serveZ   r>   r?   c                   >#    U  IS h  vN   TR                  U R                  5       5        U R                  5       I S h  vN   TR                  U R                  5       5        TR	                  5         U R                  5       I S h  vN   S S S 5      IS h  vN   g  N N^ N N! , IS h  vN  (       d  f       g = f7fr   )rO   r"   rE   
assertTruesetrA   )r-   r   rl   s    r   rB   ?SelectorStartServerTests.test_start_unix_server_1.<locals>.maina   s|     s  !12''))) 01''))) ss) * ssssi   C BC 3B&B AB&B"	B&C B$C  B&"B&$C &B=,B/-B=9C FrD   c                    > T" U T5      $ r   r
   rG   s    r   rH   CSelectorStartServerTests.test_start_unix_server_1.<locals>.<lambda>p   s    6$3Er   r
   rJ   )	threadingEvent
test_utilsunix_socket_pathrK   rL   r   start_unix_serverrP   rS   rT   unix_clientrV   rQ   rW   rX   rY   rO   r"   rZ   r#   rA   )	r   r<   rB   r-   r,   r*   r.   r;   rl   s	   `   @@@@@r   test_start_unix_server_11SelectorStartServerTests.test_start_unix_server_1M   sl   !Oe+	//#		'	* ((*d))..w/H/Ht502 3C 		--d3i8I""7#9#9:%%&EFII00; G ; S[["-cll+cll+S^^-.''lC		,,S->->-@A D! +* GF ;: DC! +*sV   A0G5=GG0G8BG5*G$1G5
GG
G!	G5$
G2	.G55
Hr
   N)	r]   r^   r_   r`   r   r   skip_unless_bind_unix_socketr|   ra   r
   r   r   rc   rc   H   s#    + //,B 0,Br   rc   c                   ,    \ rS rSrS rS rS rS rSrg)TestServer2}   c                 z  #    S n[         R                  " U[        R                  S5      I S h  vN nU R	                  UR
                  5        [         R                  " UR                  5       5      n[         R                  " S5      I S h  vN   U R                  UR                  5       5        UR                  S   R                  5       n[         R                  " US   US   5      I S h  vN u  pV[         R                  " UR                  5       5      n[         R                  " S5      I S h  vN   U R                  UR                  5       5        U R                  UR                  5       5        UR                  5         [         R                  " S5      I S h  vN   [         R                  " UR                  5       5      n[         R                  " S5      I S h  vN   U R                  UR                  5       5        U R                  UR                  5       5        U R                  UR                  5       5        UR                  5         UR                  5       I S h  vN   UI S h  vN   UI S h  vN   UI S h  vN   UR                  5       I S h  vN   g  GNq GN GN GNx GN N NL ND N< N4 N7f)Nc                    #     U R                  5       I S h  vN   UR                  5         UR                  5       I S h  vN   g  N- N! UR                  5         UR                  5       I S h  vN    f = f7fr   readr(   r7   rdwrs     r   r<   1TestServer2.test_wait_closed_basic.<locals>.serve   V     'ggi
nn&&&   ' 
nn&&&H   A7A	 AA	 #A7A A7A	 A7	$A4-A0.A44A7r   r   )r   rM   r   rN   
addCleanupr(   rP   r7   r!   rO   donerQ   rR   open_connection)	r   r<   r-   task1r*   r   r   task2task3s	            r   test_wait_closed_basic"TestServer2.test_wait_closed_basic   s    	' ((0D0DaHH		" ##COO$56mmA& {{1~))+ 00a$q'BB##COO$56mmA&&		mmA##COO$56mmA&&&

nnoo? I
 	
 C
 	 	 	s   -J;J AJ;J#A J;-J&.AJ;1J)2A+J;J,AJ;J/ BJ;$J1%	J;.J3/	J;8J59	J;J7J;J9J;#J;&J;)J;,J;/J;1J;3J;5J;7J;9J;c                   #    S n[         R                  " U[        R                  S5      I S h  vN nU R	                  UR
                  5        [         R                  " UR                  5       5      n[         R                  " S5      I S h  vN   U R                  UR                  5       5        UR                  S   R                  5       n[         R                  " US   US   5      I S h  vN u  pV[         R                  " 5       nUR                  UR
                  5        UR                  UR
                  5        UR                  5       I S h  vN   g  GN) N No N7f)Nc                    #     U R                  5       I S h  vN   UR                  5         UR                  5       I S h  vN   g  N- N! UR                  5         UR                  5       I S h  vN    f = f7fr   r   r   s     r   r<   0TestServer2.test_wait_closed_race.<locals>.serve   r   r   r   r   )r   rM   r   rN   r   r(   rP   r7   r!   rO   r   rQ   rR   r   get_running_loop	call_soon)r   r<   r-   taskr*   r   r   rK   s           r   test_wait_closed_race!TestServer2.test_wait_closed_race   s     	' ((0D0DaHH		"""3??#45mmA%{{1~))+ 00a$q'BB'')syy!rxx oo I 	 C 	 sH   -E!EAE!EA E!-E.A$E!EE!E!E!E!c                 2  #    S n[         R                  " U[        R                  S5      I S h  vN nU R	                  UR
                  5        UR                  S   R                  5       n[         R                  " US   US   5      I S h  vN u  pEU R	                  UR
                  5        [         R                  " UR                  5       5      n[         R                  " S5      I S h  vN   U R                  UR                  5       5        UR                  5         UR                  5         [         R                  " S5      I S h  vN   [         R                  " S5      I S h  vN   U R                  UR                  5       5        g  GN\ GN N NJ N.7f)Nc                    #     U R                  5       I S h  vN   UR                  5         UR                  5       I S h  vN   g  N- N! UR                  5         UR                  5       I S h  vN    f = f7fr   r   r   s     r   r<   -TestServer2.test_close_clients.<locals>.serve   r   r   r   r   )r   rM   r   rN   r   r(   rQ   rR   r   rP   r7   r!   rO   r   close_clientsrq   )r   r<   r-   r*   r   r   r   s          r   test_close_clientsTestServer2.test_close_clients   s    	' ((0D0DaHH		"{{1~))+ 00a$q'BB!""3??#45mmA%		mmAmmA		$ I C 	
 	sZ   -FFAFFAF+F,AFF	F&F'%FFFFFc                 h  ^#    U4S jn[         R                  " 5       m[         R                  " U[        R                  S5      I S h  vN nU R                  UR                  5        UR                  S   R                  5       n[         R                  " US   US   SS9I S h  vN u  pEU R                  UR                  5        TI S h  vN u  pgUR                  S5      nUR                  [        R                  [        R                  S5        UR                  S5      n	U	R                  [        R                  [        R                  S5        UR!                  S5        UR!                  S5        UR!                  S5        UR"                  R%                  5       (       a?  [         R&                  " S5      I S h  vN   UR"                  R%                  5       (       a  M?  U	R)                  [        R                  [        R                  5      n
UR)                  [        R                  [        R                  5      n[+        S	5       HK  nUR!                  S
U
-  5        UR!                  S
U-  5        UR"                  R-                  5       S:  d  MK    O   U R/                  UR"                  R-                  5       S5        [         R0                  " UR3                  5       5      n[         R&                  " S5      I S h  vN   U R5                  UR7                  5       5        UR                  5         UR9                  5         [         R&                  " S5      I S h  vN   [         R&                  " S5      I S h  vN   U R;                  UR7                  5       5        g  GNX GN GN GN N NP N47f)Nc                 f   >#    TR                  X45        UR                  5       I S h  vN   g  N7fr   )
set_resultr7   )r   r   futs     r   r<   -TestServer2.test_abort_clients.<locals>.serve   s$     NNB8$.."""s   &1/1r   r   i   )limitsocketi   s   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar      a)r   FuturerM   r   rN   r   r(   rQ   rR   r   get_extra_info
setsockoptr   
SOL_SOCKET	SO_SNDBUF	SO_RCVBUFr6   	transport
is_readingr!   
getsockoptr   get_write_buffer_sizeassertNotEqualrP   r7   rO   r   abort_clientsrq   )r   r<   r-   r*   c_rdc_wrs_rds_wrs_sockc_sock	c_bufsize	s_bufsizer+   r   r   s                 @r   test_abort_clientsTestServer2.test_abort_clients   s    	# nn((0D0DaHH		"{{1~))+$44T!Wd1gTRR

# y $$X.&++V-=-=uE$$X.&++V-=-=uE 	

;

;

;nn''))--""" nn'')) %%f&7&79I9IJ	%%f&7&79I9IJ	rAJJti'(JJti'(~~3359	 
 	DNN@@BAF""3??#45mmA%		mmAmmA		$] I S ! #$ 	
 	s   AN2N 	AN2$N#%&N2N&C1N2=N)>#N2#B.N2A+N2 N,AN2N.N2;N0<%N2#N2&N2)N2,N2.N20N2r
   N)	r]   r^   r_   r`   r   r   r   r   ra   r
   r   r   r   r   }   s    ' R ,%24%r   r   c                       \ rS rSr\R
                  S 5       r\R
                  S 5       r\R
                  S 5       r\R
                  S 5       r	\R
                  S 5       r
Srg)	UnixServerCleanupTestsi  c                 ,  #    [         R                  " 5        nS n[        R                  " X!5      I S h  vN nUR	                  5         U R                  [        R                  R                  U5      5        S S S 5        g  NK! , (       d  f       g = f7f)Nc                     #    g 7fr   r
   argss    r   r<   CUnixServerCleanupTests.test_unix_server_addr_cleanup.<locals>.serve          )	rx   ry   r   rz   r(   rO   ospathexistsr   r*   r<   r-   s       r   test_unix_server_addr_cleanup4UnixServerCleanupTests.test_unix_server_addr_cleanup  sh      ((*d  11%>>CIIKRWW^^D12 +* ?	 +*s-   BBBAB8	BB
BBc                   #    [         R                  " 5        nS n[        R                  " [        R                  [        R                  5       nUR                  U5        [        R                  " X#S9I S h  vN nUR                  5         U R                  [        R                  R                  U5      5        S S S 5        S S S 5        g  NS! , (       d  f       N= f! , (       d  f       g = f7f)Nc                     #    g 7fr   r
   r   s    r   r<   CUnixServerCleanupTests.test_unix_server_sock_cleanup.<locals>.serve   r   r   r)   )rx   ry   r   AF_UNIXSOCK_STREAMbindr   rz   r(   rO   r   r   r   r   r*   r<   r)   r-   s        r   test_unix_server_sock_cleanup4UnixServerCleanupTests.test_unix_server_sock_cleanup  s      ((*d v~~v/A/ABd		$#55eGG		  !56 C	 +* H CB	 +*sG   C07C)C8C9AC;C	C0C
C	C
C-)C0c                   #    [         R                  " 5        nS n[        R                  " [        R                  [        R                  5       nUR                  U5        [        R                  " X#S9I S h  vN n[        R                  " U5        UR                  5         S S S 5        S S S 5        g  N;! , (       d  f       N= f! , (       d  f       g = f7f)Nc                     #    g 7fr   r
   r   s    r   r<   CUnixServerCleanupTests.test_unix_server_cleanup_gone.<locals>.serve/  r   r   r   )rx   ry   r   r   r   r   r   rz   r   unlinkr(   r   s        r   test_unix_server_cleanup_gone4UnixServerCleanupTests.test_unix_server_cleanup_gone+  s      ((*d v~~v/A/ABd		$#55eGG		$		 C	 +* H CB	 +*sF   C7C)B68B49*B6#C+	C4B66
C	 C
CCc                   #    [         R                  " 5        nS n[        R                  " X!5      I S h  vN n[        R
                  " U5        [        R                  " [        R                  [        R                  5       nUR                  U5        UR                  5         U R                  [        R                  R                  U5      5        S S S 5        S S S 5        g  N! , (       d  f       N= f! , (       d  f       g = f7f)Nc                     #    g 7fr   r
   r   s    r   r<   GUnixServerCleanupTests.test_unix_server_cleanup_replaced.<locals>.serve?  r   r   )rx   ry   r   rz   r   r   r   r   r   r   r(   rq   r   r   )r   r*   r<   r-   r)   s        r   !test_unix_server_cleanup_replaced8UnixServerCleanupTests.test_unix_server_cleanup_replaced;  s      ((*d  11%>>CIIdOv~~v/A/ABd		$		t 45	 C +* ? CB +*sF   DC7C$AC7AC&C7	D$C7&
C4	0C77
DDc                 *  #    [         R                  " 5        nS n[        R                  " X!SS9I S h  vN nUR	                  5         U R                  [        R                  R                  U5      5        S S S 5        g  NK! , (       d  f       g = f7f)Nc                     #    g 7fr   r
   r   s    r   r<   HUnixServerCleanupTests.test_unix_server_cleanup_prevented.<locals>.serveO  r   r   F)cleanup_socket)	rx   ry   r   rz   r(   rq   r   r   r   r   s       r   "test_unix_server_cleanup_prevented9UnixServerCleanupTests.test_unix_server_cleanup_preventedK  si      ((*d  11%eTTCIIKOOBGGNN401 +* U	 +*s-   BBB AB7	B B
BBr
   N)r]   r^   r_   r`   r   r~   r   r   r   r   r   ra   r
   r   r   r   r     s    //	3 0	3 //7 07 // 0 //6 06 //	2 0	2r   r   ProactorEventLoopzWindows onlyc                       \ rS rSrS rSrg)ProactorStartServerTestsiX  c                 ,    [         R                  " 5       $ r   )r   r   r   s    r   r   !ProactorStartServerTests.new_loop[  rh   r   r
   N)r]   r^   r_   r`   r   ra   r
   r   r   r   r   X  s    +r   r   __main__)r   r   r   r    rv   unittesttest.supportr   test.test_asyncior   rx   r   
func_testsr   FunctionalTestCaseMixinr   TestCaserc   IsolatedAsyncioTestCaser   r   
skipUnlesshasattrr   r]   rB   r
   r   r   <module>r      s     	     & 1 6(4>j88 4>n2B0A0A 2BjN%(22 N%dF2X== F2R 
WW&9:NK+0A0A + L+ zMMO r   