
    ,h*+                        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 ddlmZmZmZ dd	lmZ er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y)    )annotationsN)TYPE_CHECKING   )_coresocket)*)assert_checkpointscheck_half_closeable_streamwait_all_tasks_blocked   )setsockopt_tests)Sequencec                   K   t        j                         \  } }| 5  |5  t        j                  t              5  t        |        d d d        d d d        d d d        t        j                  t        j                        5 }t        j                  t        d      5  t        |       d d d        d d d        t        j                         \  }}|5  |5  t        |      }|j                  |u sJ 	 d d d        d d d        t        j                         5 }|j                  d       d {    |j                  d       t        j                         5 }|j                  |j                                d {    t        |      }|j                  t        j                  t        j                         sJ |j#                  t        j                  t        j                   d       |j                  t        j                  t        j                         rJ |j                  t        j                  t        j                   d      }t%        |t&              sJ t)        |       d d d        d d d        y # 1 sw Y   1xY w# 1 sw Y   6xY w# 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   xY w# 1 sw Y   xY w7 7 Z# 1 sw Y   sxY w# 1 sw Y   y xY ww)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	            c/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/trio/_tests/test_highlevel_socket.pytest_SocketStream_basicsr2      sS    &113Hh	 #8 #]]9% 	#"	## #
 
W//	0 D]]A
 	
 	 DAq	
 A Oxx1}}  
	  [/0001^^ 	 %%k&=&=&?@@@[)A << 3 3W5H5HIILL,,g.A.A5I||G$7$79L9LMM,,w22G4G4GKCc5))Q	    )	# 	## # # #	 	     	1 A	  	    s   K-JJI4JJ,K-J(J)J(1!K-KJ52K:K-K!+K,)K!#K8K9C*K#K!+	K-4I>9JJ	JJK-J%	 J((J2-K-5J?	:KKK-K!KK	K!!K*&K-c            	       K   dt        j                         \  } }| 5  |5  t        |       t        |      dfd}dfd}t        j                         4 d {   }|j                  |       |j                  |       d d d       d {    j                  d       d {    j                  d       d {   dk(  sJ j                          d {    j                  d       d {   dk(  sJ 	 d d d        d d d        y 7 7 # 1 d {  7  sw Y   xY w7 7 l7 Q7 :# 1 sw Y   3xY w# 1 sw Y   y xY ww)Ni c                 v   K   t              } j                  |        d {    | t              z  } y 7 wN)	bytearraysend_allr'   )dataBIGr+   s    r1   senderz*test_SocketStream_send_all.<locals>.senderN   s7     S>D**T""" E#JD #s    979c                    K   t                d {    d} | k  r+| t        j                         d {         z  } | k  r+| k(  sJ y 7 >7 w)Nr   )r   lenreceive_some)nbytesr9   r,   s    r1   receiverz,test_SocketStream_send_all.<locals>.receiverf   sZ     (***F3,#ANN3$7788 3,S= =	 + 8s%   AA%AA
A	AA   e
       returnNone)	r   r   r   r   open_nursery
start_soonr7   r=   send_eof)a_sockb_sockr:   r?   nurseryr9   r+   r,   s        @@@r1   test_SocketStream_send_allrL   C   s4    
C'')NFF	 0/ 0/  
		0	! %%' 	) 	)7v&x(	) 	) jj^^B''4//jjl^^B''3...a0/ 0/ 0/N	) 	) 	) 	) 	) 	''a0/ 0/ 0/ 0/s   EE=D8!D
