
     f)                        d dl mZ d dlZd dlZd dlZd dlmZ d dlZddl	m
Z
mZ ddlT ddlmZmZmZ dd	lmZ ddZddZddZddZddZddZddZddZdS )    )annotationsN)Sequence   )_coresocket)*)assert_checkpointscheck_half_closeable_streamwait_all_tasks_blocked   )setsockopt_testsreturnNonec                   K   t          j                    \  } }| 5  |5  t          j        t                    5  t          |            d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          j                  5 }t          j        t          d          5  t          |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j                    \  }}|5  |5  t          |          }|j        |u sJ 	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j                    5 }|
                    d           d {V  |                    d           t          j                    5 }|                    |                                           d {V  t          |          }|                    t          j        t          j                  sJ |                    t          j        t          j        d           |                    t          j        t          j                  rJ |                    t          j        t          j        d          }t%          |t&                    sJ t)          |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Ntypez,^SocketStream requires a SOCK_STREAM socket$matchz	127.0.0.1r   r   F)stdlib_socket
socketpairpytestraises	TypeErrorSocketStreamtsocketr   
SOCK_DGRAM
ValueErrorbindlistenconnectgetsockname
getsockoptIPPROTO_TCPTCP_NODELAY
setsockopt
isinstancebytesr   )	stdlib_astdlib_bsockabslisten_sockclient_sockress	            d/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/trio/_tests/test_highlevel_socket.pytest_SocketStream_basicsr3      s     &133Hh	 # #8 # #]9%% 	# 	#"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	## # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
 
W/	0	0	0 D]L
 
 
 	 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	               DAq	
  A  OOx1}}}}}                              
		  [/0000000001^ 	 %%k&=&=&?&?@@@@@@@@@[))A << 3W5HIIIIILL,g.A5III||G$79LMMMMM,,w2G4GKKCc5)))))Q	  	  	  	  	  	  	  	  	  	  	  	  	  	  	                                    s   BA+AA+AA+AA+B+A/	/B2A/	3BB	B,C;C$C;$C(	(C;+C(	,C;;C?C?E !E	=E 	E	E E	E  E$'E$>AK7DKK7K#	#K7&K#	'K77K;>K;c                   K   dt          j                    \  } }| 5  |5  t          |           t          |          d	fd}d	fd}t          j                    4 d {V }|                    |           |                    |           d d d           d {V  n# 1 d {V swxY w Y                       d           d {V                      d           d {V dk    sJ                                  d {V                      d           d {V dk    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
Ni r   r   c                    K   t                    }                     |            d {V  | t                    z  } d S N)	bytearraysend_allr(   )dataBIGr,   s    r2   senderz*test_SocketStream_send_all.<locals>.senderJ   sL      S>>D**T""""""""" E#JJDDD    c                    K   t                       d {V  d} | k     r1| t                                         d {V           z  } | k     1| k    sJ d S )Nr   )r   lenreceive_some)nbytesr:   r-   s    r2   receiverz,test_SocketStream_send_all.<locals>.receiverb   s      (*********F3,,#ANN3$7$7777777888 3,,S======r<      e
   r<   r   r   )	r   r   r   r   open_nursery
start_soonr8   r?   send_eof)a_sockb_sockr;   rA   nurseryr:   r,   r-   s        @@@r2   test_SocketStream_send_allrK   ?   s     
C'))NFF	 0/ 0/ 0/ 0/    
		 		 		 		 		 		 		0	! 	! 	! 	! 	! 	! 	! %'' 	) 	) 	) 	) 	) 	) 	)7v&&&x(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) jj^^B''''''''4////jjll^^B''''''''3.....a0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/ 0/sZ   EAD;)+B&D;&
B00D;3B04A:D;/E;D?	?ED?	EEEr.   r   c                    K   d fd}dd}t          j                    4 d {V }|                    |           |                    ||           d d d           d {V  d S # 1 d {V swxY w Y   d S )	Nr   r   c                 H   K   	                       ddz             d {V  )NT   xi'  )r8   )r.   s   r2   r;   zfill_stream.<locals>.senderw   s9      	+**TE\*********	+r<   rJ   _core.Nurseryc                d   K   t                       d {V  | j                                         d S r6   )r   cancel_scopecancel)rJ   s    r2   waiterzfill_stream.<locals>.waiter{   s?      $&&&&&&&&&##%%%%%r<   rD   )rJ   rO   r   r   )r   rE   rF   )r.   r;   rS   rJ   s   `   r2   fill_streamrT   v   s/     + + + + + +& & & & !## , , , , , , ,w6"""67+++, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,s   ,A&&
A03A0c                 L   K   dddfd} t          |            d {V  d S )Nr   !tuple[SocketStream, SocketStream]c                 n   K   t          j                    \  } }t          |           t          |          fS r6   )r   r   r   )leftrights     r2   stream_makerz/test_SocketStream_generic.<locals>.stream_maker   s3      (**eD!!<#6#666r<   c                    K                 d {V \  } }t          |            d {V  t          |           d {V  | |fS r6   )rT   )rX   rY   rZ   s     r2   clogged_stream_makerz7test_SocketStream_generic.<locals>.clogged_stream_maker   sr      (LNN******e$%         U{r<   )r   rV   )r
   )r\   rZ   s    @r2   test_SocketStream_genericr]      sd      7 7 7 7      &l4H
