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/__pycache__/test_socketserver.cpython-310.pyc
o

�i�G�@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
mZddlmZddlmZddlmZej�d�dZejZeed	�Ze	�ed
�Zeed�Ze	�ed�Zd
d�ZejZejjfdd�Zer�er�Gdd�de
j e
j!�Z"Gdd�de
j e
j#�Z$ej%dd��Z&Gdd�de	j'�Z(Gdd�de	j'�Z)Gdd�de
j*�Z+Gdd�de
j,�Z-Gdd �d e
j.e+�Z/er�Gd!d"�d"e
j e+�Z0Gd#d$�d$e	j'�Z1Gd%d&�d&e	j'�Z2e3d'kr�e	�4�dSdS)(z
Test suite for socketserver.
�N)�
reap_children�verbose)�	os_helper)�
socket_helper)�threading_helperZnetworkshello world
�AF_UNIXzrequires Unix sockets�forkzrequires forkingcCsttd�rt�|�dSdS)z7Call signal.alarm when it exists (i.e. not on Windows).�alarmN)�hasattr�signalr	)�n�r
�3/usr/local/lib/python3.10/test/test_socketserver.py�signal_alarm"s
�rcCs6t|ggg|�\}}}||vr|�|�Std|f��)Nztimed out on %r)�_real_select�recv�RuntimeError)�sockr�timeout�r�w�xr
r
r�receive*s
rc@�eZdZdS)�ForkingUnixStreamServerN��__name__�
__module__�__qualname__r
r
r
rr2�rc@r)�ForkingUnixDatagramServerNrr
r
r
rr 6rr c
csZ�t��}|dkrt�d�zzdVWn�Wtjj|dd�dStjj|dd�w)zBTests that a custom child process is not waited on (Issue 1540386)r�HN)�exitcode)�osr�_exit�test�supportZwait_process)Ztestcase�pidr
r
r�simple_subprocess;s�

�&r(c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zej	d
d��Z
dd
�Zdd�Zdd�Z
dd�Zedd��Zedd��Zedd��Zeedd���Zdd�Zdd�Zed d!��Zed"d#��Zed$d%��Zeed&d'���Zej	d(d)��Zd*d+�Zd,d-�Zd.d/�Zd0S)1�SocketServerTestzTest all socket servers.cCstd�d|_g|_dS)N�<r)rZ	port_seed�
test_files��selfr
r
r�setUpMs
zSocketServerTest.setUpc	CsLtd�t�|jD]}zt�|�Wq
tyYq
wg|jdd�<dS�Nr)rrr+r#�remove�OSError)r-�fnr
r
r�tearDownRs
�zSocketServerTest.tearDowncCs4|tjkr	tdfSd}tjd|d�}|j�|�|S)Nrzunix_socket.)�prefix�dir)�socket�AF_INET�HOST�tempfile�mktempr+�append)r-�protor5r2r
r
r�pickaddr]s
zSocketServerTest.pickaddrc
Cs�Gdd�d|�}Gdd�d|�}trtd�z|||�}Wnty9}z|�d|||f�WYd}~nd}~ww|�|j|j���|S)Nc@�eZdZdd�ZdS)z.SocketServerTest.make_server.<locals>.MyServercSs|�|���N)Z
close_request�r-�request�client_addressr
r
r�handle_errorjs
z;SocketServerTest.make_server.<locals>.MyServer.handle_errorN)rrrrCr
r
r
r�MyServeri�rDc@r>)z/SocketServerTest.make_server.<locals>.MyHandlercSs|j��}|j�|�dSr?)�rfile�readline�wfile�write)r-�liner
r
r�handleos
z6SocketServerTest.make_server.<locals>.MyHandler.handleN�rrrrKr
r
r
r�	MyHandlernrErMzcreating serverz!Cannot create server (%s, %s): %s)r�print�PermissionErrorZskipTest�assertEqual�server_addressr6�getsockname)r-�addr�svrcls�hdlrbaserDrM�server�er
r
r�make_serverhs���zSocketServerTest.make_servercCs�|�|�|j�||�}|j}trtd|�td|�tjd||jddid�}d|_	|�
�tr4td�td	�D]}trAtd
|�||j|�q8trNtd�|��|�
�|��|�d|j���trqt|tj�rq|�|j�trytd
�dSdS)NzADDR =zCLASS =z
%s serving�
poll_interval�{�G�z�?��name�target�kwargsTzserver running�ztest clientzwaiting for server����done)rXr=�address_familyrQrrN�	threading�Thread�
serve_forever�daemon�start�range�shutdown�join�server_closerPr6�fileno�HAVE_FORKING�
isinstance�socketserver�ForkingMixInZassertFalse�active_children)r-rTrUZtestfuncrVrS�t�ir
r
r�
run_server}s4�

�zSocketServerTest.run_servercCs�t�|tj��5}|�|�|�t�t|d�}}|r.d|vr.t|d�}||7}|r.d|vs|�|t�Wd�dS1s?wYdS�N�d�
)r6�SOCK_STREAM�connect�sendall�TEST_STRrrP�r-r<rS�s�buf�datar
r
r�stream_examine�s


�"�zSocketServerTest.stream_examinecCs�t�|tj��@}tr|tjkr|�|�|��|�t|�t|d�}}|r9d|vr9t|d�}||7}|r9d|vs*|�	|t�Wd�dS1sJwYdSru)
r6�
SOCK_DGRAM�HAVE_UNIX_SOCKETSr�bindr=�sendtor{rrPr|r
r
r�
dgram_examine�s
�"�zSocketServerTest.dgram_examinecC�|�tjtj|j�dSr?)rtro�	TCPServer�StreamRequestHandlerr�r,r
r
r�test_TCPServer���zSocketServerTest.test_TCPServercCr�r?)rtroZThreadingTCPServerr�r�r,r
r
r�test_ThreadingTCPServer�r�z(SocketServerTest.test_ThreadingTCPServercC�Bt|��|�tjtj|j�Wd�dS1swYdSr?)r(rtroZForkingTCPServerr�r�r,r
r
r�test_ForkingTCPServer��
�"�z&SocketServerTest.test_ForkingTCPServercCr�r?)rtro�UnixStreamServerr�r�r,r
r
r�test_UnixStreamServer���z&SocketServerTest.test_UnixStreamServercCr�r?)rtroZThreadingUnixStreamServerr�r�r,r
r
r�test_ThreadingUnixStreamServer�r�z/SocketServerTest.test_ThreadingUnixStreamServercCs@t|��|�ttj|j�Wd�dS1swYdSr?)r(rtrror�r�r,r
r
r�test_ForkingUnixStreamServer�s
�"�z-SocketServerTest.test_ForkingUnixStreamServercCr�r?)rtroZ	UDPServer�DatagramRequestHandlerr�r,r
r
r�test_UDPServer�r�zSocketServerTest.test_UDPServercCr�r?)rtroZThreadingUDPServerr�r�r,r
r
r�test_ThreadingUDPServer�r�z(SocketServerTest.test_ThreadingUDPServercCr�r?)r(rtroZForkingUDPServerr�r�r,r
r
r�test_ForkingUDPServer�r�z&SocketServerTest.test_ForkingUDPServercCr�r?)rtro�UnixDatagramServerr�r�r,r
r
r�test_UnixDatagramServer�r�z(SocketServerTest.test_UnixDatagramServercCr�r?)rtroZThreadingUnixDatagramServerr�r�r,r
r
r� test_ThreadingUnixDatagramServer�r�z1SocketServerTest.test_ThreadingUnixDatagramServercCs|�ttj|j�dSr?)rtr ror�r�r,r
r
r�test_ForkingUnixDatagramServer�s�z/SocketServerTest.test_ForkingUnixDatagramServercCs�Gdd�dtj�}Gdd�dtj�}g}td�D]}|tdf|�}tjd|jdd	id
�}d|_|�	||f�q|D]\}}|�
�|��q9|D]\}}|��|�
�qHdS)Nc@r)z0SocketServerTest.test_shutdown.<locals>.MyServerNrr
r
r
rrD�rDc@r)z1SocketServerTest.test_shutdown.<locals>.MyHandlerNrr
r
r
rrMr�rM�rzMyServer servingrYrZr[T)ror�r�rhr8rcrdrerfr;rgrirjrk)r-rDrM�threadsrsr}rrr
r
r�
test_shutdown�s&�

�zSocketServerTest.test_shutdowncCs4Gdd�dtjtj�}|tdfdd��}|��dS)Nc@r)z9SocketServerTest.test_close_immediately.<locals>.MyServerNrr
r
r
rrDr�rDrcS�dSr?r
r
r
r
r�<lambda>sz9SocketServerTest.test_close_immediately.<locals>.<lambda>)ro�ThreadingMixInr�r8rk)r-rDrVr
r
r�test_close_immediatelysz'SocketServerTest.test_close_immediatelyc	CsNtd�D] }|�t��t�tdftj�Wd�n1swYqdS)Nir`)rh�assertRaises�
OverflowErrorror�r8r�)r-rsr
r
r�test_tcpserver_bind_leaks
����z)SocketServerTest.test_tcpserver_bind_leakcCsHt�tdftj��}Wd�n1swY|�d|j���dS)Nrr`)ror�r8r�rPr6rl)r-rVr
r
r�test_context_manager)s
��z%SocketServerTest.test_context_managerN)rrr�__doc__r.r3r=rXrZreap_threadsrtr�r�r�r��requires_forkingr��requires_unix_socketsr�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr)JsJ
"








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.cCst�tj�dSr?)r�unlink�TESTFNr,r
r
rr35szErrorHandlerTest.tearDowncC�tt�|jdd�dS�NT��handled)�BaseErrorTestServer�
ValueError�check_resultr,r
r
r�test_sync_handled8�z"ErrorHandlerTest.test_sync_handledcCsB|�t��tt�Wd�n1swY|jdd�dS�NFr�)r��
SystemExitr�r�r,r
r
r�test_sync_not_handled<s
�z&ErrorHandlerTest.test_sync_not_handledcCr�r�)�ThreadingErrorTestServerr�r�r,r
r
r�test_threading_handledAr�z'ErrorHandlerTest.test_threading_handledcCsPt���}tt�|jdd�|�|jt�Wd�dS1s!wYdSr�)rZcatch_threading_exceptionr�r�r�ZassertIs�exc_type)r-�cmr
r
r�test_threading_not_handledEs

"�z+ErrorHandlerTest.test_threading_not_handledcCr�r�)�ForkingErrorTestServerr�r�r,r
r
r�test_forking_handledL�z%ErrorHandlerTest.test_forking_handledcCr�r�)r�r�r�r,r
r
r�test_forking_not_handledQr�z)ErrorHandlerTest.test_forking_not_handledcCsLttj��}dd|}|�|��|�Wd�dS1swYdS)N�Handler called
�Error handled
)�openrr�rP�read)r-r��log�expectedr
r
rr�Vs"�zErrorHandlerTest.check_resultN)
rrrr�r3r�r�r�r�r�r�r�r�r
r
r
rr�0s

r�cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)r�csp||_t��tdft�t�|j��Wd�n1swYz
|��W|�	�n|�	�w|�
�dSr/)�	exception�super�__init__r8�
BadHandlerr6�create_connectionrQ�handle_requestrk�	wait_done)r-r���	__class__r
rr�]s�
zBaseErrorTestServer.__init__cCs<ttjd��}|�d�Wd�dS1swYdS)N�ar�)r�rr�rI)r-rArBr�r
r
rrChs"�z BaseErrorTestServer.handle_errorcCr�r?r
r,r
r
rr�l�zBaseErrorTestServer.wait_done)rrrr�rCr��
__classcell__r
r
r�rr�\sr�c@r>)r�cCsBttjd��
}|�d�Wd�n1swY|j�d��)Nr�r�z
Test error)r�rr�rIrVr�)r-r�r
r
rrKqs�zBadHandler.handleNrLr
r
r
rr�prEr�cs0eZdZ�fdd�Z�fdd�Zdd�Z�ZS)r�cs t��|_t�j|i|��dSr?)rc�Eventrar�r��r-�pos�kwr�r
rr�ys
z!ThreadingErrorTestServer.__init__cs t�j|i|��|j��dSr?)r��shutdown_requestra�setr�r�r
rr�}sz)ThreadingErrorTestServer.shutdown_requestcCs|j��dSr?)ra�waitr,r
r
rr��sz"ThreadingErrorTestServer.wait_done)rrrr�r�r�r�r
r
r�rr�wsr�c@r)r�Nrr
r
r
rr��r�r�c@seZdZdd�Zdd�ZdS)�SocketWriterTestcCs�Gdd�dtj�}t�tdf|�}|�|j�t�|jtjtj	�}|�|�
|j�Wd�n1s4wY|��|�
|jtj�|�|j|j�dS)Nc@r>)z-SocketWriterTest.test_basics.<locals>.HandlercSs*|j|j_|j��|j_|j��|j_dSr?)rHrVrl�wfile_filenorA�request_filenor,r
r
rrK�s
z4SocketWriterTest.test_basics.<locals>.Handler.handleNrLr
r
r
r�Handler�rEr�r)ror�r�r8�
addCleanuprkr6rbrx�IPPROTO_TCPryrQr�ZassertIsInstancerH�io�BufferedIOBaserPr�r�)r-r�rVr}r
r
r�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@r>)z,SocketWriterTest.test_write.<locals>.HandlercSs>|j�d�|j_|j��|j_dtjj	}|j�|�|j_
dS)N�write data
�)rHrIrV�sent1rFrG�receivedr%r&�
SOCK_MAX_SIZE�sent2)r-Z	big_chunkr
r
rrK�sz3SocketWriterTest.test_write.<locals>.Handler.handleNrLr
r
r
rr��rEr�rcs���dSr?)r�)�signum�frame)�interruptedr
r�signal_handler�sz3SocketWriterTest.test_write.<locals>.signal_handlerc	s�t��jtjtj�}|�Q|�d��3}|��j�|���|�d�|�	d�	��t
j��jt
d�d�r7nq(t|�	���Wd�n1sHwYWd�dSWd�dS1s`wYdS)N�rb�client response
rvT�)r)r6rbrxr��makefileryrQrGrzr�r�SIGUSR1r��float�len)r}�reader�r��main_threadr�Z	received2Z	response1rVr
r�
run_client�s�

�P�z/SocketWriterTest.test_write.<locals>.run_client)r]r�r�rv)r%r&Z
get_attributerror�r�r8r�rkrcr�r��	get_identrdrgr�rjrPr�r�r�r�r�)r-r�r�Zoriginalr�Z
backgroundr
r�r�
test_write�s*zSocketWriterTest.test_writeN)rrrr�r�r
r
r
rr��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�MiscTestCasecCsRg}tt�D]}|�d�stt|�}t|dd�dkr|�|�q|�tj|�dS)N�_rro)r5ro�
startswith�getattrr;ZassertCountEqual�__all__)r-r�r\Z
mod_objectr
r
r�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)NFr
r@r
r
r�verify_request�r�zbMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.verify_requestrcSs |jd7_tj�||�dS)Nr�)�shutdown_calledror�r�)r-rAr
r
rr��szdMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.shutdown_requestN)rrrrrr�r
r
r
rrD�srDrr�)ror�r8r�r6rbrxryrQ�closer�rPrrk)r-rDrVr}r
r
r�4test_shutdown_request_called_if_verify_request_false�s	zAMiscTestCase.test_shutdown_request_called_if_verify_request_falsec	Cs�Gdd�dtjtj�}|tdftj�}td�D]}t�|j��|�	�Wd�n1s.wYq|�
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@r)z2MiscTestCase.test_threads_reaped.<locals>.MyServerNrr
r
r
rrD�r�rDr�
N)ror�r�r8r�rhr6r�rQr�Z
assertLessr�Z_threadsrk)r-rDrVrr
r
r�test_threads_reaped�s
��z MiscTestCase.test_threads_reapedN)rrrrrrr
r
r
rr��s
r��__main__)5r��
contextlibr�r#�selectrr6r9rcZunittestroZtest.supportr%rrrrrr&Zrequiresr{r8r
r�Z
skipUnlessr�rmr�rrZ
SHORT_TIMEOUTrrpr�rr�r �contextmanagerr(ZTestCaser)r�r�r�ZBaseRequestHandlerr�r�r�r�r�r�r�mainr
r
r
r�<module>sh
�
��
g,�M2