σ
ϊR_c           @@ sκ   d  d l  m Z m Z d  d l m Z e j d e  d  d l Z d  d l Z d  d l	 Z	 d  d l
 m Z d  d l Z d  d l m Z d  d l j Z d  d l m Z e j d  d	 e j f d
     Y Z e d k rζ e j   n  d S(   i    (   t   print_functiont   absolute_import(   t   monkeyt
   subprocessN(   t   sleep(   t   StreamServer(   t   utils2   Timing issues sometimes lead to connection refusedt   Testc           B@ s^   e  Z d  Z d d g Z e j j d  rJ d d l m Z i e d 6Z	 n  d   Z
 d   Z RS(	   s   portforwarder.pys   127.0.0.1:10011s   127.0.0.1:10012t   wini    (   t   CREATE_NEW_PROCESS_GROUPt   creationflagsc         C@ sE   t  j d k r( |  j |  j j    n |  j |  j j   d  d  S(   Nt   win32i    (   t   syst   platformt   assertIsNotNonet   popent   pollt   assertEqual(   t   self(    (    sa   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__example_portforwarder.pyt   after   s    c         @ sκ   g      f d   } t  |  j d |  } | j   z t j d
  } | j d  t d  |  j j t	 t
 d t
 j   t d  | j d  | j   t j d	   |  j j   Wd  QXWd  | j   X|  j d d g    d  S(   Nc         @ sE   x> t  r@ |  j d  } t d |  | s0 Pn    j |  q Wd  S(   Ni   s   got %r(   t   Truet   recvt   printt   append(   t   sockt   _addresst   data(   t   log(    sa   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__example_portforwarder.pyt   handle"   s    	i   s	   127.0.0.1i'  t   msg1gΉ?t   CTRL_C_EVENTt   msg2gΝΜΜΜΜΜ @(   s	   127.0.0.1i'  (   R   t   argst   startt   sockett   create_connectiont   sendallR   R   t   send_signalt   getattrt   signalt   SIGTERMt   closet   geventt   Timeoutt   waitR   (   R   R   t   servert   conn(    (   R   sa   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__example_portforwarder.pyt   _run_all_tests   s     



(   t   __name__t
   __module__R-   R    R   R   t
   startswithR   R	   t   start_kwargsR   R/   (    (    (    sa   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__example_portforwarder.pyR      s   	t   __main__(   t
   __future__R    R   R*   R   t	   patch_allR   R'   R   R"   t   timeR   t   gevent.serverR   t   gevent.testingt   testingt	   greentestR   t   skipOnLibuvOnCIOnPyPyt
   TestServerR   R0   t   main(    (    (    sa   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__example_portforwarder.pyt   <module>   s    2