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.10/test/__pycache__/test_selectors.cpython-310.pyc
o

�iI�@s�ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddl	mZddlm
Z
ddlZddlZddlZddlmZzddlZWneyWdZYnweed�raejZn
ejejdfdd�Zd	d
�ZGdd�d�ZGd
d�d�ZGdd�deej�ZGdd�deej�Ze�eed�d�Gdd�deeej��Ze�eed�d�Gdd�deeej��Z e�eed�d�Gdd�deeej��Z!e�eed�d �Gd!d"�d"eeej��Z"d#d$�Z#e$d%kr�e�%�dSdS)&�N)�support)�	os_helper)�
socket_helper)�sleep)�	monotonic�
socketpairc	Cs�t�|||��H}|�tjdf�|��t�|||�}z'|�|���|��}	|��\}}||kr>||fWWd�S|��q(t	yN|���w1sRwYdS)Nr)
�socket�bindrZHOST�listen�connect�getsockname�accept�close�OSError)�family�type�proto�l�cZcaddr�a�addr�r�0/usr/local/lib/python3.10/test/test_selectors.pyrs&����cCs*g}|D]\}}||@r|�|j�q|S�N)�append�fileobj)�ready�flag�match�key�eventsrrr�find_ready_matching,s�r!c@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�||fSr)r�
addCleanupr)�self�rd�wrrrr�make_socketpair6s
z$BaseSelectorTestCase.make_socketpaircCs�|��}|�|j�|��\}}|�|tjd�}|�|tj�|�	|j
|�|�	|j|���|�	|j
tj�|�	|jd�|�t|jdd�|�t|jdtj�|�t|j|tj�|�t|j|��tj�dS)N�datar�?Bi����)�SELECTORr#rr'�register�	selectors�
EVENT_READZassertIsInstance�SelectorKey�assertEqualr�fd�filenor r(�assertRaises�
ValueError�KeyError�r$�sr%r&rrrr�
test_register<s�z"BaseSelectorTestCase.test_registercCs\|��}|�|j�|��\}}|�|tj�|�|�|�t	|jd�|�t	|j|�dS�Nr))
r*r#rr'r+r,r-�
unregisterr2r4�r$r6r%r&rrr�test_unregisterVs
z$BaseSelectorTestCase.test_unregistercCsv|��}|�|j�|��\}}|��|��}}|�|tj�|�|tj�|��|��|�	|�|�	|�dSr)
r*r#rr'r1r+r,r-�EVENT_WRITEr9)r$r6r%r&�r�wrrr�test_unregister_after_fd_closees
z3BaseSelectorTestCase.test_unregister_after_fd_close�posixzrequires posixcCs�|��}|�|j�|��\}}|��|��}}|�|tj�|�|tj�|��\}}|��|��t	�
|��|�t	�
|��|�|�t	j|�|�t	j|�|�|�|�|�dSr)r*r#rr'r1r+r,r-r<�os�dup2r9)r$r6r%r&r=r>Zrd2Zwr2rrr�(test_unregister_after_fd_close_and_reuseqs
z=BaseSelectorTestCase.test_unregister_after_fd_close_and_reusecCsd|��}|�|j�|��\}}|�|tj�|�|tj�|��|��|�|�|�|�dSr)	r*r#rr'r+r,r-r<r9r:rrr�"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�dSr8)r*r#rr'r+r,r-�modifyr<ZassertNotEqualr r/�get_keyr9�objectr(r2r4�unittest�mock�Mock�assertFalseZcalled)	r$r6r%r&rZkey2Zd1Zd2Zd3rrr�test_modify�s.
z BaseSelectorTestCase.test_modifyc	Cs|jjdkr
tj�d�}n|jjdkrtj�d�}n|jjdkr'tj�d�}n|�d��|�W}tjjtd�|j_	|��}|�
|j�|��\}}|�
|tj�|�t|j�d	�|�t��|�	|tj�Wd�n1sowY|�t|j�d
�Wd�dS1s�wYdS)N�
EpollSelectorz%selectors.EpollSelector._selector_cls�PollSelectorz$selectors.PollSelector._selector_cls�DevpollSelectorz'selectors.DevpollSelector._selector_cls�)Zside_effect�r)r*�__name__rHrI�patch�skipTestrJ�ZeroDivisionErrorZreturn_valuerEr#rr'r+r,r-r/�len�_mapr2r<)r$rS�mr6r%r&rrr�test_modify_unregister�s6���

��"�z+BaseSelectorTestCase.test_modify_unregistercCs�|��}|�|j�|��}|��\}}|�|tj�|�|tj�|��|�	t
|j|�|�	t
|j|�|�	t|j
|�|�	t|j
|�dSr)r*r#r�get_mapr'r+r,r-r<r2�RuntimeErrorrFr4�__getitem__)r$r6�mappingr%r&rrr�
test_close�szBaseSelectorTestCase.test_closecCsV|��}|�|j�|��\}}|�|tjd�}|�||�|��|�	t
|jd�dS)Nr(r))r*r#rr'r+r,r-r/rFr2r4r5rrr�test_get_key�sz!BaseSelectorTestCase.test_get_keycCs"|��}|�|j�|��\}}|��}|�|�|�t|�d�|�t|�g�|�	|t
jd�}|�||�|�|||�|�t|�d�|�t|�|�
�g�|�t|���|g�|�t��|dWd�n1sqwY|�t��||=Wd�dS1s�wYdS)Nrr(rQr))r*r#rr'rZrKr/rV�listr+r,r-ZassertInr1�valuesr2r4�	TypeError)r$r6r%r&�keysrrrr�test_get_map�s&

�"�z!BaseSelectorTestCase.test_get_mapcCs�|��}|�|j�|��\}}|�|tj�|�|tj�}|��}|D]\}}|�	t
|tj��|�	|�|�|tjtjB@�q$|�
|tjfg|�dSr)r*r#rr'r+r,r-r<�select�
assertTrue�
isinstancer.rKr/)r$r6r%r&Zwr_key�resultrr rrr�test_selects

�z BaseSelectorTestCase.test_selectcCs�|��}|�|j�|��\}}|�}|�|tj�|�|tj�Wd�n1s+wY|�t	|j
|�|�t	|j
|�dSr)r*r#rr'r+r,r-r<r2r[rF)r$r6r%r&Zselrrr�test_context_managers�z)BaseSelectorTestCase.test_context_managercCsJ|��}|�|j�t|d�r#|��}|�t|t��|�|d�dSdS)Nr1r)	r*r#r�hasattrr1rfrg�int�assertGreaterEqual)r$r6r0rrr�test_fileno#s
�z BaseSelectorTestCase.test_filenocCs�|��}|�|j�d}d}t|�}g}g}i}i}t|�D](}	|��\}
}|�|
tj�|�|tj	�|�
|
�|�
|�|||
<|
||<qg}|r�|��}
t|
tj	�}|s\|�
d�t�|�}|�|�td�D]}	|��}
t|
tj�}|rzn
td�qj|�
d�|�||g|�|d}
|
�|�}|�t|�|�|�
|�|�||
�|�|
�|�||
�|sK|�||g|�dS)N�s This is a test.zno sockets ready for writing�
g�������?zno sockets ready for readingr)r*r#rrV�ranger'r+r,r-r<rrer!Zfail�random�choice�sendrr/�recvr9�remove)r$r6ZNUM_SOCKETSZMSGZMSG_LEN�readersZwritersZr2wZw2r�ir%r&ZbufsrZ
ready_writersZ
ready_readers�bufrrr�
test_selector,sX





�




�z"BaseSelectorTestCase.test_selector�win32z1select.select() cannot be used with empty fd setscCs,|��}|�|j�|�|jdd�g�dS)Nr)�timeout)r*r#rr/re)r$r6rrr�test_empty_selectas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)NrQr���g�?皙�����?�@)r*r#rr'r+r,r<�timer/rVre�
assertLessr9r-rKrf)r$r6r%r&�t�t0�t1�dtrrr�test_timeoutjs&
$z!BaseSelectorTestCase.test_timeout�alarmz%signal.alarm() required for this testc	s�|��}|�|j�|��\}}Gdd�dt���fdd�}t�tj|�}|�tjtj|�z:t�d�|�|t	j
�t�}|����
|�
d�Wd�n1sSwY|�t�|d�Wt�d�dSt�d�w)	Nc@seZdZdS)zGBaseSelectorTestCase.test_select_interrupt_exc.<locals>.InterruptSelectN)rR�
__module__�__qualname__rrrr�InterruptSelect�sr�cs��rr��args�r�rr�handler�sz?BaseSelectorTestCase.test_select_interrupt_exc.<locals>.handlerrQ�g@r)r*r#rr'�	Exception�signal�SIGALRMr�r+r,r-r�r2rer�)r$r6r%r&r��orig_alrm_handlerr�rr�r�test_select_interrupt_exc�s 
�z.BaseSelectorTestCase.test_select_interrupt_excc	Cs�|��}|�|j�|��\}}t�tjdd��}|�tjtj|�z(t�d�|�|tj	�t
�}|�|�d��|�
t
�|d�Wt�d�dSt�d�w)NcWsdSrrr�rrr�<lambda>�szDBaseSelectorTestCase.test_select_interrupt_noraise.<locals>.<lambda>rQg�?g�?r)r*r#rr'r�r�r�r+r,r-r�rKrerm)r$r6r%r&r�r�rrr�test_select_interrupt_noraise�s
z2BaseSelectorTestCase.test_select_interrupt_noraiseN)rRr�r�r'r7r;r?rH�
skipUnlessrA�namerCrDrLrYr^r_rdrirjrnrzZskipIf�sys�platformr}r�rkr�r�r�rrrrr"4s<
&
	5�
�
�r"c@s,eZdZe�dd�e�ed�dd���ZdS)�ScalableSelectorMixInrp�zTest needs resource modulec
Csnt�tj�\}}zt�tj||f�|�tjtj||f�t|d�}Wn
ttfy0|}Ynw|d8}|��}|�|j	�t
|d�D]A}z|��\}}Wnty]|�d�Ynwz|�
|tj�|�
|tj�WqEty�}z|jtjkr�|�d��d}~wwz|��}	Wnty�}z|jtjkr�tjdkr�|�d��d}~ww|�|dt|	��dS)Ni� �zFD limit reached�darwinz%Invalid argument error calling poll())�resourceZ	getrlimitZ
RLIMIT_NOFILEZ	setrlimitr#�minrr3r*rrqr'rTr+r,r-r<�errno�ENOSPCre�EINVALr�r�r/rV)
r$ZsoftZhardZNUM_FDSr6rxr%r&�e�fdsrrr�test_above_fd_setsize�sJ���
��
��z+ScalableSelectorMixIn.test_above_fd_setsizeN)	rRr�r�rZrequires_mac_verrHr�r�r�rrrrr��s

r�c@�eZdZejZdS)�DefaultSelectorTestCaseN)rRr�r�r,�DefaultSelectorr*rrrrr���
r�c@r�)�SelectSelectorTestCaseN)rRr�r�r,�SelectSelectorr*rrrrr��r�r�rNz!Test needs selectors.PollSelectorc@�eZdZeedd�ZdS)�PollSelectorTestCaserNN�rRr�r��getattrr,r*rrrrr���r�rMz"Test needs selectors.EpollSelectorc@s eZdZeedd�Zdd�ZdS)�EpollSelectorTestCaserMNc	Cs�|��}t���G}|�t��|�|tj�Wd�n1s wY|�t��
|�	|�Wd�n1s:wYWd�dSWd�dS1sRwYdSr)
r*�tempfile�NamedTemporaryFiler2�IOErrorr+r,r-r4rF)r$r6�frrr�test_register_file	s
���"�z(EpollSelectorTestCase.test_register_file)rRr�r�r�r,r*r�rrrrr�sr��KqueueSelectorz$Test needs selectors.KqueueSelector)c@s(eZdZeedd�Zdd�Zdd�ZdS)�KqueueSelectorTestCaser�NcCs�|��}t��}|�t��}|�|tj�Wd�n1swY|�|j	j
t
j�|�t��|�
|�Wd�dS1sCwYdSr)r*rZmake_bad_fdr2rr+r,r-r/�	exceptionr��EBADFr4rF)r$r6Zbad_f�cmrrr�test_register_bad_fds�"�z+KqueueSelectorTestCase.test_register_bad_fdcCs^|��}|�|j�t�}|�|�d�g�t�}||}|�d|ko(dkn|�dS)NrQrr�)r*r#rr�r/rerf)r$r6r�r�r�rrr�test_empty_select_timeout's$z0KqueueSelectorTestCase.test_empty_select_timeout)rRr�r�r�r,r*r�r�rrrrr�sr�rOz$Test needs selectors.DevpollSelectorc@r�)�DevpollSelectorTestCaserONr�rrrrr�5r�r�cCst��dSr)r�
reap_childrenrrrr�tearDownModule=sr��__main__)&r�rArrr,r�rr��testrZtest.supportrrr�rrHZ
unittest.mockr�rr��ImportErrorrkr�AF_INET�SOCK_STREAMr!r"r�ZTestCaser�r�r�r�r�r�r�r�rR�mainrrrr�<module>sv�

5���������