HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_selectors.cpython-37.pyc
B

��g'G�@s�ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlZddlZddl
Z
ddl	mZ	yddlZWnek
r�dZYnXeed�r�ejZnejejdfdd�Zdd�ZGd	d
�d
ej�ZGdd�d�ZGd
d�de�ZGdd�de�Ze�eed�d�Gdd�dee��Ze�eed�d�Gdd�dee��Ze�eed�d�Gdd�dee��Ze�eed�d�Gdd �d ee��Zd!d"�Z e!d#k�r�e �dS)$�N)�support)�sleep)�	monotonic�
socketpairc	Cs�t�|||���}|�tjdf�|��t�|||�}yD|�|���|��}x(|��\}}||krl||fS|��qPWWnt	k
r�|���YnXWdQRXdS)Nr)
�socketZbindrZHOSTZlistenZconnectZgetsocknameZaccept�close�OSError)Zfamily�type�proto�l�cZcaddr�aZaddr�r�//usr/local/lib/python3.7/test/test_selectors.pyrscCs.g}x$|D]\}}||@r
|�|j�q
W|S)N)�append�fileobj)�ready�flag�match�key�eventsrrr�find_ready_matching*s
rc@s�eZdZdd�Zdd�Zdd�Zdd�Ze�e	j
d	kd
�dd��Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Ze�ejd!kd"�d#d$��Zd%d&�Ze�eed'�d(�d)d*��Ze�eed'�d(�d+d,��Zd-S).�BaseSelectorTestCasecCs*t�\}}|�|j�|�|j�||fS)N)r�
addCleanupr)�self�rd�wrrrr�make_socketpair4s
z$BaseSelectorTestCase.make_socketpaircCs�|��}|�|j�|��\}}|�|tjd�}|�|tj�|�	|j
|�|�	|j|���|�	|j
tj�|�	|jd�|�t|jdd�|�t|jdtj�|�t|j|tj�|�t|j|��tj�dS)N�datari?Bi����)�SELECTORrrr�register�	selectors�
EVENT_READZassertIsInstance�SelectorKey�assertEqualr�fd�filenorr�assertRaises�
ValueError�KeyError)r�srrrrrr�
test_register:sz"BaseSelectorTestCase.test_registercCs\|��}|�|j�|��\}}|�|tj�|�|�|�t	|jd�|�t	|j|�dS)Ni?B)
rrrrr r!r"�
unregisterr'r))rr*rrrrr�test_unregisterTs
z$BaseSelectorTestCase.test_unregistercCsv|��}|�|j�|��\}}|��|��}}|�|tj�|�|tj�|��|��|�	|�|�	|�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�|��\}}|��|��}}|�|tj�|�|tj�|��\}}|��|��t	�
|��|�t	�
|��|�|�t	j|�|�t	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_reusecCsd|��}|�|j�|��\}}|�|tj�|�|tj�|��|��|�|�|�|�dS)N)	rrrrr r!r"r.r,)rr*rrrrr�"test_unregister_after_socket_close�s
z7BaseSelectorTestCase.test_unregister_after_socket_closec	Cs6|��}|�|j�|��\}}|�|tj�}|�|tj�}|�	|j
|j
�|�||�|��|�
|�t�}t�}|�|tj|�}|�|tj|�}|�|j
|j
�|�	|j|j�|�||�|��|�|j|�|�t|jdtj�t�}tj��|_tj��|_
|�|tj|�|�|jj�|�|j
j�dS)Ni?B)rrrrr r!r"�modifyr.ZassertNotEqualrr$�get_keyr,�objectrr'r)�unittest�mock�Mock�assertFalseZcalled)	rr*rrrZkey2Zd1Zd2Zd3rrr�test_modify�s.
z BaseSelectorTestCase.test_modifyc
Cs�|jjdkrtj�d�}n>|jjdkr4tj�d�}n$|jjdkrNtj�d�}n
|�d��|��}tjjtd�|j_	|��}|�
|j�|��\}}|�
|tj�|�t|j�d	�|�t��|�	|tj�WdQRX|�t|j�d
�WdQRXdS)N�
EpollSelectorz%selectors.EpollSelector._selector_cls�PollSelectorz$selectors.PollSelector._selector_cls�DevpollSelectorz'selectors.DevpollSelector._selector_cls�)Zside_effect�r)r�__name__r:r;�patch�skipTestr<�ZeroDivisionErrorZreturn_valuer7rrrr r!r"r$�lenZ_mapr'r.)rrE�mr*rrrrr�test_modify_unregister�s*
z+BaseSelectorTestCase.test_modify_unregistercCs�|��}|�|j�|��}|��\}}|�|tj�|�|tj�|��|�	t
|j|�|�	t
|j|�|�	t|j
|�|�	t|j
|�dS)N)rrr�get_maprr r!r"r.r'�RuntimeErrorr8r)�__getitem__)rr*�mappingrrrrr�
test_close�szBaseSelectorTestCase.test_closecCsV|��}|�|j�|��\}}|�|tjd�}|�||�|��|�	t
|jd�dS)Nri?B)rrrrr r!r"r$r8r'r))rr*rrrrrr�test_get_key�sz!BaseSelectorTestCase.test_get_keyc	Cs�|��}|�|j�|��\}}|��}|�|�|�t|�d�|�t|�g�|�	|t
jd�}|�||�|�|||�|�t|�d�|�t|�|�
�g�|�t|���|g�|�t��|dWdQRX|�t��||=WdQRXdS)NrrrCi?B)rrrrrKr=r$rH�listr r!r"ZassertInr&�valuesr'r)�	TypeError)rr*rr�keysrrrr�test_get_map�s"
z!BaseSelectorTestCase.test_get_mapcCs�|��}|�|j�|��\}}|�|tj�|�|tj�}|��}xD|D]<\}}|�	t
|tj��|�	|�|�|tjtjB@�qJW|�
|tjfg|�dS)N)rrrrr r!r"r.�select�
assertTrue�
isinstancer#r=r$)rr*rrZwr_key�resultrrrrr�test_selects

