Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_pty.cpython-39.pyc

a

��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_childrenZtermiosN�I wish to buy a fish license.
�For my pet fish, Eric.
cCst|�dS�N)�print��msg�r�)/usr/local/lib/python3.9/test/test_pty.py�debugsr
cCsdSrrr	rrrr
scCs0|�d�r|�dd�S|�d�r,|�dd�S|S)Ns

�
�
)�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%�sig�framerrrr!PszPtyTest.handle_sigcCsdSrr)�signumr)rrrr#SszPtyTest.handle_sighupc
Cs�zLtd�t��\}}td||f�td|f�t�|�}td|�Wntyht�d��Yn0|�t�	|�d�t�
|�}zlt�|d�zt�|d�}|�
d	|�Wn2ty�}z|jtjkr΂WYd}~n
d}~00Wt�||�nt�||�0td
�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_fdrzWriting chunked output�r)r
�ptyZmaster_openZ
slave_open�OSError�unittestZSkipTestZ
assertTrue�os�isatty�get_blocking�set_blocking�read�assertEqual�errno�EAGAIN�write�
TEST_STRING_1rr�
TEST_STRING_2�close)r%�	master_fdZ
slave_nameZslave_fd�blocking�s1�e�s2rrr�
test_basicZsF�

�
zPtyTest.test_basiccCs�td�t��\}}|tjkr�t�d�s:td�t�d�td�zt��WnNtyhtd�YnHt	y�td�Yn0td�t�d�Yn0td	�t�d
�t�d�n�td|�zt�
|d
�}Wnty�Y�qYn0|s��qtj�
t|�dd�dd��q�t�|d�\}}t�|�}td|||f�|dk�rZ|�d�n@|d
k�rp|�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.�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-�forkZCHILDr0r1�_exit�setsidr.�AttributeErrorr4�sys�stdoutr8�strr�waitpid�waitstatus_to_exitcoder'r;)r%�pidr<r�status�resrrr�	test_fork�sV



�
	






zPtyTest.test_forkN)	�__name__�
__module__�__qualname__r&r!�staticmethodr#rArUrrrrrCs
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|_
dSr)r-�STDIN_FILENO�orig_stdin_fileno�
STDOUT_FILENO�orig_stdout_fileno�select�orig_pty_select�fds�files�select_rfds_lengths�select_rfds_results)r%rrrr&�szSmallPtyTests.setUpc	Csv|jt_|jt_|jt_|jD]$}z|��Wqt	y@Yq0q|j
D]&}zt�|�WqJt	ynYqJ0qJdSr)r\r-r[r^r]r`r_rbr;r.rar0)r%�filerrrr�tearDown�s

zSmallPtyTests.tearDowncCst��}|j�|�|Sr)r0�pipera�extend)r%Zpipe_fdsrrr�_pipe�szSmallPtyTests._pipecCst��}|j�|�|Sr)�socket�
socketpairrbrh)r%rkrrr�_socketpairszSmallPtyTests._socketpaircCs*|�|j�d�t|��|j�d�ggfS)Nr)r5rc�pop�lenrd)r%�rfdsZwfdsZxfdsrrr�_mock_selectszSmallPtyTests._mock_selectcCs"|��\}}|t_|��\}}|t_|��}dd�|D�}t�|dd�t�|d�|jt_|j	�
d�|j�
||dg�|j	�
d�|�t
��t�|d�Wd�n1s�0Yt�||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>r+z4SmallPtyTests.test__copy_to_each.<locals>.<listcomp>rBsfrom masters
from stdinrDrN�)rir-r]r[rlr0r8rpr_rc�appendrd�assertRaises�
IndexError�_copyr5r4)r%�read_from_stdout_fd�mock_stdout_fd�
mock_stdin_fd�write_to_stdin_fdrk�mastersrorrr�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
��t�|d�Wd�n1s�0YdS)z9Test the empty read EOF case on both master_fd and stdin.cSsg|]}|���qSrrqrsrrrrv0r+z7SmallPtyTests.test__copy_eof_on_all.<locals>.<listcomp>rBrDrN)rir-r]r[rlr;r0rpr_rcrxrdryrzr{)r%r|r}r~rrkr�rrr�test__copy_eof_on_all)s
z#SmallPtyTests.test__copy_eof_on_allN)rVrWrX�__doc__r&rfrirlrpr�r�rrrrrZ�s	rZcCs
t�dSr)rrrrr�tearDownModuleAsr��__main__)Ztest.supportrrrr6r-r0rMr_rrjrr/r9r:r
rrZTestCaserrZr�rV�mainrrrr�<module>s.

!^

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists