HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/test_asyncio/__pycache__/test_sock_lowlevel.cpython-310.pyc
o

�iFH�@sJddlZddlZddlZddlZddlmZddlmZmZddlm	Z
ddlmZddl
mZdd�ZGd	d
�d
ej�ZGdd�d�Zejd
kr^Gdd�dee
j�ZGdd�dee
j�Zn;ddlZeed�rqGdd�dee
j�Zeed�r�Gdd�dee
j�Zeed�r�Gdd�dee
j�ZGdd�dee
j�Zedkr�e��dSdS)�N)�proactor_events)�cycle�islice)�utils)�support)�
socket_helpercCst�d�dS�N)�asyncioZset_event_loop_policy�r
r
�A/usr/local/lib/python3.10/test/test_asyncio/test_sock_lowlevel.py�tearDownModule
�rc@sFeZdZdZdZddd�Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dS)�MyProtoNcCs6d|_d|_d|_|dur|��|_|��|_dSdS)N�INITIALr)�	transport�state�nbytesZ
create_future�	connected�done)�self�loopr
r
r�__init__s
�zMyProto.__init__cGs$|j|vrtd|j�d|����dS)Nzstate: z, expected: )r�AssertionError)r�expectedr
r
r�
_assert_states
�zMyProto._assert_statecCs6||_|�d�d|_|jr|j�d�|�d�dS)Nr�	CONNECTEDs%GET / HTTP/1.0
Host: example.com

)rrrr�
set_result�write)rrr
r
r�connection_made!s
zMyProto.connection_madecCs |�d�|jt|�7_dS)Nr)rr�len)r�datar
r
r�
data_received)s
zMyProto.data_receivedcCs|�d�d|_dS)Nr�EOF)rr�rr
r
r�eof_received-s

zMyProto.eof_receivedcCs,|�dd�d|_|jr|j�d�dSdS)Nrr"ZCLOSED)rrrr)r�excr
r
r�connection_lost1s
�zMyProto.connection_lostr)�__name__�
__module__�__qualname__rrrrrr!r$r&r
r
r
rrs
rcs�eZdZdd�Z�fdd�Z�fdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zejd!d"��Zd#d$�Zd%d&�Zd'd(�Zd)d*�Z�ZS)+�BaseSockTestsMixincCst�r)�NotImplementedErrorr#r
r
r�create_event_loop:sz$BaseSockTestsMixin.create_event_loopcs$|��|_|�|j�t���dSr)r,rZset_event_loop�super�setUpr#��	__class__r
rr.=s
zBaseSockTestsMixin.setUpcs4|j��st�|j�|��t��t���dSr)	rZ	is_closed�
test_utilsZrun_brieflyZ
doCleanupsr�
gc_collectr-�tearDownr#r/r
rr3Bs

zBaseSockTestsMixin.tearDowncCs�t|jtj�s�|j�d�|�d�|�t��|j�|j�	||j
��Wd�n1s.wY|�t��|j�|j�|d��Wd�n1sNwY|�t��|j�|j�|d��Wd�n1snwY|�t��|j�|j�
|t���Wd�n1s�wY|�t��|j�|j�|��Wd�n1s�wY|�d�|j�|j�	||j
��|j�|j�|d��|j�|j�|d��}|j�|j�|d��|��|�|�d��dS)NT�GET / HTTP/1.0

�F�HTTP/1.0 200 OK)�
isinstancerrZBaseProactorEventLoopZ	set_debug�setblocking�assertRaises�
ValueError�run_until_complete�sock_connect�address�sock_sendall�	sock_recv�sock_recv_into�	bytearray�sock_accept�close�
assertTrue�
startswith)r�httpd�sockr r
r
r�_basetest_sock_client_opsKsV
��������
��
����z,BaseSockTestsMixin._basetest_sock_client_opsc	Cs�|�d�|j�|j�||j��|j�|j�|d��td�}t|��&}|j�|j�||dd���}|j�|j�|||d���Wd�n1sMwY|�	�|�
|�d��dS)NFr4r5r6)r8rr;r<r=r>rA�
memoryviewr@rCrDrE)rrFrGr �bufrr
r
r�_basetest_sock_recv_intoos$
��
���z+BaseSockTestsMixin._basetest_sock_recv_intocCsVt���}t��}|�||�t��}|�||�Wd�dS1s$wYdSr)r1�run_test_server�socketrHrK�rrFrGr
r
r�test_sock_client_ops�s
"�z'BaseSockTestsMixin.test_sock_client_opsc�s��|�d�|j�||j�IdHt�|j�|d��}t�d�IdH|��t�|j�	|d��|j�|d�IdH}|j�|d�IdH|�
|�d��dS�NFr5rr4r6)r8rr<r=r	�create_taskr?�sleep�cancelr>rDrE)rrFrG�taskr r
r
r�_basetest_sock_recv_racing�s�
�z-BaseSockTestsMixin._basetest_sock_recv_racingc	�s��|�d�|j�||j�IdHtd�}t|��P}t�|j�||dd���}t�	d�IdH|�
�t�|j�|d��}|j�||dd��IdH}|j�|||d��IdH|�|�
d��Wd�n1slwY|IdHdSrP)r8rr<r=rArIr	rQr@rRrSr>rDrE)rrFrGr rJrTrr
r
r�_basetest_sock_recv_into_racing�s$�

���
z2BaseSockTestsMixin._basetest_sock_recv_into_racingc	�sr�|�d�|�d�|�tjtjd�|�d�t��j	�
||����}t�d�IdH|�
�d���d���u|IdHd}|dkrg��t��
	|�d	|�qM1sXwYt|d
�}|dksFt��j	�|d��}t�d�IdH|����fdd
�}t�|��}�j	�|d�IdH|�tj�|IdH}��|�d��Wd�dS1s�wYdS)N�z	127.0.0.1r�r5Fr� �T� �shelloc�s2�d}	�j��d�IdH}|s|S||��7}q)N�TrY)rr?�strip)�rvrJ�rZserverr
r�recv_all�s��z?BaseSockTestsMixin._basetest_sock_send_racing.<locals>.recv_allsworld)�bind�listen�
setsockoptrM�
SOL_SOCKET�	SO_SNDBUFr8r	rQrr<�getsocknamerR�acceptr9�BlockingIOError�send�intr>rS�shutdown�SHUT_WRrD�endswith)r�listenerrGrT�sizerar r
r`r�_basetest_sock_send_racing�sD�


�

����
"�z-BaseSockTestsMixin._basetest_sock_send_racingc�s��|�d�|��}|�d�t�|j�||��}t�d�IdH|��|�	d�d}t
d�D]F}z|j�||�IdHWdStyT}z|}WYd}~q0d}~wtyv}z|}t
|dd�dkrlWYd}~nWYd}~q0d}~ww|�|�dS)	NrWFrrXzMax retries reached��winerrori&')rbrgr8r	rQrr<rRrSrc�range�ConnectionRefusedError�OSError�getattrZskipTest)rrorG�addrrTZskip_reason�i�er
r
r�_basetest_sock_connect_racing�s0�


�����z0BaseSockTestsMixin._basetest_sock_connect_racingc
CsBt���P}t��}|�|j�t�|�||�d��Wd�n1s$wYt��}|�|j�t�|�||�d��Wd�n1sHwYWd�n1sWwYt��}t��}|�1|�|j�t�|�	||�d��Wd�n1s�wYWd�dSWd�dS1s�wYdS�N�
)
r1rLrMrr;r	�wait_forrUrVrq)rrFrGror
r
r�test_sock_client_racings,

��
����	
�P�z*BaseSockTestsMixin.test_sock_client_racingc
Cs�t��}t��}|�1|�|j�t�|�||�d��Wd�n1s&wYWd�dSWd�dS1s>wYdSr|)rMrr;r	r~r{)rrorGr
r
r�test_sock_client_connect_racings
�P�z2BaseSockTestsMixin.test_sock_client_connect_racingc�s��t��}|�d�d}d|d}|j�||�IdH|j�|dd|d�IdHt�|j�||��}|j�||�IdH}|�|�	d��|�
d	�d
krb||j�||�IdH7}|�
d	�d
ksO|d|�d	�d�}|t|�d�}|}t
d�}	tt|	t|���}
|�||
�|t|�8}	|j�||�IdH}|s�ntt|	t|���}
|�||
�|t|�8}q�|�|d
�|IdH|��dS�NFi@Bs
0123456789r}sPOST /loop HTTP/1.0
sContent-Length: %d
s
r6s

���rZTr)rMr8rr<r>r	rQr?rDrE�find�indexrr�bytesr�assertEqualrC)rr=rG�	DATA_SIZE�chunkrTr �headersrp�checkerrr
r
r�_basetest_huge_contentsJ�
��
���
z)BaseSockTestsMixin._basetest_huge_contentcC�Bt���}|j�|�|j��Wd�dS1swYdSr)r1rLrr;r�r=�rrFr
r
r�test_huge_contentC�


�"�z$BaseSockTestsMixin.test_huge_contentc�s��t��}|�d�d}d|d}|j�||�IdH|j�|dd|d�IdHt�|j�||��}t|�}t|�}|j�	||�IdH}t
|d|��}	|�|	�d��|	�
d	�d
krx|j�	||�IdH}t
|d|��}	|	�
d	�d
ks_|	d|	�d	�d�}
|	t|
�d�}	|}td�}t
t|t|	���}
|�|	|
�|t|	�8}	|j�	||�IdH}|d|�}	|	s�nt
t|t|	���}
|�|	|
�|t|	�8}q�|�|d
�|IdH|��dSr�)rMr8rr<r>r	rQrArIr@r�rDrEr�r�rrrr�rC)rr=rGr�r�rT�arrayrJrr r�rpr�rr
r
r�_basetest_huge_content_recvintoHsT�
��
���
z2BaseSockTestsMixin._basetest_huge_content_recvintocCr�r)r1rLrr;r�r=r�r
r
r�test_huge_content_recvintozr�z-BaseSockTestsMixin.test_huge_content_recvintocCs^t���!}t�tj�}|�||�t�tj�}|�||�Wd�dS1s(wYdSr)r1Zrun_test_unix_serverrM�AF_UNIXrHrKrNr
r
r�test_unix_sock_client_opss
"�z,BaseSockTestsMixin.test_unix_sock_client_opscCs�d}zt��}|�d�|��}W|��n|��wt��}|�d�|�t��|j�|j�	||��Wd�n1s?wY|��dS)NrWF)
rMrbrgrCr8r9rurr;r<)rr=�srGr
r
r�test_sock_client_fail�s


��z(BaseSockTestsMixin.test_sock_client_failcCs�t��}|�d�|�d�|�d�t��}|�|���|j�|�}|j�|�\}}|�	|�
�d�|�	||���|�	|��|���|��|��|��dS)NFrWrXr)
rMr8rbrc�connectrgrrBr;r��
gettimeout�getpeernamerC)rro�client�f�connrxr
r
r�test_sock_accept�s


z#BaseSockTestsMixin.test_sock_acceptcCs�t��}|�d�|�d�|�d�|��}t�|j�|�d�}|�	tj
��|j�|�Wd�n1s8wY|��t��}|�d�|j�
||�}|�	t��|j�|�Wd�n1sgwY|��dS)NFrWrXg�������?)rMr8rbrcrgr	r~rrBr9�TimeoutErrorr;rCr<ru)rroZsockaddrr�r�r
r
r�test_cancel_sock_accept�s"


�
�z*BaseSockTestsMixin.test_cancel_sock_acceptc
s t����}d}�j��jj|jdtji��}|D],\}}}}}ztj|||d�}|�d��j��j�	||��Wn	t
yBYqwn��d��jj�fdd�|d�}	�j�|	�\}
}��
|
tj���
|tj��j�|j���|jd�|
��Wd�dS1s�wYdS)	N�type)�familyr��protoFzCan not create socket.cst�jd�S)N)r)rrr
r#r
r�<lambda>�sz@BaseSockTestsMixin.test_create_connection_sock.<locals>.<lambda>)rGr)r1rLrr;�getaddrinfor=rM�SOCK_STREAMr8r<�
BaseExceptionZfail�create_connectionZassertIsInstancer	Z	Transport�ProtocolrZ
assertGreaterrrC)rrFrGZinfosr�r�r�Zcnamer=r��trZprr
r#r�test_create_connection_sock�s>
���
��
�
"�z.BaseSockTestsMixin.test_create_connection_sock)r'r(r)r,r.r3rHrKrOrUrVrqr{rr�r�r�r�r�rZskip_unless_bind_unix_socketr�r�r�r�r��
__classcell__r
r
r/rr*8s.	$7,2
r*�win32c@�eZdZdd�ZdS)�SelectEventLoopTestscC�t��Sr)r	�SelectorEventLoopr#r
r
rr,���&SelectEventLoopTests.create_event_loopN�r'r(r)r,r
r
r
rr���r�c@r�)�ProactorEventLoopTestscCr�r)r	ZProactorEventLoopr#r
r
rr,�r�z(ProactorEventLoopTests.create_event_loopNr�r
r
r
rr��r�r��KqueueSelectorc@r�)�KqueueEventLoopTestscC�t�t���Sr)r	r��	selectorsr�r#r
r
rr,�s�z&KqueueEventLoopTests.create_event_loopNr�r
r
r
rr��r�r��
EpollSelectorc@r�)�EPollEventLoopTestscCr�r)r	r�r�r�r#r
r
rr,�r
z%EPollEventLoopTests.create_event_loopNr�r
r
r
rr��r�r��PollSelectorc@r�)�PollEventLoopTestscCr�r)r	r�r�r�r#r
r
rr,�r
z$PollEventLoopTests.create_event_loopNr�r
r
r
rr��r�r�c@r�)r�cCr�r)r	r�r��SelectSelectorr#r
r
rr,r
r�Nr�r
r
r
rr�r��__main__)rMr	�sysZunittestr�	itertoolsrrZtest.test_asynciorr1�testrZtest.supportrrr�rr*�platformZTestCaser�r�r��hasattrr�r�r�r'�mainr
r
r
r�<module>sR'
$��
�
�
���