ó
úR_c           @   sż   d  d l  Z  d  d l Z d  d l m Z d  d l m Z m Z m Z d  d l m Z d  d l m Z e	 e  d  Z
 e  j d d k Z d	   Z d
 e f d     YZ e d k rť e   n  d S(   i˙˙˙˙N(   t   socket(   t   TestCaset   maint   tcp_listener(   t
   skipOnPyPy(   t   paramst   pypy_version_infoi    i   c         C   sO   y |  j  |  } Wn t k
 r2 t sK t  n X| d  k sK t |   d  S(   N(   t   writet
   ValueErrort   PY3t   AssertionErrort   None(   t   ft   st   r(    (    sS   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenio.pyt   _write_to_closed"   s
    t   TestGreenIoc           B   s&   e  Z d    Z e d  d    Z RS(   c            s     f d   }   f d   }   f d   } t    } t j | |  } | |  | j   t    } t j | |  } | |  | j   d  S(   Nc            s   zo |  j    \ } } | j d d  } | j   | j d  | j   t | d    j t j | j d  Wd  |  j   Xd  S(   Nt   modet   wbs   hello
t   at   b(	   t   acceptt   makefilet   closeR   R   t   assertRaisesR    t   errort   send(   t   listenert   connt   _t   fd(   t   self(    sS   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenio.pyt   accept_close_early/   s    

c            s   z| |  j    \ } } | j d d  } | j d  | j   | j d  | j   t | d    j t j | j d  Wd  |  j   Xd  S(   NR   R   t   hellos   
R   R   (	   R   R   R   R   R   R   R   R    R   (   R   R   R   R   (   R   (    sS   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenio.pyt   accept_close_late=   s    

c            su   t  j t j |  j   d f  } | j d d  } | j     j | j   d    j	 | j
    | j   d  S(   Ni   R   t   rbs   hello
(   R    t   create_connectionR   t   DEFAULT_CONNECTt   getsocknameR   R   t   assertEqualt   readlinet   assertFalset   read(   t   servert   clientR   (   R   (    sS   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenio.pyt   did_it_workL   s    "
(   R   t   geventt   spawnt   kill(   R   R    R"   R-   R+   t   server_greenlet(    (   R   sS   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenio.pyt   test_close_with_makefile-   s    	

	
s   GC is differentc         C   sŁ   d   } t    } t j | |  t j t j | j   d f  } t j j	 d  G | j
   } | j   |  j | j   d  |  j | j   d  Wd  QXd  S(   Nc         S   s   d  } z[ |  j   \ } } t r* | } n  | j d d  } | j d  | j   t | d  Wd  |  j   | d  k	 r | j   n  Xd  S(   NR   R   s   hello
R   (   R   R   R	   R   R   R   R   (   R   t   oconnR   R   (    (    sS   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenio.pyt   accept_once`   s    	

i   g      ŕ?s   hello
t    (   R   R.   R/   R    R$   R   R%   R&   t   Timeoutt	   start_newR   R   R'   R*   (   R   R4   R+   R,   R   (    (    sS   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenio.pyt   test_del_closes_socket^   s    		"
(   t   __name__t
   __module__R2   R   R8   (    (    (    sS   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenio.pyR   +   s   	1t   __main__(   t   sysR.   R    t   gevent.testingR   R   R   R   R   t   hasattrt   PYPYt   version_infoR	   R   R   R9   (    (    (    sS   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenio.pyt   <module>   s   		T