
    <|h                     8   d dl mZ d dlZd dlZd dlZd dlmZmZ d dlZd dl m	Z
 d dlZd dlZ G d dej                  j                  j                        Z e
j                   d       G d dej                  j                  j                               Z ej$                   eed	      d
       e
j                   d       G d dej                  j                  j                                      Z G d de
j*                        Zedk(  r e
j0                          yy)    )sixN)selectsocketc                       e Zd Zd Zy)
TestSelectc                 4    t        j                   g g g |       y N)r   )selftimeouts     X/var/www/html/test/engine/venv/lib/python3.12/site-packages/gevent/tests/test__select.pywaitzTestSelect.wait   s    b"b'*    N)__name__
__module____qualname__r    r   r   r   r      s    +r   r   zCant select on filesc                   v    e Zd Zd Z ej
                  ej                  j                  d      d      d        Z	y)TestSelectReadc                    t        j                         \  }}	 t        j                  |gg g |       t        j                  |       t        j                  |       y # t        j                  |       t        j                  |       w xY wr	   )ospiper   close)r
   r   rws       r   r   zTestSelectRead.wait   sZ    wwy1	MM1#r2w/HHQKHHQK HHQKHHQKs   A ,B	freebsdz*skip because of a FreeBSD bug: kern/155606c                    t        t        d      5 }|j                         }|j                          	 t	        j                  |gg g d       | j                  d       d d d        y # t        $ r4}| j                  |j                  t        j                         Y d }~Ad }~wt        j                  $ r7}| j                  |j                  d   t        j                         Y d }~d }~ww xY w# 1 sw Y   y xY w)Nrbr   zexception not raised)open__file__filenor   r   failOSErrorassertEqualerrnoEBADFerrorargs)r
   fpfderrs       r   
test_errnozTestSelectRead.test_errno   s     (D! 	2RBHHJ	2rdBA. 		01	2 	2
  9  EKK88<< ;  !ekk::;	2 	2sF   !C.A&C.&	C+/*BC.C+4-C&!C.&C++C..C7N)
r   r   r   r   unittestskipIfsysplatform
startswithr+   r   r   r   r   r      s<     X__S\\,,Y7AC2C2r   r   pollz
Needs pollzCant poll on filesc                       e Zd Zd Zd Zd Zy)TestPollReadc                    t        j                         \  }}	 t        j                         }|j	                  |t        j
                         |j                  |dz         |j                  |       t        j                  |       t        j                  |       y # j                  |       t        j                  |       t        j                  |       w xY w)Ni  )r   r   r   r1   registerPOLLIN
unregisterr   )r
   r   r   r   r1   s        r   r   zTestPollRead.wait5   s     wwy1	;;=DMM!V]]+IIgn%OOAHHQKHHQK OOAHHQKHHQKs   AB =Cc                 n    t        j                         }| j                  t        |j                  d       y )N   )r   r1   assertRaisesKeyErrorr7   )r
   r1   s     r    test_unregister_never_registeredz-TestPollRead.test_unregister_never_registeredC   s%     {{}(DOOQ7r   c                    | j                  d       t        t        d      5 }|j                         }t	        j
                         }|j                  |t        j                         |j                          |j                  d      }| j                  ||t        j                  fg       d d d        y # 1 sw Y   y xY w)Nzlibev >= 4.27 aborts the process if built with EV_VERIFY >= 2. For libuv, depending on whether the fileno is reused or not this either crashes or does nothing.r   r   )skipTestr   r   r    r   r1   r5   r6   r   r#   POLLNVAL)r
   r(   r)   r1   results        r   test_poll_invalidzTestPollRead.test_poll_invalidJ   s    3	4 (D! 
	>RB;;=DMM"fmm, HHJYYq\FVr6??&;%<=
	> 
	> 
	>s   B	B44B=N)r   r   r   r   r<   rA   r   r   r   r3   r3   2   s    8>r   r3   c                   J    e Zd Zd Z eej                  d      rd Zd Zd Z	y)TestSelectTypesc                     t        j                          }	 t        j                  t        |j                               gg g d       |j	                          y # |j	                          w xY wNMbP?)r   r   intr    r   r
   socks     r   test_intzTestSelectTypes.test_int]   sE    }}	MM3t{{}-.B>JJLDJJLs   0A A)longc                     t        j                          }	 t        j                  t        j                  j	                  |j                               gg g d       |j                          y # |j                          w xY wrE   )r   r   r   builtinsrK   r    r   rH   s     r   	test_longzTestSelectTypes.test_longe   sU    ==?D\\&&t{{}56BG 



s   AA+ +A=c                     t        j                          fd}	 t        j                   |       g g d       j                          y # j                          w xY w)Nc               3   D   K   t         j                                y wr	   )rG   r    )rI   s   r   fileno_iterz2TestSelectTypes.test_iterable.<locals>.fileno_iterp   s     dkkm$$s    rF   )r   r   r   )r
   rQ   rI   s     @r   test_iterablezTestSelectTypes.test_iterablem   s?    }}	%	MM+-R7JJLDJJLs   A
 
Ac                 d    d| _         | j                  t        t        j                  dgg g d       y )NFhellorF   )switch_expectedr:   	TypeErrorr   )r
   s    r   test_stringzTestSelectTypes.test_stringx   s(    $)V]]WIr2uMr   N)
r   r   r   rJ   hasattrr   rM   rN   rR   rW   r   r   r   rC   rC   [   s'     s||V$		Nr   rC   __main__)gevent.testingr   r.   r   r$   geventr   r   gevent.coretesting	greentestgevent.testing.timingr,   timingAbstractGenericWaitTestCaser   skipOnWindowsr   
skipUnlessrX   r3   TestCaserC   r   mainr   r   r   <module>rf      s     
 	  !  "  +&&BB + /02V^^**FF 2 12< WVV,l;-.%>6>>((DD %> / <%>NNi(( ND zINN r   