z BaseSelectorTestCase.test_selectc	Csp|��}|�|j�|��\}}|�"}|�|tj�|�|tj�WdQRX|�t	|j
|�|�t	|j
|�dS)N)rrrrr r!r"r.r'rLr8)rr*rrZselrrr�test_context_managersz)BaseSelectorTestCase.test_context_managercCsF|��}|�|j�t|d�rB|��}|�t|t��|�|d�dS)Nr&r)	rrr�hasattrr&rWrX�int�assertGreaterEqual)rr*r%rrr�test_fileno!s
z BaseSelectorTestCase.test_filenocCs�|��}|�|j�d}d}t|�}g}g}i}i}x\t|�D]P}	|��\}
}|�|
tj�|�|tj	�|�
|
�|�
|�|||
<|
||<q>Wg}x�|�rx|��}
t|
tj	�}|s�|�
d�t�|�}|�|�x<td�D]&}	|��}
t|
tj�}|r�Ptd�q�W|�
d�|�||g|�|d}
|
�|�}|�t|�|�|�
|�|�||
�|�|
�|�||
�q�W|�||g|�dS)N�s This is a test.zno sockets ready for writing�
g�������?zno sockets ready for readingr)rrrrH�rangerr r!r"r.rrVrZfail�random�choice�sendrr$Zrecvr,�remove)rr*ZNUM_SOCKETSZMSGZMSG_LENZreadersZwritersZr2wZw2r�irrZbufsrZ
ready_writersZ
ready_readers�bufrrr�
test_selector*sT








z"BaseSelectorTestCase.test_selector�win32z1select.select() cannot be used with empty fd setscCs,|��}|�|j�|�|jdd�g�dS)Nr)Ztimeout)rrrr$rV)rr*rrr�test_empty_select_sz&BaseSelectorTestCase.test_empty_selectcCs
|��}|�|j�|��\}}|�|tj�t�}|�dt	|�
d���|�dt	|�
d���|�t�|d�|�|�|�|tj
�t�}|�|�
d��|�|�
d��|�t�|d�t�}|�|�
d��t�}||}|�d|ko�dkn|�dS)NrCr���g�?g�������?g@)rrrrr r!r.�timer$rHrV�
assertLessr,r"r=rW)rr*rr�tZt0Zt1Zdtrrr�test_timeouths&
z!BaseSelectorTestCase.test_timeout�alarmz%signal.alarm() required for this testc	s�|��}|�|j�|��\}}Gdd�dt���fdd�}t�tj|�}|�tjtj|�zTt�d�|�|t	j
�t�}|����|�
d�WdQRX|�t�|d�Wdt�d�XdS)	Nc@seZdZdS)zGBaseSelectorTestCase.test_select_interrupt_exc.<locals>.InterruptSelectN)rD�
__module__�__qualname__rrrr�InterruptSelect�srtcs��dS)Nr)�args)rtrr�handler�sz?BaseSelectorTestCase.test_select_interrupt_exc.<locals>.handlerrC�g@r)rrrr�	Exception�signal�SIGALRMrqr r!r"rmr'rVrn)rr*rrrv�orig_alrm_handlerror)rtr�test_select_interrupt_exc�s
z.BaseSelectorTestCase.test_select_interrupt_excc	Cs�|��}|�|j�|��\}}t�tjdd��}|�tjtj|�zDt�d�|�|tj	�t
�}|�|�d��|�
t
�|d�Wdt�d�XdS)NcWsdS)Nr)rurrr�<lambda>��zDBaseSelectorTestCase.test_select_interrupt_noraise.<locals>.<lambda>rCg�?g�?r)rrrrryrzrqr r!r"rmr=rVr^)rr*rrr{rorrr�test_select_interrupt_noraise�s
z2BaseSelectorTestCase.test_select_interrupt_noraiseN)rDrrrsrr+r-r1r:�
skipUnlessr3�namer5r6r>rJrOrPrUrZr[r_riZskipIf�sys�platformrkrpr\ryr|rrrrrr2s,&
	5rc@s,eZdZe�dd�e�ed�dd���ZdS)�ScalableSelectorMixInra�zTest needs resource modulec
