Your IP : 216.73.217.129


Current Path : /opt/alt/python38/lib64/python3.8/test/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/__pycache__/test_socketserver.cpython-38.pyc

U

i�f�F�@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
mZmZej�d�dZejjZeed�Ze	�ed�Zeed�Ze	�ed	�Zd
d�ZejZd&d
d�Ze�re�rGdd�de
je
j�ZGdd�de
je
j �Z!ej"dd��Z#Gdd�de	j$�Z%Gdd�de	j$�Z&Gdd�de
j'�Z(Gdd�de
j)�Z*Gdd�de
j+e(�Z,e�r�Gdd �d e
je(�Z-Gd!d"�d"e	j$�Z.Gd#d$�d$e	j$�Z/e0d%k�r�e	�1�dS)'z
Test suite for socketserver.
�N)�
reap_children�reap_threads�verboseZnetworkshello world
�AF_UNIXzrequires Unix sockets�forkzrequires forkingcCsttd�rt�|�dS)z7Call signal.alarm when it exists (i.e. not on Windows).�alarmN)�hasattr�signalr)�n�r�;/opt/alt/python38/lib64/python3.8/test/test_socketserver.py�signal_alarms
r
�cCs:t|ggg|�\}}}||kr(|�|�Std|f��dS)Nztimed out on %r)�_real_selectZrecv�RuntimeError)Zsockr
�timeout�r�w�xrrr�receive's
rc@seZdZdS)�ForkingUnixStreamServerN��__name__�
__module__�__qualname__rrrrr/src@seZdZdS)�ForkingUnixDatagramServerNrrrrrr3src
csht��}|dkrt�d�zz
dVWn�YnXW5t�|d�\}}|�||�|�d|�XdS)zBTests that a custom child process is not waited on (Issue 1540386)r�HiHN)�osr�_exit�waitpid�assertEqual)Ztestcase�pidZpid2Zstatusrrr�simple_subprocess8s

r"c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zed
d��Z	dd
�Z
dd�Zdd�Zdd�Z
edd��Zedd��Zedd��Zeedd���Zdd�Zdd�Zed d!��Zed"d#��Zed$d%��Zeed&d'���Zed(d)��Zd*d+�Zd,d-�Zd.d/�Zd0S)1�SocketServerTestzTest all socket servers.cCstd�d|_g|_dS)N�<r)r
Z	port_seed�
test_files��selfrrr�setUpLszSocketServerTest.setUpc	CsPtd�t�|jD](}zt�|�Wqtk
r:YqXqg|jdd�<dS�Nr)r
rr%r�remove�OSError)r'�fnrrr�tearDownQs
zSocketServerTest.tearDowncCs8|tjkrtdfSd}tjd|d�}|j�|�|SdS)Nrzunix_socket.)�prefix�dir)�socketZAF_INET�HOST�tempfileZmktempr%�append)r'�protor/r,rrr�pickaddr\s
zSocketServerTest.pickaddrc
Cs�Gdd�d|�}Gdd�d|�}tr,td�z|||�}Wn6tk
rp}z|�d|||f�W5d}~XYnX|�|j|j���|S)Nc@seZdZdd�ZdS)z.SocketServerTest.make_server.<locals>.MyServercSs|�|��dS�N)Z
close_request�r'�request�client_addressrrr�handle_erroris
z;SocketServerTest.make_server.<locals>.MyServer.handle_errorN)rrrr:rrrr�MyServerhsr;c@seZdZdd�ZdS)z/SocketServerTest.make_server.<locals>.MyHandlercSs|j��}|j�|�dSr6)�rfile�readline�wfile�write)r'�linerrr�handlens
z6SocketServerTest.make_server.<locals>.MyHandler.handleN�rrrrArrrr�	MyHandlermsrCzcreating serverz!Cannot create server (%s, %s): %s)r�print�PermissionErrorZskipTestr �server_addressr0Zgetsockname)r'�addr�svrcls�hdlrbaser;rC�server�errr�make_servergs�zSocketServerTest.make_servercCs�|�|�|j�||�}|j}tr4td|�td|�tjd||jddid�}d|_	|�
�trhtd�td	�D]}tr�td
|�||j|�qptr�td�|��|�
�|��|�d|j���tr�t|tj�r�|�|j�tr�td
�dS)NzADDR =zCLASS =z
%s serving�
poll_interval�{�G�z�?��name�target�kwargsTzserver running�ztest clientzwaiting for server����done)rLr5�address_familyrFrrD�	threading�Thread�
serve_forever�daemon�start�range�shutdown�join�server_closer r0�fileno�HAVE_FORKING�
isinstance�socketserver�ForkingMixInZassertFalseZactive_children)r'rHrIZtestfuncrJrG�t�irrr�
run_server|s>�

�
zSocketServerTest.run_serverc	Cslt�|tj��T}|�|�|�t�t|d�}}|rRd|krRt|d�}||7}q2|�|t�W5QRXdS�N�d�
)r0�SOCK_STREAM�connect�sendall�TEST_STRrr �r'r4rG�sZbuf�datarrr�stream_examine�s



zSocketServerTest.stream_examinec	Cs�t�|tj��j}tr.|tjkr.|�|�|��|�t|�t|d�}}|rhd|krht|d�}||7}qH|�	|t�W5QRXdSrh)
r0Z
SOCK_DGRAM�HAVE_UNIX_SOCKETSrZbindr5Zsendtornrr rorrr�
dgram_examine�s

zSocketServerTest.dgram_examinecCs|�tjtj|j�dSr6)rgrc�	TCPServer�StreamRequestHandlerrrr&rrr�test_TCPServer�s�zSocketServerTest.test_TCPServercCs|�tjtj|j�dSr6)rgrcZThreadingTCPServerrvrrr&rrr�test_ThreadingTCPServer�s�z(SocketServerTest.test_ThreadingTCPServerc	Cs,t|��|�tjtj|j�W5QRXdSr6)r"rgrcZForkingTCPServerrvrrr&rrr�test_ForkingTCPServer�s

�z&SocketServerTest.test_ForkingTCPServercCs|�tjtj|j�dSr6)rgrc�UnixStreamServerrvrrr&rrr�test_UnixStreamServer�s�z&SocketServerTest.test_UnixStreamServercCs|�tjtj|j�dSr6)rgrcZThreadingUnixStreamServerrvrrr&rrr�test_ThreadingUnixStreamServer�s�z/SocketServerTest.test_ThreadingUnixStreamServerc	Cs*t|��|�ttj|j�W5QRXdSr6)r"rgrrcrvrrr&rrr�test_ForkingUnixStreamServer�s

�z-SocketServerTest.test_ForkingUnixStreamServercCs|�tjtj|j�dSr6)rgrcZ	UDPServer�DatagramRequestHandlerrtr&rrr�test_UDPServer�s�zSocketServerTest.test_UDPServercCs|�tjtj|j�dSr6)rgrcZThreadingUDPServerr~rtr&rrr�test_ThreadingUDPServer�s�z(SocketServerTest.test_ThreadingUDPServerc	Cs,t|��|�tjtj|j�W5QRXdSr6)r"rgrcZForkingUDPServerr~rtr&rrr�test_ForkingUDPServer�s

�z&SocketServerTest.test_ForkingUDPServercCs|�tjtj|j�dSr6)rgrc�UnixDatagramServerr~rtr&rrr�test_UnixDatagramServer�s�z(SocketServerTest.test_UnixDatagramServercCs|�tjtj|j�dSr6)rgrcZThreadingUnixDatagramServerr~rtr&rrr� test_ThreadingUnixDatagramServer�s�z1SocketServerTest.test_ThreadingUnixDatagramServercCs|�ttj|j�dSr6)rgrrcr~rtr&rrr�test_ForkingUnixDatagramServer�s�z/SocketServerTest.test_ForkingUnixDatagramServercCs�Gdd�dtj�}Gdd�dtj�}g}td�D]<}|tdf|�}tjd|jdd	id
�}d|_|�	||f�q0|D]\}}|�
�|��qr|D]\}}|��|�
�q�dS)Nc@seZdZdS)z0SocketServerTest.test_shutdown.<locals>.MyServerNrrrrrr;sr;c@seZdZdS)z1SocketServerTest.test_shutdown.<locals>.MyHandlerNrrrrrrCsrCrrzMyServer servingrMrNrOT)rcrurvr\r1rWrXrYrZr3r[r]r^r_)r'r;rCZthreadsrfrprerrr�
test_shutdown�s$�
zSocketServerTest.test_shutdowncCs4Gdd�dtjtj�}|tdfdd��}|��dS)Nc@seZdZdS)z9SocketServerTest.test_close_immediately.<locals>.MyServerNrrrrrr;sr;rcSsdSr6rrrrr�<lambda>�z9SocketServerTest.test_close_immediately.<locals>.<lambda>)rc�ThreadingMixInrur1r_)r'r;rJrrr�test_close_immediatelysz'SocketServerTest.test_close_immediatelyc
Cs:td�D],}|�t��t�tdftj�W5QRXqdS)NirT)r\�assertRaises�
OverflowErrorrcrur1rv)r'rfrrr�test_tcpserver_bind_leaks

