Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/test_selectors.cpython-310.pyc

o

0�iI�@s�ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddl	mZddlm
Z
ddlZddlZddlZddlmZzddlZWneyWdZYnweed�raejZn
ejejdfdd�Zd	d
�ZGdd�d�ZGd
d�d�ZGdd�deej�ZGdd�deej�Ze�eed�d�Gdd�deeej��Ze�eed�d�Gdd�deeej��Z e�eed�d�Gdd�deeej��Z!e�eed�d �Gd!d"�d"eeej��Z"d#d$�Z#e$d%kr�e�%�dSdS)&�N)�support)�	os_helper)�
socket_helper)�sleep)�	monotonic�
socketpairc	Cs�t�|||��H}|�tjdf�|��t�|||�}z'|�|���|��}	|��\}}||kr>||fWWd�S|��q(t	yN|���w1sRwYdS)Nr)
�socketZbindrZHOSTZlistenZconnectZgetsocknameZaccept�close�OSError)Zfamily�type�proto�l�cZcaddr�aZaddr�r�:/opt/alt/python310/lib64/python3.10/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_socketpair6s
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����)�SELECTORrr	r �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#rr	r r$r%r&�
unregisterr+r-�rr/rrrrr�test_unregisterVs
z$BaseSelectorTestCase.test_unregistercCsv|��}|�|j�|��\}}|��|��}}|�|tj�|�|tj�|��|��|�	|�|�	|�dSr)
r#rr	r r*r$r%r&�EVENT_WRITEr2)rr/rr�r�wrrr�test_unregister_after_fd_closees
z3BaseSelectorTestCase.test_unregister_after_fd_close�posixzrequires posixcCs�|��}|�|j�|��\}}|��|��}}|�|tj�|�|tj�|��\}}|��|��t	�
|��|�t	�
|��|�|�t	j|�|�t	j|�|�|�|�|�dSr)r#rr	r r*r$r%r&r5�os�dup2r2)rr/rrr6r7Zrd2Zwr2rrr�(test_unregister_after_fd_close_and_reuseqs
z=BaseSelectorTestCase.test_unregister_after_fd_close_and_reusecCsd|��}|�|j�|��\}}|�|tj�|�|tj�|��|��|�|�|�|�dSr)	r#rr	r r$r%r&r5r2r3rrr�"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�dSr1)r#rr	r r$r%r&�modifyr5ZassertNotEqualrr(�get_keyr2�objectr!r+r-�unittest�mock�Mock�assertFalseZcalled)	rr/rrrZkey2Zd1Zd2Zd3rrr�test_modify�s.
z BaseSelectorTestCase.test_modifyc	Cs|jjdkr
tj�d�}n|jjdkrtj�d�}n|jjdkr'tj�d�}n|�d��|�W}tjjtd�|j_	|��}|�
|j�|��\}}|�
|tj�|�t|j�d	�|�t��|�	|tj�Wd�n1sowY|�t|j�d
�Wd�dS1s�wYdS)N�
EpollSelectorz%selectors.EpollSelector._selector_cls�PollSelectorz$selectors.PollSelector._selector_cls�DevpollSelectorz'selectors.DevpollSelector._selector_cls�)Zside_effect�r)r#�__name__rArB�patch�skipTestrC�ZeroDivisionErrorZreturn_valuer>rr	r r$r%r&r(�len�_mapr+r5)rrL�mr/rrrrr�test_modify_unregister�s6���

��"�z+BaseSelectorTestCase.test_modify_unregistercCs�|��}|�|j�|��}|��\}}|�|tj�|�|tj�|��|�	t
|j|�|�	t
|j|�|�	t|j
|�|�	t|j
|�dSr)r#rr	�get_mapr r$r%r&r5r+�RuntimeErrorr?r-�__getitem__)rr/�mappingrrrrr�
test_close�szBaseSelectorTestCase.test_closecCsV|��}|�|j�|��\}}|�|tjd�}|�||�|��|�	t
|jd�dS)Nr!r")r#rr	r r$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�n1sqwY|�t��||=Wd�dS1s�wYdS)Nrr!rJr")r#rr	r rSrDr(rO�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@�q$|�
|tjfg|�dSr)r#rr	r r$r%r&r5�select�
assertTrue�
isinstancer'rDr()rr/rrZwr_key�resultrrrrr�test_selects

�z BaseSelectorTestCase.test_selectcCs�|��}|�|j�|��\}}|�}|�|tj�|�|tj�Wd�n1s+wY|�t	|j
|�|�t	|j
|�dSr)r#rr	r r$r%r&r5r+rTr?)rr/rrZselrrr�test_context_managers�z)BaseSelectorTestCase.test_context_managercCsJ|��}|�|j�t|d�r#|��}|�t|t��|�|d�dSdS)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](}	|��\}
}|�|
tj�|�|tj	�|�
|
�|�
|�|||
<|
||<qg}|r�|��}
t|
tj	�}|s\|�
d�t�|�}|�|�td�D]}	|��}
t|
tj�}|rzn
td�qj|�
d�|�||g|�|d}
|
�|�}|�t|�|�|�
|�|�||
�|�|
�|�||
�|sK|�||g|�dS)N�s This is a test.zno sockets ready for writing�
g�������?zno sockets ready for readingr)r#rr	rO�ranger r$r%r&r5rr^rZfail�randomZchoice�sendrr(Zrecvr2�remove)rr/ZNUM_SOCKETSZMSGZMSG_LENZreadersZwritersZr2wZw2r�irrZbufsrZ
ready_writersZ
ready_readersZbufrrr�
test_selector,sX





