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.7/test/__pycache__/test_asyncore.cpython-37.pyc
B

��g?g�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
ejrxe�d��dZeed�ZGdd�d�ZGd	d
�d
�ZGdd�d�ZGd
d�d�Zdd�Zdd�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Ze�eed�d�Gdd�dej��Z Gdd �d ej!�Z"Gd!d"�d"ej!�Z#Gd#d$�d$e"�Z$Gd%d&�d&�Z%Gd'd(�d(e%�Z&e�ej'd)�Gd*d+�d+e%��Z(e�ed,�Gd-d.�d.e%��Z)Gd/d0�d0e&ej�Z*e�eed1�d2�Gd3d4�d4e&ej��Z+Gd5d6�d6e(ej�Z,e�eed1�d2�Gd7d8�d8e(ej��Z-Gd9d:�d:e)ej�Z.e�eed1�d2�Gd;d<�d<e)ej��Z/e0d=k�r�e�1�dS)>�N)�support)�BytesIOztest is not helpful for PGO��AF_UNIXc@s$eZdZdd�Zdd�Zdd�ZdS)�dummysocketcCs
d|_dS)NF)�closed)�self�r	�./usr/local/lib/python3.7/test/test_asyncore.py�__init__szdummysocket.__init__cCs
d|_dS)NT)r)rr	r	r
�closeszdummysocket.closecCsdS)N�*r	)rr	r	r
�filenoszdummysocket.filenoN)�__name__�
__module__�__qualname__rrrr	r	r	r
rsrc@seZdZdd�Zdd�ZdS)�dummychannelcCst�|_dS)N)r�socket)rr	r	r
r!szdummychannel.__init__cCs|j��dS)N)rr)rr	r	r
r$szdummychannel.closeN)rrrrrr	r	r	r
r src@s(eZdZdd�Zdd�ZeZeZeZdS)�exitingdummycCsdS)Nr	)rr	r	r
r(szexitingdummy.__init__cCst���dS)N)�asyncore�ExitNow)rr	r	r
�handle_read_event+szexitingdummy.handle_read_eventN)rrrrr�handle_write_event�handle_close�handle_expt_eventr	r	r	r
r's
rc@s0eZdZdd�Zdd�ZeZeZeZdd�ZdS)�
crashingdummycCs
d|_dS)NF)�
error_handled)rr	r	r
r3szcrashingdummy.__init__cCs
t��dS)N)�	Exception)rr	r	r
r6szcrashingdummy.handle_read_eventcCs
d|_dS)NT)r)rr	r	r
�handle_error=szcrashingdummy.handle_errorN)	rrrrrrrrrr	r	r	r
r2srcCs�z�y|��|��\}}Wntjk
r0Yn�Xd}t��}xp|dkr�t��|dkr�t�|gggd�\}}}	|r�|d8}|�d�}
|�|
�	dd��d|
kr�Pt�
d	�q@W|��Wd|��|��XdS)
N��rg@g�������?��
�
�g{�G�z�?)
�listenZacceptr�timeout�timeZ	monotonic�select�recv�write�replace�sleepr�set)�evt�bufZserv�conn�addr�n�start�r�w�e�datar	r	r
�capture_serverAs&
r7cCs6tr(|jtjkr(t�|�t�||�n
|�|�dS)z9Helper function to bind a socket according to its family.N)�HAS_UNIX_SOCKETS�familyrrr�unlinkZbind_unix_socket�bind)�sockr0r	r	r
�
bind_af_awareZs
r=c@sNeZdZdd�Ze�eed�d�dd��Zdd�Z	d	d
�Z
dd�Zd
d�ZdS)�HelperFunctionTestscCs�t�}|�tjtj|�|�tjtj|�|�tjtj|�t�}t�|�|�|j	d�t�}t�|�|�|j	d�t�}t�|�|�|j	d�dS)NT)
r�assertRaisesrr�readr)Z
_exceptionr�assertEqualr)r�tr1�tr2r	r	r
�test_readwriteexces


