Your IP : 216.73.216.213
���]f* � @ s� d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z e j e j
d k d � Gd d � d � � Z Gd d � d e e j � Z
Gd d � d e e j � Z Gd
d � d e � Z Gd d
� d
e e j � Z Gd d � d e e j � Z Gd d � d e � Z Gd d � d e e j � Z Gd d � d e e j � Z e d k r�e j � d S)� N�posixztests requires a posix system.c @ s e Z d Z d d � Z d d � Z d d � Z d d d d d
� Z d d � Z d
Z d d � Z d d � Z
d d � Z d S)�TestFileIOSignalInterruptc C s
d | _ d S)N)�_process)�self� r �4/opt/alt/python35/lib64/python3.5/test_file_eintr.py�setUp s zTestFileIOSignalInterrupt.setUpc C sH | j rD | j j � d k rD y | j j � Wn t k
rC Yn Xd S)N)r �poll�kill�OSError)r r r r �tearDown s
z"TestFileIOSignalInterrupt.tearDownc C s d | j S)Nz=import %s as io ;infile = io.FileIO(sys.stdin.fileno(), "rb"))�modname)r r r r �_generate_infile_setup_code$ s z5TestFileIOSignalInterrupt._generate_infile_setup_code� Tc
C s� | j j � d k rH t j d � y | j j � Wn t k
rG Yn X| rw | j j � \ } } | | 7} | | 7} | j d | | j � | j � f � d S)Ng�������?z/Error from IO process %s:
STDOUT:
%sSTDERR:
%s
) r r �time�sleep� terminater �communicate�fail�decode)r �why�stdout�stderrr Z
stdout_endZ
stderr_endr r r �fail_with_process_info- s
z0TestFileIOSignalInterrupt.fail_with_process_infoc C s� | j � } t j t j d d d | d d | d d g d t j d t j d t j �| _ | j j j t d
� � } | d
k r� | j
d d | �| j j j | � d } g } xw | s2t
j
| j j g f f d
� \ } } } | j j t j � | d 7} | d k r� | j j � | j d � q� W| j j j � } | d k rd| j
d d | �| j j d d � \ } }
| j j r�| j
d | j j | |
d d �d S)Nz-uz-czXimport signal, sys ;signal.signal(signal.SIGINT, lambda s, f: sys.stderr.write("$\n")) ;z ;z"sys.stderr.write("Worm Sign!\n") ;zinfile.close()�stdinr r s Worm Sign!
zwhile awaiting a signr g�������?� �� z,reader process failed to handle our signals.s $
zwhile awaiting signal�inputs
zexited rc=%dr F)r �
subprocess�Popen�sys�
executable�PIPEr r �read�lenr r �write�select�send_signal�signal�SIGINTr
r �readliner �
returncode)r �
data_to_write�read_and_verify_codeZinfile_setup_codeZ worm_signZsignals_sentZrlist�_Zsignal_liner r r r r �
_test_readingH s<