
    daf                     b   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z
 d Z G d de
j                        Z G d d	eej                        Z G d
 dej                         Z ej$                   ee d      d       G d deej                               Zedk(  r ej,                          yy)    N)socket_helper)utils)
functionalc                  .    t        j                  d        y N)asyncioset_event_loop_policy     8/root/Python-3.12.4/Lib/test/test_asyncio/test_server.pytearDownModuler      s    !!$'r   c                       e Zd Zd Zd Zy)BaseStartServerc                     t         r   )NotImplementedErrorselfs    r   new_loopzBaseStartServer.new_loop   s    !!r   c                    ddz  dz   fdfd}d }| j                   j                  t        j                  |t        j
                  dd	            | j                  j                                | j                   j                   |            j                  d   j                         | j                  t        j                        5  | j                  fd
      5  | j                   j                         d d d        d d d        | j                  j                  d       | j                  j                          | j                  j"                         | j                  j                                | j%                  t&        d      5  | j                   j                  j)                                d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)N   1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111      
c                 (   t        d      D ])  }t        j                  d       j                         s) n t        | j                  d       | j                  |       | j                         | j                  d       | j                          y )N
   g?      )
rangetimesleep
is_servingRuntimeError
settimeoutconnectsendrecv_allclose)sockaddri	HELLO_MSGsrvs      r   clientz3BaseStartServer.test_start_server_1.<locals>.client   so    2Y #

3>>##
 #"OOALLIIi MM!JJLr   c                    K   | j                          d {    j                          |j                  d       |j                          |j	                          d {    y 7 N7 wN   1readlinecancelwriter&   wait_closedreaderwriter	main_tasks     r   servez2BaseStartServer.test_start_server_1.<locals>.serve%   U     //###LLLLN$$&&&	 $ '"   A*A&AA* A(!A*(A*c                    K   | 4 d {    | j                          d {    d d d       d {    y 7 -7 7 	# 1 d {  7  sw Y   y xY wwr   )serve_forever)r+   s    r   mainz1BaseStartServer.test_start_server_1.<locals>.main,   sN      * *'')))* * *)* * * *sH   A7A=9=A;A=AAAAAr   Fstart_servingc                      |       S r   r
   r'   r(   r,   s    r   <lambda>z5BaseStartServer.test_start_server_1.<locals>.<lambda>9   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!   r=   )r   r9   r>   r*   r(   r,   r8   r+   s      @@@@@r   test_start_server_1z#BaseStartServer.test_start_server_1   s   !Oe+			'	* ii**7+?+?=''%,A B 	)*II))$s)4	{{1~))+w556 	8!@A 8		,,Y78	8 	b)#,,'#,,')*##L,? 	>II(():):)<=	> 	>8 8	8 	8	> 	>s0   G .G
G !*G,G	G  G),G5N)__name__
__module____qualname__r   rU   r
   r   r   r   r      s    "/>r   r   c                   6    e Zd Zd Zej
                  d        Zy)SelectorStartServerTestsc                 *    t        j                         S r   )r   SelectorEventLoopr   s    r   r   z!SelectorStartServerTests.new_loopH       ((**r   c                     ddz  dz   t        j                         fdfd} fd}t        j                         5  j                  j                  t        j                  |d            } j                  j                   ||             j                  t        j                        5   j                  fd	      5   j                  j                         d d d        d d d         j                  |j                  d
        j                  |j                          j                  |j                           j#                  |j%                                 j'                  t(        d      5   j                  j                  |j+                                d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nr   r   r   c                     | j                  d       j                  d       | j                  |       | j                         | j	                  d       | j                          y )Nr   r   r   )r"   waitr#   r$   r%   r&   )r'   r(   r*   starteds     r   r,   zASelectorStartServerTests.test_start_unix_server_1.<locals>.clientP   sG    OOALLOLLIIi MM!JJLr   c                    K   | j                          d {    j                          |j                  d       |j                          |j	                          d {    y 7 N7 wr.   r0   r5   s     r   r9   z@SelectorStartServerTests.test_start_unix_server_1.<locals>.serveX   r:   r;   c                 z  K   | 4 d {    j                  | j                                | j                          d {    j                  | j                                j	                          | j                          d {    d d d       d {    y 7 7 ^7 7 # 1 d {  7  sw Y   y xY wwr   )rI   r    r@   
