Your IP : 216.73.216.85


Current Path : /opt/alt/python38/lib64/python3.8/test/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/__pycache__/test_selectors.cpython-38.pyc

U

i�f'G�@s�ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlZddlZddl
Z
ddl	mZ	zddlZWnek
r�dZYnXeed�r�ejZnejejdfdd�Zdd�ZGd	d
�d
ej�ZGdd�d�ZGd
d�de�ZGdd�de�Ze�eed�d�Gdd�dee��Ze�eed�d�Gdd�dee��Ze�eed�d�Gdd�dee��Ze�eed�d�Gdd �d ee��Zd!d"�Z e!d#k�r�e �dS)$�N)�support)�sleep)�	monotonic�
socketpairc
Cs�t�|||���}|�tjdf�|��t�|||�}zN|�|���|��}|��\}}||krx||fWW5QR�S|��qNWnt	k
r�|���YnXW5QRXdS)Nr)
�socketZbindrZHOSTZlistenZconnectZgetsocknameZaccept�close�OSError)Zfamily�type�proto�l�cZcaddr�aZaddr�r�8/opt/alt/python38/lib64/python3.8/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_socketpair4s
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_unregisterTs
z$BaseSelectorTestCase.test_unregistercCsv|��}|�|j�|��\}}|��|��}}|�|tj�|�|tj�|��|��|�	|�|�	|�dSr)
r!rrrr(r"r#r$�EVENT_WRITEr0)rr-rr�r�wrrr�test_unregister_after_fd_closecs
z3BaseSelectorTestCase.test_unregister_after_fd_close�posixzrequires posixcCs�|��}|�|j�|��\}}|��|��}}|�|tj�|�|tj�|��\}}|��|��t	�
|��|�t	�
|��|�|�t	j|�|�t	j|�|�|�|�|�dSr)r!rrrr(r"r#r$r3�os�dup2r0)rr-rrr4r5Zrd2Zwr2rrr�(test_unregister_after_fd_close_and_reuseos
z=BaseSelectorTestCase.test_unregister_after_fd_close_and_reusecCsd|��}|�|j�|��\}}|�|tj�|�|tj�|��|��|�|�|�|�dSr)	r!rrrr"r#r$r3r0r1rrr�"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�dSr/)r!rrrr"r#r$�modifyr3ZassertNotEqualrr&�get_keyr0�objectrr)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�W5QRX|�t|j�d
�W5QRXdS)N�
EpollSelectorz%selectors.EpollSelector._selector_cls�PollSelectorz$selectors.PollSelector._selector_cls�DevpollSelectorz'selectors.DevpollSelector._selector_cls�)Zside_effect�r)r!�__name__r?r@�patch�skipTestrA�ZeroDivisionErrorZreturn_valuer<rrrr"r#r$r&�len�_mapr)r3)rrJ�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$r3r)�RuntimeErrorr=r+�__getitem__)rr-�mappingrrrrr�
test_close�szBaseSelectorTestCase.test_closecCsV|��}|�|j�|��\}}|�|tjd�}|�||�|��|�	t
|jd�dS)Nrr )r!rrrr"r#r$r&r=r)r+r,rrr�test_get_key�sz!BaseSelectorTestCase.test_get_keyc	Cs�|��}|�|j�|��\}}|��}|�|�|�t|�d�|�t|�g�|�	|t
jd�}|�||�|�|||�|�t|�d�|�t|�|�
�g�|�t|���|g�|�t��|dW5QRX|�t��||=W5QRXdS)NrrrHr )r!rrrrQrBr&rM�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$r3�select�
assertTrue�
isinstancer%rBr&)rr-rrZwr_key�resultrrrrr�test_selects