z%HelperFunctionTests.test_readwriteexc�pollzselect.poll requiredc
Cs�d}tjdftjdftjdftjdftjdftjdff}Gdd�d�}x�|D]�\}}|�}|�t||�d�t	�
||�x"|D]}|�t||�||k�q~Wt�}|�t	j
t	j
||�t�}	|�|	jd�t	�
|	|�|�|	jd	�qLWdS)
N)r@�exptr)rrr@rFr)rc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)z3HelperFunctionTests.test_readwrite.<locals>.testobjcSs"d|_d|_d|_d|_d|_dS)NF)r@r)rrFr)rr	r	r
r�s
z<HelperFunctionTests.test_readwrite.<locals>.testobj.__init__cSs
d|_dS)NT)r@)rr	r	r
r�szEHelperFunctionTests.test_readwrite.<locals>.testobj.handle_read_eventcSs
d|_dS)NT)r))rr	r	r
r�szFHelperFunctionTests.test_readwrite.<locals>.testobj.handle_write_eventcSs
d|_dS)NT)r)rr	r	r
r�sz@HelperFunctionTests.test_readwrite.<locals>.testobj.handle_closecSs
d|_dS)NT)rF)rr	r	r
r�szEHelperFunctionTests.test_readwrite.<locals>.testobj.handle_expt_eventcSs
d|_dS)NT)r)rr	r	r
r�sz@HelperFunctionTests.test_readwrite.<locals>.testobj.handle_errorN)	rrrrrrrrrr	r	r	r
�testobj�srGFT)r'ZPOLLINZPOLLPRIZPOLLOUTZPOLLERRZPOLLHUPZPOLLNVALrA�getattrrZ	readwriterr?rrr)
rZ
attributes�expectedrG�flagZexpectedattrZtobj�attrrBrCr	r	r
�test_readwrite�s(
z"HelperFunctionTests.test_readwritecCs|�d�dS)NF)�closeall_check)rr	r	r
�
test_closeall�sz!HelperFunctionTests.test_closeallcCs|�d�dS)NT)rM)rr	r	r
�test_closeall_default�sz)HelperFunctionTests.test_closeall_defaultcCs�g}i}x8td�D],}t�}|�|�|�|jjd�|||<qW|rrtj}z|t_t��Wdtj|}t_Xn
t�|�|�t	|�d�x|D]}|�|jjd�q�WdS)Nr!FrT)
�ranger�appendrArrr�
socket_map�	close_all�len)rZ
usedefault�lZtestmap�i�cZ	socketmapr	r	r
rM�s"


z"HelperFunctionTests.closeall_checkcCs�ytd��Wn"t��\}}}t��}YnX|�d�|\\}}}}}	}
|�tj�	|�dd�|�|d�|�||�|�|	|�|�|
d|||f�dS)NzI don't like spam!zExpected exception���ztest_asyncore.py�test_compact_tracebackz
[%s|%s|%s])
r�sys�exc_inforZcompact_traceback�failrA�os�path�split)rZreal_tZreal_vZreal_tbr3�fZfunction�line�t�v�infor	r	r
rY�s
z*HelperFunctionTests.test_compact_tracebackN)
rrrrD�unittest�
skipUnless�hasattrr'rLrNrOrMrYr	r	r	r
r>ds<r>c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�DispatcherTestscCsdS)Nr	)rr	r	r
�setUp�szDispatcherTests.setUpcCst��dS)N)rrS)rr	r	r
�tearDown�szDispatcherTests.tearDowncCs,t��}|�|��d�|�|��d�dS)NT)r�
dispatcherrA�readable�writable)r�dr	r	r
�
test_basic�szDispatcherTests.test_basiccCs$t��}|�t|�dt|��dS)Nz<asyncore.dispatcher at %#x>)rrkrA�repr�id)rrnr	r	r
�	test_repr�szDispatcherTests.test_reprc	Cs`t��}d}d}t���}|�|�|�|�WdQRX|����}|�|d|d|g�dS)NzLovely spam! Wonderful spam!zI don't like spam!zlog: %s)rrkrZcaptured_stderr�log�getvalue�
splitlinesrA)rrn�l1�l2�stderr�linesr	r	r
�test_log�s

zDispatcherTests.test_logc	Cs|t��}d}d}d}t���(}|�|d�|�|�|�|d�WdQRX|����}d|d|d|g}|�||�dS)	Nz#Have you got anything without spam?z.Why can't she have egg bacon spam and sausage?zTHAT'S got spam in it!ZEGGSZSPAMzEGGS: %szinfo: %szSPAM: %s)rrkr�captured_stdoutZlog_infortrurA)rrnrvrw�l3�stdoutryrIr	r	r
�
test_log_infos

zDispatcherTests.test_log_infoc	Csjt��}d|_t���&}|��|��|��|��WdQRX|�	��
�}ddddg}|�||�dS)Nr	z*warning: unhandled incoming priority eventzwarning: unhandled read eventzwarning: unhandled write eventz warning: unhandled connect event)rrkZignore_log_typesrr{�handle_expt�handle_read�handle_write�handle_connectrtrurA)rrnr}ryrIr	r	r
�test_unhandleds
zDispatcherTests.test_unhandledcCsFt�tj�}ttd�r*|�|t�tj��t�d�}|�|dk�dS)N�strerrorrX�)	rZ	_strerror�errnoZEPERMrgr]rAr��
assertTrue)r�errr	r	r
�
test_strerror.s


zDispatcherTests.test_strerrorN)rrrrirjrorrrzr~r�r�r	r	r	r
rh�s
rhc@seZdZdd�Zdd�ZdS)�dispatcherwithsend_noreadcCsdS)NFr	)rr	r	r
rl8sz"dispatcherwithsend_noread.readablecCsdS)Nr	)rr	r	r
r�;sz(dispatcherwithsend_noread.handle_connectN)rrrrlr�r	r	r	r
r�7sr�c@s*eZdZdd�Zdd�Zejdd��ZdS)�DispatcherWithSendTestscCsdS)Nr	)rr	r	r
ri@szDispatcherWithSendTests.setUpcCst��dS)N)rrS)rr	r	r
rjCsz DispatcherWithSendTests.tearDownc

Cs�t��}t��}|�d�t�|�}t�}|||f}tjt|d�}|�	�z�t
�d�d}t�}|�
�|�tj|f�t
�d�|�|�|�|�|�d�d}	x"|jr�|	dkr�t��|	d	8}	q�W|��|�|��|d
�Wdtj|td�XdS)Nr)�target�argsg�������?s$Suppose there isn't a 16-ton weight?g�������?r"i�rr �)r%)�	threadingZEventr�
settimeoutrZ	bind_portr�Threadr7r2r&r+r��
create_socket�connect�HOST�sendZ
out_bufferrrE�waitrArt�join_thread�TIMEOUT)
rr-r<�portZcapr�rbr6rnr1r	r	r
�	test_sendFs2







z!DispatcherWithSendTests.test_sendN)rrrrirjr�reap_threadsr�r	r	r	r
r�?sr��file_wrapperzasyncore.file_wrapper requiredc@sVeZdZdd�Zdd�Zdd�Zdd�Ze�e	e
d	�d
�dd��Zd
d�Zdd�Z
dS)�FileWrapperTestc	Cs.d|_ttjd��}|�|j�WdQRXdS)NsIt's not dead, it's sleeping!�wb)rn�openr�TESTFNr))r�filer	r	r
riqszFileWrapperTest.setUpcCst�tj�dS)N)rr:r�)rr	r	r
rjvszFileWrapperTest.tearDowncCs�t�tjtj�}t�|�}t�|�|�|j	|�|�|�
�|�|�|�d�d�|�|�
d�d�|��|�t|j
d�dS)N�
s
It's not dead�s, it'sr )r]r�rr��O_RDONLYrr�rZassertNotEqual�fdrrAr(r@r?�OSError)rr�r4r	r	r
�	test_recvys

zFileWrapperTest.test_recvc	Cs�d}d}t�tjtjtjB�}t�|�}t�|�|�	|�|�
|�|��ttjd�� }|�|��|j
||�WdQRXdS)NsCome again?sI want to buy some cheese.�rb)r]r�rr��O_WRONLY�O_APPENDrr�rr)r�rAr@rn)rZd1Zd2r�r4r�r	r	r
r��s



zFileWrapperTest.test_send�file_dispatcherz!asyncore.file_dispatcher requiredcsdt�tjtj�}g�G�fdd�dtj�}||�}t�|�tjdddd�|�	d�
��|j�dS)NcseZdZ�fdd�ZdS)z7FileWrapperTest.test_dispatcher.<locals>.FileDispatchercs��|�d��dS)N�)rQr()r)r6r	r
r��szCFileWrapperTest.test_dispatcher.<locals>.FileDispatcher.handle_readN)rrrr�r	)r6r	r
�FileDispatcher�sr�g{�G�z�?Tr�)r%�use_poll�countr#)r]r�rr�r�rr�r�looprA�joinrn)rr�r��sr	)r6r
�test_dispatcher�s
zFileWrapperTest.test_dispatcherc	CsNt�tjtj�}t�|�}t�|�t�dt	f��d}t�
�WdQRXdS)Nr�)r]r�rr�r�rr�rZcheck_warnings�ResourceWarningZ
gc_collect)rr�r`r	r	r
�test_resource_warning�s

z%FileWrapperTest.test_resource_warningc	Csht�tjtj�}t�|�}t�|�t�|j�|�	t
��|��WdQRX|�|jd�|��dS)NrX)r]r�rr�r�rr�rr�r?r�rA)rr�r`r	r	r
�test_close_twice�s

z FileWrapperTest.test_close_twiceN)rrrrirjr�r�rerfrgrr�r�r�r	r	r	r
r�ns

r�c@sFeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dS)�BaseTestHandlerNcCstj�||�d|_dS)NF)rrkrrJ)rr<r	r	r
r�szBaseTestHandler.__init__cCstd��dS)Nz'handle_accept not supposed to be called)r)rr	r	r
�
handle_accept�szBaseTestHandler.handle_acceptcCstd��dS)Nz)handle_accepted not supposed to be called)r)rr	r	r
�handle_accepted�szBaseTestHandler.handle_acceptedcCstd��dS)Nz(handle_connect not supposed to be called)r)rr	r	r
r��szBaseTestHandler.handle_connectcCstd��dS)Nz%handle_expt not supposed to be called)r)rr	r	r
r�szBaseTestHandler.handle_exptcCstd��dS)Nz&handle_close not supposed to be called)r)rr	r	r
r�szBaseTestHandler.handle_closecCs�dS)Nr	)rr	r	r
r�szBaseTestHandler.handle_error)N)
rrrrr�r�r�rrrr	r	r	r
r��s
r�c@s8eZdZdZefdd�Zedd��Zdd�Zdd	�Z	d
S)�
BaseServerzYA server which listens on an address and dispatches the
    connection to a handler.
    cCs>tj�|�|�|�|��t|j|�|�d�||_dS)N�)	rrkrr��set_reuse_addrr=rr$�handler)rr9r0r�r	r	r
r�s

zBaseServer.__init__cCs
|j��S)N)r�getsockname)rr	r	r
�address�szBaseServer.addresscCs|�|�dS)N)r�)rr<r0r	r	r
r��szBaseServer.handle_acceptedcCs�dS)Nr	)rr	r	r
r�szBaseServer.handle_errorN)
rrr�__doc__r�r�propertyr�r�rr	r	r	r
r��s
r�c@seZdZdd�Zdd�ZdS)�
BaseClientcCs"t�|�|�|�|�|�dS)N)r�rr�r�)rr9r�r	r	r
r�s

zBaseClient.__init__cCsdS)Nr	)rr	r	r
r��szBaseClient.handle_connectN)rrrrr�r	r	r	r
r��sr�c@s�eZdZdd�Zd%dd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Ze�
ej�d�d�dd��Zdd�Zdd�Zdd�Zdd�Zd d!�Zejd"d#��Zd$S)&�BaseTestAPIcCstjdd�dS)NT)Z
ignore_all)rrS)rr	r	r
rj�szBaseTestAPI.tearDownr�cCs`t|�d}d}x@tjrP|dkrPtjdd|jd�|jr<dS|d8}t�|�qW|�d�dS)N�drg{�G�z�?r )r%r�r�zflag not set)	�floatrrRr�r�rJr&r+r\)r�instancer%r�r	r	r
�loop_waiting_for_flag�sz!BaseTestAPI.loop_waiting_for_flagcCs:Gdd�dt�}t|j|j�}||j|j�}|�|�dS)Nc@seZdZdd�ZdS)z3BaseTestAPI.test_handle_connect.<locals>.TestClientcSs
d|_dS)NT)rJ)rr	r	r
r�szBBaseTestAPI.test_handle_connect.<locals>.TestClient.handle_connectN)rrrr�r	r	r	r
�
TestClientsr�)r�r�r9r0r�r�)rr��server�clientr	r	r
�test_handle_connectszBaseTestAPI.test_handle_connectcCs:Gdd�dt�}||j|j�}t|j|j�}|�|�dS)Nc@seZdZdd�Zdd�ZdS)z4BaseTestAPI.test_handle_accept.<locals>.TestListenercSs:t�|�|�|�t|j|�|�d�|j��|_dS)Nr�)r�rr�r=rr$r�r�)rr9r0r	r	r
rs



z=BaseTestAPI.test_handle_accept.<locals>.TestListener.__init__cSs
d|_dS)NT)rJ)rr	r	r
r�szBBaseTestAPI.test_handle_accept.<locals>.TestListener.handle_acceptN)rrrrr�r	r	r	r
�TestListenersr�)r�r9r0r�r�r�)rr�r�r�r	r	r
�test_handle_acceptszBaseTestAPI.test_handle_acceptcCs:Gdd�dt�}||j|j�}t|j|j�}|�|�dS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)z6BaseTestAPI.test_handle_accepted.<locals>.TestListenercSs:t�|�|�|�t|j|�|�d�|j��|_dS)Nr�)r�rr�r=rr$r�r�)rr9r0r	r	r
r&s



z?BaseTestAPI.test_handle_accepted.<locals>.TestListener.__init__cSstj�|�dS)N)rrkr�)rr	r	r
r�-szDBaseTestAPI.test_handle_accepted.<locals>.TestListener.handle_acceptcSs|��d|_dS)NT)rrJ)rr<r0r	r	r
r�0szFBaseTestAPI.test_handle_accepted.<locals>.TestListener.handle_acceptedN)rrrrr�r�r	r	r	r
r�$sr�)r�r9r0r�r�r�)rr�r�r�r	r	r
�test_handle_accepted!sz BaseTestAPI.test_handle_acceptedcCsLGdd�dt�}Gdd�dt�}t|j|j|�}||j|j�}|�|�dS)Nc@seZdZdd�ZdS)z0BaseTestAPI.test_handle_read.<locals>.TestClientcSs
d|_dS)NT)rJ)rr	r	r
r�=sz<BaseTestAPI.test_handle_read.<locals>.TestClient.handle_readN)rrrr�r	r	r	r
r�<sr�c@seZdZdd�ZdS)z1BaseTestAPI.test_handle_read.<locals>.TestHandlercSst�||�|�d�dS)Nsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r�rr�)rr/r	r	r
rAsz:BaseTestAPI.test_handle_read.<locals>.TestHandler.__init__N)rrrrr	r	r	r
�TestHandler@sr�)r�r�r�r9r0r�r�)rr�r�r�r�r	r	r
�test_handle_read9s
zBaseTestAPI.test_handle_readcCs:Gdd�dt�}t|j|j�}||j|j�}|�|�dS)Nc@seZdZdd�ZdS)z1BaseTestAPI.test_handle_write.<locals>.TestClientcSs
d|_dS)NT)rJ)rr	r	r
r�Msz>BaseTestAPI.test_handle_write.<locals>.TestClient.handle_writeN)rrrr�r	r	r	r
r�Lsr�)r�r�r9r0r�r�)rr�r�r�r	r	r
�test_handle_writeIszBaseTestAPI.test_handle_writecCsLGdd�dt�}Gdd�dt�}t|j|j|�}||j|j�}|�|�dS)Nc@seZdZdd�Zdd�ZdS)z1BaseTestAPI.test_handle_close.<locals>.TestClientcSs|�d�dS)Ni)r()rr	r	r
r�Zsz=BaseTestAPI.test_handle_close.<locals>.TestClient.handle_readcSsd|_|��dS)NT)rJr)rr	r	r
r_sz>BaseTestAPI.test_handle_close.<locals>.TestClient.handle_closeN)rrrr�rr	r	r	r
r�Xsr�c@seZdZdd�ZdS)z2BaseTestAPI.test_handle_close.<locals>.TestHandlercSst�||�|��dS)N)r�rr)rr/r	r	r
rdsz;BaseTestAPI.test_handle_close.<locals>.TestHandler.__init__N)rrrrr	r	r	r
r�csr�)r�r�r�r9r0r�r�)rr�r�r�r�r	r	r
�test_handle_closeTs
zBaseTestAPI.test_handle_closecsXd�G�fdd�dt�}G�fdd�dt�}t|j|j|�}||j|j�}|�|�dS)Ns�cs(eZdZ�fdd�Zdd�Zdd�ZdS)zCBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestClientcs|���dS)N)r�)r)r6r	r
r�tszPBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestClient.handle_writecSsd|_|��dS)NT)rJr)rr	r	r
rwszPBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestClient.handle_closecSsd|_|��dS)NT)rJr)rr	r	r
r{szOBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestClient.handle_exptN)rrrr�rrr	)r6r	r
r�rsr�cs eZdZ�fdd�Zdd�ZdS)zDBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestHandlercs|�t���|��dS)N)r(rTr)r)r6r	r
r��szPBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestHandler.handle_readcSsdS)NFr	)rr	r	r
rm�szMBaseTestAPI.test_handle_close_after_conn_broken.<locals>.TestHandler.writableN)rrrr�rmr	)r6r	r
r�sr�)r�r�r�r9r0r�r�)rr�r�r�r�r	)r6r
�#test_handle_close_after_conn_brokenls
	z/BaseTestAPI.test_handle_close_after_conn_brokenZsunosz OOB support is broken on SolariscCs�tr|jtjkr|�d�tjdkr4|jr4|�d�Gdd�dt�}Gdd�dt	�}t
