o
    ‡eF  ã                   @   s^   d dl Z d dl mZ d dl mZ d dlmZ dd„ ZG dd„ dejƒZe	dkr-e 
¡  dS dS )	é    N)Úsocket)Úserverc                 C   s"   |   d¡r	 |   d¡s|  ¡  d S )Ni   )ÚrecvÚclose)ÚsockÚ_© r   úOD:\Projects\ConvertPro\env\Lib\site-packages\gevent/tests/test__socket_close.pyÚreadall	   s   

ÿr
   c                   @   s:   e Zd ZdZdd„ Zdd„ Zdd„ Ze d¡d	d
„ ƒZ	dS )ÚTestFc                 C   s   t  tjt¡| _ | j  ¡  d S ©N)r   ZStreamServerÚ	greentestZDEFAULT_BIND_ADDR_TUPLEr
   Ústart©Úselfr   r   r	   ÚsetUp   s   z
Test.setUpc                 C   s   | j  ¡  d S r   )r   Ústopr   r   r   r	   ÚtearDown   s   zTest.tearDownc                 C   sª   t   t jt j¡}| tj| jjf¡ t 	|j
d¡}z6t d¡ | ¡  |jdd |  | ¡ |¡ |  |jd ¡ |  |jt j¡ |  |jjt j¡ W | ¡  d S | ¡  w )Né   çü©ñÒMbP?gš™™™™™¹?)Útimeout)r   ÚAF_INETÚSOCK_STREAMÚconnectr   ÚDEFAULT_CONNECT_HOSTr   Úserver_portÚgeventÚspawnr   Úsleepr   ÚjoinÚ
assertTrueÚreadyÚassertEqualÚvalueZassertIsInstanceÚ	exceptionÚerrorÚerrnoÚEBADFÚkill©r   r   Zreceiverr   r   r	   Útest_recv_closed   s   
zTest.test_recv_closedzSometimes randomly times outc                 C   s†   t   t jt j¡}| tj| jjf¡ t 	|j
d¡}z t d¡ |  t|j
d¡ |  t|j
d¡ W | ¡  | ¡  d S | ¡  | ¡  w )Nr   r   )r   r   r   r   r   r   r   r   r   r   r   r   ÚassertRaisesÚAssertionErrorr(   r   r)   r   r   r	   Útest_recv_twice+   s   
ÿ
zTest.test_recv_twiceN)
Ú__name__Ú
__module__Ú__qualname__Zerror_fatalr   r   r*   r   ZskipOnLibuvOnCIr-   r   r   r   r	   r      s    r   Ú__main__)r   r   r   Zgevent.testingÚtestingr   r
   ZTestCaser   r.   Úmainr   r   r   r	   Ú<module>   s    *ÿ