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_selectors.cpython-35.opt-1.pyc



��YfA�@s`ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlZddlZddl
Z
ddl	mZ	yddlZWnek
r�dZYnXeed�r�ejZnejejddd�Zdd�ZGd	d
�d
ej�ZGdd�d�ZGd
d�de�ZGdd�de�Zejeed�d�Gdd�dee��Zejeed�d�Gdd�dee��Zejeed�d�Gdd�dee��Zejeed�d�Gdd �d ee��Zd!d"�Z e!d#kr\e �dS)$�N)�support)�sleep)�	monotonic�
socketpaircCs�tj|||���}|jtjdf�|j�tj|||�}y\|j|j��|j�}x6|j�\}}||kr�||fS|j�qrWWnt	k
r�|j��YnXWdQRXdS)Nr)
�socketZbindrZHOSTZlistenZconnectZgetsocknameZaccept�close�OSError)Zfamily�type�proto�l�cZcaddr�aZaddr�r�8/opt/alt/python35/lib64/python3.5/test/test_selectors.pyrs



cCs;g}x.|D]&\}}||@r
|j|j�q
W|S)N)�append�fileobj)�readyZflag�match�key�eventsrrr�find_ready_matching*s

rc@sTeZdZdd�Zdd�Zdd�Zdd�Zeje	j
d	kd
�dd��Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zejejdkd �d!d"��Zd#d$�Zejeed%�d&�d'd(��Zejeed%�d&�d)d*��Zd+S),�BaseSelectorTestCasecCs9t�\}}|j|j�|j|j�||fS)N)r�
addCleanupr)�self�rd�wrrrr�make_socketpair4sz$BaseSelectorTestCase.make_socketpaircCs%|j�}|j|j�|j�\}}|j|tjd�}|j|tj�|j	|j
|�|j	|j|j��|j	|j
tj�|j	|jd�|jt|jdd�|jt|jdtj�|jt|j|tj�|jt|j|j�tj�dS)N�datari?B�
i����)�SELECTORrrr�register�	selectors�
EVENT_READZassertIsInstance�SelectorKey�assertEqualr�fd�filenorr�assertRaises�
ValueError�KeyError)r�srrrrrr�
test_register:sz"BaseSelectorTestCase.test_registercCs~|j�}|j|j�|j�\}}|j|tj�|j|�|jt	|jd�|jt	|j|�dS)Ni?B)
rrrrr r!r"�
unregisterr'r))rr*rrrrr�test_unregisterTs
z$BaseSelectorTestCase.test_unregistercCs�|j�}|j|j�|j�\}}|j�|j�}}|j|tj�|j|tj�|j�|j�|j	|�|j	|�dS)N)
rrrrr&r r!r"�EVENT_WRITEr,)rr*rr�r�wrrr�test_unregister_after_fd_closecs


z3BaseSelectorTestCase.test_unregister_after_fd_close�posixzrequires posixcCs|j�}|j|j�|j�\}}|j�|j�}}|j|tj�|j|tj�|j�\}}|j�|j�t	j
|j�|�t	j
|j�|�|jt	j|�|jt	j|�|j|�|j|�dS)N)rrrrr&r r!r"r.�os�dup2r,)rr*rrr/r0Zrd2Zwr2rrr�(test_unregister_after_fd_close_and_reuseos


z=BaseSelectorTestCase.test_unregister_after_fd_close_and_reusecCs�|j�}|j|j�|j�\}}|j|tj�|j|tj�|j�|j�|j|�|j|�dS)N)	rrrrr r!r"r.r,)rr*rrrrr�"test_unregister_after_socket_close�s


z7BaseSelectorTestCase.test_unregister_after_socket_closec	Cs�|j�}|j|j�|j�\}}|j|tj�}|j|tj�}|j	|j
|j
�|j||j|��|j
|�t�}t�}|j|tj|�}|j|tj|�}|j|j
|j
�|j	|j|j�|j||j|��|j|j|�|jt|jdtj�t�}tjj�|_tjj�|_
|j|tj|�|j|jj�|j|j
j�dS)Ni?B)rrrrr r!r"Zmodifyr.ZassertNotEqualrr$�get_keyr,�objectrr'r)�unittestZmockZMock�assertFalseZcalled)	rr*rrrZkey2Zd1Zd2Zd3rrr�test_modify�s.
			z BaseSelectorTestCase.test_modifycCs�|j�}|j|j�|j�}|j�\}}|j|tj�|j|tj�|j�|j	t
|j|�|j	t
|j|�|j	t|j
|�|j	t|j
|�dS)N)rrr�get_maprr r!r"r.r'�RuntimeErrorr7r)�__getitem__)rr*�mappingrrrrr�
test_close�s
zBaseSelectorTestCase.test_closecCsy|j�}|j|j�|j�\}}|j|tjd�}|j||j|��|j	t
|jd�dS)Nri?B)rrrrr r!r"r$r7r'r))rr*rrrrrr�test_get_key�sz!BaseSelectorTestCase.test_get_keycCsD|j�}|j|j�|j�\}}|j�}|j|�|jt|�d�|jt|�g�|j	|t
jd�}|j||�|j|||�|jt|�d�|jt|�|j
�g�|jt|j��|g�|jt��
|dWdQRX|jt��||=WdQRXdS)Nrr�i?B)rrrrr<r:r$�len�listr r!r"ZassertInr&�valuesr'r)�	TypeError)rr*rr�keysrrrr�test_get_map�s"
z!BaseSelectorTestCase.test_get_mapcCs�|j�}|j|j�|j�\}}|j|tj�|j|tj�}|j�}xV|D]N\}}|j	t
|tj��|j	|�|j|tjtjB@�qiW|j
|tjfg|�dS)N)rrrrr r!r"r.�select�
assertTrue�
isinstancer#r:r$)rr*rrZwr_key�resultrrrrr�test_select�s
z BaseSelectorTestCase.test_selectcCs�|j�}|j|j�|j�\}}|�-}|j|tj�|j|tj�WdQRX|jt	|j
|�|jt	|j
|�dS)N)rrrrr r!r"r.r'r=r7)rr*rrZselrrr�test_context_manager�s	z)BaseSelectorTestCase.test_context_managercCsa|j�}|j|j�t|d�r]|j�}|jt|t��|j|d�dS)Nr&r)	rrr�hasattrr&rJrK�int�assertGreaterEqual)rr*r%rrr�test_filenosz BaseSelectorTestCase.test_filenocCs|j�}|j|j�d}d}t|�}g}g}i}i}xzt|�D]l}	|j�\}
}|j|
tj�|j|tj	�|j
|
�|j
|�|||
<|
||<qYWg}x,|r�|j�}
t|
tj	�}|s	|j
d�tj|�}|j|�xPtd�D]5}	|j�}
t|
tj�}|r]Ptd�q2W|j
d�|j||g|�|d}
|
j|�}|jt|�|�|j
|�|j||
�|j|
�|j||
�q�W|j||g|�dS)N�s This is a test.zno sockets ready for writingrg�������?zno sockets ready for readingr)rrrrC�rangerr r!r"r.rrIrZfail�randomZchoice�sendrr$Zrecvr,�remove)rr*ZNUM_SOCKETSZMSGZMSG_LENZreadersZwritersZr2wZw2r�irrZbufsrZ
ready_writersZ
ready_readersZbufrrr�
test_selectorsT


	





z"BaseSelectorTestCase.test_selector�win32z1select.select() cannot be used with empty fd setscCs<|j�}|j|j�|j|jdd�g�dS)NZtimeoutr)rrrr$rI)rr*rrr�test_empty_selectDsz&BaseSelectorTestCase.test_empty_selectcCsg|j�}|j|j�|j�\}}|j|tj�t�}|jdt	|j
d���|jdt	|j
d���|jt�|d�|j|�|j|tj
�t�}|j|j
d��|j|j
d��|jt�|d�t�}|j|j
d��t�}||}|jd|koZdkn|�dS)NrBrg�?g�������?g@���r\)rrrrr r!r.�timer$rCrI�
assertLessr,r"r:rJ)rr*rr�tZt0Zt1Zdtrrr�test_timeoutMs&	
			
z!BaseSelectorTestCase.test_timeout�alarmz%signal.alarm() required for this testc
s�|j�}|j|j�|j�\}}Gdd�dt���fdd�}tjtj|�}|jtjtj|�|jtjd�tjd�|j|t	j
�t�}|j���|j
d�WdQRX|jt�|d�dS)	Nc@seZdZdS)zGBaseSelectorTestCase.test_select_interrupt_exc.<locals>.InterruptSelectN)�__name__�
__module__�__qualname__rrrr�InterruptSelectosrecs
��dS)Nr)�args)rerr�handlerrsz?BaseSelectorTestCase.test_select_interrupt_exc.<locals>.handlerrrB�g@)rrrr�	Exception�signal�SIGALRMrar r!r"r]r'rIr^)rr*rrrg�orig_alrm_handlerr_r)rer�test_select_interrupt_excgs
	z.BaseSelectorTestCase.test_select_interrupt_exccCs�|j�}|j|j�|j�\}}tjtjdd��}|jtjtj|�|jtjd�tjd�|j|tj	�t
�}|j|jd��|j
t
�|d�dS)NcWsdS)Nr)rfrrr�<lambda>�szDBaseSelectorTestCase.test_select_interrupt_noraise.<locals>.<lambda>rrBg�?g�?)rrrrrjrkrar r!r"r]r:rIrQ)rr*rrrlr_rrr�test_select_interrupt_noraise�s
	z2BaseSelectorTestCase.test_select_interrupt_noraiseN)rbrcrdrr+r-r1r9�
skipUnlessr3�namer5r6r;r@rArHrMrNrRrYZskipIf�sys�platformr[r`rOrjrmrorrrrr2s*'&
	5rc@s@eZdZejdd�ejed�dd���ZdS)�ScalableSelectorMixInr�zTest needs resource modulec	!Cs�tjtj�\}}yKtjtj||f�|jtjtj||f�t|d�}Wnttfk
r�|}YnX|d8}|j�}|j|j	�x�t
|d�D]�}y|j�\}}Wntk
r�|jd�YnXy*|j
|tj�|j
|tj�Wq�tk
rl}z'|jtjkrW|jd��WYdd}~Xq�Xq�W|j|dt|j���dS)N��� zFD limit reachedi)�resourceZ	getrlimitZ
RLIMIT_NOFILEZ	setrlimitr�minrr(rrrTrZskipTestr r!r"r.�errnoZENOSPCr$rCrI)	rZsoftZhardZNUM_FDSr*rXrr�errr�test_above_fd_setsize�s0



z+ScalableSelectorMixIn.test_above_fd_setsizeN)	rbrcrdrZrequires_mac_verr9rpryr}rrrrrt�srtc@seZdZejZdS)�DefaultSelectorTestCaseN)rbrcrdr!ZDefaultSelectorrrrrrr~�sr~c@seZdZejZdS)�SelectSelectorTestCaseN)rbrcrdr!ZSelectSelectorrrrrrr�sr�PollSelectorz!Test needs selectors.PollSelectorc@s"eZdZeedd�ZdS)�PollSelectorTestCaser�N)rbrcrd�getattrr!rrrrrr��sr��
EpollSelectorz"Test needs selectors.EpollSelectorc@s.eZdZeedd�Zdd�ZdS)�EpollSelectorTestCaser�NcCst|j�}tj��U}|jt��|j|tj�WdQRX|jt��|j	|�WdQRXWdQRXdS)N)
r�tempfileZNamedTemporaryFiler'�IOErrorr r!r"r)r7)rr*�frrr�test_register_file�sz(EpollSelectorTestCase.test_register_file)rbrcrdr�r!rr�rrrrr��sr��KqueueSelectorz$Test needs selectors.KqueueSelector)c@s.eZdZeedd�Zdd�ZdS)�KqueueSelectorTestCaser�NcCs�|j�}tj�}|jt��}|j|tj�WdQRX|j|j	j
t
j�|jt��|j
|�WdQRXdS)N)rrZmake_bad_fdr'rr r!r"r$Z	exceptionr{ZEBADFr)r7)rr*Zbad_f�cmrrr�test_register_bad_fd�sz+KqueueSelectorTestCase.test_register_bad_fd)rbrcrdr�r!rr�rrrrr��sr��DevpollSelectorz$Test needs selectors.DevpollSelectorc@s"eZdZeedd�ZdS)�DevpollSelectorTestCaser�N)rbrcrdr�r!rrrrrr��sr�cCs3ttttttg}tj|�tj�dS)N)	r~rr�r�r�r�rZrun_unittestZ
reap_children)Ztestsrrr�	test_mains

r��__main__)"r{r3rUr!rjrrrZtestrr]rr9Z
unittest.mockr�rry�ImportErrorrOrZAF_INETZSOCK_STREAMrZTestCaserrtr~rrpr�r�r�r�r�rbrrrr�<module>sP
�i.