�z)SocketServerTest.test_tcpserver_bind_leakc	Cs4t�tdftj��}W5QRX|�d|j���dS)NrrT)rcrur1rvr r0r`)r'rJrrr�test_context_manager(s
�
z%SocketServerTest.test_context_managerN)rrr�__doc__r(r-r5rLrrgrrrtrwrx�requires_forkingry�requires_unix_socketsr{r|r}rr�r�r�r�r�r�r�r�r�rrrrr#IsH
"








r#c@sXeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Ze	dd
��Z
e	dd��Zdd�ZdS)�ErrorHandlerTestz�Test that the servers pass normal exceptions from the handler to
    handle_error(), and that exiting exceptions like SystemExit and
    KeyboardInterrupt are not passed.cCstj�tjj�dSr6)�test�support�unlink�TESTFNr&rrrr-4szErrorHandlerTest.tearDowncCstt�|jdd�dS�NT��handled)�BaseErrorTestServer�
ValueError�check_resultr&rrr�test_sync_handled7sz"ErrorHandlerTest.test_sync_handledc	Cs.|�t��tt�W5QRX|jdd�dS�NFr�)r��
SystemExitr�r�r&rrr�test_sync_not_handled;sz&ErrorHandlerTest.test_sync_not_handledcCstt�|jdd�dSr�)�ThreadingErrorTestServerr�r�r&rrr�test_threading_handled@sz'ErrorHandlerTest.test_threading_handledcCstt�|jdd�dSr�)r�r�r�r&rrr�test_threading_not_handledDsz+ErrorHandlerTest.test_threading_not_handledcCstt�|jdd�dSr�)�ForkingErrorTestServerr�r�r&rrr�test_forking_handledHsz%ErrorHandlerTest.test_forking_handledcCstt�|jdd�dSr�)r�r�r�r&rrr�test_forking_not_handledMsz)ErrorHandlerTest.test_forking_not_handledc	Cs8ttjj��"}dd|}|�|��|�W5QRXdS)N�Handler called
�Error handled
)�openr�r�r�r �read)r'r��log�expectedrrrr�RszErrorHandlerTest.check_resultN)
rrrr�r-r�r�r�r�r�r�r�r�rrrrr�/s

r�cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)r�c	sT||_t��tdft�t�|j��W5QRXz|�	�W5|��X|�
�dSr))�	exception�super�__init__r1�
BadHandlerr0�create_connectionrFr_�handle_request�	wait_done)r'r���	__class__rrr�Ys

zBaseErrorTestServer.__init__c	Cs(ttjjd��}|�d�W5QRXdS)N�ar�)r�r�r�r�r?)r'r8r9r�rrrr:dsz BaseErrorTestServer.handle_errorcCsdSr6rr&rrrr�hszBaseErrorTestServer.wait_done)rrrr�r:r��
__classcell__rrr�rr�Xsr�c@seZdZdd�ZdS)r�c	Cs4ttjjd��}|�d�W5QRX|j�d��dS)Nr�r�z
Test error)r�r�r�r�r?rJr�)r'r�rrrrAmszBadHandler.handleNrBrrrrr�lsr�cs0eZdZ�fdd�Z�fdd�Zdd�Z�ZS)r�cst��|_t�j||�dSr6)rW�EventrUr�r��r'�pos�kwr�rrr�us
z!ThreadingErrorTestServer.__init__cst�j||�|j��dSr6)r��shutdown_requestrU�setr�r�rrr�ysz)ThreadingErrorTestServer.shutdown_requestcCs|j��dSr6)rU�waitr&rrrr�}sz"ThreadingErrorTestServer.wait_done)rrrr�r�r�r�rrr�rr�ssr�c@seZdZdS)r�Nrrrrrr��sr�c@seZdZdd�Zdd�ZdS)�SocketWriterTestc	Cs�Gdd�dtj�}t�tdf|�}|�|j�t�|jtjtj	�}|�|�
|j�W5QRX|��|�
|jtj�|�|j|j�dS)Nc@seZdZdd�ZdS)z-SocketWriterTest.test_basics.<locals>.HandlercSs*|j|j_|j��|j_|j��|j_dSr6)r>rJr`�wfile_filenor8�request_filenor&rrrrA�s
z4SocketWriterTest.test_basics.<locals>.Handler.handleNrBrrrr�Handler�sr�r)rcrvrur1�
addCleanupr_r0rVrk�IPPROTO_TCPrlrFr�ZassertIsInstancer>�io�BufferedIOBaser r�r�)r'r�rJrprrr�test_basics�s�zSocketWriterTest.test_basicscstj�td��Gdd�dtj�}t�tdf|��|��j	�t
����fdd�}t�tj|�}|�tjtj|�d�d�t
�
��������fdd�}t
j|d	�}|�����|��|��jt���|��d
�|��jd�|��jtjj�|��tjjd�dS)
N�pthread_killc@seZdZdd�ZdS)z,SocketWriterTest.test_write.<locals>.HandlercSs>|j�d�|j_|j��|j_dtjj	}|j�|�|j_
dS)N�write data
�)r>r?rJ�sent1r<r=�receivedr�r��
SOCK_MAX_SIZE�sent2)r'Z	big_chunkrrrrA�sz3SocketWriterTest.test_write.<locals>.Handler.handleNrBrrrrr��sr�rcs���dSr6)r�)Zsignum�frame)�interruptedrr�signal_handler�sz3SocketWriterTest.test_write.<locals>.signal_handlerc
s�t��jtjtj�}|�p|�d��Z}|��j�|���|�d�|�	d���t
j��jt
d�d�rNqnqNt|�	���W5QRXW5QRXdS)N�rb�client response
ri�)r)r0rVrkr�ZmakefilerlrFr=rmr�r	�SIGUSR1r��float�len)rp�reader�r�Zmain_threadr�Z	received2Z	response1rJrr�
run_client�s�

z/SocketWriterTest.test_write.<locals>.run_client)rQr�r�ri)r�r�Z
get_attributer	rcrvrur1r�r_rWr�r��	get_identrXr[r�r^r r�r�r�r�r�)r'r�r�Zoriginalr�Z
backgroundrr�r�
test_write�s*zSocketWriterTest.test_writeN)rrrr�r�rrrrr��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�MiscTestCasecCsRg}tt�D]2}|�d�stt|�}t|dd�dkr|�|�q|�tj|�dS)N�_rrc)r/rc�
startswith�getattrr3ZassertCountEqual�__all__)r'r�rPZ
mod_objectrrr�test_all�s

zMiscTestCase.test_allcCshGdd�dtj�}|tdftj�}t�|jtj�}|�|j�|�	�|�
�|�|jd�|�
�dS)Nc@s eZdZdd�ZdZdd�ZdS)zSMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServercSsdS)NFrr7rrr�verify_request�szbMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.verify_requestrcSs |jd7_tj�||�dS)Nr�)�shutdown_calledrcrur�)r'r8rrrr��szdMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.shutdown_requestN)rrrr�r�r�rrrrr;�sr;rr�)rcrur1rvr0rVrkrlrF�closer�r r�r_)r'r;rJrprrr�4test_shutdown_request_called_if_verify_request_false�s	zAMiscTestCase.test_shutdown_request_called_if_verify_request_falsec
CsrGdd�dtjtj�}|tdftj�}td�D]$}t�|j��|�	�W5QRXq.|�
t|j�d�|�
�dS)z�
        In #37193, users reported a memory leak
        due to the saving of every request thread. Ensure that
        not all threads are kept forever.
        c@seZdZdS)z2MiscTestCase.test_threads_reaped.<locals>.MyServerNrrrrrr;�sr;r�
N)rcr�rur1rvr\r0r�rFr�Z
assertLessr�Z_threadsr_)r'r;rJr
rrr�test_threads_reaped�sz MiscTestCase.test_threads_reapedN)rrrr�r�r�rrrrr��s
r��__main__)r)2r��
contextlibr�rZselectr	r0r2rWZunittestrcZtest.supportr�rrrr�Zrequiresrnr1rrsZ
skipUnlessr�rar�r
rrrdrzrr�r�contextmanagerr"ZTestCaser#r�rur�ZBaseRequestHandlerr�r�r�r�r�r�r�mainrrrr�<module>s^
�

��
g)�M2