;
Μβ"Ic               @   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 m Z m Z m	 Z	 d  d l
 Z
 d Z d Z e o d   Z n
 d   Z d   Z Gd   d	 e
 j  Z d d
  Z e d k o e   n d S(   i    N(   u   verboseu   TestSkippedu   run_unittests   I wish to buy a fish license.
s   For my pet fish, Eric.
c             C   s   t  |   d  S(   N(   u   print(   u   msg(    (    u*   /mit/python/lib/python3.0/test/test_pty.pyu   debug   s    c             C   s   d  S(   N(    (   u   msg(    (    u*   /mit/python/lib/python3.0/test/test_pty.pyu   debug   s    c             C   sF   |  j  d  o |  j d d  S|  j  d  o |  j d d  S|  S(   Ns   
s   
s   
(   u   endswithu   replace(   u   data(    (    u*   /mit/python/lib/python3.0/test/test_pty.pyu   normalize_output   s
    c             B   s;   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d S(   c             C   s,   t  j  t  j |  j  |  _ t  j d  d  S(   Ni
   (   u   signalu   SIGALRMu
   handle_sigu	   old_alarmu   alarm(   u   self(    (    u*   /mit/python/lib/python3.0/test/test_pty.pyu   setUp/   s    c             C   s'   t  j d  t  j  t  j |  j  d  S(   Ni    (   u   signalu   alarmu   SIGALRMu	   old_alarm(   u   self(    (    u*   /mit/python/lib/python3.0/test/test_pty.pyu   tearDown5   s    c             C   s   |  j  d  d  S(   Nu   isatty hung(   u   fail(   u   selfu   sigu   frame(    (    u*   /mit/python/lib/python3.0/test/test_pty.pyu
   handle_sig:   s    c             C   s  yb t  d  t j   \ } } t  d | | f  t  d | f  t j |  } t  d |  Wn  t k
 o t d   Yn X|  j t j |  d  t	 j	 | t	 j
  } t	 j	 | t	 j | t j B y& t j | d  } |  j d |  WnA t k
 o5 } z | j t j k o   n WYd  d  } ~ Xn Xt	 j	 | t	 j |  t  d	  t j | t  t j | d  } |  j d
 t |   t  d  t j | t d  d   t j | t d d    t j | d  } |  j d t |   t j |  t j |  d  S(   Nu   Calling master_open()u#   Got master_fd '%d', slave_name '%s'u   Calling slave_open(%r)u   Got slave_fd '%d'u,   Pseudo-terminals (seemingly) not functional.u   slave_fd is not a ttyi   s    u   Writing to slave_fds   I wish to buy a fish license.
u   Writing chunked outputi   s   For my pet fish, Eric.
(   u   debugu   ptyu   master_openu
   slave_openu   OSErroru   TestSkippedu
   assertTrueu   osu   isattyu   fcntlu   F_GETFLu   F_SETFLu
   O_NONBLOCKu   readu   assertEqualsu   errnou   EAGAINu   writeu   TEST_STRING_1u   normalize_outputu   TEST_STRING_2u   close(   u   selfu	   master_fdu
   slave_nameu   slave_fdu
   orig_flagsu   s1u   eu   s2(    (    u*   /mit/python/lib/python3.0/test/test_pty.pyu
   test_basic=   s@    

	
c             C   s+  t  d  t j   \ } } | t j k oΗ t j d  p t  d  t j d  n t  d  y t j   WnY t k
 o t  d  YnT t	 k
 o t  d  Yn7 t  d  t j d  Yn Xt  d	  t j d
  t j d  n(t  d |  xe y t j
 | d  } Wn t k
 o	 PYn X| p Pn t j j t | j d d  d d  qt j | d  \ } } | d ?} t  d | | | f  | d k o |  j d  n[ | d
 k o |  j d  n= | d k o |  j d  n | d k o |  j d  n t j |  d  S(   Nu   calling pty.fork()i   u   Child's fd 1 is not a tty?!i   u   In child, calling os.setsid()u   Good: OSError was raised.u   No setsid() available?u   An unexpected error was raised.u   os.setsid() succeeded! (bad!)i   i   u!   Waiting for child (%d) to finish.iP   s   
s   
u   encodingu   asciii    i   u&   Child (%d) exited with status %d (%d).u3   Child raised an unexpected exception in os.setsid()u1   pty.fork() failed to make child a session leader.u8   Child spawned by pty.fork() did not have a tty as stdoutu&   pty.fork() failed for unknown reasons.(   u   debugu   ptyu   forku   CHILDu   osu   isattyu   _exitu   setsidu   OSErroru   AttributeErroru   readu   sysu   stdoutu   writeu   stru   replaceu   waitpidu   failu   close(   u   selfu   pidu	   master_fdu   datau   statusu   res(    (    u*   /mit/python/lib/python3.0/test/test_pty.pyu	   test_forkl   sV    








N(   u   __name__u
   __module__u   setUpu   tearDownu
   handle_sigu
   test_basicu	   test_fork(   u
   __locals__(    (    u*   /mit/python/lib/python3.0/test/test_pty.pyu   PtyTest.   s
   
				/u   PtyTestc             C   s   t  t  d  S(   N(   u   run_unittestu   PtyTest(   u   verbose(    (    u*   /mit/python/lib/python3.0/test/test_pty.pyu	   test_mainΑ   s    u   __main__(   u   errnou   fcntlu   ptyu   osu   sysu   signalu   test.supportu   verboseu   TestSkippedu   run_unittestu   unittestu   TEST_STRING_1u   TEST_STRING_2u   debugu   normalize_outputu   TestCaseu   PtyTestu   Noneu	   test_mainu   __name__(    (    (    u*   /mit/python/lib/python3.0/test/test_pty.pyu   <module>   s"   		