Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.10/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.10/test/__pycache__/_test_eintr.cpython-310.pyc
o

�9j�F�@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlmZddlmZejdd��Ze�eed�d	�Gd
d�dej��Ze�eed�d	�Gdd
�d
e��Ze�eed�d	�Gdd�de��Ze�eed�d	�Gdd�de��Ze�eed�d	�e�eed�d�Gdd�de���Ze�eed�d	�Gdd�de��ZGdd�de�Zedkr�e��dSdS)a�
This test suite exercises some system calls subject to interruption with EINTR,
to check that it is actually handled transparently.
It is intended to be run by the main test suite within a child process, to
ensure there is no background thread running (so that signals are delivered to
the correct thread).
Signals are generated in-process using setitimer(ITIMER_REAL), which allows
sub-second periodicity (contrarily to signal()).
�N)�support)�	os_helper)�
socket_helperccsH�|�z|VWn|���Wd�dS1swYdS)zGContext manager killing the subprocess if a Python exception is raised.N)�kill)�proc�r�'/usr/lib/python3.10/test/_test_eintr.py�
kill_on_errors�
�"�r	�	setitimerzrequires setitimer()c@sHeZdZdZdZdZdZdd�Zdd�Ze	dd	��Z
d
d�Zdd
�ZdS)�
EINTRBaseTestz Base class for EINTR tests. g�������?g�������?cCs|jd7_dS�N�)�signals)�self�signum�framerrr�
sighandler3�zEINTRBaseTest.sighandlercCsBd|_t�tj|j�|_t�tj|j|j�t	j
ddtjd�dS)NriXT)�exit�file)
r�signal�SIGALRMr�orig_handlerr
�ITIMER_REAL�signal_delay�
signal_period�faulthandler�dump_traceback_later�sys�
__stderr__�rrrr�setUp6s�
�zEINTRBaseTest.setUpcCst�tjdd�dS�Nr)rr
rrrrr�
stop_alarmAszEINTRBaseTest.stop_alarmcCs$|��t�tj|j�t��dS�N)r#rrrr�cancel_dump_traceback_laterr rrr�tearDownEszEINTRBaseTest.tearDowncOs tjdf|}tj|fi|��S)Nz-c)r�
executable�
subprocess�Popen)r�args�kw�cmd_argsrrrr(JszEINTRBaseTest.subprocessN)
�__name__�
__module__�__qualname__�__doc__rr�
sleep_timerr!�staticmethodr#r&r(rrrrr's
rc@s|eZdZdZdd�Zdd�Zdd�Ze�e	e
d�d	�d
d��Zdd
�Zdd�Z
e�e	e
d�d�dd��Zdd�Zdd�ZdS)�OSEINTRTestz  EINTR tests for the os module. cCsd|j}|�|�S)Nzimport time; time.sleep(%r))r1r()r�coderrr�new_sleep_processSs

zOSEINTRTest.new_sleep_processcsDd}�fdd�t|�D�}t|�D]}|�q|D]}|��qdS)N�csg|]}����qSr)r5)�.0�_r rr�
<listcomp>Ysz3OSEINTRTest._test_wait_multiple.<locals>.<listcomp>)�range�wait)r�	wait_func�num�	processesr8rrr r�_test_wait_multipleWs
�zOSEINTRTest._test_wait_multiplecCs|�tj�dSr$)r?�osr;r rrr�	test_wait`�zOSEINTRTest.test_wait�wait3zrequires wait3()cC�|�dd��dS)NcSs
t�d�Sr")r@rCrrrr�<lambda>es
z(OSEINTRTest.test_wait3.<locals>.<lambda>)r?r rrr�
test_wait3c�zOSEINTRTest.test_wait3cCs|��}||j�|��dSr$)r5�pidr;)rr<rrrr�_test_wait_singlegs
zOSEINTRTest._test_wait_singlecCrD)NcS�t�|d�Sr")r@�waitpid�rHrrrrEn�z*OSEINTRTest.test_waitpid.<locals>.<lambda>�rIr rrr�test_waitpidmrzOSEINTRTest.test_waitpid�wait4zrequires wait4()cCrD)NcSrJr")r@rPrLrrrrErrMz(OSEINTRTest.test_wait4.<locals>.<lambda>rNr rrr�
test_wait4prGzOSEINTRTest.test_wait4cCs�t��\}}|�tj|�gd�}d�dddd|d|jddd	d
df
�}|j|t|�|gd�}t|��'t�|�|D]}|�	|t�
|t|���q<|�	|��d
�Wd�dS1s^wYdS)N)shellosworldsspam�
zimport os, sys, time�zwr = int(sys.argv[1])�
datas = %r�sleep_time = %rzfor data in datas:z$    # let the parent block on read()�    time.sleep(sleep_time)z    os.write(wr, data)��pass_fdsr)
r@�pipe�
addCleanup�close�joinr1r(�strr	�assertEqual�read�lenr;)r�rd�wr�datasr4r�datarrr�	test_readts,�

"�zOSEINTRTest.test_readcCs�t��\}}|�tj|�dtj}d�dddd|jdtjddd	d
dddd
ddddddf�}|j|t	|�|gd�}t
|��2t�|�d}|t|�kra|t�|t
|�|d��7}|t|�ksM|�|��d�Wd�dS1stwYdS)N�xrRzimport io, os, sys, timerSzrd = int(sys.argv[1])rUzdata = b"x" * %s�data_len = len(data)z!# let the parent block on write()�time.sleep(sleep_time)zread_data = io.BytesIO()z+while len(read_data.getvalue()) < data_len:z%    chunk = os.read(rd, 2 * data_len)z    read_data.write(chunk)zvalue = read_data.getvalue()zif value != data:z0    raise Exception("read error: %s vs %s bytes"z-                    % (len(value), data_len))rWr)r@rYrZr[r�
PIPE_MAX_SIZEr\r1r(r]r	r`�write�
memoryviewr^r;)rrarbrdr4r�writtenrrr�
test_write�sB
�

�"�zOSEINTRTest.test_writeN)r-r.r/r0r5r?rA�unittest�
skipUnless�hasattrr@rFrIrOrQrermrrrrr3Os	

r3c@s�eZdZdZe�eed�d�dd��Zdd�Z	e�eejd�d	�d
d��Z
dd
�Zdd�Zdd�Z
e�eejd�d�dd��Zdd�Ze�dd�e�eed�d�dd���Zdd�Ze�ejd kd!�d"d#��Zd$d%�Ze�ejd kd!�d&d'��Zd(S))�SocketEINTRTestz$ EINTR tests for the socket module. �
socketpairzneeds socketpair()c	Cs�t��\}}|�|j�gd�}d�ddddt|j�dt|j�d|d	|jdd
dddd
dddf�}|�	�}|j
|t|�|gd�}t|��%|��|D]
}|�
|||t|���qN|�
|��d�Wd�dS1sowYdS)N)rf�y�zrR�import os, socket, sys, timerS�fd = int(sys.argv[1])�family = %s�sock_type = %srTrUz)wr = socket.fromfd(fd, family, sock_type)�os.close(fd)zwith wr:z    for data in datas:z(        # let the parent block on recv()z        time.sleep(sleep_time)z        wr.sendall(data)rWr)�socketrrrZr[r\�int�family�typer1�filenor(r]r	r^r`r;)	r�	recv_funcrarbrcr4�fdrrdrrr�
_test_recv�s:�
"�zSocketEINTRTest._test_recvcC�|�tjj�dSr$)r�rz�recvr rrr�	test_recv�rzSocketEINTRTest.test_recv�recvmsgzneeds recvmsg()cCrD)NcSs|�|�dSr")r���sockrdrrrrE�sz.SocketEINTRTest.test_recvmsg.<locals>.<lambda>)r�r rrr�test_recvmsg�rGzSocketEINTRTest.test_recvmsgc
Cs2t��\}}|�|j�dtjd}d�ddddt|j�dt|j	�d	|j
d
tjddddd
dddddddddddddf�}|��}|j|t
|�|gd�}t|��:|��d}|t|�kr||t|�|d��}	||	durvt|�n|	7}|t|�ksb|�|��d�Wd�dS1s�wYdS)Nsxyzr6rRrurSrvrwrxrUzdata = b"xyz" * %srgz)rd = socket.fromfd(fd, family, sock_type)ryzwith rd:z$    # let the parent block on send()rVz'    received_data = bytearray(data_len)z	    n = 0z    while n < data_len:z8        n += rd.recv_into(memoryview(received_data)[n:])zif received_data != data:z0    raise Exception("recv error: %s vs %s bytes"z5                    % (len(received_data), data_len))rWr)rzrrrZr[r�
SOCK_MAX_SIZEr\r{r|r}r1r~r(r]r	r`rkr^r;)
r�	send_funcrarbrdr4r�rrl�sentrrr�
_test_send�sP�
�"�zSocketEINTRTest._test_sendcCr�r$)r�rz�sendr rrr�	test_sendrzSocketEINTRTest.test_sendcCr�r$)r�rz�sendallr rrr�test_sendallrzSocketEINTRTest.test_sendall�sendmsgzneeds sendmsg()cCrD)NcSs|�|g�Sr$)r�r�rrrrErMz.SocketEINTRTest.test_sendmsg.<locals>.<lambda>)r�r rrr�test_sendmsgrGzSocketEINTRTest.test_sendmsgcCs�t�tjdf�}|�|j�|��d}d�dddtjd|d|jdd	d
ddf
�}|�	|�}t
|��|��\}}|��|�|�
�d�Wd�dS1sRwYdS)
Nrr
rRzimport socket, timerSz	host = %rz	port = %srUz# let parent block on accept()rhz,with socket.create_connection((host, port)):rV)rz�
create_serverr�HOSTrZr[�getsocknamer\r1r(r	�acceptr^r;)rr��portr4r�client_sockr8rrr�test_accepts*�

"�zSocketEINTRTest.test_accept�
r6�mkfifozneeds mkfifo()cCs�tj}t�|�zt�|�Wnty(}z
|�d|�WYd}~nd}~ww|�tj|�d�ddd|d|j	dddd|f	�}|�
|�}t|��||�|�|�
�d	�Wd�dS1sdwYdS)
Nzos.mkfifo(): %srR�import os, timerSz	path = %arUz# let the parent blockrhr)r�TESTFN�unlinkr@r��PermissionError�skipTestrZr\r1r(r	r^r;)r�do_open_close_reader�do_open_close_writer�filename�er4rrrr�
_test_open;s2
���

"�zSocketEINTRTest._test_opencCst|d�}|��dS)N�w)�openr[)r�path�fprrr�python_openZs
zSocketEINTRTest.python_open�darwinz+hangs under macOS; see bpo-25234, bpo-35363cC�|�d|j�dS)Nzfp = open(path, 'r')
fp.close())r�r�r rrr�	test_open^��zSocketEINTRTest.test_opencCst�|tj�}t�|�dSr$)r@r��O_WRONLYr[)rr�r�rrr�os_opendszSocketEINTRTest.os_opencCr�)Nz,fd = os.open(path, os.O_RDONLY)
os.close(fd))r�r�r rrr�test_os_openhr�zSocketEINTRTest.test_os_openN)r-r.r/r0rnrorprzr�r�r�r�r�r�r�r�r�requires_freebsd_versionr@r�r��skipIfr�platformr�r�r�rrrrrq�s4
#
.

�
�rqc@seZdZdZdd�ZdS)�
TimeEINTRTestz" EINTR tests for the time module. cCs:t��}t�|j�|��t��|}|�||j�dSr$)�time�	monotonic�sleepr1r#�assertGreaterEqual�r�t0�dtrrr�
test_sleepss
zTimeEINTRTest.test_sleepN)r-r.r/r0r�rrrrr�osr��pthread_sigmaskzneed signal.pthread_sigmask()c@sLeZdZdZdd�Ze�eed�d�dd��Z	e�eed�d�d	d
��Z
dS)�SignalEINTRTestz$ EINTR tests for the signal module. c
Cs�tj}t��}t�|dd��}|�tj||�d�ddt��dt|�d|jdd	f�}t�tj	|g�}|�tjtj
|g�t��}|�
|�}t|��||�t��|}	Wd�n1sawY|�|��d
�dS)NcWsdSr$r)r*rrrrE�sz/SignalEINTRTest.check_sigwait.<locals>.<lambda>rRr�zpid = %szsignum = %srUrhzos.kill(pid, signum)r)r�SIGUSR1r@�getpidrZr\r{r1r��	SIG_BLOCK�SIG_UNBLOCKr�r�r(r	r^r;)
rr<rrH�old_handlerr4�old_maskr�rr�rrr�
check_sigwait�s*

�	

�zSignalEINTRTest.check_sigwait�sigwaitinfozneed signal.sigwaitinfo()cC�dd�}|�|�dS)NcSst�|g�dSr$)rr��rrrrr<�rBz3SignalEINTRTest.test_sigwaitinfo.<locals>.wait_func�r��rr<rrr�test_sigwaitinfo��z SignalEINTRTest.test_sigwaitinfo�sigtimedwaitcCr�)NcSst�|gd�dS)Ng^@)rr�r�rrrr<�rz4SignalEINTRTest.test_sigtimedwait.<locals>.wait_funcr�r�rrr�test_sigtimedwait�r�z!SignalEINTRTest.test_sigtimedwaitN)r-r.r/r0r�rnrorprr�r�rrrrr�{s�
�r�c@s�eZdZdZdd�Ze�ejdkd�e�	e
ed�d�dd	���Ze�	e
ed
�d�dd
��Z
e�	e
ed�d�dd��Ze�	e
ed�d�dd��ZdS)�SelectEINTRTestz$ EINTR tests for the select module. cCs@t��}t�ggg|j�t��|}|��|�||j�dSr$)r�r��selectr1r#r�r�rrr�test_select�s
zSelectEINTRTest.test_selectr�z(poll may fail on macOS; see issue #28087�pollzneed select.pollcCsFt��}t��}|�|jd�t��|}|��|�||j�dS�Ng@�@)r�r�r�r�r1r#r��r�pollerr�r�rrr�	test_poll�szSelectEINTRTest.test_poll�epollzneed select.epollcCsNt��}|�|j�t��}|�|j�t��|}|��|�	||j�dSr$)
r�r�rZr[r�r�r�r1r#r�r�rrr�
test_epoll�szSelectEINTRTest.test_epoll�kqueuezneed select.kqueuecCsRt��}|�|j�t��}|�dd|j�t��|}|��|�	||j�dSr)
r�r�rZr[r�r��controlr1r#r�)rr�r�r�rrr�test_kqueue��zSelectEINTRTest.test_kqueue�devpollzneed select.devpollcCsRt��}|�|j�t��}|�|jd�t��|}|��|�	||j�dSr�)
r�r�rZr[r�r�r�r1r#r�r�rrr�test_devpoll�r�zSelectEINTRTest.test_devpollN)r-r.r/r0r�rnr�rr�rorpr�r�r�r�r�rrrrr��s�	



r�c@s8eZdZdd�Ze�e��dkd�dd��Zdd�Z	d	S)
�
FNTLEINTRTestc
Cs8|�tjtj�d�ddtjd|d|jf�}t��}|�|�}t	|��lt
tjd��Q}	t��|}|dkr?td	|��z||tj
tjB�||tj�t�d
�Wn	ty^Ynwq/||tj
�t��|}|�||j�|��Wd�n1s�wY|��Wd�dS1s�wYdS)NrRzimport fcntl, timezwith open('%s', 'wb') as f:z   fcntl.%s(f, fcntl.LOCK_EX)z   time.sleep(%s)�wbTgN@z failed to sync child in %.1f secg{�G�z�?)rZrr�r�r\r1r�r�r(r	r��	Exception�fcntl�LOCK_EX�LOCK_NB�LOCK_UNr��BlockingIOErrorr�r#r;)r�	lock_func�	lock_namer4�
start_timer�fr�rrr�_lock�s<�

��

�
"�zFNTLEINTRTest._lock�AIXzAIX returns PermissionErrorcC�|�tjd�dS)N�lockf)r�r�r�r rrr�
test_lockf	rGzFNTLEINTRTest.test_lockfcCr�)N�flock)r�r�r�r rrr�
test_flock
rzFNTLEINTRTest.test_flockN)
r-r.r/r�rnr�r��systemr�r�rrrrr��s
 
r��__main__) r0�
contextlibrr�r@r�r�rrzr(rr�rn�testr�test.supportrr�contextmanagerr	rorp�TestCaserr3rqr�r�r�r�r-�mainrrrr�<module>sL


'h7�/8)�

Youez - 2016 - github.com/yon3zu
LinuXploit