Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_pty.cpython-34.pyc

�
f f,�@s,ddlmZmZmZmZed�Zed�ddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
dZdZer�dd�Znd	d�Zd
d�ZGdd
�d
e
j�ZGdd�de
j�Zddd�Zedkr(e�ndS)�)�verbose�run_unittest�
import_module�
reap_children�fcntlZtermiosNsI wish to buy a fish license.
sFor my pet fish, Eric.
cCst|�dS)N)�print)�msg�r	�2/opt/alt/python34/lib64/python3.4/test/test_pty.py�debugsrcCsdS)Nr	)rr	r	r
rscCsB|jd�r|jdd�S|jd�r>|jdd�S|S)Ns

s
s
)�endswith�replace)�datar	r	r
�normalize_outputs
rc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�PtyTestcCs,tjtj|j�|_tjd�dS)N�
)�signal�SIGALRM�
handle_sig�	old_alarm�alarm)�selfr	r	r
�setUp5sz
PtyTest.setUpcCs'tjd�tjtj|j�dS)Nr)rrrr)rr	r	r
�tearDown;s
zPtyTest.tearDowncCs|jd�dS)Nzisatty hung)�fail)rZsigZframer	r	r
r@szPtyTest.handle_sigcCsybtd�tj�\}}td||f�td|f�tj|�}td|�Wn!tk
r�tjd��YnX|jtj	|�d�t
j
|t
j�}t
j
|t
j|tj
B�y&tj|d�}|jd|�Wn=tk
r6}z|jtjkr$�nWYdd}~XnXt
j
|t
j|�td	�tj|t�tj|d�}|jd
t|��td�tj|tdd��tj|tdd��tj|d�}|jd
t|��tj|�tj|�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 ttyi�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�isattyrZF_GETFLZF_SETFL�
O_NONBLOCK�read�assertEqual�errnoZEAGAIN�write�
TEST_STRING_1r�
TEST_STRING_2�close)r�	master_fdZ
slave_nameZslave_fdZ
orig_flags�s1�e�s2r	r	r
�
test_basicCs@


	


zPtyTest.test_basicc
Cstd�tj�\}}|tjkr�tjd�sTtd�tjd�ntd�ytj�WnUtk
r�td�YnQt	k
r�td�Yn6td�tjd�YnXtd	�tjd
�tjd�ntd|�xbytj
|d
�}Wntk
r'PYnX|s2Pntjj
t|jdd�dd��q�Wtj|d�\}}|d?}td|||f�|dkr�|jd�nT|d
kr�|jd�n8|dkr�|jd�n|dkr|jd�ntj|�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
s
�encoding�asciir�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.)rr�forkZCHILDr r!�_exit�setsidr�AttributeErrorr#�sys�stdoutr&�strr
�waitpidrr))r�pidr*rZstatus�resr	r	r
�	test_forkrsV












zPtyTest.test_forkN)�__name__�
__module__�__qualname__rrrr.rAr	r	r	r
r4s
/rc@sjeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�
SmallPtyTestsz)These tests don't spawn children or hang.cCsLtj|_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)rr	r	r
r�s			zSmallPtyTests.setUpcCs�|jt_|jt_|jt_x4|jD])}y|j�Wq.t	k
rVYq.Xq.Wx7|j
D],}ytj|�Wqet	k
r�YqeXqeWdS)N)rGrrFrIrHrKrJrMr)rrLr )r�file�fdr	r	r
r�s
	
zSmallPtyTests.tearDowncCs tj�}|jj|�|S)N)r �piperL�extend)rZpipe_fdsr	r	r
�_pipe�szSmallPtyTests._pipecCs tj�}|jj|�|S)N)�socket�
socketpairrMrS)rrVr	r	r
�_socketpair�szSmallPtyTests._socketpaircCs;|j|jjd�t|��|jjd�ggfS)Nr)r$rN�pop�lenrO)r�rfdsZwfdsZxfdsr	r	r
�_mock_select�s"zSmallPtyTests._mock_selectcCsf|j�\}}|t_|j�\}}|t_|j�}dd�|D�}tj|dd�tj|d�|jt_|j	j
d�|jj
||dg�|j	j
d�|jt
��tj|d�WdQXtj||dgggd�d}|j||dg|�|jtj|d	�d�|jtj|dd	�d�dS)
z6Test the normal data case on both master_fd and stdin.cSsg|]}|j��qSr	)�fileno)�.0�sr	r	r
�
<listcomp>�s	z4SmallPtyTests.test__copy_to_each.<locals>.<listcomp>r/sfrom masters
from stdinr1rN�)rTrrHrFrWr r&r[rJrN�appendrO�assertRaises�
IndexError�_copyr$r#)r�read_from_stdout_fd�mock_stdout_fd�
mock_stdin_fd�write_to_stdin_fdrV�mastersrZr	r	r
�test__copy_to_each�s$		&z SmallPtyTests.test__copy_to_eachc
Cs�|j�\}}|t_|j�\}}|t_|j�}dd�|D�}tj|d�|dj�tj|�|jt_|j	j
d�|jj
||dg�|j	j
d�|jt
��tj|d�WdQXdS)z9Test the empty read EOF case on both master_fd and stdin.cSsg|]}|j��qSr	)r\)r]r^r	r	r
r_s	z7SmallPtyTests.test__copy_eof_on_all.<locals>.<listcomp>r/r1rN)rTrrHrFrWr r)r[rJrNrarOrbrcrd)rrerfrgrhrVrir	r	r
�test__copy_eof_on_alls		
z#SmallPtyTests.test__copy_eof_on_allN)rBrCrD�__doc__rrrTrWr[rjrkr	r	r	r
rE�s	rEc
Cs zttt�Wdt�XdS)N)rrErr)rr	r	r
�	test_main'srm�__main__)Ztest.supportrrrrrr%rr r;rJrrUrr'r(rrZTestCaserrErmrBr	r	r	r
�<module>s*"
�_