
    ytf                         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mZm	Z	 d Z
 G d de      Z G d de      Ze	rd dlZd d	lmZ  G d
 dee      Zyy)    N)mark)	GreenTestPollZMQTestCasehave_geventc                  .    t        j                  d       y )N      ?)timesleep     ]/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/zmq/tests/test_poll.pywaitr      s    JJtr   c                       e Zd Zej                  Zd Zd Zd Zd Z e	j                  ej                  j                  d      d      d        Z e	j                  d	
      d        Zy)TestPollc                 4   | j                  t        j                  t        j                        \  }}t                | j	                         }|j                  |t        j                  t        j                  z         |j                  |t        j                  t        j                  z         t        |j                               }||   t        j                  k(  sJ ||   t        j                  k(  sJ |j                  d       |j                  d       t                t        |j                               }||   t        j                  t        j                  z  k(  sJ ||   t        j                  t        j                  z  k(  sJ |j                          |j                          t        |j                               }||   t        j                  k(  sJ ||   t        j                  k(  sJ |j                  |       |j                  |       y )N   msg1   msg2)create_bound_pairzmqPAIRr   PollerregisterPOLLINPOLLOUTdictpollsendrecv
unregisterselfs1s2pollersockss        r   	test_pairzTestPoll.test_pair   sy   ''#((;B 	CJJ45CJJ45V[[]#RyCKK'''RyCKK'''

V[[]#RyCKK#**4444RyCKK#**4444
	
	V[[]#RyCKK'''RyCKK'''""r   c                    | j                  t        j                  t        j                        \  }}t	                | j                         }|j                  |t        j                  t        j                  z         |j                  |t        j                  t        j                  z         t        |j                               }||vsJ ||   t        j                  k(  sJ |j                  d       t        |j                               }||vsJ t        j                  d       t        |j                               }||   t        j                  k(  sJ |j                          t        |j                               }||   t        j                  k(  sJ |j                  d       t        |j                               }||vsJ t        j                  d       t        |j                               }||   t        j                  k(  sJ |j                          t        |j                               }||   t        j                  k(  sJ |j                  |       |j                  |       y )Nr         ?r   )r   r   REPREQr   r   r   r   r   r   r   r   r	   r
   r   r   r    s        r   test_reqrepzTestPoll.test_reqrep4   s   ''9B 	CJJ45CJJ45 V[[]#RyCKK''' 	V[[]# 	

3V[[]#RyCJJ&&& 		V[[]#RyCKK''' 	V[[]# 	

3V[[]#RyCJJ&&& 		V[[]#RyCKK'''""r   c                 T   | j                  t        j                  t        j                        \  }}| j                         }|j	                  |t        j
                  t        j                  z         |j	                  |d       ||v sJ ||vsJ |j	                  |d       ||vsJ y )Nr   )r   r   r   r   r   r   r   )r!   r"   r#   r$   s       r   test_no_eventszTestPoll.test_no_eventsd   s    ''#((;BCJJ45AV||Ar   c                    | j                  t        j                  t        j                        \  }}|j	                  t        j
                  d       t                | j                         }|j                  |t        j                  t        j                  z         |j                  |t        j                         t        |j                               }||   t        j                  k(  sJ ||vsJ |j                  d       t        |j                               }||   t        j                  k(  sJ t                t        |j                               }||   t        j                  k(  sJ |j                          t        |j                               }||vsJ |j                  |       |j                  |       y )Nr   r   )r   r   PUBSUB
setsockopt	SUBSCRIBEr   r   r   r   r   r   r   r   r   r   r    s        r   test_pubsubzTestPoll.test_pubsubn   sG   ''9B
cmmS) 	CJJ45CJJ' V[[]#RyCKK'''
V[[]#RyCKK''' 	V[[]#RyCJJ&&& 		V[[]#""r   winWindows)reasonc                 ,   t        j                         \  }}t        j                  |d      }t        j                  |d      }| j                         }|j	                  |t
        j                         t        |j                  d            }|i k(  sJ |j                  d       |j                          t        |j                  d            }||j                         t
        j                  ik(  sJ |j                          |j                          y )Nrbwb      x)ospipefdopenr   r   r   r   r   r   writeflushfilenoclose)r!   rwpr%   s        r   test_rawzTestPoll.test_raw   s    wwy1IIaIIaKKM	

