
    <|h                         d dl Z d dl mZ d dl mZ d dlmZ  G d de      Z G d deej                        Z	e
dk(  r ej                          yy)	    N)socket)	selectorsc                   .    e Zd Zedd       ZdZd Zd Zy)SelectorTestMixinc                     | j                  |      }|D ]6  \  }}|j                  | |j                  |       t        j                          8 y )Ntimeout)selectdatafileobjgeventsleep)selr	   eventskeymasks        [/var/www/html/test/engine/venv/lib/python3.12/site-packages/gevent/tests/test__selectors.pyrun_selector_oncez#SelectorTestMixin.run_selector_once   sD     G, 	ICHHS#++t,LLN	    Tc                     |j                  d      }|r|j                  |       | j                  r"|j                  |       |j	                          y y )Nd   )recvsendunregister_after_send
unregisterclose)selfselectorconn_eventsr   s        r    read_from_ready_socket_and_replyz2SelectorTestMixin.read_from_ready_socket_and_reply   sD    yy~IIdO %%%JJL &r   c                    t        j                         \  }}d }	 |j                  |t        j                  | j
                         t        j                  | j                  |      }d}|j                  |       |j                  d      }| j                  ||       |j                          |j                          |j                          ||j                  d       	 | j                  |d uxr |j                                y # |j                          |j                          |j                          ||j                  d       w w xY w)Ns   abcdef2   
   )r   
socketpairregisterr   
EVENT_READr!   r   spawnr   r   r   assertEqualr   join
assertTrueready)r   r   serverclientgletDATAr   s          r   _check_selectorz!SelectorTestMixin._check_selector!   s    **,	LL!5!5t7\7\]<< 6 6<DDKK;;r?DT4(IIKLLNLLN		"D(9TZZ\: IIKLLNLLN		"  s   BD AEN)   )__name__
__module____qualname__staticmethodr   r   r!   r1    r   r   r   r   
   s&      !;r   r   c                       e Zd Zd Zd Zy)GeventSelectorTestc                 x    t        j                         5 }| j                  |       d d d        y # 1 sw Y   y xY w)N)r   GeventSelectorr1   )r   r   s     r   test_select_using_socketpairz/GeventSelectorTest.test_select_using_socketpair7   s3    %%' 	&3  %	& 	& 	&s   09c                    	 t         j                  }t        d      D cg c]  }t        j                          }}	 t        j                         }t        j                         }t        |      D ]  \  }}|\  }}	|j                  |t
        j                  | j                         |j                  |	t
        j                  |       t        |      j                  d      }
|	j                  |
        t        j                          | j!                  ||d   d   j"                  |k(  rdnd       d}|j%                  d      D ][  \  }}t        |j&                        j                  d      }|j(                  j+                  d      }
| j-                  |
|       |dz  }] | j-                  |t/        |             |j1                          |j1                          |D ]  }|D ]  }|j1                            y # t        $ r d }Y w xY wc c}w # j1                          j1                          |D ]  }|D ]  }|j1                            w xY w)	Nr$   asciir   r2   r   r#      )r   AF_UNIXAttributeErrorranger%   r   r;   	enumerater&   r'   r!   strencoder   r   idler   familyr
   r   r   r   r)   lenr   )r   rA   _pairs
server_sel
client_selipairr-   r.   r   foundr   expectedss                  r   test_select_many_socketsz+GeventSelectorTest.test_select_many_sockets<   s)   	nnG /4Bi8""$88&	"113J"113J$U+ "4!%##FI,@,@$($I$IK##FI,@,@!D1v}}W-D!"$ KKM""#Ahqk00G; # D E$++A+6 Qsxx=//8{{''+  x0
	
 UCJ/  AGGIS  	G	 9H   AGGIs#   G> HFH >HHA IN)r3   r4   r5   r<   rS   r7   r   r   r9   r9   4   s    &
.r   r9   __main__)r   r   r   gevent.testingtesting	greentestobjectr   TestCaser9   r3   mainr7   r   r   <module>r[      sR       "'; ';T6*"++6t zINN r   