Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/__pycache__/test_selectors.cpython-34.pyc

�
f f�;�@sXddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlZddl
Zyddl
mZ
Wn"ek
r�ddl
m
Z
YnXyddlZWnek
r�dZYnXeed�rejZnejejddd�Zdd	�ZGd
d�dej�ZGdd
�d
�ZGdd�de�ZGdd�de�Zejeed�d�Gdd�dee��Zejeed�d�Gdd�dee��Zejeed�d�Gdd�dee��Zdd�Ze d krTe�ndS)!�N)�support)�sleep)�	monotonic)�time�
socketpaircCs�tj|||���}|jtjdf�|jd�tj|||�}y\|j|j��|j�}x6|j�\}}||kr�||fS|j�quWWnt	k
r�|j��YnXWdQXdS)Nr�)
�socketZbindrZHOSTZlistenZconnectZgetsocknameZaccept�close�OSError)Zfamily�type�proto�l�cZcaddr�aZaddr�r�8/opt/alt/python34/lib64/python3.4/test/test_selectors.pyrs



cCs>g}x1|D])\}}||@r
|j|j�q
q
W|S)N)�append�fileobj)�readyZflag�match�key�eventsrrr�find_ready_matching-s

rc@s-eZdZdd�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(��Zd)S)*�BaseSelectorTestCasecCs9t�\}}|j|j�|j|j�||fS)N)r�
addCleanupr	)�self�rd�wrrrr�make_socketpair7sz$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����)�SELECTORrr	r�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)
r!rr	rr"r#r$�
unregisterr)r+)rr,rrrrr�test_unregisterWs
z$BaseSelectorTestCase.test_unregistercCs�|j�}|j|j�|j�\}}|j�|j�}}|j|tj�|j|tj�|j�|j�|j	|�|j	|�dS)N)
r!rr	rr(r"r#r$�EVENT_WRITEr.)rr,rr�r�wrrr�test_unregister_after_fd_closefs


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)r!rr	rr(r"r#r$r0�os�dup2r.)rr,rrr1r2Zrd2Zwr2rrr�(test_unregister_after_fd_close_and_reusers


z=BaseSelectorTestCase.test_unregister_after_fd_close_and_reusecCs�|j�}|j|j�|j�\}}|j|tj�|j|tj�|j�|j�|j|�|j|�dS)N)	r!rr	rr"r#r$r0r.)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)r!rr	rr"r#r$Zmodifyr0ZassertNotEqualrr&�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)
r!rr	�get_maprr"r#r$r0r)r+r9�__getitem__)rr,�mappingrrrrr�
test_close�s
zBaseSelectorTestCase.test_closecCsy|j�}|j|j�|j�\}}|j|tjd�}|j||j|��|j	t
|jd�dS)Nri?B)r!rr	rr"r#r$r&r9r)r+)rr,rrrrrr�test_get_key�sz!BaseSelectorTestCase.test_get_keycCsB|j�}|j|j�|j�\}}|j�}|j|�|jt|�d�|jt|�g�|j	|t
jd�}|j||�|j|||�|jt|�d�|jt|�|j
�g�|jt|j��|g�|jt��
|dWdQX|jt��||=WdQXdS)Nrr�i?B)r!rr	rr>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)r!rr	rr"r#r$r0�select�
assertTrue�
isinstancer%r<r&)rr,rrZwr_key�resultrrrrr�test_select�s
z BaseSelectorTestCase.test_selectc
Cs�|j�}|j|j�|j�\}}|�-}|j|tj�|j|tj�WdQX|jt	|j
|�|jt	|j
|�dS)N)r!rr	rr"r#r$r0r)r+r9)rr,rrZselrrr�test_context_manager�s	z)BaseSelectorTestCase.test_context_managercCsd|j�}|j|j�t|d�r`|j�}|jt|t��|j|d�ndS)Nr(r)	r!rr	�hasattrr(rKrL�intZassertGreaterEqual)rr,r'rrr�test_fileno	s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}x2|r|j�}
t|
tj	�}|s|j
d�ntj|�}|j|�xStd�D]8}	|j�}
t|
tj�}|rcPntd�q5W|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 writingr g�������?zno sockets ready for readingr)r!rr	rD�rangerr"r#r$r0rrJrZfail�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)r!rr	r&rJ)rr,rrr�test_empty_selectGs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)NrCrg�?g�������?g@���r\)r!rr	rr"r#r0rr&rDrJ�
assertLessr.r$r<rK)rr,rr�tZt0Zt1Zdtrrr�test_timeoutPs&	
			
