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_pty.cpython-37.pyc
B

��g�/�@s�ddlmZmZmZed�ddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZdZ
dZerzdd�Zndd�Zd	d
�Zdd�ZGd
d�dej�ZGdd�dej�Zdd�Zedkr�e��dS)�)�verbose�
import_module�
reap_childrenZtermiosNsI wish to buy a fish license.
sFor my pet fish, Eric.
cCst|�dS)N)�print)�msg�r�)/usr/local/lib/python3.7/test/test_pty.py�debugsr	cCsdS)Nr)rrrrr	scCs0|�d�r|�dd�S|�d�r,|�dd�S|S)Ns

�
s
)�endswith�replace)�datarrr�normalize_output%s


rcCstj|ddd�}|��S)z8Read one line.  May block forever if no newline is read.�rbF)�mode�closefd)�io�FileIO�readline)�fd�readerrrr�	_readline9src@s8eZdZdd�Zdd�Zedd��Zdd�Zd	d
�ZdS)�PtyTestcCs`t�tj|j�}|�tjtj|�t�tj|j�}|�tjtj|�|�tjd�t�d�dS)Nr�
)�signal�SIGALRM�
handle_sigZ
addCleanup�SIGHUP�
handle_sighup�alarm)�selfZ	old_alarmZ
old_sighuprrr�setUpDsz
PtyTest.setUpcCs|�d�dS)Nzisatty hung)�fail)r Zsig�framerrrrPszPtyTest.handle_sigcCsdS)Nr)Zsignumr#rrrrSszPtyTest.handle_sighupc
Cs�yLtd�t��\}}td||f�td|f�t�|�}td|�Wntk
rjt�d��YnX|�t�	|�d�t�
|�}z^t�|d�yt�|d�}|�
d	|�Wn0tk
r�}z|jtjkr҂Wdd}~XYnXWdt�||�Xtd
�t�|t�t|�}|�
dt|��td�t�|tdd
��t�|td
d��t|�}|�
dt|��t�|�t�|�dS)NzCalling master_open()z#Got master_fd '%d', slave_name '%s'zCalling slave_open(%r)zGot slave_fd '%d'z,Pseudo-terminals (seemingly) not functional.zslave_fd is not a ttyFi�zWriting to slave_fdsI wish to buy a fish license.
zWriting chunked output�sFor my pet fish, Eric.
)r	�ptyZmaster_openZ
slave_open�OSError�unittestZSkipTestZ
assertTrue�os�isatty�get_blocking�set_blocking�read�assertEqual�errnoZEAGAIN�write�
TEST_STRING_1rr�
TEST_STRING_2�close)r �	master_fdZ
slave_nameZslave_fdZblocking�s1�e�s2rrr�
test_basicZsB



zPtyTest.test_basiccCs�td�t��\}}|tjkr�t�d�s:td�t�d�td�yt��WnRtk
rjtd�YnJt	k
r�td�Yn0td�t�d�YnXtd	�t�d
�t�d�n�td|�xNyt�
|d
�}Wntk
r�PYnX|s�Ptj�
t|�dd�dd��q�Wt�|d�\}}|d?}td|||f�|dk�r\|�d�n@|d
k�rr|�d�n*|dk�r�|�d�n|dk�r�|�d�t�|�dS)Nzcalling pty.fork()�zChild's fd 1 is not a tty?!�zIn child, calling os.setsid()zGood: OSError was raised.zNo setsid() available?zAn unexpected error was raised.zos.setsid() succeeded! (bad!)��z!Waiting for child (%d) to finish.�Ps
r
�ascii)�encodingr�z&Child (%d) exited with status %d (%d).z3Child raised an unexpected exception in os.setsid()z1pty.fork() failed to make child a session leader.z8Child spawned by pty.fork() did not have a tty as stdoutz&pty.fork() failed for unknown reasons.)r	r&�forkZCHILDr)r*�_exit�setsidr'�AttributeErrorr-�sys�stdoutr0�strr�waitpidr"r3)r �pidr4r
�statusZresrrr�	test_fork�sV









zPtyTest.test_forkN)	�__name__�
__module__�__qualname__r!r�staticmethodrr8rKrrrrrCs
3rc@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�
SmallPtyTestsz)These tests don't spawn children or hang.cCs4tj|_tj|_tj|_g|_g|_g|_	g|_
dS)N)r&�STDIN_FILENO�orig_stdin_fileno�
STDOUT_FILENO�orig_stdout_fileno�select�orig_pty_select�fds�files�select_rfds_lengths�select_rfds_results)r rrrr!�szSmallPtyTests.setUpc	Cs�|jt_|jt_|jt_x0|jD]&}y|��Wq t	k
rDYq Xq Wx2|j
D](}yt�|�WqRt	k
rxYqRXqRWdS)N)rRr&rQrTrSrVrUrXr3r'rWr))r �filerrrr�tearDown�s
zSmallPtyTests.tearDowncCst��}|j�|�|S)N)r)�piperW�extend)r Zpipe_fdsrrr�_pipe�szSmallPtyTests._pipecCst��}|j�|�|S)N)�socket�
socketpairrXr^)r rarrr�_socketpairszSmallPtyTests._socketpaircCs*|�|j�d�t|��|j�d�ggfS)Nr)r.rY�pop�lenrZ)r �rfdsZwfdsZxfdsrrr�_mock_selectszSmallPtyTests._mock_selectc	Cs|��\}}|t_|��\}}|t_|��}dd�|D�}t�|dd�t�|d�|jt_|j	�
d�|j�
||dg�|j	�
d�|�t
��t�|d�WdQRXt�||dgggd�d}|�||dg|�|�t�|d	�d�|�t�|dd	�d�dS)
z6Test the normal data case on both master_fd and stdin.cSsg|]}|���qSr)�fileno)�.0�srrr�
<listcomp>sz4SmallPtyTests.test__copy_to_each.<locals>.<listcomp>r9sfrom masters
from stdinr;rN�)r_r&rSrQrbr)r0rfrUrY�appendrZ�assertRaises�
IndexError�_copyr.r-)r �read_from_stdout_fd�mock_stdout_fd�
mock_stdin_fd�write_to_stdin_fdra�mastersrerrr�test__copy_to_each
s$z SmallPtyTests.test__copy_to_eachc	Cs�|��\}}|t_|��\}}|t_|��}dd�|D�}|d��t�|�|jt_|j	�
d�|j�
||dg�|j	�
d�|�t
��t�|d�WdQRXdS)z9Test the empty read EOF case on both master_fd and stdin.cSsg|]}|���qSr)rg)rhrirrrrj0sz7SmallPtyTests.test__copy_eof_on_all.<locals>.<listcomp>r9r;rN)r_r&rSrQrbr3r)rfrUrYrlrZrmrnro)r rprqrrrsrartrrr�test__copy_eof_on_all)s
z#SmallPtyTests.test__copy_eof_on_allN)rLrMrN�__doc__r!r\r_rbrfrurvrrrrrP�s	rPcCs
t�dS)N)rrrrr�tearDownModuleAsrx�__main__)Ztest.supportrrrr/r&r)rErUrr`rr(r1r2r	rrZTestCaserrPrxrL�mainrrrr�<module>s.

!^