Your IP : 216.73.216.147


Current Path : /opt/alt/python39/lib64/python3.9/test/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/__pycache__/test_selectors.cpython-39.opt-1.pyc

a

XC?h�H�@s�ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlmZddl
Z
ddlZ
ddlZddlmZzddlZWney�dZYn0eed�r�ejZnejejdfdd�Zdd	�ZGd
d�d�ZGdd
�d
�ZGdd�dee
j�ZGdd�dee
j�Ze
�eed�d�Gdd�deee
j��Ze
�eed�d�Gdd�deee
j��Ze
�eed�d�Gdd�deee
j��Z e
�eed�d�Gd d!�d!eee
j��Z!d"d#�Z"e#d$k�r�e
�$�dS)%�N)�support)�
socket_helper)�sleep)�	monotonic�
socketpairc	Cs�t�|||���}|�tjdf�|��t�|||�}zP|�|���|��}|��\}}||krz||fWWd�S|��qNWnt	y�|���Yn0Wd�n1s�0YdS)Nr)
�socketZbindrZHOSTZlistenZconnectZgetsocknameZaccept�close�OSError)Zfamily�type�proto�l�cZcaddr�aZaddr�r�8/opt/alt/python39/lib64/python3.9/test/test_selectors.pyrscCs*g}|D]\}}||@r|�|j�q|S�N)�append�fileobj)�ready�flag�match�key�eventsrrr�find_ready_matching+s
rc@s�eZdZdd�Zdd�Zdd�Zdd�Ze�e	j
d	kd
�dd��Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Ze�ejd!kd"�d#d$��Zd%d&�Ze�eed'�d(�d)d*��Ze�eed'�d(�d+d,��Zd-S).�BaseSelectorTestCasecCs*t�\}}|�|j�|�|j�||fSr)r�
addCleanupr)�self�rd�wrrrr�make_socketpair5s
z$BaseSelectorTestCase.make_socketpaircCs�|��}|�|j�|��\}}|�|tjd�}|�|tj�|�	|j
|�|�	|j|���|�	|j
tj�|�	|jd�|�t|jdd�|�t|jdtj�|�t|j|tj�|�t|j|��tj�dS)N�datar�?Bi����)�SELECTORrrr�register�	selectors�
EVENT_READZassertIsInstance�SelectorKey�assertEqualr�fd�filenorr �assertRaises�
ValueError�KeyError�r�srrrrrr�
test_register;s�z"BaseSelectorTestCase.test_registercCs\|��}|�|j�|��\}}|�|tj�|�|�|�t	|jd�|�t	|j|�dS�Nr!)
r"rrrr#r$r%�
unregisterr*r,�rr.rrrrr�test_unregisterUs
z$BaseSelectorTestCase.test_unregistercCsv|��}|�|j�|��\}}|��|��}}|�|tj�|�|tj�|��|��|�	|�|�	|�dSr)
r"rrrr)r#r$r%�EVENT_WRITEr1)rr.rr�r�wrrr�test_unregister_after_fd_closeds
z3BaseSelectorTestCase.test_unregister_after_fd_close�posixzrequires posixcCs�|��}|�|j�|��\}}|��|��}}|�|tj�|�|tj�|��\}}|��|��t	�
|��|�t	�
|��|�|�t	j|�|�t	j|�|�|�|�|�dSr)r"rrrr)r#r$r%r4�os�dup2r1)rr.rrr5r6Zrd2Zwr2rrr�(test_unregister_after_fd_close_and_reuseps
z=BaseSelectorTestCase.test_unregister_after_fd_close_and_reusecCsd|��}|�|j�|��\}}|�|tj�|�|tj�|��|��|�|�|�|�dSr)	r"rrrr#r$r%r4r1r2rrr�"test_unregister_after_socket_close�s
z7BaseSelectorTestCase.test_unregister_after_socket_closec	Cs6|��}|�|j�|��\}}|�|tj�}|�|tj�}|�	|j
|j
�|�||�|��|�
|�t�}t�}|�|tj|�}|�|tj|�}|�|j
|j
�|�	|j|j�|�||�|��|�|j|�|�t|jdtj�t�}tj��|_tj��|_
|�|tj|�|�|jj�|�|j
j�dSr0)r"rrrr#r$r%�modifyr4ZassertNotEqualrr'�get_keyr1�objectr r*r,�unittest�mock�Mock�assertFalseZcalled)	rr.rrrZkey2Zd1Zd2Zd3rrr�test_modify�s.
z BaseSelectorTestCase.test_modifyc	Cs|jjdkrtj�d�}n>|jjdkr4tj�d�}n$|jjdkrNtj�d�}n
|�d��|��}tjjtd�|j_	|��}|�
|j�|��\}}|�
|tj�|�t|j�d	�|�t��|�	|tj�Wd�n1s�0Y|�t|j�d
�Wd�n1�s0YdS)N�
EpollSelectorz%selectors.EpollSelector._selector_cls�PollSelectorz$selectors.PollSelector._selector_cls�DevpollSelectorz'selectors.DevpollSelector._selector_cls�)Zside_effect�r)r"�__name__r@rA�patch�skipTestrB�ZeroDivisionErrorZreturn_valuer=rrrr#r$r%r'�len�_mapr*r4)rrK�mr.rrrrr�test_modify_unregister�s2���
�
,z+BaseSelectorTestCase.test_modify_unregistercCs�|��}|�|j�|��}|��\}}|�|tj�|�|tj�|��|�	t
|j|�|�	t
|j|�|�	t|j
|�|�	t|j
|�dSr)r"rr�get_maprr#r$r%r4r*�RuntimeErrorr>r,�__getitem__)rr.�mappingrrrrr�
test_close�szBaseSelectorTestCase.test_closecCsV|��}|�|j�|��\}}|�|tjd�}|�||�|��|�	t
|jd�dS)Nr r!)r"rrrr#r$r%r'r>r*r,r-rrr�test_get_key�sz!BaseSelectorTestCase.test_get_keycCs"|��}|�|j�|��\}}|��}|�|�|�t|�d�|�t|�g�|�	|t
jd�}|�||�|�|||�|�t|�d�|�t|�|�
�g�|�t|���|g�|�t��|dWd�n1s�0Y|�t��||=Wd�n1�s0YdS)Nrr rIr!)r"rrrrRrCr'rN�listr#r$r%ZassertInr)�valuesr*r,�	TypeError)rr.rr�keysrrrr�test_get_map�s"
&z!BaseSelectorTestCase.test_get_mapcCs�|��}|�|j�|��\}}|�|tj�|�|tj�}|��}|D]<\}}|�	t
|tj��|�	|�|�|tjtjB@�qH|�
|tjfg|�dSr)r"rrrr#r$r%r4�select�
assertTrue�
isinstancer&rCr')rr.rrZwr_key�resultrrrrr�test_selects

