Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_socketserver.cpython-312.pyc

�

'Μg�E����dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Zddl
mZm
Z
ddl
mZddl
mZddl
mZej"j%d�ej"j'd�	�d
Zej*Zeed�Zej0ed�Zej"j4Zej0ed
�ZejZej"j<fd�Zej"jA�ejBd���Z"Gd�dejF�Z$Gd�dejF�Z%Gd�de	jL�Z'Gd�de	jP�Z)Gd�de	jTe'�Z+erGd�de	jXe'�Z-Gd�dejF�Z.Gd�dejF�Z/e0d k(rejb�yy)!z
Test suite for socketserver.
�N)�
reap_children�verbose)�	os_helper)�
socket_helper)�threading_helper�networkT)�moduleshello world
�AF_UNIXzrequires Unix socketszrequires forkingc�n�t|ggg|�\}}}||vr|j|�Std|����)Nz
timed out on )�_real_select�recv�RuntimeError)�sock�n�timeout�r�w�xs      �3/usr/local/lib/python3.12/test/test_socketserver.py�receiver&s=���D�6�2�r�7�3�G�A�q�!��q�y��y�y��|����6�7�7�c#�K�tj�}|dk(rtjd�	d��	tjj|d��y#�xYw#tjj|d��wxYw�w)zBTests that a custom child process is not waited on (Issue 1540386)r�HN)�exitcode)�os�fork�_exit�test�support�wait_process)�testcase�pids  r�simple_subprocessr#.si����
�'�'�)�C�
�a�x�
�����4��
�	
���!�!�#��!�3���
�����!�!�#��!�3�s'�/B�A�"B�A�A�#B�Bc�:�eZdZdZd�Zd�Zd�Zd�Zejd��Z
d�Zd�Zd	�Z
d
�Zed��Zed��Zed
��Zeed���Zd�Zd�Zed��Zed��Zed��Zeed���Zejd��Zd�Zd�Zd�Zy)�SocketServerTestzTest all socket servers.c� �d|_g|_y�Nr)�	port_seed�
test_files��selfs r�setUpzSocketServerTest.setUpAs�������rc��t�|jD]}	tj|��g|jddy#t$rY�6wxYw�N)rr)r�remove�OSError)r+�fns  r�tearDownzSocketServerTest.tearDownEsI�����/�/�B�
��	�	�"�
�"�
 ��������
��
�s�A�	A�
Ac��|tjk(rtdfStj�}|j
j
|�|Sr')�socket�AF_INET�HOSTr�create_unix_domain_namer)�append)r+�protor1s   r�pickaddrzSocketServerTest.pickaddrOs?���F�N�N�"��!�9���6�6�8�B��O�O�"�"�2�&��Irc	�0�Gd�d|�}Gd�d|�}trtd�	|||�}|j	j
|jj��|S#t$r$}|jd|�d|�d|���Yd}~�^d}~wwxYw)	Nc��eZdZd�Zy)�.SocketServerTest.make_server.<locals>.MyServerc�&�|j|��r.)�
close_request�r+�request�client_addresss   r�handle_errorz;SocketServerTest.make_server.<locals>.MyServer.handle_error[s���"�"�7�+�rN)�__name__�
__module__�__qualname__rC�rr�MyServerr=Zs��
rrHc��eZdZd�Zy)�/SocketServerTest.make_server.<locals>.MyHandlerc�n�|jj�}|jj|�yr.)�rfile�readline�wfile�write)r+�lines  r�handlez6SocketServerTest.make_server.<locals>.MyHandler.handle`s&���z�z�*�*�,���
�
� � ��&rN�rDrErFrQrGrr�	MyHandlerrJ_s��
'rrSzcreating serverzCannot create server (z, z): )r�print�PermissionError�skipTest�assertEqual�server_addressr4�getsockname)r+�addr�svrcls�hdlrbaserHrS�server�es        r�make_serverzSocketServerTest.make_serverYs���	�v�	�
	'��	'�
�E�+�,�	-��d�I�.�F�
	
����.�.��
�
�0I�0I�0K�L��
���	-��M�M�!�4��,�
-�
-��	-�s�	A(�(	B�1B�Bc�(�|j|j|j�||�}|j}trtd|�td|�t
jd|z|jddi��}d|_	|j�trtd�td	�D]'}trtd
|�||j|��)trtd�|j�|j�|j�|jd|j j#��t$r5t'|t(j*�r|j-|j.�trtd
�yy)NzADDR =zCLASS =z
%s serving�
poll_interval�{�G�z�?��name�target�kwargsTzserver running�ztest clientzwaiting for server����done)r_r:�address_familyrXrrT�	threading�Thread�
serve_forever�daemon�start�range�shutdown�join�server_closerWr4�fileno�HAVE_FORKING�
isinstance�socketserver�ForkingMixIn�assertFalse�active_children)r+r[r\�testfuncr]rZ�t�is        r�
run_serverzSocketServerTest.run_serverns:���!�!�$�-�-��0E�0E�"F�"(�(�4���$�$����(�D�!��)�V�$������&��'�'�$�D�)�

+�����	���	��E�*�+��q��A���m�Q�/��V�*�*�D�1���E�.�/�����	������������V�]�]�1�1�3�4��J�v�|�/H�/H�I�
���V�3�3�4��E�&�M�7rc�F�tj|tj�5}|j|�|jt�t|d�x}}|rd|vrt|d�}||z
}|rd|vr�|j
|t�ddd�y#1swYyxYw�N�d�
)r4�SOCK_STREAM�connect�sendall�TEST_STRrrW�r+r9rZ�s�buf�datas      r�stream_examinezSocketServerTest.stream_examine�s���
�]�]�5�&�"4�"4�
5��
�I�I�d�O�
�I�I�h�� ��C��(�C�$��5��+��q�#����t����5��+�
���S�(�+�6�
5�
5�s�AB�8B�B c��tj|tj�5}tr3|tjk(r |j	|j|��|j
t|�t|d�x}}|rd|vrt|d�}||z
}|rd|vr�|j|t�ddd�y#1swYyxYwr�)
r4�
SOCK_DGRAM�HAVE_UNIX_SOCKETSr
�bindr:�sendtor�rrWr�s      r�
dgram_examinezSocketServerTest.dgram_examine�s���
�]�]�5�&�"3�"3�
4�� �U�f�n�n�%<����t�}�}�U�+�,�
�H�H�X�t�$� ��C��(�C�$��5��+��q�#����t����5��+�
���S�(�+�5�
4�
4�s�A;C�!C�C	c�v�|jtjtj|j�yr.)r~rw�	TCPServer�StreamRequestHandlerr�r*s r�test_TCPServerzSocketServerTest.test_TCPServer�s(������.�.�$�9�9��+�+�	-rc�v�|jtjtj|j�yr.)r~rw�ThreadingTCPServerr�r�r*s r�test_ThreadingTCPServerz(SocketServerTest.test_ThreadingTCPServer�s(������7�7�$�9�9��+�+�	-rc��t|�5|jtjtj|j
�ddd�y#1swYyxYwr.)r#r~rw�ForkingTCPServerr�r�r*s r�test_ForkingTCPServerz&SocketServerTest.test_ForkingTCPServer�s<��
�t�
$��O�O�L�9�9�(�=�=� �/�/�
1�%�
$�
$���:A�Ac�v�|jtjtj|j�yr.)r~rw�UnixStreamServerr�r�r*s r�test_UnixStreamServerz&SocketServerTest.test_UnixStreamServer�s(������5�5�$�9�9��+�+�	-rc�v�|jtjtj|j�yr.)r~rw�ThreadingUnixStreamServerr�r�r*s r�test_ThreadingUnixStreamServerz/SocketServerTest.test_ThreadingUnixStreamServer�s(������>�>�$�9�9��+�+�	-rc��t|�5|jtjtj|j
�ddd�y#1swYyxYwr.)r#r~rw�ForkingUnixStreamServerr�r�r*s r�test_ForkingUnixStreamServerz-SocketServerTest.test_ForkingUnixStreamServer�s>���t�
$��O�O�L�@�@�(�=�=� �/�/�
1�%�
$�
$�r�c�v�|jtjtj|j�yr.)r~rw�	UDPServer�DatagramRequestHandlerr�r*s r�test_UDPServerzSocketServerTest.test_UDPServer�s(������.�.�$�;�;��*�*�	,rc�v�|jtjtj|j�yr.)r~rw�ThreadingUDPServerr�r�r*s r�test_ThreadingUDPServerz(SocketServerTest.test_ThreadingUDPServer�s(������7�7�$�;�;��*�*�	,rc��t|�5|jtjtj|j
�ddd�y#1swYyxYwr.)r#r~rw�ForkingUDPServerr�r�r*s r�test_ForkingUDPServerz&SocketServerTest.test_ForkingUDPServer�s<��
�t�
$��O�O�L�9�9�(�?�?� �.�.�
0�%�
$�
$�r�c�v�|jtjtj|j�yr.)r~rw�UnixDatagramServerr�r�r*s r�test_UnixDatagramServerz(SocketServerTest.test_UnixDatagramServer�s(������7�7�$�;�;��*�*�	,rc�v�|jtjtj|j�yr.)r~rw�ThreadingUnixDatagramServerr�r�r*s r� test_ThreadingUnixDatagramServerz1SocketServerTest.test_ThreadingUnixDatagramServer�s(������@�@�$�;�;��*�*�	,rc�v�|jtjtj|j�yr.)r~rw�ForkingUnixDatagramServerr�r�r*s r�test_ForkingUnixDatagramServerz/SocketServerTest.test_ForkingUnixDatagramServer�s*��	
����>�>�$�;�;��*�*�	,rc���Gd�dtj�}Gd�dtj�}g}td�D]O}|tdf|�}tjd|jdd	i�
�}d|_|j||f��Q|D]%\}}|j�|j��'|D]%\}}|j�|j��'y)Nc��eZdZy)�0SocketServerTest.test_shutdown.<locals>.MyServerN�rDrErFrGrrrHr�����rrHc��eZdZy)�1SocketServerTest.test_shutdown.<locals>.MyHandlerNr�rGrrrSr��r�rrS�rzMyServer servingrarbrcT)rwr�r�rpr6rkrlrmrnr8rorqrrrs)r+rHrS�threadsr}r�r|s       r�
test_shutdownzSocketServerTest.test_shutdown�s���	�|�-�-�	�	��9�9�	����r��A��$���I�.�A�� � �'����'��-�/�A��A�H��N�N�A�q�6�"���D�A�q�
�G�G�I�
�J�J�L���D�A�q�
�F�F�H�
�N�N��rc��Gd�dtjtj�}|tdfd��}|j	�y)Nc��eZdZy)�9SocketServerTest.test_close_immediately.<locals>.MyServerNr�rGrrrHr�
r�rrHrc��yr.rGrGrr�<lambda>z9SocketServerTest.test_close_immediately.<locals>.<lambda>
s��Tr)rw�ThreadingMixInr�r6rs)r+rHr]s   r�test_close_immediatelyz'SocketServerTest.test_close_immediately	s:��	�|�2�2�L�4J�4J�	��4��)�\�2�����rc���td�D]J}|jt�5tjt
dftj�ddd��Ly#1swY�WxYw)Nirh)rp�assertRaises�
OverflowErrorrwr�r6r�)r+r}s  r�test_tcpserver_bind_leakz)SocketServerTest.test_tcpserver_bind_leaksM��
�t��A��"�"�=�1��&�&��b�z�'3�'H�'H�J�2�1��1�1�s�+A�A#	c���tjtdftj�5}	ddd�|j	dj
j
��y#1swY�4xYw)Nrrh)rwr�r6r�rWr4rt)r+r]s  r�test_context_managerz%SocketServerTest.test_context_managersX��
�
#�
#�T�1�I�$0�$E�$E�G�JP��G�	
����V�]�]�1�1�3�4�G�G�s�A � A)N)rDrErF�__doc__r,r2r:r_r�reap_threadsr~r�r�r�r��requires_forkingr��requires_unix_socketsr�r�r�r�r�r�r�r�r�r�r�r�r�rGrrr%r%>s,��"�� ���*�"�"� "�#� "�D,�	,�-�
-�
�1��1��-��-�
�-��-�
��1���1�,�
,�
�0��0��,��,�
�,��,�
��,���,�
�"�"��#��2�J�5rr%c�T�eZdZdZd�Zd�Zd�Zd�Zd�Ze	d��Z
e	d��Zd	�Zy
)�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.c�J�tjtj�yr.)r�unlink�TESTFNr*s rr2zErrorHandlerTest.tearDown&s������)�)�*rc�F�tt�|jd��y�NT��handled)�BaseErrorTestServer�
ValueError�check_resultr*s r�test_sync_handledz"ErrorHandlerTest.test_sync_handled)s���J�'����$��'rc��|jt�5tt�ddd�|jd��y#1swY�xYw�NFr�)r��
SystemExitr�r�r*s r�test_sync_not_handledz&ErrorHandlerTest.test_sync_not_handled-s7��
�
�
�z�
*��
�+�+����%��(�+�
*�s�A�A
c�F�tt�|jd��yr�)�ThreadingErrorTestServerr�r�r*s r�test_threading_handledz'ErrorHandlerTest.test_threading_handled2s�� ��,����$��'rc���tj�5}tt�|j	d��|j|jt�ddd�y#1swYyxYwr�)r�catch_threading_exceptionr�r�r��assertIs�exc_type)r+�cms  r�test_threading_not_handledz+ErrorHandlerTest.test_threading_not_handled6sG��
�
7�
7�
9�R�$�Z�0����e��,��M�M�"�+�+�z�2�	:�
9�
9�s�AA � A)c�F�tt�|jd��yr�)�ForkingErrorTestServerr�r�r*s r�test_forking_handledz%ErrorHandlerTest.test_forking_handled=s���z�*����$��'rc�F�tt�|jd��yr�)r�r�r�r*s r�test_forking_not_handledz)ErrorHandlerTest.test_forking_not_handledBs���z�*����%��(rc��ttj�5}dd|zz}|j|j	�|�ddd�y#1swYyxYw)N�Handler called
�Error handled
)�openrr�rW�read)r+r��log�expecteds    rr�zErrorHandlerTest.check_resultGsD��
�)�"�"�
#�s�)�,=��,G�G�H����S�X�X�Z��2�$�
#�
#�s�)A�AN)
rDrErFr�r2r�r�r�r�r�r�r�r�rGrrr�r�!sM��)�+�(�)�
(�3��(��(��)��)�3rr�c�*��eZdZ�fd�Zd�Zd�Z�xZS)r�c�>��||_t�|�	tdft�tj|j�5	ddd�	|j�|j�|j�y#1swY�;xYw#|j�wxYwr')�	exception�super�__init__r6�
BadHandlerr4�create_connectionrX�handle_requestrs�	wait_done)r+r��	__class__s  �rr�zBaseErrorTestServer.__init__Nsx���"���
���$���J�/�
�
%�
%�d�&9�&9�
:��;�	 ����!���������
;�
:��

����s�A>�
B
�>B�
Bc��ttjd�5}|jd�ddd�y#1swYyxYw)N�ar�)r�rr�rO)r+rArBr�s    rrCz BaseErrorTestServer.handle_errorYs-��
�)�"�"�C�
(�C��I�I�'�(�)�
(�
(�s�6�?c��yr.rGr*s rrzBaseErrorTestServer.wait_done]s��r)rDrErFr�rCr�
__classcell__�rs@rr�r�Ms���	�)�
rr�c��eZdZd�Zy)r�c��ttjd�5}|jd�ddd�|jjd��#1swY�$xYw)Nrr�z
Test error)r�rr�rOr]r�)r+r�s  rrQzBadHandler.handlebsD��
�)�"�"�C�
(�C��I�I�(�)�)��k�k�#�#�L�1�1�)�
(�s�A�ANrRrGrrr�r�as��2rr�c�.��eZdZ�fd�Z�fd�Zd�Z�xZS)r�c�V��tj�|_t�|�|i|��yr.)rk�Eventrir�r��r+�pos�kwrs   �rr�z!ThreadingErrorTestServer.__init__js#����O�O�%��	�
���#�$��$rc�X��t�|�|i|��|jj�yr.)r��shutdown_requestri�setrs   �rrz)ThreadingErrorTestServer.shutdown_requestns"���
�� �#�,��,��	�	�
�
�rc�8�|jj�yr.)ri�waitr*s rrz"ThreadingErrorTestServer.wait_doners���	�	���r)rDrErFr�rrrrs@rr�r�hs���%��rr�c��eZdZy)r�Nr�rGrrr�r�ws��rr�c��eZdZd�Zd�Zy)�SocketWriterTestc�B�Gd�dtj�}tjtdf|�}|j	|j
�t
j|jtjtj�}|5|j|j�ddd�|j�|j|jtj �|j#|j$|j&�y#1swY�jxYw)Nc��eZdZd�Zy)�-SocketWriterTest.test_basics.<locals>.Handlerc���|j|j_|jj�|j_|jj�|j_yr.)rNr]rt�wfile_filenorA�request_filenor*s rrQz4SocketWriterTest.test_basics.<locals>.Handler.handle~sD��$(�J�J����!�+/�:�:�+<�+<�+>����(�-1�\�\�-@�-@�-B����*rNrRrGrr�Handlerr}s��
Crrr)rwr�r�r6�
addCleanuprsr4rjr��IPPROTO_TCPr�rXr�assertIsInstancerN�io�BufferedIOBaserWrr)r+rr]r�s    r�test_basicszSocketWriterTest.test_basics|s���	C�l�7�7�	C��'�'��q�	�7�;������+�+�,��M�M��!�!�6�#5�#5�v�7I�7I�
K��
�
�I�I�f�+�+�,���������f�l�l�B�,=�,=�>�����,�,�f�.C�.C�D�	�Q�s�D�Dc�����	�
��tjjtd��Gd�dtj
�}t	jtdf|��|j�j�tj���fd�}tjtj|�}|jtjtj|�d�
d�	tj������	�
�fd�}tj|��}|j��j!�|j#�|j%�j&t)�
��|j%�
d�|j%�j*d	�|j%�j,tjj.�|j%�	tjj.d
z
�y)N�pthread_killc��eZdZd�Zy)�,SocketWriterTest.test_write.<locals>.Handlerc�8�|jjd�|j_|jj�|j_dtjjz}|jj|�|j_
y)N�write data
�)rNrOr]�sent1rLrM�receivedrr�
SOCK_MAX_SIZE�sent2)r+�	big_chunks  rrQz3SocketWriterTest.test_write.<locals>.Handler.handle�se��$(�J�J�$4�$4�_�$E����!�'+�z�z�':�':�'<����$�!�D�L�L�$>�$>�>�	�$(�J�J�$4�$4�Y�$?����!rNrRrGrrrr)�s��
@rrrc�&���j�yr.)r)�signum�frame�interrupteds  �r�signal_handlerz3SocketWriterTest.test_write.<locals>.signal_handler�s
����O�O�rc�0��tj�jtjtj�}|5|j	d�5}|j�j�|j��|jd�|jd�	��tj��jtd���rn�4t|j���ddd�ddd�y#1swY�xYw#1swYyxYw)N�rb�client response
r��)r)r4rjr�r!�makefiler�rXrMr�r��signal�SIGUSR1r�float�len)r��readerr5�main_threadr'�	received2�	response1r]s  ������r�
run_clientz/SocketWriterTest.test_write.<locals>.run_client�s�����
�
�f�3�3�V�5G�5G��"�"�$�A��A�J�J�t�$���	�	�&�/�/�0�"�O�O�-�	��	�	�.�/����C� �� ��f�n�n�=�"�'�'��a��'�9���
 ����
�.�	�#%���$�$����s%�D�BD�/D�D		�D�D)rer+r9r�)rr�
get_attributer<rwr�r�r6r rsrkr
r=�	get_identrlrorrrrWr-r?r.r0r/)r+rr6�originalrD�
backgroundr5rAr'rBrCr]s      @@@@@@r�
test_writezSocketWriterTest.test_write�sh����|�|�1�1�&�.�I��	@�l�7�7�	@��'�'��q�	�7�;������+�+�,��o�o�'��	��=�=�����@������
�
�v�~�~�x�@��	��	��)�)�+��	/�	/�,�%�%�Z�8�
�������������������s�9�~�6�����O�4�������*>�?�������t�|�|�'A�'A�B�����D�L�L�$>�$>��$D�ErN)rDrErFr%rIrGrrrr{s��E�"8Frrc��eZdZd�Zd�Zd�Zy)�MiscTestCasec��g}tt�D]F}|jd�r�tt|�}t|dd�dk(s�6|j	|��H|jtj|�y)N�_rErw)�dirrw�
startswith�getattrr8�assertCountEqual�__all__)r+r�rd�
mod_objects    r�test_allzMiscTestCase.test_all�sc������%�D��?�?�3�'�$�\�4�8�
��:�|�T�:�n�L��O�O�D�)�	&�
	
���l�2�2�H�=rc��Gd�dtj�}|tdftj�}t	j|j
tj�}|j|j�|j�|j�|j|jd�|j�y)Nc��eZdZd�ZdZd�Zy)�SMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServerc��y)NFrGr@s   r�verify_requestzbMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.verify_request�s��rrc�n�|xjdz
c_tjj||�y)Nr:)�shutdown_calledrwr�r)r+rAs  rrzdMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.shutdown_request�s)���$�$��)�$��&�&�7�7��g�FrN)rDrErFrYr[rrGrrrHrW�s��
� �O�
GrrHrr:)rwr�r6r�r4rjr�r�rX�closerrWr[rs)r+rHr]r�s    r�4test_shutdown_request_called_if_verify_request_falsezAMiscTestCase.test_shutdown_request_called_if_verify_request_false�s���	G�|�-�-�	G��4��)�\�%F�%F�G���M�M�&�/�/��1C�1C�D��	�	�	�&�'�'�(�	���	���������/�/��3����rc��Gd�dtjtj�}|tdftj�}td�D]:}t
j|j�5|j�ddd��<|jt|j�d�|j�y#1swY�|xYw)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��eZdZy)�2MiscTestCase.test_threads_reaped.<locals>.MyServerNr�rGrrrHr`�r�rrHr�
N)rwr�r�r6r�rpr4rrXr�
assertLessr?�_threadsrs)r+rHr]rs    r�test_threads_reapedz MiscTestCase.test_threads_reaped�s���	�|�2�2�L�4J�4J�	��4��)�\�%F�%F�G���r��A��)�)�&�*?�*?�@��%�%�'�A�@��	
����F�O�O�,�b�1�����A�@�s�3C�C
	N)rDrErFrTr]rdrGrrrKrK�s��>��*rrK�__main__)2r��
contextlibr#r�selectr<r4rk�unittestrw�test.supportrrrrrrr�requires�requires_working_socketr�r6�hasattrr��
skipUnlessr��has_fork_supportrur�r�
SHORT_TIMEOUTr�
requires_fork�contextmanagerr#�TestCaser%r�r�r��BaseRequestHandlerr�r�r�rxr�rrKrD�mainrGrr�<module>rus�����	�	�
�
�
�����/�"�&�)������i� ����$�$�D�$�1��������F�I�.��+��+�+�,=�,C�E���|�|�,�,��&�8�&�&�|�5G�H���}�}��!�\�\�7�7�8����������4���4�`5�x�(�(�`5�F)3�x�(�(�)3�X
�,�0�0�
�(2��0�0�2��|�:�:����
��!:�!:�<O�
�JF�x�(�(�JF�Z/�8�$�$�/�d�z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists