Your IP : 216.73.216.60


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



���]A�@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)
�socket�bindrZHOST�listen�connect�getsockname�accept�close�OSError)�family�type�proto�l�cZcaddr�a�addr�r�3/opt/alt/python35/lib64/python3.5/test_selectors.pyrs



cCs;g}x.|D]&\}}||@r
|j|j�q
W|S)N)�append�fileobj)�ready�flag�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����)�SELECTORr rr$�register�	selectors�
EVENT_READZassertIsInstance�SelectorKey�assertEqualr�fd�filenorr%�assertRaises�
ValueError�KeyError)r!�sr"r#rrrr�
test_register:sz"BaseSelectorTestCase.test_registercCs~|j�}|j|j�|j�\}}|j|tj�|j|�|jt	|jd�|jt	|j|�dS)Ni?B)
r'r rr$r(r)r*�
unregisterr/r1)r!r2r"r#rrr�test_unregisterTs
z$BaseSelectorTestCase.test_unregistercCs�|j�}|j|j�|j�\}}|j�|j�}}|j|tj�|j|tj�|j�|j�|j	|�|j	|�dS)N)
r'r rr$r.r(r)r*�EVENT_WRITEr4)r!r2r"r#�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)r'r rr$r.r(r)r*r6�os�dup2r4)r!r2r"r#r7r8Zrd2Zwr2rrr�(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)	r'r rr$r(r)r*r6r4)r!r2r"r#rrr�"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'r rr$r(r)r*�modifyr6ZassertNotEqualrr,�get_keyr4�objectr%r/r1�unittestZmockZMock�assertFalseZcalled)	r!r2r"r#rZkey2Zd1Zd2Zd3rrr�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'r r�get_mapr$r(r)r*r6r/�RuntimeErrorr@r1�__getitem__)r!r2�mappingr"r#rrr�
test_close�s
zBaseSelectorTestCase.test_closecCsy|j�}|j|j�|j�\}}|j|tjd�}|j||j|��|j	t
|jd�dS)Nr%i?B)r'r rr$r(r)r*r,r@r/r1)r!r2r"r#rrrr�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)r'r rr$rErCr,�len�listr(r)r*ZassertInr.�valuesr/r1�	TypeError)r!r2r"r#�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'r rr$r(r)r*r6�select�
assertTrue�
isinstancer+rCr,)r!r2r"r#Zwr_key�resultrrrrr�test_select�s
z BaseSelectorTestCase.test_selectcCs�|j�}|j|j�|j�\}}|�-}|j|tj�|j|tj�WdQRX|jt	|j
|�|jt	|j
|�dS)N)r'r rr$r(r)r*r6r/rFr@)r!r2r"r#Zselrrr�test_context_manager�s	z)BaseSelectorTestCase.test_context_managercCsa|j�}|j|j�t|d�r]|j�}|jt|t��|j|d�dS)Nr.r)	r'r r�hasattrr.rSrT�int�assertGreaterEqual)r!r2r-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 writingr&g�������?zno sockets ready for readingr)r'r rrL�ranger$r(r)r*r6rrRrZfail�random�choice�sendrr,�recvr4�remove)r!r2ZNUM_SOCKETSZMSGZMSG_LENZreadersZwritersZr2wZw2r�ir"r#ZbufsrZ
ready_writersZ
ready_readers�bufrrr�
test_selectorsT


	





z"BaseSelectorTestCase.test_selector�win32z1select.select() cannot be used with empty fd setscCs<|j�}|j|j�|j|jdd�g�dS)N�timeoutr)r'r rr,rR)r!r2rrr�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)NrKrg�?g�������?g@���ri)r'r rr$r(r)r6�timer,rLrR�
assertLessr4r*rCrS)r!r2r"r#�t�t0�t1Zdtrrr�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rtcs
��dS)Nr)�args)rtrr�handlerrsz?BaseSelectorTestCase.test_select_interrupt_exc.<locals>.handlerrrK�g@)r'r rr$�	Exception�signal�SIGALRMrpr(r)r*rjr/rRrk)r!r2r"r#rv�orig_alrm_handlerrlr)rtr�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)rurrr�<lambda>�szDBaseSelectorTestCase.test_select_interrupt_noraise.<locals>.<lambda>rrKg�?g�?)r'r rr$ryrzrpr(r)r*rjrCrRrZ)r!r2r"r#r{rlrrr�test_select_interrupt_noraise�s
	z2BaseSelectorTestCase.test_select_interrupt_noraiseN)rqrrrsr$r3r5r9rB�
skipUnlessr;�namer=r>rDrIrJrQrVrWr[reZskipIf�sys�platformrhrorXryr|r~rrrrr2s*'&
	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 �minr
r0r'rr]r$ZskipTestr(r)r*r6�errnoZENOSPCr,rLrR)	r!ZsoftZhardZNUM_FDSr2rcr"r#�errr�test_above_fd_setsize�s0



z+ScalableSelectorMixIn.test_above_fd_setsizeN)	rqrrrsrZrequires_mac_verrBrr�r�rrrrr��sr�c@seZdZejZdS)�DefaultSelectorTestCaseN)rqrrrsr)�DefaultSelectorr'rrrrr��sr�c@seZdZejZdS)�SelectSelectorTestCaseN)rqrrrsr)�SelectSelectorr'rrrrr��sr��PollSelectorz!Test needs selectors.PollSelectorc@s"eZdZeedd�ZdS)�PollSelectorTestCaser�N)rqrrrs�getattrr)r'rrrrr��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'�tempfile�NamedTemporaryFiler/�IOErrorr(r)r*r1r@)r!r2�frrr�test_register_file�sz(EpollSelectorTestCase.test_register_file)rqrrrsr�r)r'r�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)r'rZmake_bad_fdr/r
r(r)r*r,�	exceptionr��EBADFr1r@)r!r2Zbad_f�cmrrr�test_register_bad_fd�sz+KqueueSelectorTestCase.test_register_bad_fd)rqrrrsr�r)r'r�rrrrr��sr��DevpollSelectorz$Test needs selectors.DevpollSelectorc@s"eZdZeedd�ZdS)�DevpollSelectorTestCaser�N)rqrrrsr�r)r'rrrrr��sr�cCs3ttttttg}tj|�tj�dS)N)	r�r�r�r�r�r�rZrun_unittestZ
reap_children)Ztestsrrr�	test_mains

r��__main__)"r�r;r^r)ryrr�ZtestrrjrrBZ
unittest.mockr�rr��ImportErrorrXr�AF_INET�SOCK_STREAMrZTestCaserr�r�r�rr�r�r�r�r�rqrrrr�<module>sP
�i.