;
Ëâ"Ic               @   s&  d  Z  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 Z d d l m	 Z	 e
 e d ƒ p e	 j d ƒ ‚ n y e j ƒ  WnM e k
 oA Z z+ e j e j k o e	 j d ƒ ‚ n WYd d Z [ Xn XGd „  d e j ƒ Z d	 „  Z e d
 k o e ƒ  n d S(   u   
Tests for epoll wrapper.
i    N(   u   supportu   epollu   test works only on Linux 2.6u   kernel doesn't support epoll()c             B   sh   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 S(   c             C   sB   t  j  ƒ  |  _ |  j j d ƒ |  j j d ƒ |  j g |  _ d  S(   Nu	   127.0.0.1i    i   (   u	   127.0.0.1i    (   u   socketu   serverSocketu   bindu   listenu   connections(   u   self(    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu   setUp,   s    c             C   s"   x |  j  D] } | j ƒ  q
 Wd  S(   N(   u   connectionsu   close(   u   selfu   skt(    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu   tearDown3   s    
 c             C   sÅ   t  j  ƒ  } | j d ƒ y$ | j d |  j j ƒ  d f ƒ WnD t  j k
 o5 } z |  j | j d t	 j
 ƒ WYd  d  } ~ Xn Xt d ƒ ‚ |  j j ƒ  \ } } |  j j | | f ƒ | | f S(   Nu	   127.0.0.1i   i    u&   Connect should have raised EINPROGRESSF(   u   socketu   setblockingu   Falseu   connectu   serverSocketu   getsocknameu   erroru   assertEqualsu   argsu   errnou   EINPROGRESSu   AssertionErroru   acceptu   connectionsu   extend(   u   selfu   clientu   eu   serveru   addr(    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu   _connected_pair7   s    $.c             C   s³   y t  j d ƒ } Wn9 t k
 o- } z t t | ƒ ƒ ‚ WYd  d  } ~ Xn X|  j | j ƒ  d k | j ƒ  ƒ |  j | j ƒ | j ƒ  |  j | j ƒ |  j	 t
 | j ƒ d  S(   Ni   i    (   u   selectu   epollu   OSErroru   AssertionErroru   stru   assert_u   filenou   closedu   closeu   assertRaisesu
   ValueError(   u   selfu   epu   e(    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu   test_createE   s    &"
c             C   s‘   |  j  t t j d d d ƒ |  j  t t j d ƒ |  j  t t j d  ƒ |  j  t t j d ƒ |  j  t t j d g ƒ |  j  t t j i  ƒ d  S(   Ni   i   i   u   foo(    (   u   assertRaisesu	   TypeErroru   selectu   epollu   None(   u   self(    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu   test_badcreateP   s    c          
   C   sw   |  j  ƒ  \ } } t j d ƒ } zD | j | j ƒ  t j t j Bƒ | j | j ƒ  t j t j Bƒ Wd  | j ƒ  Xd  S(   Ni   (   u   _connected_pairu   selectu   epollu   registeru   filenou   EPOLLINu   EPOLLOUTu   close(   u   selfu   serveru   clientu   ep(    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu   test_addX   s     $c             C   s?  |  j  ƒ  \ } } t j d ƒ } t j j | j ƒ  ƒ } | j | j ƒ  t j t j Bƒ | j | j ƒ  t j t j Bƒ | j d d ƒ } | j d d ƒ } |  j	 t
 | ƒ d ƒ |  j	 t
 | ƒ d ƒ | j ƒ  y | j d d ƒ WnD t k
 o8 } z" |  j | j d t j | ƒ WYd  d  } ~ Xn X|  j d ƒ d  S(   Ni   i   i   gÍÌÌÌÌÌì?i    u%   epoll on closed fd didn't raise EBADF(   u   _connected_pairu   selectu   epollu   fromfdu   filenou   registeru   EPOLLINu   EPOLLOUTu   pollu   assertEqualu   lenu   closeu   IOErroru   failUnlessEqualu   argsu   errnou   EBADFu   fail(   u   selfu   serveru   clientu   epu   ep2u   eventsu   events2u   e(    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu   test_fromfdb   s      
1c             C   s°  |  j  ƒ  \ } } t j d ƒ } | j | j ƒ  t j t j Bt j Bƒ | j | j ƒ  t j t j Bt j Bƒ t j ƒ  } | j	 d d ƒ } t j ƒ  } |  j
 | | d k | | ƒ | j ƒ  | j ƒ  t j f | j ƒ  t j f g } | j ƒ  |  j | | ƒ |  j
 | | d k | | ƒ t j ƒ  } | j	 d d d d ƒ } t j ƒ  } |  j
 | ƒ | j d	 ƒ | j d
 ƒ t j ƒ  } | j	 d d ƒ } t j ƒ  } |  j
 | | d k ƒ | j ƒ  | j ƒ  t j t j Bf | j ƒ  t j t j Bf g } | j ƒ  |  j | | ƒ | j | j ƒ  ƒ | j | j ƒ  t j ƒ t j ƒ  } | j	 d d ƒ } t j ƒ  } |  j
 | | d k ƒ | j ƒ  t j f g } |  j | | ƒ d  S(   Ni   i   i   gš™™™™™¹?g{®Gáz„?u   timeoutgÍÌÌÌÌÌ @u	   maxeventss   Hello!s   world!!!(   u   _connected_pairu   selectu   epollu   registeru   filenou   EPOLLINu   EPOLLOUTu   EPOLLETu   timeu   pollu   failIfu   sortu   assertEqualsu   sendu
   unregisteru   modify(   u   selfu   clientu   serveru   epu   nowu   eventsu   thenu   expected(    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu   test_control_and_waitx   sN    



c             C   s<   |  j  t t j d ƒ |  j  t t j ƒ  j d t j ƒ d  S(   Niþÿÿÿiÿÿÿÿ(   u   assertRaisesu
   ValueErroru   selectu   epollu   registeru   EPOLLIN(   u   self(    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu   test_errors¬   s    c             C   s–   |  j  ƒ  \ } } | j ƒ  } t j d ƒ } | j | ƒ t j ƒ  } | j d d ƒ } t j ƒ  } |  j | | d k ƒ | j ƒ  | j	 | ƒ d  S(   Ni   i   i   g{®Gáz„?(
   u   _connected_pairu   filenou   selectu   epollu   registeru   timeu   pollu   failIfu   closeu
   unregister(   u   selfu   serveru   clientu   fdu   epu   nowu   eventsu   then(    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu   test_unregister_closed±   s    
N(   u   __name__u
   __module__u   setUpu   tearDownu   _connected_pairu   test_createu   test_badcreateu   test_addu   test_fromfdu   test_control_and_waitu   test_errorsu   test_unregister_closed(   u
   __locals__(    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu	   TestEPoll*   s   
						
		4	u	   TestEPollc               C   s   t  j t ƒ d  S(   N(   u   supportu   run_unittestu	   TestEPoll(    (    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu	   test_main¿   s    u   __main__(   u   __doc__u   osu   socketu   errnou   timeu   selectu   tempfileu   unittestu   testu   supportu   hasattru   TestSkippedu   epollu   IOErroru   eu   ENOSYSu   TestCaseu	   TestEPollu	   test_mainu   __name__(    (    (    u,   /mit/python/lib/python3.0/test/test_epoll.pyu   <module>   s&   '•	