Your IP : 216.73.216.85


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-1.pyc



��Yf"�@s	dZddlZddlZddlZddlZddlZddlZddlmZe	ed�s|ej
d��yej�WnIek
r�Z
z)e
jejkr�ej
d���WYddZ
[
XnXGdd�dej�Zed	krej�dS)
z
Tests for epoll wrapper.
�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�serverSocketZbindZlisten�connections)�self�r
�4/opt/alt/python35/lib64/python3.5/test/test_epoll.py�setUp,s
zTestEPoll.setUpcCs"x|jD]}|j�q
WdS)N)r�close)r	Zsktr
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)rZsetblockingZconnectrZgetsockname�OSError�assertEqual�args�errnoZEINPROGRESS�AssertionErrorZacceptr�extend)r	�client�e�serverZaddrr
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"�	TypeErrorrr)r	r
r
r�test_badcreateRszTestEPoll.test_badcreatec
Csftjd��-}|j|j�d�|j|j�WdQRX|j|j�|jt|j�dS)Nrr)	rrZ
assertGreaterr �assertFalser!rr"r#)r	r%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'���)
rrr�registerr �EPOLLIN�EPOLLOUTr
r"r)�objectr#r)r	rrr%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)rrrZfromfdr r.r/r0�pollr�lenr
rrrZEBADFZfail)r	rrr%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)Nrrr3g�������?Ztimeoutg������@Z	maxeventssHello!sworld!!!g{�G�z�?)rrrr.r r/r0ZEPOLLET�time�	monotonicr4r+�sortr�send�
unregister�modify)r	rrr%�nowr6�thenZexpectedr
r
r�test_control_and_wait�sH






zTestEPoll.test_control_and_waitcCs<|jttjd�|jttj�jdtj�dS)Nr'r���r-)r"r#rrr.r/)r	r
r
r�test_errors�szTestEPoll.test_errorscCs�|j�\}}|j�}tjd�}|j|�tj�}|jdd�}tj�}|j||dk�|j	�|j
|�dS)Nrrr3g{�G�z�?)rr rrr.r8r9r4r+r
r<)r	rr�fdr%r>r6r?r
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__�
addCleanupr
r rrZassertIsInstance�intr+r!rr"r#r=r/r4r.r<)r	Z	open_filerCrr
r
r�
test_close�s

zTestEPoll.test_closecCs?tj�}|j|j�|jtj|j��d�dS)NF)rrrHr
r�os�get_inheritabler )r	rr
r
r�test_fd_non_inheritable�sz!TestEPoll.test_fd_non_inheritableN)�__name__�
__module__�__qualname__rrrr&r*r,r2r7r@rBrDrJrMr
r
r
rr*s&1r�__main__)�__doc__rrKrrr8ZunittestZtestrr$ZSkipTestrrrZENOSYSZTestCaserrN�mainr
r
r
r�<module>s$