I
IIIIIIIIIIr<   c                   K   t          j                    5 } |                     d           |                     d           t	          j        t                    5  t          |            d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          j	                  5 } |                     d           d {V  t	          j        t          d          5 }t          |            d d d            n# 1 swxY w Y   |                    d           d d d            n# 1 swxY w Y   t          j        dk    rt          j                    5 } |                     d           d {V  t	          j        t          d          5 }t          |            d d d            n# 1 swxY w Y   |                    d	           d d d            n# 1 swxY w Y   t          j                    }|                    d           d {V  |                    d           t          |          }|j        |u sJ t          j                    }|                    |                                           d {V  t!                      5  |                                 d {V }d d d            n# 1 swxY w Y   t%          |t&                    sJ |j                                        |                                k    sJ |j                                        |                                k    sJ t!                      5  |                                 d {V  d d d            n# 1 swxY w Y   t!                      5  |                                 d {V  d d d            n# 1 swxY w Y   t!                      5  t	          j        t,          j                  5  |                                 d {V  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                                 |                                 d {V  d S )
Nr   rC   r   z.^SocketListener requires a SOCK_STREAM socket$r   z.*SOCK_STREAMdarwinz,^SocketListener requires a listening socket$z.*listen)r   r   r   r    r   r   r   SocketListenerr   r   r   r   sysplatformr!   r"   r	   acceptr'   r   getpeernameacloser   ClosedResourceErrorclose)r.   excinfor/   listenerr0   server_streams         r2   test_SocketListenerrk      s     				 1	   	]9%% 	 	1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               
W/	0	0	0 (Aff%&&&&&&&&&]N
 
 
 	1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	&'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( |x^ 	'&&)*********"P   "q!!!" " " " " " " " " " " " " " " MM+&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' .""K


+
,
,,,,,,,,rk**H?k)))).""K


k5577
8
88888888			 0 0&oo////////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0m\22222++--1H1H1J1JJJJJ++--1H1H1J1JJJJJ			    oo                              
		    oo                              
		 $ $]5455 	$ 	$//#########	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 



 
          s  ABA6*B6A:	:B=A:	>BBB77D6.D