�z BaseSelectorTestCase.test_selectc	Csp|��}|�|j�|��\}}|�"}|�|tj�|�|tj�W5QRX|�t	|j
|�|�t	|j
|�dSr)r!rrrr"r#r$r3r)rRr=)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!rrrM�rangerr"r#r$r3rr\rZfail�randomZchoice�sendrr&Zrecvr0�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)NrHr���g�?g�������?g@)r!rrrr"r#r3�timer&rMr\�
assertLessr0r$rBr])rr-rr�tZt0�t1Zdtrrr�test_timeouths&
z!BaseSelectorTestCase.test_timeout�alarmz%signal.alarm() required for this testc	s�|��}|�|j�|��\}}Gdd�dt���fdd�}t�tj|�}|�tjtj|�zTt�d�|�|t	j
�t�}|����|�
d�W5QRX|�t�|d�W5t�d�XdS)	Nc@seZdZdS)zGBaseSelectorTestCase.test_select_interrupt_exc.<locals>.InterruptSelectN)rI�
__module__�__qualname__rrrr�InterruptSelect�srxcs��dSrr��args�rxrr�handler�sz?BaseSelectorTestCase.test_select_interrupt_exc.<locals>.handlerrrH�g@)r!rrr�	Exception�signal�SIGALRMrur"r#r$rpr)r\rq)rr-rrr|�orig_alrm_handlerrrrr{r�test_select_interrupt_exc�s
z.BaseSelectorTestCase.test_select_interrupt_excc	Cs�|��}|�|j�|��\}}t�tjdd��}|�tjtj|�zDt�d�|�|tj	�t
�}|�|�d��|�
t
�|d�W5t�d�XdS)NcWsdSrrryrrr�<lambda>��zDBaseSelectorTestCase.test_select_interrupt_noraise.<locals>.<lambda>rrHg�?g�?)r!rrrrr�rur"r#r$rprBr\rd)rr-rrr�rrrrr�test_select_interrupt_noraise�s
z2BaseSelectorTestCase.test_select_interrupt_noraiseN)rIrvrwrr.r2r6r?�
skipUnlessr8�namer:r;rCrPrUrVr[r`rarermZskipIf�sys�platformrnrtrbrr�r�rrrrr2s:
&
	5�
�
�rc@s,eZdZe�dd�e�ed�dd���ZdS)�ScalableSelectorMixInrg�zTest needs resource modulec
Cs�t�tj�\}}z6t�tj||f�|�tjtj||f�t|d�}Wnttfk
rb|}YnX|d8}|��}|�|j	�t
|d�D]�}z|��\}}Wntk
r�|�d�YnXz |�
|tj�|�
|tj�Wq�tk
�r}z|jtjk�r|�d��W5d}~XYq�Xq�z|��}	WnJtk
�rx}z*|jtjk�rftjdk�rf|�d��W5d}~XYnX|�|dt|	��dS)Ni� �zFD limit reached�darwinz%Invalid argument error calling poll())�resourceZ	getrlimitZ
RLIMIT_NOFILEZ	setrlimitr�minrr*r!rrhrrKr"r#r$r3�errnoZENOSPCr\ZEINVALr�r�r&rM)
rZsoftZhardZNUM_FDSr-rlrr�eZfdsrrr�test_above_fd_setsize�s>�


z+ScalableSelectorMixIn.test_above_fd_setsizeN)	rIrvrwrZrequires_mac_verr?r�r�r�rrrrr��s

r�c@seZdZejZdS)�DefaultSelectorTestCaseN)rIrvrwr#ZDefaultSelectorr!rrrrr��sr�c@seZdZejZdS)�SelectSelectorTestCaseN)rIrvrwr#ZSelectSelectorr!rrrrr��sr�rEz!Test needs selectors.PollSelectorc@seZdZeedd�ZdS)�PollSelectorTestCaserEN�rIrvrw�getattrr#r!rrrrr��sr�rDz"Test needs selectors.EpollSelectorc@s eZdZeedd�Zdd�ZdS)�EpollSelectorTestCaserDNc
Csd|��}t���J}|�t��|�|tj�W5QRX|�t��|�	|�W5QRXW5QRXdSr)
r!�tempfileZNamedTemporaryFiler)�IOErrorr"r#r$r+r=)rr-�frrr�test_register_files
z(EpollSelectorTestCase.test_register_file)rIrvrwr�r#r!r�rrrrr��sr��KqueueSelectorz$Test needs selectors.KqueueSelector)c@s eZdZeedd�Zdd�ZdS)�KqueueSelectorTestCaser�Nc	Csj|��}t��}|�t��}|�|tj�W5QRX|�|j	j
t
j�|�t��|�
|�W5QRXdSr)r!rZmake_bad_fdr)rr"r#r$r&Z	exceptionr�ZEBADFr+r=)rr-Zbad_f�cmrrr�test_register_bad_fdsz+KqueueSelectorTestCase.test_register_bad_fd)rIrvrwr�r#r!r�rrrrr�sr�rFz$Test needs selectors.DevpollSelectorc@seZdZeedd�ZdS)�DevpollSelectorTestCaserFNr�rrrrr�#sr�cCs&ttttttg}tj|�t��dSr)	r�r�r�r�r�r�rZrun_unittestZ
reap_children)Ztestsrrr�	test_main+s�
r��__main__)"r�r8rir#rrr�Ztestrrprr?Z
unittest.mockr�rr��ImportErrorrbrZAF_INETZSOCK_STREAMrZTestCaserr�r�r�r�r�r�r�r�r�rIrrrr�<module>s\


5����