1cjj!QVVAY{{			QVVAYSZZ0000				r      rerunsc                 |   | j                  t        j                  t        j                        \  }}| j                         }|j	                  |t        j
                         t        j                         }|j                  d       t        j                         }||z
  dk   t        j                         }|j                  d       t        j                         }||z
  dk  sJ ||z
  dkD  sJ t        j                         }|j                  d       t        j                         }||z
  dk  sJ ||z
  dkD  sJ y)	zAmake sure Poller.poll timeout has the right units (milliseconds).{Gzt?r(   2   g{Gz?i  r:   皙?N)	r   r   r   r   r   r   r	   perf_counterr   )r!   r"   r#   r$   tictocs         r   test_timeoutzTestPoll.test_timeout   s    ''#((;BCJJ'!E!c	C!B!Sy3Sy4!C!Sy1}}Sy3r   N)__name__
__module____qualname__r   r   r&   r+   r-   r3   r   skipifsysplatform
startswithrF   flakyrQ   r   r   r   r   r      sq    ZZF>.` B T[[((/	B C TZZq r   r   c                   D    e Zd Zd Z ej
                  d      d        Zy)
TestSelectc                     | j                  t        j                  t        j                        \  }}t                t        j                  ||g||g||g      \  }}}||v sJ ||v sJ ||vsJ ||vsJ y )N)r   r   r   r   select)r!   r"   r#   rlistwlistxlists         r   r&   zTestSelect.test_pair   s|    ''#((;B 	!jj"bB8b"XFueU{{U{{r   rG   rH   c                    | j                  t        j                  t        j                        \  }}t        j                         }t        j
                  ||gg g d      \  }}}t        j                         }||z
  dk  sJ ||z
  dkD  sJ t        j                         }t        j
                  ||gg g d      \  }}}t        j                         }||z
  dk  sJ ||z
  dkD  sJ y)z7make sure select timeout has the right units (seconds).rK   r:   gMbP?r   rM   N)r   r   r   r	   rN   r]   )r!   r"   r#   rO   rC   rD   xrP   s           r   rQ   zTestSelect.test_timeout   s     ''#((;B!**b"Xr2u51a!Sy1}}Sy5   !**b"Xr2t41a!Sy1}}Sy3r   N)rR   rS   rT   r&   r   rY   rQ   r   r   r   r[   r[      s&    
 TZZq r   r[   )greenc                   0    e Zd Zej                  Zd Zd Zy)TestPollGreenc                    | j                  t        j                  t        j                        \  }| j                         j	                  |t        j
                         t        j                         }t        j                  fd      }t        j                  fd      }|j                          t        j                         }||z
  dk  sJ y )Nc                  &     j                  d      S Ni'  r   )r$   s   r   <lambda>z+TestPollGreen.test_wakeup.<locals>.<lambda>   s    V[[%7 r   c                  &     j                  d      S Nr   r   r"   s   r   rj   z+TestPollGreen.test_wakeup.<locals>.<lambda>       RWWW%5 r   r:   )r   r   r   r   r   r   r	   rN   geventspawnjoin)r!   r#   rO   rC   srP   r$   r"   s         @@r   test_wakeupzTestPollGreen.test_wakeup   s    ++CHHchh?FB[[]FOOB

+##%C78A56AFFH##%C9q= =r   c                 N   | j                  t        j                  t        j                        \  t        j                         }t        j                  fd      }t        j                  fd      }|j                          t        j                         }||z
  dk  sJ y )Nc                  &     j                  d      S rh   ri   )r#   s   r   rj   z0TestPollGreen.test_socket_poll.<locals>.<lambda>   s    RWWU^ r   c                  &     j                  d      S rl   rm   rn   s   r   rj   z0TestPollGreen.test_socket_poll.<locals>.<lambda>   ro   r   r:   )r   r   r   r	   rN   rp   rq   rr   )r!   rO   rC   rs   rP   r"   r#   s        @@r   test_socket_pollzTestPollGreen.test_socket_poll   st    ++CHHchh?FB##%C34A56AFFH##%C9q= =r   N)rR   rS   rT   gzmqr   rt   rx   r   r   r   re   re      s    
	!	!r   re   )r<   rV   r	   pytestr   r   	zmq.testsr   r   r   r   r   r[   rp   rc   ry   re   r   r   r   <module>r|      sZ    
 
   
 = =` `F : !!	8 ! r   