|j|j|�}||j|j�}|�
|�dS)Nz"Not applicable to AF_UNIX sockets.�darwinz(poll may fail on macOS; see issue #28087c@seZdZdd�ZdS)z0BaseTestAPI.test_handle_expt.<locals>.TestClientcSs|j�dtj�d|_dS)NiT)rr(�MSG_OOBrJ)rr	r	r
r�sz<BaseTestAPI.test_handle_expt.<locals>.TestClient.handle_exptN)rrrrr	r	r	r
r��sr�c@seZdZdd�ZdS)z1BaseTestAPI.test_handle_expt.<locals>.TestHandlercSs*t�||�|j�ttd�d�tj�dS)N��zlatin-1)r�rrr��bytes�chrr�)rr/r	r	r
r�sz:BaseTestAPI.test_handle_expt.<locals>.TestHandler.__init__N)rrrrr	r	r	r
r��sr�)r8r9rr�skipTestrZ�platformr�r�r�r�r0r�r�)rr�r�r�r�r	r	r
�test_handle_expt�s

zBaseTestAPI.test_handle_exptcCs:Gdd�dt�}t|j|j�}||j|j�}|�|�dS)Nc@seZdZdd�Zdd�ZdS)z1BaseTestAPI.test_handle_error.<locals>.TestClientcSsdddS)Ng�?rr	)rr	r	r
r��sz>BaseTestAPI.test_handle_error.<locals>.TestClient.handle_writecSs.d|_y�Wntk
r Yn
Xtd��dS)NTzexception not raised)rJ�ZeroDivisionErrorr)rr	r	r
r�sz>BaseTestAPI.test_handle_error.<locals>.TestClient.handle_errorN)rrrr�rr	r	r	r
r��sr�)r�r�r9r0r�r�)rr�r�r�r	r	r
�test_handle_error�szBaseTestAPI.test_handle_errorcCs�t|j|j�}t|j|j�}|�|j�|�|j�|�|j�t	j
d|jdd�|�|j�|�|j�|�|j�|�|j�|��|�|j�|�|j�|�|j�|�|j�|��|�|j�|�|j�dS)Ng{�G�z�?r�)r%r�r�)
r�r9r0r�r��assertFalseZ	connectedr�Z	acceptingrr�r�r)rr�r�r	r	r
�test_connection_attributes�s$z&BaseTestAPI.test_connection_attributescCs^t��}|�|j�|�|jjtj�|�|jj|j�|�|j��d�|�	|j�
��dS)Nr)rrkr�r9rAr�type�SOCK_STREAMZ
gettimeoutr��get_inheritable)rr�r	r	r
�test_create_socket�szBaseTestAPI.test_create_socketcCs�tr|jtjkr|�d�t��}|�|j�|�|j	�|�
d�|j��d}t��}|�|j�|�t
|j|j	d|f�dS)Nz"Not applicable to AF_UNIX sockets.r�r r)r8r9rrr�rrkr�r;r0r$r�r?r�)r�s1r��s2r	r	r
�	test_bind�s

zBaseTestAPI.test_bindc	Cs�tr|jtjkr|�d�t�|j���}y|�tjtjd�Wntk
r\t	�
d�YnbXt�t�|j��}|�
|j�tjtj��|j��|�|j�|��|�|j�tjtj��WdQRXdS)Nz"Not applicable to AF_UNIX sockets.r z+SO_REUSEADDR not supported on this platform)r8r9rrr��
setsockopt�
SOL_SOCKETZSO_REUSEADDRr�re�skiprrkr�Z
getsockoptrr�r�r�)rr<r�r	r	r
�test_set_reuse_addr�s


zBaseTestAPI.test_set_reuse_addrc
Cs�|jtjttdt��fkr$|�d�t|j|j�}tj	dd�d�}|�
�zlt�|jtj��R}|�d�|�
tjtjt�ddd	��y|�|j�Wntk
r�YnXWdQRXWdtj|td
�XdS)N�AF_INET6z%test specific to AF_INET and AF_INET6cSstjddd�S)Ng�������?r�)r%r�)rr�r	r	r	r
�<lambda>	sz0BaseTestAPI.test_quick_connect.<locals>.<lambda>)r�g�������?�iir r)r%)r9r�AF_INETrH�objectr�r�r0r�r�r2r�r�r�r�Z	SO_LINGER�struct�packr�r�r�rr�r�)rr�rbr�r	r	r
�test_quick_connects

zBaseTestAPI.test_quick_connectN)r�)rrrrjr�r�r�r�r�r�r�r�reZskipIfrZr��
startswithr�r�r�r�r�r�rr�r�r	r	r	r
r��s"
 r�c@seZdZejZejdfZdS)�TestAPI_UseIPv4SocketsrN)	rrrrr�r9rr�r0r	r	r	r
r�sr�zIPv6 support requiredc@seZdZejZejdfZdS)�TestAPI_UseIPv6SocketsrN)	rrrrr�r9rZHOSTv6r0r	r	r	r
r�sr�zUnix sockets requiredc@s$eZdZerejZejZ	dd�Z
dS)�TestAPI_UseUnixSocketscCst�|j�t�|�dS)N)rr:r0r�rj)rr	r	r
rj(szTestAPI_UseUnixSockets.tearDownN)rrrr8rrr9rr�r0rjr	r	r	r
r�"sr�c@seZdZdZdS)�TestAPI_UseIPv4SelectFN)rrrr�r	r	r	r
r�,sr�rEzselect.poll requiredc@seZdZdZdS)�TestAPI_UseIPv4PollTN)rrrr�r	r	r	r
r�/sr�c@seZdZdZdS)�TestAPI_UseIPv6SelectFN)rrrr�r	r	r	r
r�3sr�c@seZdZdZdS)�TestAPI_UseIPv6PollTN)rrrr�r	r	r	r
r�6sr�c@seZdZdZdS)�TestAPI_UseUnixSocketsSelectFN)rrrr�r	r	r	r
r�:sr�c@seZdZdZdS)�TestAPI_UseUnixSocketsPollTN)rrrr�r	r	r	r
r�=sr��__main__)2rrer'r]rrZr&r�r�r�Ztestr�iorZPGOZSkipTestr�rgr8rrrrr7r=ZTestCaser>rhZdispatcher_with_sendr�r�rfr�rkr�r�r�r�r�ZIPV6_ENABLEDr�r�r�r�r�r�r�r�r�mainr	r	r	r
�<module>sf



H/
G(