Ñò
à"Ic           @   s  d  Z  d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k l	 Z	 e
 e d ƒ p e	 i d ƒ ‚ n y e i ƒ  Wn; e j
 o/ Z e i e i j o e	 i d ƒ ‚ qÙ n Xd e i f d „  ƒ  YZ d	 „  Z e d
 j o e ƒ  n d S(   s   
Tests for epoll wrapper.
iÿÿÿÿN(   t   test_supportt   epolls   test works only on Linux 2.6s   kernel doesn't support epoll()t	   TestEPollc           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   sB   t  i  ƒ  |  _ |  i i d ƒ |  i i d ƒ |  i g |  _ d  S(   Ns	   127.0.0.1i    i   (   s	   127.0.0.1i    (   t   sockett   serverSockett   bindt   listent   connections(   t   self(    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt   setUp,   s    c         C   s"   x |  i  D] } | i ƒ  q
 Wd  S(   N(   R   t   close(   R   t   skt(    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt   tearDown3   s    
 c         C   s³   t  i  ƒ  } | i t ƒ y$ | i d |  i i ƒ  d f ƒ Wn2 t  i j
 o# } |  i | i d t	 i
 ƒ n Xt d ƒ ‚ |  i i ƒ  \ } } |  i i | | f ƒ | | f S(   Ns	   127.0.0.1i   i    s&   Connect should have raised EINPROGRESS(   R   t   setblockingt   Falset   connectR   t   getsocknamet   errort   assertEqualst   argst   errnot   EINPROGRESSt   AssertionErrort   acceptR   t   extend(   R   t   clientt   et   servert   addr(    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt   _connected_pair7   s    $c         C   s¡   y t  i d ƒ } Wn' t j
 o } t t | ƒ ƒ ‚ n X|  i | i ƒ  d j | i ƒ  ƒ |  i | i ƒ | i ƒ  |  i | i ƒ |  i	 t
 | i ƒ d  S(   Ni   i    (   t   selectR   t   OSErrorR   t   strt   assert_t   filenot   closedR
   t   assertRaisest
   ValueError(   R   t   epR   (    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt   test_createE   s    "
c         C   s‘   |  i  t t i d d d ƒ |  i  t t i d ƒ |  i  t t i d  ƒ |  i  t t i d ƒ |  i  t t i d g ƒ |  i  t t i h  ƒ d  S(   Ni   i   i   t   foo(    (   R$   t	   TypeErrorR   R   t   None(   R   (    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt   test_badcreateP   s    c         C   sw   |  i  ƒ  \ } } t i d ƒ } zD | i | i ƒ  t i t i Bƒ | i | i ƒ  t i t i Bƒ Wd  | i ƒ  Xd  S(   Ni   (   R   R   R   t   registerR"   t   EPOLLINt   EPOLLOUTR
   (   R   R   R   R&   (    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt   test_addX   s     $c         C   s-  |  i  ƒ  \ } } t i d ƒ } t i i | i ƒ  ƒ } | i | i ƒ  t i t i Bƒ | i | i ƒ  t i t i Bƒ | i d d ƒ } | i d d ƒ } |  i	 t
 | ƒ d ƒ |  i	 t
 | ƒ d ƒ | i ƒ  y | i d d ƒ Wn2 t j
 o& } |  i | i d t i | ƒ n X|  i d ƒ d  S(   Ni   i   i   gÍÌÌÌÌÌì?i    s%   epoll on closed fd didn't raise EBADF(   R   R   R   t   fromfdR"   R,   R-   R.   t   pollt   assertEqualt   lenR
   t   IOErrort   failUnlessEqualR   R   t   EBADFt   fail(   R   R   R   R&   t   ep2t   eventst   events2R   (    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt   test_fromfdb   s      
"c         C   s°  |  i  ƒ  \ } } t i d ƒ } | i | i ƒ  t i t i Bt i Bƒ | i | i ƒ  t i t i Bt i Bƒ t i ƒ  } | i	 d d ƒ } t i ƒ  } |  i
 | | d j | | ƒ | i ƒ  | i ƒ  t i f | i ƒ  t i f g } | i ƒ  |  i | | ƒ |  i
 | | d j | | ƒ t i ƒ  } | i	 d d d d ƒ } t i ƒ  } |  i
 | ƒ | i d	 ƒ | i d
 ƒ t i ƒ  } | i	 d d ƒ } t i ƒ  } |  i
 | | d j ƒ | i ƒ  | i ƒ  t i t i Bf | i ƒ  t i t i Bf g } | i ƒ  |  i | | ƒ | i | i ƒ  ƒ | i | i ƒ  t i ƒ t i ƒ  } | i	 d d ƒ } t i ƒ  } |  i
 | | d j ƒ | i ƒ  t i f g } |  i | | ƒ d  S(   Ni   i   i   gš™™™™™¹?g{®Gáz„?t   timeoutgÍÌÌÌÌÌ @t	   maxeventss   Hello!s   world!!!(   R   R   R   R,   R"   R-   R.   t   EPOLLETt   timeR1   t   failIft   sortR   t   sendt
   unregistert   modify(   R   R   R   R&   t   nowR9   t   thent   expected(    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt   test_control_and_waitx   sN    



c         C   s<   |  i  t t i d ƒ |  i  t t i ƒ  i d t i ƒ d  S(   Niþÿÿÿiÿÿÿÿ(   R$   R%   R   R   R,   R-   (   R   (    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt   test_errors¬   s    c         C   s–   |  i  ƒ  \ } } | i ƒ  } t i d ƒ } | i | ƒ t i ƒ  } | i d d ƒ } t i ƒ  } |  i | | d j ƒ | i ƒ  | i	 | ƒ d  S(   Ni   i   i   g{®Gáz„?(
   R   R"   R   R   R,   R?   R1   R@   R
   RC   (   R   R   R   t   fdR&   RE   R9   RF   (    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt   test_unregister_closed±   s    
(   t   __name__t
   __module__R	   R   R   R'   R+   R/   R;   RH   RI   RK   (    (    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyR   *   s   						
		4	c           C   s   t  i t ƒ d  S(   N(   R    t   run_unittestR   (    (    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt	   test_main¿   s    t   __main__(   t   __doc__t   osR   R   R?   R   t   tempfilet   unittestt   testR    t   hasattrt   TestSkippedR   R4   R   t   ENOSYSt   TestCaseR   RO   RL   (    (    (    s,   /mit/python/lib/python2.6/test/test_epoll.pyt   <module>   s&   •	