�z BaseSelectorTestCase.test_selectcCs�|��}|�|j�|��\}}|�,}|�|tj�|�|tj�Wd�n1sV0Y|�t	|j
|�|�t	|j
|�dSr)r"rrrr#r$r%r4r*rSr>)rr.rrZselrrr�test_context_managers,z)BaseSelectorTestCase.test_context_managercCsF|��}|�|j�t|d�rB|��}|�t|t��|�|d�dS)Nr)r)	r"rr�hasattrr)r^r_�int�assertGreaterEqual)rr.r(rrr�test_fileno"s
z BaseSelectorTestCase.test_filenocCs�|��}|�|j�d}d}t|�}g}g}i}i}t|�D]P}	|��\}
}|�|
tj�|�|tj	�|�
|
�|�
|�|||
<|
||<q<g}|�rr|��}
t|
tj	�}|s�|�
d�t�|�}|�|�td�D]*}	|��}
t|
tj�}|r��qtd�q�|�
d�|�||g|�|d}
|
�|�}|�t|�|�|�
|�|�||
�|�|
�|�||
�q�|�||g|�dS)N�s This is a test.zno sockets ready for writing�
g�������?zno sockets ready for readingr)r"rrrN�rangerr#r$r%r4rr]rZfail�randomZchoice�sendrr'Zrecvr1�remove)rr.ZNUM_SOCKETSZMSGZMSG_LENZreadersZwritersZr2wZw2r�irrZbufsrZ
ready_writersZ
ready_readersZbufrrr�
test_selector+sV





�




z"BaseSelectorTestCase.test_selectorZwin32z1select.select() cannot be used with empty fd setscCs,|��}|�|j�|�|jdd�g�dS)Nr)Ztimeout)r"rrr'r])rr.rrr�test_empty_select`sz&BaseSelectorTestCase.test_empty_selectcCs
|��}|�|j�|��\}}|�|tj�t�}|�dt	|�
d���|�dt	|�
d���|�t�|d�|�|�|�|tj
�t�}|�|�
d��|�|�
d��|�t�|d�t�}|�|�
d��t�}||}|�d|ko�dkn|�dS)NrIr���g�?皙�����?�@)r"rrrr#r$r4�timer'rNr]�
assertLessr1r%rCr^)rr.rr�t�t0�t1�dtrrr�test_timeoutis&
z!BaseSelectorTestCase.test_timeout�alarmz%signal.alarm() required for this testc	s�|��}|�|j�|��\}}Gdd�dt���fdd�}t�tj|�}|�tjtj|�zrt�d�|�|t	j
�t�}|����|�
d�Wd�n1s�0Y|�t�|d�Wt�d�nt�d�0dS)	Nc@seZdZdS)zGBaseSelectorTestCase.test_select_interrupt_exc.<locals>.InterruptSelectN)rJ�
__module__�__qualname__rrrr�InterruptSelect�sr}cs��dSrr��args�r}rr�handler�sz?BaseSelectorTestCase.test_select_interrupt_exc.<locals>.handlerrI�g@r)r"rrr�	Exception�signal�SIGALRMrzr#r$r%rsr*r]rt)rr.rrr��orig_alrm_handlerrurr�r�test_select_interrupt_exc�s
(z.BaseSelectorTestCase.test_select_interrupt_excc	Cs�|��}|�|j�|��\}}t�tjdd��}|�tjtj|�zNt�d�|�|tj	�t
�}|�|�d��|�
t
�|d�Wt�d�nt�d�0dS)NcWsdSrrr~rrr�<lambda>��zDBaseSelectorTestCase.test_select_interrupt_noraise.<locals>.<lambda>rIg�?g�?r)r"rrrr�r�rzr#r$r%rsrCr]re)rr.rrr�rurrr�test_select_interrupt_noraise�s
z2BaseSelectorTestCase.test_select_interrupt_noraiseN)rJr{r|rr/r3r7r@�
skipUnlessr9�namer;r<rDrQrVrWr\rarbrfrnZskipIf�sys�platformroryrcr�r�r�rrrrr3s:
&
	5�
�
�rc@s,eZdZe�dd�e�ed�dd���ZdS)�ScalableSelectorMixInrh�zTest needs resource modulec
Cs�t�tj�\}}z6t�tj||f�|�tjtj||f�t|d�}Wnttfy`|}Yn0|d8}|��}|�|j	�t
|d�D]�}z|��\}}Wnty�|�d�Yn0z |�
|tj�|�
|tj�Wq�t�y}z&|jtjk�r|�d��WYd}~q�d}~00q�z|��}	WnLt�yx}z2|jtjk�rbtjdk�rb|�d��WYd}~n
d}~00|�|dt|	��dS)Ni� �zFD limit reached�darwinz%Invalid argument error calling poll())�resourceZ	getrlimitZ
RLIMIT_NOFILEZ	setrlimitr�minr	r+r"rrirrLr#r$r%r4�errnoZENOSPCr]ZEINVALr�r�r'rN)
rZsoftZhardZNUM_FDSr.rmrr�eZfdsrrr�test_above_fd_setsize�s>�


z+ScalableSelectorMixIn.test_above_fd_setsizeN)	rJr{r|rZrequires_mac_verr@r�r�r�rrrrr��s

r�c@seZdZejZdS)�DefaultSelectorTestCaseN)rJr{r|r$ZDefaultSelectorr"rrrrr��sr�c@seZdZejZdS)�SelectSelectorTestCaseN)rJr{r|r$ZSelectSelectorr"rrrrr��sr�rFz!Test needs selectors.PollSelectorc@seZdZeedd�ZdS)�PollSelectorTestCaserFN�rJr{r|�getattrr$r"rrrrr��sr�rEz"Test needs selectors.EpollSelectorc@s eZdZeedd�Zdd�ZdS)�EpollSelectorTestCaserENc	Cs�|��}t���|}|�t��|�|tj�Wd�n1s@0Y|�t��|�	|�Wd�n1st0YWd�n1s�0YdSr)
r"�tempfileZNamedTemporaryFiler*�IOErrorr#r$r%r,r>)rr.�frrr�test_register_files
,z(EpollSelectorTestCase.test_register_file)rJr{r|r�r$r"r�rrrrr�sr��KqueueSelectorz$Test needs selectors.KqueueSelector)c@s(eZdZeedd�Zdd�Zdd�ZdS)�KqueueSelectorTestCaser�NcCs�|��}t��}|�t��}|�|tj�Wd�n1s>0Y|�|j	j
t
j�|�t��|�
|�Wd�n1s�0YdSr)r"rZmake_bad_fdr*r	r#r$r%r'Z	exceptionr�ZEBADFr,r>)rr.Zbad_f�cmrrr�test_register_bad_fds,z+KqueueSelectorTestCase.test_register_bad_fdcCs^|��}|�|j�t�}|�|�d�g�t�}||}|�d|koPdkn|�dS)NrIrqrr)r"rrrsr'r]r^)rr.rvrwrxrrr�test_empty_select_timeout&sz0KqueueSelectorTestCase.test_empty_select_timeout)rJr{r|r�r$r"r�r�rrrrr�sr�rGz$Test needs selectors.DevpollSelectorc@seZdZeedd�ZdS)�DevpollSelectorTestCaserGNr�rrrrr�4sr�cCst��dSr)rZ
reap_childrenrrrr�tearDownModule<sr��__main__)%r�r9rjr$r�rr��testrZtest.supportrrsrr@Z
unittest.mockr�rr��ImportErrorrcrZAF_INETZSOCK_STREAMrrr�ZTestCaser�r�r�r�r�r�r�r�rJ�mainrrrr�<module>sn


5��������