
    Zd                         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dS dS )    N)mark)	GreenTestPollZMQTestCasehave_geventc                  .    t          j        d           d S )N      ?)timesleep     3lib/python3.11/site-packages/zmq/tests/test_poll.pywaitr      s    Jtr   c                       e Zd Zej        Zd Zd Zd Zd Z e	j
        ej                            d          d          d             Z e	j        d	
          d             ZdS )TestPollc                    |                      t          j        t          j                  \  }}t                       |                                 }|                    |t          j        t          j        z             |                    |t          j        t          j        z             t          |	                                          }||         t          j        k    sJ ||         t          j        k    sJ |
                    d           |
                    d           t                       t          |	                                          }||         t          j        t          j        z  k    sJ ||         t          j        t          j        z  k    sJ |                                 |                                 t          |	                                          }||         t          j        k    sJ ||         t          j        k    sJ |                    |           |                    |           d S )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   s   ''#(;;B 	CJ4555CJ4555V[[]]##RyCK''''RyCK''''

V[[]]##RyCK#*44444RyCK#*44444
			
			V[[]]##RyCK''''RyCK''''""r   c                    |                      t          j        t          j                  \  }}t	                       |                                 }|                    |t          j        t          j        z             |                    |t          j        t          j        z             t          |
                                          }||vsJ ||         t          j        k    sJ |                    d           t          |
                                          }||vsJ t          j        d           t          |
                                          }||         t          j        k    sJ |                                 t          |
                                          }||         t          j        k    sJ |                    d           t          |
                                          }||vsJ t          j        d           t          |
                                          }||         t          j        k    sJ |                                 t          |
                                          }||         t          j        k    sJ |                    |           |                    |           d S )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   s2   ''99B 	CJ4555CJ4555 V[[]]##RyCK'''' 	V[[]]## 	
3V[[]]##RyCJ&&&& 				V[[]]##RyCK'''' 	V[[]]## 	
3V[[]]##RyCJ&&&& 				V[[]]##RyCK''''""r   c                 ^   |                      t          j        t          j                  \  }}|                                 }|                    |t          j        t          j        z             |                    |d           ||v sJ ||vsJ |                    |d           ||vsJ d S )Nr   )r   r   r   r   r   r   r   )r!   r"   r#   r$   s       r   test_no_eventszTestPoll.test_no_eventsd   s    ''#(;;BCJ4555AV||||Ar   c                    |                      t          j        t          j                  \  }}|                    t          j        d           t                       |                                 }|                    |t          j	        t          j
        z             |                    |t          j	                   t          |                                          }||         t          j
        k    sJ ||vsJ |                    d           t          |                                          }||         t          j
        k    sJ t                       t          |                                          }||         t          j	        k    sJ |                                 t          |                                          }||vsJ |                    |           |                    |           d S )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   s   ''99B
cmS))) 	CJ4555CJ''' V[[]]##RyCK''''
V[[]]##RyCK'''' 	V[[]]##RyCJ&&&& 				V[[]]##""r   winWindows)reasonc                 t   t          j                    \  }}t          j        |d          }t          j        |d          }|                                 }|                    |t
          j                   t          |                    d                    }|i k    sJ |	                    d           |
                                 t          |                    d                    }||                                t
          j        ik    sJ |                                 |                                 d S )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    wyy1IaIaKKMM	

1cj!!!QVVAYY{{{{					QVVAYYSZ00000										r      rerunsc                    |                      t          j        t          j                  \  }}|                                 }|                    |t          j                   t          j                    }|                    d           t          j                    }||z
  dk      t          j                    }|                    d           t          j                    }||z
  dk     sJ ||z
  dk    sJ t          j                    }|                    d           t          j                    }||z
  dk     sJ ||z
  dk    sJ dS )	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CJ'''!!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      s        ZF  >. . .`       B T[((//	BBB  CB TZq    r   r   c                   H    e Zd Zd Z ej        d          d             ZdS )
TestSelectc                     |                      t          j        t          j                  \  }}t                       t          j        ||g||g||g          \  }}}||v sJ ||v sJ ||vsJ ||vsJ d S )N)r   r   r   r   select)r!   r"   r#   rlistwlistxlists         r   r&   zTestSelect.test_pair   s    ''#(;;B 	!j"bB8b"XFFueU{{{{U{{{{r   rG   rH   c                    |                      t          j        t          j                  \  }}t          j                    }t          j        ||gg g d          \  }}}t          j                    }||z
  dk     sJ ||z
  dk    sJ t          j                    }t          j        ||gg g d          \  }}}t          j                    }||z
  dk     sJ ||z
  dk    sJ dS )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51a!!Sy1}}}}Sy5    !!*b"Xr2t441a!!Sy1}}}}Sy3r   N)rR   rS   rT   r&   r   rY   rQ   r   r   r   r[   r[      sN        
 
 
 TZq    r   r[   )greenc                   (    e Zd Zej        Zd Zd ZdS )TestPollGreenc                    |                      t          j        t          j                  \  }|                                                     |t          j                   t          j                    }t          j	        fd          }t          j	        fd          }|
                                 t          j                    }||z
  dk     sJ d S )Nc                  .                          d          S Ni'  r   )r$   s   r   <lambda>z+TestPollGreen.test_wakeup.<locals>.<lambda>   s    V[[%7%7 r   c                  .                          d          S Nr   r   r"   s   r   rj   z+TestPollGreen.test_wakeup.<locals>.<lambda>       RWWW%5%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    ++CHch??FB[[]]FOOB
+++#%%C777788A555566AFFHHH#%%C9q======r   c                 J   |                      t          j        t          j                  \  t          j                    }t          j        fd          }t          j        fd          }|                                 t          j                    }||z
  dk     sJ d S )Nc                  .                          d          S rh   ri   )r#   s   r   rj   z0TestPollGreen.test_socket_poll.<locals>.<lambda>   s    RWWU^^ r   c                  .                          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   s    ++CHch??FB#%%C333344A555566AFFHHH#%%C9q======r   N)rR   rS   rT   gzmqr   rt   rx   r   r   r   re   re      s9        
	! 
	! 
	!	! 	! 	! 	! 	!r   re   )r<   rV   r	   pytestr   r   	zmq.testsr   r   r   r   r   r[   rp   rc   ry   re   r   r   r   <module>r|      s,   
			 



        



 = = = = = = = = = =  ` ` ` ` ` ` ` `F       :  !MMM!!!!!!! ! ! ! !	8 ! ! ! ! !! !r   