�




�z"BaseSelectorTestCase.test_selectorZwin32z1select.select() cannot be used with empty fd setscCs,|��}|�|j�|�|jdd�g�dS)Nr)Ztimeout)r#rr	r(r^)rr/rrr�test_empty_selectas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)NrJr���g�?皙�����?�@)r#rr	r r$r%r5�timer(rOr^�
assertLessr2r&rDr_)rr/rr�t�t0�t1�dtrrr�test_timeoutjs&
$z!BaseSelectorTestCase.test_timeout�alarmz%signal.alarm() required for this testc	s�|��}|�|j�|��\}}Gdd�dt���fdd�}t�tj|�}|�tjtj|�z:t�d�|�|t	j
�t�}|����
|�
d�Wd�n1sSwY|�t�|d�Wt�d�dSt�d�w)	Nc@seZdZdS)zGBaseSelectorTestCase.test_select_interrupt_exc.<locals>.InterruptSelectN)rK�
__module__�__qualname__rrrr�InterruptSelect�sr~cs��rr��args�r~rr�handler�sz?BaseSelectorTestCase.test_select_interrupt_exc.<locals>.handlerrJ�g@r)r#rr	r �	Exception�signal�SIGALRMr{r$r%r&rtr+r^ru)rr/rrr��orig_alrm_handlerrvrr�r�test_select_interrupt_exc�s 
�z.BaseSelectorTestCase.test_select_interrupt_excc	Cs�|��}|�|j�|��\}}t�tjdd��}|�tjtj|�z(t�d�|�|tj	�t
�}|�|�d��|�
t
�|d�Wt�d�dSt�d�w)NcWsdSrrrrrr�<lambda>�szDBaseSelectorTestCase.test_select_interrupt_noraise.<locals>.<lambda>rJg�?g�?r)r#rr	r r�r�r{r$r%r&rtrDr^rf)rr/rrr�rvrrr�test_select_interrupt_noraise�s
z2BaseSelectorTestCase.test_select_interrupt_noraiseN)rKr|r}r r0r4r8rA�
skipUnlessr:�namer<r=rErRrWrXr]rbrcrgroZskipIf�sys�platformrprzrdr�r�r�rrrrr4s<
&
	5�
�
�rc@s,eZdZe�dd�e�ed�dd���ZdS)�ScalableSelectorMixInri�zTest needs resource modulec
Csnt�tj�\}}zt�tj||f�|�tjtj||f�t|d�}Wn
ttfy0|}Ynw|d8}|��}|�|j	�t
|d�D]A}z|��\}}Wnty]|�d�Ynwz|�
|tj�|�
|tj�WqEty�}z|jtjkr�|�d��d}~wwz|��}	Wnty�}z|jtjkr�tjdkr�|�d��d}~ww|�|dt|	��dS)Ni� �zFD limit reached�darwinz%Invalid argument error calling poll())�resourceZ	getrlimitZ
RLIMIT_NOFILEZ	setrlimitr�minr
r,r#r	rjr rMr$r%r&r5�errnoZENOSPCr^ZEINVALr�r�r(rO)
rZsoftZhardZNUM_FDSr/rnrr�eZfdsrrr�test_above_fd_setsize�sJ���
��
��z+ScalableSelectorMixIn.test_above_fd_setsizeN)	rKr|r}rZrequires_mac_verrAr�r�r�rrrrr��s

r�c@�eZdZejZdS)�DefaultSelectorTestCaseN)rKr|r}r%ZDefaultSelectorr#rrrrr���
r�c@r�)�SelectSelectorTestCaseN)rKr|r}r%ZSelectSelectorr#rrrrr��r�r�rGz!Test needs selectors.PollSelectorc@�eZdZeedd�ZdS)�PollSelectorTestCaserGN�rKr|r}�getattrr%r#rrrrr���r�rFz"Test needs selectors.EpollSelectorc@s eZdZeedd�Zdd�ZdS)�EpollSelectorTestCaserFNc	Cs�|��}t���G}|�t��|�|tj�Wd�n1s wY|�t��
|�	|�Wd�n1s:wYWd�dSWd�dS1sRwYdSr)
r#�tempfileZNamedTemporaryFiler+�IOErrorr$r%r&r-r?)rr/�frrr�test_register_file	s
���"�z(EpollSelectorTestCase.test_register_file)rKr|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�n1swY|�|j	j
t
j�|�t��|�
|�Wd�dS1sCwYdSr)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|ko(dkn|�dS)NrJrrrs)r#rr	rtr(r^r_)rr/rwrxryrrr�test_empty_select_timeout's$z0KqueueSelectorTestCase.test_empty_select_timeout)rKr|r}r�r%r#r�r�rrrrr�sr�rHz$Test needs selectors.DevpollSelectorc@r�)�DevpollSelectorTestCaserHNr�rrrrr�5r�r�cCst��dSr)rZ
reap_childrenrrrr�tearDownModule=sr��__main__)&r�r:rkr%r�rr��testrZtest.supportrrrtrrAZ
unittest.mockr�rr��ImportErrorrdrZAF_INETZSOCK_STREAMrrr�ZTestCaser�r�r�r�r�r�r�r�rK�mainrrrr�<module>sv�

5���������