>D6
D	D6D	D66D:=D:$7G#F7+G#7F;	;G#>F;	?G##G'*G'K  KKM99M= M=N99N= N=P/1PP/P	P/P	 P//P36P3c                   K   t          j                    } |                     d           d {V  |                     d           t	          |           }|                                  t                      5  t          j        t          j
                  5  |                                 d {V  d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   rC   )r   r   r   r    r`   rg   r	   r   r   r   rf   rc   )r/   ri   s     r2   +test_SocketListener_socket_closed_underfootrm      sk     .""K


+
,
,,,,,,,,rk**H  
		 $ $]5455 	$ 	$//#########	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s6   7CB=1C=C	CC	CCCc                 n  K    G d dt           j                  }  | g           } | t          t          j        d          t          t          j        d          t          t          j        d          |t          t          j        d          t          t          j        d          t          t          j	        d          |g          }t          |          }t                      5  |                                 d {V }|j        |u sJ 	 d d d            n# 1 swxY w Y   t          j        d	t          j        d
t          j	        di                                D ]\  }}t                      5  t          j        t          |          5 }|                                 d {V  d d d            n# 1 swxY w Y   |j        j        |k    sJ 	 d d d            n# 1 swxY w Y   t                      5  |                                 d {V }|j        |u sJ 	 d d d            d S # 1 swxY w Y   d S )Nc                      e Zd ZddZej        Zedd	            Zedd            Z	 dddZedd            Z	ed d            Z		 dd!dZ	d"dZ
dS )#5test_SocketListener_accept_errors.<locals>.FakeSocketevents$Sequence[SocketType | BaseException]r   r   c                .    t          |          | _        d S r6   )iter_events)selfrq   s     r2   __init__z>test_SocketListener_accept_errors.<locals>.FakeSocket.__init__   s    <<DLLLr<   levelintoptnamec                   d S r6    )rv   rx   rz   s      r2   r#   z@test_SocketListener_accept_errors.<locals>.FakeSocket.getsockopt   s    BE#r<   buflenr(   c                   d S r6   r|   rv   rx   rz   r}   s       r2   r#   z@test_SocketListener_accept_errors.<locals>.FakeSocket.getsockopt   s	     Cr<   N
int | Noneint | bytesc                   dS )NTr|   r   s       r2   r#   z@test_SocketListener_accept_errors.<locals>.FakeSocket.getsockopt   s	     4r<   valueint | Bufferc                   d S r6   r|   )rv   rx   rz   r   s       r2   r&   z@test_SocketListener_accept_errors.<locals>.FakeSocket.setsockopt   	     3r<   optlenc                   d S r6   r|   rv   rx   rz   r   r   s        r2   r&   z@test_SocketListener_accept_errors.<locals>.FakeSocket.setsockopt   r   r<   int | Buffer | Nonec                   d S r6   r|   r   s        r2   r&   z@test_SocketListener_accept_errors.<locals>.FakeSocket.setsockopt   s	     Dr<   tuple[SocketType, object]c                   K   t          j                     d {V  t          | j                  }t	          |t
                    r||d fS r6   )r   
checkpointnextru   r'   BaseException)rv   events     r2   rc   z<test_SocketListener_accept_errors.<locals>.FakeSocket.accept  sW      "$$$$$$$$$&&E%// #d{"r<   )rq   rr   r   r   )rx   ry   rz   ry   r   ry   )rx   ry   rz   ry   r}   ry   r   r(   r6   )rx   ry   rz   ry   r}   r   r   r   )rx   ry   rz   ry   r   r   r   r   )
rx   ry   rz   ry   r   r   r   ry   r   r   )
rx   ry   rz   ry   r   r   r   r   r   r   )r   r   )__name__
__module____qualname__rw   r   SOCK_STREAMr   overloadr#   r&   rc   r|   r<   r2   
FakeSocketrp      s        	( 	( 	( 	( " 
EEE 
E		 	 	 
	
 EI	 	 	 	 	
 
	 	 	 
	 
	 	 	 
	 "&	 	 	 	 		# 	# 	# 	# 	# 	#r<   r   zConnection abortedzPermission deniedzBad protocolzOut of file descriptorsz$attempt to write to read-only memoryzout of buffersz$\[\w+ \d+\] Out of file descriptors$z1\[\w+ \d+\] attempt to write to read-only memory$z\[\w+ \d+\] out of buffers$r   )r   
SocketTypeOSErrorerrnoECONNABORTEDEPERMEPROTOEMFILEEFAULTENOBUFSr`   r	   rc   r   itemsr   r   r   )r   fake_server_sockfake_listen_sockri   streamcoder   rh   s           r2   !test_SocketListener_accept_errorsr      sT     .# .# .# .# .#W' .# .# .#` "z"~~!zE&(<==EK!455EL.11EL";<<EL"HIIEM#344		
  .//H			 1 1((((((((} 0000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 	=J5 egg	/ /e
  !! 	/ 	/we444 (oo'''''''''( ( ( ( ( ( ( ( ( ( ( ( ( ( (=&$.....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/
 
		 1 1((((((((} 0000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1sZ   &&DD D/GF2&G2F66G9F6:GG 	#G 	6&H**H.1H.c                   K   t          j                    \  } }| 5  |5  |                    d           d {V  |                                 t	          |           }|                    d           d {V dk    sJ |                    d           d {V dk    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NrN   r   r<   )r   r   sendrg   r   r?   )sock_asock_br   s      r2   5test_socket_stream_works_when_peer_has_already_closedr   /  s     '))NFF	 3 3 3 3kk$f%%((++++++++t3333((++++++++s222223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s5   CBB, C,B0	0C3B0	4CCCrD   )r.   r   r   r   )
__future__r   r   r   r   ra   typingr   r    r   r   _highlevel_sockettestingr	   r
   r   test_socketr   r3   rK   rT   r]   rk   rm   r   r   r|   r<   r2   <module>r      sp   " " " " " "      



        ' ' ' ' ' ' ' ' ! ! ! !         
 * ) ) ) ) )(  (  (  ( V4/ 4/ 4/ 4/n, , , ,J J J J6! 6! 6! 6!r$ $ $ $R1 R1 R1 R1j3 3 3 3 3 3r<   