"D8%#DD8DD8,D0-D8D2D8"D4#D8;D6<	D8E	ED8D8D-!D$"D-)D82D84D86D88E	=EE	Ec                    K   d fd}dd}t        j                         4 d {   }|j                  |       |j                  ||       d d d       d {    y 7 87 # 1 d {  7  sw Y   y xY ww)Nc                 L   K   	  j                  ddz         d {    7 w)N   xi'  )r7   )r-   s   r1   r:   zfill_stream.<locals>.sender{   s(     **TE\*** *s   $"$c                h   K   t                d {    | j                  j                          y 7 wr5   )r   cancel_scopecancel)rK   s    r1   waiterzfill_stream.<locals>.waiter   s)     $&&&##% 	's   20 2rC   )rK   z_core.NurseryrD   rE   )r   rF   rG   )r-   r:   rS   rK   s   `   r1   fill_streamrT   z   sn     +& !!# , ,w6"67+, , , , , , ,sD   #A8AA8$A#A8A!A8!A8#A5)A,*A51A8c                 N   K   dddfd} t        |        d {    y 7 w)Nc                 d   K   t        j                         \  } }t        |       t        |      fS wr5   )r   r   r   )leftrights     r1   stream_makerz/test_SocketStream_generic.<locals>.stream_maker   s/      ((*eD!<#666s   .0c                    K            d {   \  } }t        |        d {    t        |       d {    | |fS 7 17 7 wr5   )rT   )rW   rX   rY   s     r1   clogged_stream_makerz7test_SocketStream_generic.<locals>.clogged_stream_maker   sH     (N*e$%   U{ + s/   AA AAAA	AAA)rD   z!tuple[SocketStream, SocketStream])r
   )r[   rY   s    @r1   test_SocketStream_genericr\      s$     7 &l4H
IIIs   %#%c                 N  K   t        j                         5 } | j                  d       | j                  d       t	        j
                  t              5  t        |        d d d        d d d        t        j                  t        j                        5 } | j                  d       d {    t	        j
                  t        d      5 }t        |        d d d        j                  d       d d d        t        j                  dk7  rvt        j                         5 } | j                  d       d {    t	        j
                  t        d      5 }t        |        d d d        j                  d	       d d d        t        j                         }|j                  d       d {    |j                  d       t        |      }|j                  |u sJ t        j                         }|j                  |j                                d {    t!               5  |j#                          d {   }d d d        t%        t&              sJ |j                  j                         |j                         k(  sJ |j                  j)                         |j                         k(  sJ t!               5  |j+                          d {    d d d        t!               5  |j+                          d {    d d d        t!               5  t	        j
                  t,        j.                        5  |j#                          d {    d d d        d d d        |j1                          |j+                          d {    y # 1 sw Y   "xY w# 1 sw Y   'xY w7 # 1 sw Y   xY w# 1 sw Y   xY w7 # 1 sw Y   ^xY w# 1 sw Y   RxY w7 -7 7 # 1 sw Y   xY w7 "# 1 sw Y   "xY w7 # 1 sw Y   xY w7 # 1 sw Y   xY w# 1 sw Y   xY w7 w)
Nr   rA   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.   listenerr/   server_streams         r1   test_SocketListenerrj      s_    				 1	 	]]9% 	1	 
W//	0 (Aff%&&&]]C
 	 1		
 	&'( ||x^^ 	'&&)***E " q!	"
 MM+&	' .."K


+
,,,rk*H??k)).."K


k557
888		 0&oo//0m\22++-1H1H1JJJ++-1H1H1JJJ		  oo  
	  oo  
	 $]]5445 	$//###	$$ 



   g	 	  	'	 	( ( +" "	' 	' - 9/0 0 	     	    
 $	$ 	$$ $
 !s  P%<NM?N',P%N)(N)N)NN)-/P%O1N62ON9O60P%&O'A&P%OP%O0O1O5A>P%3O,O)O,P%O<2O93O<7P%	$P-PP	PP+P%9P#:P%?N		NNP%N)N&	!N))N3.P%6O9O	>OO	P%P%OO&!P%)O,,O61P%9O<<PP%	PP	PP P%c                   K   t        j                         } | j                  d       d {    | j                  d       t	        |       }| j                          t               5  t        j                  t        j                        5  |j                          d {    d d d        d d d        y 7 7 # 1 sw Y   xY w# 1 sw Y   y xY ww)Nr   rA   )r   r   r   r   r_   rf   r	   r   r   r   re   rb   )r.   rh   s     r1   +test_SocketListener_socket_closed_underfootrl      s     .."K


+
,,,rk*H  
	 $]]5445 	$//###	$$ $ - $	$ 	$$ $sQ   )CB4:C&$C
