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_epoll.cpython-35.opt-2.pyc



���]"�@sddlZddlZddlZddlZddlZddlZddlmZeed�svej	d��yej
�WnIek
r�Zz)ejej
kr�ej	d���WYddZ[XnXGdd�dej�Zedkr�ej�dS)	�N)�support�epollztest works only on Linux 2.6zkernel doesn't support epoll()c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�	TestEPollcCs?tj�|_|jjd�|jj�|jg|_dS)N�	127.0.0.1r)rr)�socket�serverSocket�bind�listen�connections)�self�r�//opt/alt/python35/lib64/python3.5/test_epoll.py�setUp,s
zTestEPoll.setUpcCs"x|jD]}|j�q
WdS)N)r
�close)rZsktrrr
�tearDown2szTestEPoll.tearDowncCs�tj�}|jd�y$|jd|jj�df�Wn?tk
r~}z|j|jdtj	�WYdd}~Xn
Xt
d��|jj�\}}|jj
||f�||fS)NFz	127.0.0.1�rz&Connect should have raised EINPROGRESS)r�setblocking�connectr�getsockname�OSError�assertEqual�args�errnoZEINPROGRESS�AssertionError�acceptr
�extend)r�client�e�server�addrrrr
�_connected_pair6s
$-zTestEPoll._connected_paircCs�ytjd�}Wn7tk
rL}ztt|���WYdd}~XnX|j|j�dk|j��|j|j�|j�|j|j�|j	t
|j�ttd�r�tjtj�j�|j	ttjdd�dS)N�r�
EPOLL_CLOEXEC�flagsiD0)
�selectrrr�str�
assertTrue�fileno�closedr�assertRaises�
ValueError�hasattrr")r�eprrrr
�test_createDs%"
zTestEPoll.test_createcCs�|jttjddd�|jttjd�|jttjd�|jttjf�|jttjdg�|jttji�dS)Nr��Zfoo)r)�	TypeErrorr$r)rrrr
�test_badcreateRszTestEPoll.test_badcreatec
Csftjd��-}|j|j�d�|j|j�WdQRX|j|j�|jt|j�dS)Nr!r)	r$rZ
assertGreaterr'�assertFalser(r&r)r*)rr,rrr
�test_context_managerZs
zTestEPoll.test_context_managercCs�|j�\}}tjd�}zD|j|j�tjtjB�|j|j�tjtjB�Wd|j�Xtjd�}z8|j|tjtjB�|j|tjtjB�Wd|j�Xtjd�}z�|jt	|jt
�tjtjB�|jt	|jdtjtjB�|jt|jdtjtjB�|jt|jdtjtjB�|j|tjtjB�|jt|j|tjtjB�Wd|j�XdS)Nr.ri'���)
r r$r�registerr'�EPOLLIN�EPOLLOUTrr)r0�objectr*r)rrrr,rrr
�test_addas2 $zTestEPoll.test_addcCs=|j�\}}tjd�}tjj|j��}|j|j�tjtjB�|j|j�tjtjB�|jdd�}|jdd�}|j	t
|�d�|j	t
|�d�|j�y|jdd�WnBtk
r+}z"|j	|j
dtj|�WYdd}~XnX|jd�dS)Nr.r�g�������?rz%epoll on closed fd didn't raise EBADF)r r$r�fromfdr'r5r6r7�pollr�lenrrrr�EBADFZfail)rrrr,Zep2�eventsZevents2rrrr
�test_fromfd�s  
0zTestEPoll.test_fromfdcCsz|j�\}}tjd�}|j|j�tjtjBtjB�|j|j�tjtjBtjB�tj	�}|j
dd�}tj	�}|j||dk||�|j�|j�tjf|j�tjfg}|j�|j
||�|j
dddd�}|j|�|jd�|jd	�tj	�}|j
dd�}tj	�}|j||d
k�|j�|j�tjtjBf|j�tjtjBfg}|j�|j
||�|j|j��|j|j�tj�tj	�}|j
dd�}tj	�}|j||d
k�|j�tjfg}|j
||�dS)Nr!rr:g�������?�timeoutg������@Z	maxeventssHello!sworld!!!g{�G�z�?)r r$rr5r'r6r7�EPOLLET�time�	monotonicr<r2�sortr�send�
unregister�modify)rrrr,�nowr?�thenZexpectedrrr
�test_control_and_wait�sH






zTestEPoll.test_control_and_waitcCs<|jttjd�|jttj�jdtj�dS)Nr.r���r4)r)r*r$rr5r6)rrrr
�test_errors�szTestEPoll.test_errorscCs�|j�\}}|j�}tjd�}|j|�tj�}|jdd�}tj�}|j||dk�|j	�|j
|�dS)Nr!rr:g{�G�z�?)r r'r$rr5rCrDr<r2rrG)rrr�fdr,rIr?rJrrr
�test_unregister_closed�s

z TestEPoll.test_unregister_closedcCs�ttd�}|j|j�|j�}tj�}|j|j�t�|j	|j
�|j�|j|j
�|jt
|j�|j�|jt
|j|tj�|jt
|jd�|jt
|j|tj�|jt
|j|�dS)N�rbg�?)�open�__file__�
addCleanuprr'r$rZassertIsInstance�intr2r(r&r)r*rHr6r<r5rG)rZ	open_filerNrrrr
�
test_close�s

zTestEPoll.test_closecCs?tj�}|j|j�|jtj|j��d�dS)NF)r$rrSrr�os�get_inheritabler')rrrrr
�test_fd_non_inheritable�sz!TestEPoll.test_fd_non_inheritableN)�__name__�
__module__�__qualname__rrr r-r1r3r9r@rKrMrOrUrXrrrr
r*s&1r�__main__)rrVr$rrCZunittestZtestrr+ZSkipTestrrrZENOSYSZTestCaserrY�mainrrrr
�<module>s"