Cs�t�tj�\}}y6t�tj||f�|�tjtj||f�t|d�}Wnttfk
rb|}YnX|d8}|��}|�|j	�x�t
|d�D]�}y|��\}}Wntk
r�|�d�YnXy |�
|tj�|�
|tj�Wq�tk
�r }z|jtjk�r|�d��Wdd}~XYq�Xq�Wy|��}	WnJtk
�r|}z*|jtjk�rjtjdk�rj|�d��Wdd}~XYnX|�|dt|	��dS)Ni� �zFD limit reached�darwinz%Invalid argument error calling poll())�resourceZ	getrlimitZ
RLIMIT_NOFILEZ	setrlimitr�minrr(rrrbrrFr r!r"r.�errnoZENOSPCrVZEINVALr�r�r$rH)
rZsoftZhardZNUM_FDSr*rgrr�eZfdsrrr�test_above_fd_setsize�s<



z+ScalableSelectorMixIn.test_above_fd_setsizeN)	rDrrrsrZrequires_mac_verr:r�r�r�rrrrr��s
r�c@seZdZejZdS)�DefaultSelectorTestCaseN)rDrrrsr!ZDefaultSelectorrrrrrr��sr�c@seZdZejZdS)�SelectSelectorTestCaseN)rDrrrsr!ZSelectSelectorrrrrrr��sr�r@z!Test needs selectors.PollSelectorc@seZdZeedd�ZdS)�PollSelectorTestCaser@N)rDrrrs�getattrr!rrrrrr��sr�r?z"Test needs selectors.EpollSelectorc@s eZdZeedd�Zdd�ZdS)�EpollSelectorTestCaser?Nc
Csd|��}t���J}|�t��|�|tj�WdQRX|�t��|�	|�WdQRXWdQRXdS)N)
r�tempfileZNamedTemporaryFiler'�IOErrorr r!r"r)r8)rr*�frrr�test_register_files
z(EpollSelectorTestCase.test_register_file)rDrrrsr�r!rr�rrrrr��sr��KqueueSelectorz$Test needs selectors.KqueueSelector)c@s eZdZeedd�Zdd�ZdS)�KqueueSelectorTestCaser�Nc	Csj|��}t��}|�t��}|�|tj�WdQRX|�|j	j
t
j�|�t��|�
|�WdQRXdS)N)rrZmake_bad_fdr'rr r!r"r$Z	exceptionr�ZEBADFr)r8)rr*Zbad_f�cmrrr�test_register_bad_fdsz+KqueueSelectorTestCase.test_register_bad_fd)rDrrrsr�r!rr�rrrrr�sr�rAz$Test needs selectors.DevpollSelectorc@seZdZeedd�ZdS)�DevpollSelectorTestCaserAN)rDrrrsr�r!rrrrrr�#sr�cCs&ttttttg}tj|�t��dS)N)	r�r�r�r�r�r�rZrun_unittestZ
reap_children)Ztestsrrr�	test_main+s

r��__main__)"r�r3rcr!ryrr�Ztestrrmrr:Z
unittest.mockr�rr��ImportErrorr\rZAF_INETZSOCK_STREAMrZTestCaserr�r�r�r�r�r�r�r�r�rDrrrr�<module>sT


5