B8B6B8#C+
C6B88C	=CC	Cc                 h  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  |j                          d {   }|j                  |u sJ 	 d d d        t        j                  d	t        j                  d
t        j                  dij                         D ]p  \  }}t               5  t        j                   t        |      5 }|j                          d {    d d d        j"                  j                  |k(  sJ 	 d d d        r t               5  |j                          d {   }|j                  |u sJ 	 d d d        y 7 # 1 sw Y   xY w7 ~# 1 sw Y   }xY w# 1 sw Y   xY w7 G# 1 sw Y   y xY ww)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
y)5test_SocketListener_accept_errors.<locals>.FakeSocketc                $    t        |      | _        y r5   )iter_events)selfeventss     r1   __init__z>test_SocketListener_accept_errors.<locals>.FakeSocket.__init__   s    <DLrB   c                    y r5    )rs   leveloptnames      r1   r"   z@test_SocketListener_accept_errors.<locals>.FakeSocket.getsockopt   s    BErB   c                    y r5   rw   rs   rx   ry   buflens       r1   r"   z@test_SocketListener_accept_errors.<locals>.FakeSocket.getsockopt   s     rB   Nc                    y)NTrw   r{   s       r1   r"   z@test_SocketListener_accept_errors.<locals>.FakeSocket.getsockopt   s     rB   c                    y r5   rw   )rs   rx   ry   values       r1   r%   z@test_SocketListener_accept_errors.<locals>.FakeSocket.setsockopt   s     rB   c                    y r5   rw   rs   rx   ry   r   optlens        r1   r%   z@test_SocketListener_accept_errors.<locals>.FakeSocket.setsockopt	  s     rB   c                    y r5   rw   r   s        r1   r%   z@test_SocketListener_accept_errors.<locals>.FakeSocket.setsockopt  s     rB   c                   K   t        j                          d {    t        | j                        }t	        |t
              r||d fS 7 /wr5   )r   
checkpointnextrr   r&   BaseException)rs   events     r1   rb   z<test_SocketListener_accept_errors.<locals>.FakeSocket.accept  sD     ""$$$&E%/d{" %s   AA
0A)rt   z$Sequence[SocketType | BaseException]rD   rE   )rx   intry   r   rD   r   )rx   r   ry   r   r|   r   rD   r'   r5   )rx   r   ry   r   r|   
int | NonerD   zint | bytes)rx   r   ry   r   r   zint | BufferrD   rE   )
rx   r   ry   r   r   rE   r   r   rD   rE   )
rx   r   ry   r   r   zint | Buffer | Noner   r   rD   rE   )rD   ztuple[SocketType, object])__name__
__module____qualname__ru   r   SOCK_STREAMr   overloadr"   r%   rb   rw   rB   r1   
FakeSocketro      sS   	( "" 
E 
E		 	 		
 	 	 
	 "&	 	 		
 	 	 
	 	 		
  	 	 
	 
	 	 		
 	 	 	 
	 "&	 	 		
 '	 	 		#rB   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	   rb   r   itemsr   r   r   )r   fake_server_sockfake_listen_sockrh   streamcoder   rg   s           r1   !test_SocketListener_accept_errorsr      s    ?#W'' ?#B ""~!E&&(<=EKK!45ELL.1ELL";<ELL"HIEMM#34		
 ./H		 1((}} 00001
 	=J5 eg	/e
  ! 	/we4 (oo'''(==&&$...	/ 	// 
	 1((}} 00001 1 )1 1 (( (	/ 	/ )1 1s   CH2G>-G;.G>AH2H7HH

H#H4H2H&H$H&2	H2;G>>HH2
HHHH!	H2$H&&H/+H2c                   K   t        j                         \  } }| 5  |5  |j                  d       d {    |j                          t	        |       }|j                  d       d {   dk(  sJ |j                  d       d {   dk(  sJ 	 d d d        d d d        y 7 m7 ;7 # 1 sw Y   xY w# 1 sw Y   y xY ww)NrO   r   rB   )r   r   sendrf   r   r=   )sock_asock_br   s      r1   5test_socket_stream_works_when_peer_has_already_closedr   I  s     '')NFF	 3 3kk$f%((++t33((++s2223 3 3 ,+3 3 3 3sg   C B4B(B"3B((B$)B(B&	B(B4	C "B($B(&B((B1	-B44B=9C rC   )r-   r   rD   rE   )
__future__r   r   r   r   r`   typingr   r    r   r   _highlevel_sockettestingr	   r
   r   test_socketr   collections.abcr   r2   rL   rT   r\   rj   rl   r   r   rw   rB   r1   <module>r      s`    "   
    ' ! 
 *() X4/n,J"8!v$c1L3rB   