Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_socketserver.cpython-35.opt-2.pyc



���]�)�
@s
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z
ddl	mZmZm
Z
yddlZWnek
r�dZYnXe
jjd�dZe
jjZeed�Zejed�Zeed�Zejed�Zd	d
�ZejZddd
�Zer�Gdd�dejej�ZGdd�dejej �Z!ej"dd��Z#ejed�Gdd�dej$��Z%Gdd�dej$�Z&e'dkrej(�dS)�N)�
reap_children�reap_threads�verboseZnetworkshello world
�AF_UNIXzrequires Unix sockets�forkzrequires forkingcCs ttd�rtj|�dS)N�alarm)�hasattr�signalr)�n�r�6/opt/alt/python35/lib64/python3.5/test_socketserver.py�signal_alarm"sr
�cCsQt|ggg|�\}}}||kr:|j|�Std|f��dS)Nztimed out on %r)�_real_select�recv�RuntimeError)�sockr
�timeout�r�w�xrrr�receive*s!
rc@seZdZdS)�ForkingUnixStreamServerN)�__name__�
__module__�__qualname__rrrrr2src@seZdZdS)�ForkingUnixDatagramServerN)rrrrrrrr6srccsftj�}|dkr%tjd�dVtj|d�\}}|j||�|jd|�dS)Nr�H�iH)�osr�_exit�waitpid�assertEqual)Ztestcase�pidZpid2�statusrrr�simple_subprocess;s
r%z!Threading required for this test.c@sTeZdZdd�Zdd�Zdd�Zdd�Zed	d
��Zdd�Z	d
d�Z
dd�Zdd�Ze
dd��Zedd��Zedd��Zee
dd���Zdd�Zdd�Ze
dd ��Zed!d"��Zed#d$��Zee
d%d&���Zed'd(��Zd)d*�Zd+S),�SocketServerTestcCs td�d|_g|_dS)N�<r)r
Z	port_seed�
test_files)�selfrrr�setUpKs
	zSocketServerTest.setUpcCsbtd�t�x7|jD],}ytj|�Wqtk
rFYqXqWg|jdd�<dS)Nr)r
rr(r�remove�OSError)r)�fnrrr�tearDownPs

	zSocketServerTest.tearDowncCsO|tjkrtdfSd}tjddd|�}|jj|�|SdS)Nr�prefixzunix_socket.�dir)�socket�AF_INET�HOST�tempfile�mktempr(�append)r)�protor0r-rrr�pickaddr[s
zSocketServerTest.pickaddrcCskGdd�d|�}Gdd�d|�}tr<td�|||�}|j|j|jj��|S)Nc@seZdZdd�ZdS)z.SocketServerTest.make_server.<locals>.MyServercSs|j|�|j��dS)N)Z
close_request�server_close)r)�request�client_addressrrr�handle_errorhs

z;SocketServerTest.make_server.<locals>.MyServer.handle_errorN)rrrr<rrrr�MyServergsr=c@seZdZdd�ZdS)z/SocketServerTest.make_server.<locals>.MyHandlercSs#|jj�}|jj|�dS)N)Zrfile�readlineZwfile�write)r)�linerrr�handlensz6SocketServerTest.make_server.<locals>.MyHandler.handleN)rrrrArrrr�	MyHandlermsrBzcreating server)r�printr"�server_addressr1�getsockname)r)�addr�svrcls�hdlrbaser=rB�serverrrr�make_serverfs
zSocketServerTest.make_servercCs-|j|j|j�||�}|j}trJtd|�td|�tjdd|d|jdddi�}d	|_	|j
�tr�td
�x7td�D])}tr�td|�||j|�q�Wtr�td
�|j�|j
�|j�|jd|jj��tr)td�dS)NzADDR =zCLASS =�namez
%s serving�target�kwargs�
poll_intervalg{�G�z�?Tzserver running�ztest clientzwaiting for server��done���)rJr8�address_familyrDrrC�	threading�Thread�
serve_forever�daemon�start�range�shutdown�joinr9r"r1�fileno)r)rGrHZtestfuncrIrF�t�irrr�
run_serverws4	

	
		






zSocketServerTest.run_servercCs�tj|tj�}|j|�|jt�t|d�}}x/|rsd|krst|d�}||7}qEW|j|t�|j�dS)N�ds
)r1�SOCK_STREAM�connect�sendall�TEST_STRrr"�close)r)r7rF�s�buf�datarrr�stream_examine�s

zSocketServerTest.stream_examinecCs�tj|tj�}tr@|tjkr@|j|j|��|jt|�t|d�}}x/|r�d|kr�t|d�}||7}qfW|j	|t�|j
�dS)Nr`s
)r1�
SOCK_DGRAM�HAVE_UNIX_SOCKETSr�bindr8�sendtordrr"re)r)r7rFrfrgrhrrr�
dgram_examine�szSocketServerTest.dgram_examinecCs |jtjtj|j�dS)N)r_�socketserver�	TCPServer�StreamRequestHandlerri)r)rrr�test_TCPServer�szSocketServerTest.test_TCPServercCs |jtjtj|j�dS)N)r_roZThreadingTCPServerrqri)r)rrr�test_ThreadingTCPServer�sz(SocketServerTest.test_ThreadingTCPServercCs4t|��!|jtjtj|j�WdQRXdS)N)r%r_roZForkingTCPServerrqri)r)rrr�test_ForkingTCPServer�s
z&SocketServerTest.test_ForkingTCPServercCs |jtjtj|j�dS)N)r_ro�UnixStreamServerrqri)r)rrr�test_UnixStreamServer�sz&SocketServerTest.test_UnixStreamServercCs |jtjtj|j�dS)N)r_roZThreadingUnixStreamServerrqri)r)rrr�test_ThreadingUnixStreamServer�sz/SocketServerTest.test_ThreadingUnixStreamServercCs1t|��|jttj|j�WdQRXdS)N)r%r_rrorqri)r)rrr�test_ForkingUnixStreamServer�s
	z-SocketServerTest.test_ForkingUnixStreamServercCs |jtjtj|j�dS)N)r_roZ	UDPServer�DatagramRequestHandlerrn)r)rrr�test_UDPServer�szSocketServerTest.test_UDPServercCs |jtjtj|j�dS)N)r_roZThreadingUDPServerryrn)r)rrr�test_ThreadingUDPServer�sz(SocketServerTest.test_ThreadingUDPServercCs4t|��!|jtjtj|j�WdQRXdS)N)r%r_roZForkingUDPServerryrn)r)rrr�test_ForkingUDPServer�s
z&SocketServerTest.test_ForkingUDPServercCs |jtjtj|j�dS)N)r_ro�UnixDatagramServerryrn)r)rrr�test_UnixDatagramServer�sz(SocketServerTest.test_UnixDatagramServercCs |jtjtj|j�dS)N)r_roZThreadingUnixDatagramServerryrn)r)rrr� test_ThreadingUnixDatagramServer�sz1SocketServerTest.test_ThreadingUnixDatagramServercCs|jttj|j�dS)N)r_rroryrn)r)rrr�test_ForkingUnixDatagramServer�s	z/SocketServerTest.test_ForkingUnixDatagramServerc	CsGdd�dtj�}Gdd�dtj�}g}xltd�D]^}|tdf|�}tjddd	|jd
ddi�}d
|_|j	||f�qEWx(|D] \}}|j
�|j�q�Wx(|D] \}}|j�|j
�q�WdS)Nc@seZdZdS)z0SocketServerTest.test_shutdown.<locals>.MyServerN)rrrrrrrr=�sr=c@seZdZdS)z1SocketServerTest.test_shutdown.<locals>.MyHandlerN)rrrrrrrrB�srBrrrKzMyServer servingrLrMrNg{�G�z�?T)rorprqrYr3rTrUrVrWr6rXrZr[r9)r)r=rB�threadsr^rfr]rrr�
test_shutdown�s"			

zSocketServerTest.test_shutdowncCsKxDtd�D]6}|jt��tjtdftj�WdQRXq
WdS)NirPrR)rYZassertRaises�
OverflowErrorrorpr3rq)r)r^rrr�test_tcpserver_bind_leaksz)SocketServerTest.test_tcpserver_bind_leakN)rrrr*r.r8rJrr_rirnrrrs�requires_forkingrt�requires_unix_socketsrvrwrxrzr{r|r~rr�r�r�rrrrr&Gs.r&c@s(eZdZdd�Zdd�ZdS)�MiscTestCasecCswg}xWtt�D]I}|jd�stt|�}t|dd�dkr|j|�qW|jtj|�dS)N�_rro)r0ro�
startswith�getattrr6ZassertCountEqual�__all__)r)ZexpectedrKZ
mod_objectrrr�test_allszMiscTestCase.test_allcCs�Gdd�dtj�}|tdftj�}tj|jtj�}|j|j�|j	�|j
�|j|jd�|j
�dS)Nc@s.eZdZdd�ZdZdd�ZdS)zSMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServercSsdS)NFr)r)r:r;rrr�verify_request,szbMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.verify_requestrcSs&|jd7_tjj||�dS)NrP)�shutdown_calledrorp�shutdown_request)r)r:rrrr�0szdMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.shutdown_requestN)rrrr�r�r�rrrrr=+sr=rrP)rorpr3rqr1rSrarbrDreZhandle_requestr"r�r9)r)r=rIrfrrr�4test_shutdown_request_called_if_verify_request_false's	

zAMiscTestCase.test_shutdown_request_called_if_verify_request_falseN)rrrr�r�rrrrr�s
r��__main__))�
contextlibr�selectr	r1�errnor4ZunittestroZtest.supportZtestrrrrT�ImportErrorZsupportZrequiresrdr3rrkZ
skipUnlessr�ZHAVE_FORKINGr�r
rrZForkingMixInrurr}r�contextmanagerr%ZTestCaser&r�r�mainrrrr�<module>sJ
			�"