z!BaseSelectorTestCase.test_timeout�alarmz%signal.alarm() required for this testcCs�|j�}|j|j�|j�\}}tjtjdd��}|jtjtj|�|jtjd�tjd�|j|tj	�t
�}|j|jd��|j
t
�|d�dS)NcWsdS)Nr)�argsrrr�<lambda>rsz<BaseSelectorTestCase.test_select_interrupt.<locals>.<lambda>rrC�g@)r!rr	r�signal�SIGALRMr`r"r#r$rr<rJr])rr,rrZorig_alrm_handlerr^rrr�test_select_interruptjs
	z*BaseSelectorTestCase.test_select_interruptN)�__name__�
__module__�__qualname__rr-r/r3r;�
skipUnlessr5�namer7r8r=rArBrIrNrOrRrYZskipIf�sys�platformr[r_rPrdrfrrrrr5s&'&
	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
ro}z*|jtjkrZ|jd�n�WYdd}~Xq�Xq�W|j|dt|j���dS)Nrc�� zFD limit reachedi)�resourceZ	getrlimitZ
RLIMIT_NOFILEZ	setrlimitr�minr
r*r!r	rTrZskipTestr"r#r$r0�errnoZENOSPCr&rDrJ)	rZsoftZhardZNUM_FDSr,rXrr�errr�test_above_fd_setsize�s0


z+ScalableSelectorMixIn.test_above_fd_setsizeN)	rgrhrirZrequires_mac_verr;rjrrrvrrrrrn~srnc@seZdZejZdS)�DefaultSelectorTestCaseN)rgrhrir#ZDefaultSelectorr!rrrrrw�srwc@seZdZejZdS)�SelectSelectorTestCaseN)rgrhrir#ZSelectSelectorr!rrrrrx�srx�PollSelectorz!Test needs selectors.PollSelectorc@s"eZdZeedd�ZdS)�PollSelectorTestCaseryN)rgrhri�getattrr#r!rrrrrz�srz�
EpollSelectorz"Test needs selectors.EpollSelectorc@s.eZdZeedd�Zdd�ZdS)�EpollSelectorTestCaser|NcCsq|j�}tj��S}|jt��|j|tj�WdQX|jt��|j	|�WdQXWdQXdS)N)
r!�tempfileZNamedTemporaryFiler)�IOErrorr"r#r$r+r9)rr,�frrr�test_register_file�sz(EpollSelectorTestCase.test_register_file)rgrhrir{r#r!r�rrrrr}�sr}�KqueueSelectorz$Test needs selectors.KqueueSelector)c@s.eZdZeedd�Zdd�ZdS)�KqueueSelectorTestCaser�NcCs�|j�}tj�}|jt��}|j|tj�WdQX|j|j	j
t
j�|jt��|j
|�WdQXdS)N)r!rZmake_bad_fdr)r
r"r#r$r&Z	exceptionrtZEBADFr+r9)rr,Zbad_f�cmrrr�test_register_bad_fd�sz+KqueueSelectorTestCase.test_register_bad_fd)rgrhrir{r#r!r�rrrrr��sr�cCs0tttttg}tj|�tj�dS)N)rwrxrzr}r�rZrun_unittestZ
reap_children)Ztestsrrr�	test_main�s
	
r��__main__)!rtr5rUr#rdrrlr~Ztestrrrr;Z
unittest.mockr�ImportErrorrrrPrZAF_INETZSOCK_STREAMrZTestCaserrnrwrxrjrzr}r�r�rgrrrr�<module>sP

�J.