assertTruesetr=   )r+   r   ra   s    r   r>   z?SelectorStartServerTests.test_start_unix_server_1.<locals>.main_   s      * *  !12''))) 01'')))* * *) ** * * *si   B;BB;3B&B AB&B"	B&B;B$B; B&"B&$B;&B8,B/-B84B;Fr?   c                      |       S r   r
   rB   s    r   rC   zCSelectorStartServerTests.test_start_unix_server_1.<locals>.<lambda>n   s    6$3E r   r
   rD   )	threadingEvent
test_utilsunix_socket_pathrE   rF   r   start_unix_serverrJ   rM   rN   unix_clientrP   rK   rQ   rR   rS   rI   r    rT   r!   r=   )	r   r9   r>   r+   r*   r(   r,   r8   ra   s	   `   @@@@@r   test_start_unix_server_1z1SelectorStartServerTests.test_start_unix_server_1K   s   !Oe+	//#		'	* ((* 	Bd))..w/H/Ht502 3C 		--d3i8I""7#9#9: <%%&EF <II00;<< S[["-cll+cll+S^^-.''lC B		,,S->->-@AB!	B 	B< << <B B!	B 	BsV   A2G":G
F>,G
4BG"*G-G">GG

G	G"G	G""G+N)rV   rW   rX   r   r   skip_unless_bind_unix_socketrm   r
   r   r   rZ   rZ   F   s#    + //,B 0,Br   rZ   c                       e Zd Zd Zd Zy)TestServer2c                   K   d }t        j                  |t        j                  d       d {   }| j	                  |j
                         t        j                  |j                               }t        j                  d       d {    | j                  |j                                |j                          t        j                  |j                               }t        j                  d       d {    | j                  |j                                | j                  |j                                |j                          t        j                  d       d {    t        j                  |j                               }t        j                  d       d {    | j                  |j                                | j                  |j                                | j                  |j                                |j                          | d {    | d {    | d {    |j                          d {    y 7 7 7 Z7 7 7 >7 67 .7 w)Nc                     K   y wr   r
   argss    r   r9   z1TestServer2.test_wait_closed_basic.<locals>.serve~   	        r   )r   rG   r   rH   
addCleanupr&   rJ   r4   r   rI   done_attach_detach)r   r9   r+   task1task2task3s         r   test_wait_closed_basicz"TestServer2.test_wait_closed_basic}   s    	 ((0D0DaHH		" ##COO$56mmA& 	##COO$56mmA&&		mmA##COO$56mmA&&&oo; I
 	 	
 	 	 	s   ,I!IAI!	I
A.I!8I9A*I!#I$?I!#I$A6I!I	I!$I%	I!.I/I!II!I!I!I!I!I!I!I!I!c                 P  K   d }t        j                  |t        j                  d       d {   }| j	                  |j
                         t        j                  |j                               }t        j                  d       d {    | j                  |j                                |j                          t        j                         }|j                  |j
                         |j                  |j                         |j                          d {    y 7 7 7 	w)Nc                     K   y wr   r
   rs   s    r   r9   z0TestServer2.test_wait_closed_race.<locals>.serve   ru   rv   r   )r   rG   r   rH   rw   r&   rJ   r4   r   rI   rx   ry   get_running_loop	call_soonrz   )r   r9   r+   taskrE   s        r   test_wait_closed_racez!TestServer2.test_wait_closed_race   s     	 ((0D0DaHH		"""3??#45mmA%'')syy!s{{#oo I 	 	 s5   ,D&D AD&	D"
BD&D$D&"D&$D&N)rV   rW   rX   r~   r   r
   r   r   rp   rp   {   s    ! F r   rp   ProactorEventLoopzWindows onlyc                       e Zd Zd Zy)ProactorStartServerTestsc                 *    t        j                         S r   )r   r   r   s    r   r   z!ProactorStartServerTests.new_loop   r]   r   N)rV   rW   rX   r   r
   r   r   r   r      s    +r   r   __main__)r   r   rg   unittesttest.supportr   test.test_asyncior   ri   r   
func_testsr   FunctionalTestCaseMixinr   TestCaserZ   IsolatedAsyncioTestCaserp   
skipUnlesshasattrr   rV   r>   r
   r   r   <module>r      s        & 1 6(4>j88 4>n2B0A0A 2Bj4 (22 4 r WW&9:NK+0A0A + L+ zHMMO r   