mò
­fIc           @   s‚  d  k  Z  d  k Z d  k Z d  k Z d k l Z l Z l Z d Z d Z	 e o d „  Z
 n
 d „  Z
 d „  Z d „  Z d „  Z e i e i e ƒ Z e i d	 ƒ z e ƒ  Wd  e i d
 ƒ e i e i e ƒ Xe
 d ƒ e  i ƒ  \ Z Z e e  i j oÄ e i d ƒ p e
 d ƒ e i d ƒ n e
 d ƒ y e i ƒ  WnV e j
 o e
 d ƒ nR e j
 o e
 d ƒ n6 e
 d ƒ e i d ƒ n Xe
 d ƒ e i d ƒ e i d ƒ n° e
 d e ƒ e i e d
 ƒ \ Z Z e d ?Z e
 d e e e f ƒ e d j o e d ‚ nO e d j o e d ‚ n5 e d j o e d ‚ n e d j o e d ‚ n e i e ƒ d  S(   N(   s   verboses
   TestFaileds   TestSkippeds   I wish to buy a fish license.
s   For my pet fish, Eric.
c         C   s	   |  GHd  S(   N(   t   msg(   R    (    (    t*   /mit/python/lib/python2.4/test/test_pty.pyt   debug   s    c         C   s   d  S(   N(    (   R    (    (    R   R      s    c         C   sD   |  i d ƒ o |  d  d Sn |  i d ƒ o |  d  d Sn |  S(   Ns   
iýÿÿÿs   
s   
iþÿÿÿ(   t   datat   endswith(   R   (    (    R   t   normalize_output   s
    c          C   sX  yb t  d ƒ t i ƒ  \ } } t  d | | f ƒ t  d | f ƒ t i | ƒ } t  d | ƒ Wn t j
 o t d ‚ n Xt	 i
 | ƒ p t d ‚ n t  d ƒ t	 i | t ƒ t	 i | d ƒ } t i i t | ƒ ƒ t  d	 ƒ t	 i | t d
  ƒ t	 i | t d
 ƒ t	 i | d ƒ }  t i i t |  ƒ ƒ t	 i | ƒ t	 i | ƒ d  S(   Ns   Calling master_open()s#   Got master_fd '%d', slave_name '%s's   Calling slave_open(%r)s   Got slave_fd '%d's,   Pseudo-terminals (seemingly) not functional.s   slave_fd is not a ttys   Writing to slave_fdi   s   Writing chunked outputi   (   R   t   ptyt   master_opent	   master_fdt
   slave_namet
   slave_opent   slave_fdt   OSErrort   TestSkippedt   ost   isattyt
   TestFailedt   writet   TEST_STRING_1t   readt   s1t   syst   stdoutR   t   TEST_STRING_2t   s2t   close(   R   R   R	   R   R   (    (    R   t   test_basic_pty&   s,    


c         C   s   t  d ‚ d  S(   Ns   isatty hung(   R   (   t   sigt   frame(    (    R   t
   handle_sigC   s    i
   i    s   calling pty.fork()i   s   Child's fd 1 is not a tty?!i   s   In child, calling os.setsid()s   Good: OSError was raised.s   No setsid() available ?s   An unexpected error was raised.s   os.setsid() succeeded! (bad!)i   i   s!   Waiting for child (%d) to finish.i   s&   Child (%d) exited with status %d (%d).s3   Child raised an unexpected exception in os.setsid()s1   pty.fork() failed to make child a session leader.s8   Child spawned by pty.fork() did not have a tty as stdouts&   pty.fork() failed for unknown reasons.(   R   R   R   t   signalt   test.test_supportt   verboseR   R   R   R   R   R   R   R   t   SIGALRMt	   old_alarmt   alarmt   forkt   pidR   t   CHILDR   t   _exitt   setsidR   t   AttributeErrort   waitpidt   statust   resR   (   R+   R   R   R,   R    R"   R   R   R%   R   R   R   R   R   R   R   R   R   (    (    R   t   ?   sd   $				 







