Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.191.103.151
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_pty.cpython-310.pyc
o

abiC�@sJddlmZmZddlmZed�ddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZdZdZz
ejZejZdZWneycdZYnwerkd	d
�Zndd
�Zdd
�Zdd�Zdd�Zdd�Zdd�ZGdd�dej �Z!Gdd�dej �Z"dd�Z#e$dkr�e�%�dSdS)�)�verbose�
reap_children)�
import_moduleZtermiosN�I wish to buy a fish license.
�For my pet fish, Eric.
TFcCst|�dS�N)�print��msg�r�6/usr/local/python-3.10/lib/python3.10/test/test_pty.py�debug"sr
cC�dSrrr	rrrr
%scCs0|�d�r|�dd�S|�d�r|�dd�S|S)Ns

�
�
)�endswith�replace)�datarrr�normalize_output3s


rcCstj|ddd�}|��S)z8Read one line.  May block forever if no newline is read.�rbF)�mode�closefd)�io�FileIO�readline)�fd�readerrrr�	_readlineGsrcCs0zt�tj�t�|�WStjyY|Swr)�tty�	tcgetattr�pty�STDIN_FILENO�unittestZexpectedFailure�error)Zfunrrr�expectedFailureIfStdinIsTTYLs�r$cCs t�ddddd�}t�|t|�S)N�HHHHr)�struct�pack�fcntl�ioctl�_TIOCGWINSZ)r�srrr�_get_term_winszUsr,cCst�|t|�dSr)r(r)�_TIOCSWINSZ)rZwinszrrr�_set_term_winszYsr.c@sLeZdZdd�Zdd�Zedd��Zedd��Zd	d
�Z	dd�Z
d
d�ZdS)�PtyTestcCs�t�tj|j�}|�tjtj|�t�tj|j�}|�tjtj|�|�tjd�t�d�d|_d|_t	rez$t
�tj
�}|j|_|j|_t�d|j|jdd�}|�ttj
|�WdStydYdSwdS)Nr�
r%)�signal�SIGALRM�
handle_sig�
addCleanup�SIGHUP�
handle_sighup�alarm�
stdin_rows�
stdin_cols�_HAVE_WINSZ�os�get_terminal_sizer r!�lines�columnsr&r'r.�OSError)�selfZ	old_alarmZ
old_sighupZ	stdin_dimZold_stdin_winszrrr�setUp`s*

���z
PtyTest.setUpcCs|�d�dS)Nzisatty hung)�fail)r@�sig�framerrrr3zszPtyTest.handle_sigcCrrr)�signumrDrrrr6}szPtyTest.handle_sighupc
Cs�zt�tj�}Wntjytd�d}Ynwd}|jdurw|jdurwzCtd�td|j�d|j�d��|jd}|jd}td|�d|�d��t�	d||d	d	�}t
tj|�ttj�}|�||d
�Wnt
yvt�d�Ynwz+td�z
t�||�\}}Wnty�t��\}}Ynwtd
|�d|�d��Wnt
y�t�d��w|�tj|�|�tj|�|�t�|�d�|r�|�t�|�|d�|r�|�t|�|d�t�|�}z8t�|d�zt�|d�}	|�d|	�Wnt
�y}
z|
jtjk�r�WYd}
~
nd}
~
wwWt�||�nt�||�wtd�t�|t�t |�}	|�dt!|	��td�t�|t"dd��t�|t"dd��t |�}|�dt!|��dS)Nz&tty.tcgetattr(pty.STDIN_FILENO) failedz$Setting pty.STDIN_FILENO window sizezoriginal size: (rows=z, cols=�)�ztarget size: (rows=r%rz&pty.STDIN_FILENO window size unchangedz*Failed to set pty.STDIN_FILENO window size�Calling pty.openpty()�Got master_fd '�
', slave_fd '�'z,Pseudo-terminals (seemingly) not functional.zslave_fd is not a ttyz%openpty() failed to set slave termiosz)openpty() failed to set slave window sizeFi�zWriting to slave_fdrzWriting chunked output�r)#rrr r!r#r
r8r9r&r'r.r,�assertEqualr?�warnings�warn�openpty�	TypeErrorr"ZSkipTestr4r;�closeZ
assertTrue�isatty�get_blocking�set_blocking�read�errno�EAGAIN�write�
TEST_STRING_1rr�
TEST_STRING_2)r@rZnew_stdin_winszZtarget_stdin_rowsZtarget_stdin_colsZtarget_stdin_winsz�	master_fd�slave_fd�blocking�s1�e�s2rrr�test_openpty�s��

�
�
��
���
�����zPtyTest.test_openptycCs�td�t��\}}|�tj|�|tjkret�d�s$td�t�d�td�zt�	�Wn&t
y;td�Yn#tyGtd�Yntd�t�d�Yn	td	�t�d
�t�d�dStd|�	zt�|d�}Wn	t
y}Yq�w|s�q�t
j�t|�dd�dd��qlt�|d�\}}t�|�}td|||f�|dkr�|�d�dS|d
kr�|�d�dS|dkr�|�d�dS|dkr�|�d�dSdS)Nzcalling pty.fork()rGzChild'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.T�Prr�ascii)�encodingrz+Child (%d) exited with code %d (status %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 �forkr4r;rSZCHILDrT�_exit�setsidr?�AttributeErrorrW�sys�stdoutrZ�strr�waitpid�waitstatus_to_exitcoderB)r@�pidr]r�status�resrrr�	test_fork�s^



���
�zPtyTest.test_forkcCs�td�t��\}}td|�d|�d��|�tj|�td�t�|�td�zt�|d�}Wnty<d}Ynw|�|d�dS)	NrHrIrJrKzClosing slave_fdzReading from master_fdrGrL)	r
r rQr4r;rSrWr?rN)r@r]r^rrrr�test_master_read(s
�zPtyTest.test_master_readcCst�tjddg�dS)Nz-czprint("hi there"))r �spawnrn�
executable�r@rrr�test_spawn_doesnt_hang;szPtyTest.test_spawn_doesnt_hangN)�__name__�
__module__�__qualname__rAr3�staticmethodr6r$rcrvrwr{rrrrr/_s

TRr/c@sbeZdZdZdd�Zdd�Zdd�Zdd	�Zddd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�
SmallPtyTestsz)These tests don't spawn children or hang.cCsrtj|_tj|_tj|_tj|_tj	|_
tj|_tj
|_tj|_tj|_tj|_g|_g|_g|_g|_d|_dSr)r r!�orig_stdin_fileno�
STDOUT_FILENO�orig_stdout_filenorS�orig_pty_close�_copy�orig_pty__copyrj�
orig_pty_fork�select�orig_pty_select�setraw�orig_pty_setrawr�orig_pty_tcgetattr�	tcsetattr�orig_pty_tcsetattrrq�orig_pty_waitpid�fds�files�select_rfds_lengths�select_rfds_results�tcsetattr_mode_settingrzrrrrAAs
zSmallPtyTests.setUpc	Cs�|jt_|jt_|jt_|jt_|j	t_
|jt_|j
t_|jt_|jt_|jt_|jD]}z|��Wq+ty<Yq+w|jD]}zt�|�Wq@tyRYq@wdSr)r�r r!r�r�r�rSr�r�r�rjr�r�r�r�r�rr�r�r�rqr�r?r�r;)r@�filerrrr�tearDownRs.
�
��zSmallPtyTests.tearDowncC�t��}|j�|�|Sr)r;�piper��extend)r@Zpipe_fdsrrr�_pipeh�zSmallPtyTests._pipecCr�r)�socket�
socketpairr�r�)r@r�rrr�_socketpairmr�zSmallPtyTests._socketpairrcCs*|�|j�d�t|��|j�d�ggfS)Nr)rNr��pop�lenr�)r@�rfdsZwfdsZxfds�timeoutrrr�_mock_selectrszSmallPtyTests._mock_selectcs�fdd�}|S)Ncs�dfS)N�rr�rsrr�	mock_forkysz0SmallPtyTests._make_mock_fork.<locals>.mock_forkr)r@rsr�rr�r�_make_mock_forkxszSmallPtyTests._make_mock_forkcCs
||_dSr)r�)r@�fileno�optrrrr�_mock_tcsetattr}�
zSmallPtyTests._mock_tcsetattrcCs"|��\}}|t_|��\}}|t_|��}dd�|D�}t�|dd�t�|d�|jt_|j	�
d�|j�
||dg�|j	�
d�|�t
��t�|d�Wd�n1s\wYt�||dgggd�d}|�||dg|�|�t�|d	�d�|�t�|dd	�d�dS)
z6Test the normal data case on both master_fd and stdin.cS�g|]}|���qSr�r���.0r+rrr�
<listcomp>��z4SmallPtyTests.test__copy_to_each.<locals>.<listcomp>rGsfrom masters
from stdinrerN�)r�r r�r!r�r;rZr�r�r��appendr�ZassertRaises�
IndexErrorr�rNrW)r@�read_from_stdout_fd�mock_stdout_fd�
mock_stdin_fd�write_to_stdin_fdr��mastersr�rrr�test__copy_to_each�s&�z SmallPtyTests.test__copy_to_eachcCs�|��\}}|t_|��\}}|t_|��}dd�|D�}|d��t�|�|jt_|j	�
d�|j�
||dg�|j	�
d�|�t�
|d�d�dS)z9Test the empty read EOF case on both master_fd and stdin.cSr�rr�r�rrrr��r�z7SmallPtyTests.test__copy_eof_on_all.<locals>.<listcomp>rGrerN)r�r r�r!r�rSr;r�r�r�r�r�rNr�)r@r�r�r�r�r�r�rrr�test__copy_eof_on_all�s
z#SmallPtyTests.test__copy_eof_on_allcs�|�d�t_t���fdd�t_dd�t_dd�t_t���fdd�t_|jt_	dd�t_
|�t�g��d�|�|j
�d	�d
S)zCTest that spawn resets the tty mode no when _copy returns normally.rGcsd�gSrr)�_1�_2)�status_sentinelrr�<lambda>�szDSmallPtyTests.test__restore_tty_mode_normal_return.<locals>.<lambda>cSrrr��_rrrr���cSrrr)r�r�Z_3rrrr��r�cs�Srr)r)�
mode_sentinelrrr��r�cSrrrr�rrrr��r�z4pty.waitpid process status not returned by pty.spawnz1pty.tcsetattr not called with original mode valueN)r�r rj�objectrqrSr�rr�r�r�rNrxr�rzr)r�r�r�$test__restore_tty_mode_normal_return�s


z2SmallPtyTests.test__restore_tty_mode_normal_returnN)r)r|r}r~�__doc__rAr�r�r�r�r�r�r�r�r�rrrrr�>s
r�cCs
t�dSr)rrrrr�tearDownModule�r�r��__main__)&Ztest.supportrrZtest.support.import_helperrrXr;r rrnr�r1r�rr"r&r(rOr[r\Z
TIOCGWINSZr*Z
TIOCSWINSZr-r:rmr
rrr$r,r.ZTestCaser/r�r�r|�mainrrrr�<module>sT�
	`�
© 2025 GrazzMean