
    z%i#                         	 d dl Z d dlZd dlZd dlZd dlZd dlZ eed      s ej                  d       G d dej                        Z	e
dk(  r ej                          yy)    Nkqueueztest works only on BSDc                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	
TestKQueuec                 \   t        j                         }| j                  |j                         dkD  |j                                | j                  |j                          |j                          | j                  |j                         | j                  t        |j                         y Nr   )selectr   
assertTruefilenoclosedcloseassertRaises
ValueError)selfkqs     D/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_kqueue.pytest_create_queuezTestKQueue.test_create_queue   sj    ]]_		a5BII&

		"*bii0    c                 f   ddl m}m}m}m} t        j                  t
        j                  t
        j                        }| j                  t
        j                  |       t        j                  |      }t        j                  d      }| j                  |j                  |       | j                  |j                  t        j                          | j                  |j"                  t        j$                         | j                  |j&                  d       | j                  |j(                  d       | j                  |j*                  d       | j                  ||       | j-                  ||       | j/                  ||k         | j/                  ||k\         ||||fD ]J  }| j1                  t2        ||d        | j1                  t2        ||d       | j1                  t2        ||d       L t        j                  |t        j4                        }| j                  |j                  |       | j                  |j                  t        j4                         | j                  |j"                  t        j$                         | j                  |j&                  d       | j                  |j(                  d       | j                  |j*                  d       | j                  ||       | j-                  ||       t        j                  |t        j4                  t        j6                        }| j                  |j                  |       | j                  |j                  t        j4                         | j                  |j"                  t        j6                         | j                  |j&                  d       | j                  |j(                  d       | j                  |j*                  d       | j                  ||       | j-                  ||       t        j                  ddddd	d
      }| j                  |j                  d       | j                  |j                  d       | j                  |j"                  d       | j                  |j&                  d       | j                  |j(                  d	       | j                  |j*                  d
       | j                  ||       | j-                  ||       d}	t        j                  |	ddd|	dz
  |	      }| j                  |j                  |	       | j                  |j                  d       | j                  |j"                  d       | j                  |j&                  d       | j                  |j(                  |	dz
         | j                  |j*                  |	       | j                  ||       | j-                  ||       d}	t        j                  dd|	      }| j                  |j                  d       | j                  |j                  d       | j                  |j"                  |	       | j                  |j&                  d       | j                  |j(                  d       | j                  |j*                  d       | j                  ||       | j-                  ||       d}	t        j                  ddd|	      }| j                  |j                  d       | j                  |j                  d       | j                  |j"                  d       | j                  |j&                  |	       | j                  |j(                  d       | j                  |j*                  d       | j                  ||       | j-                  ||       y )Nr   )ltlegtgei     ev               i  i  l    )operatorr   r   r   r   osopendevnullO_WRONLY
addCleanupr   r   keventassertEqualidentfilterKQ_FILTER_READflags	KQ_EV_ADDfflagsdataudataassertNotEqualr	   r   	TypeErrorKQ_FILTER_WRITEKQ_EV_ONESHOT)
r   r   r   r   r   fdr   otheropbignums
             r   test_create_eventzTestKQueue.test_create_event   s   ++WWRZZ-"%]]2d#2&F$9$9:6#3#34A&!$1%R B&U
#$b"b. 	7BiR6iR3iR6	7
 ]]2v5562&F$:$:;6#3#34A&!$1%R B&]]2v55v7K7KL2&F$:$:;6#7#78A&!$1%R B&]]1aAq!,1%A&1%A&!$1%R B&]]61aFQJ?6*A&1%A&&1*-6*R B& ]]1a(1%A&6*A&!$1%R B& ]]1aF+1%A&1%F+!$1%R B&r   c           
      x   t        j                  d      }t        j                          }|j                  d       	 |j                  d|j	                         d   f       	 |j                         \  }}t        j                         }t        j                  j                  |j                               }t        j                  |j                         t        j                   t        j"                  t        j$                  z        }|j'                  |gd       t        j                  |j                         t        j(                  t        j"                  t        j$                  z        }|j'                  |gd       t        j                  |j                         t        j                   t        j"                  t        j$                  z        }|j'                  |gd       t        j                  |j                         t        j(                  t        j"                  t        j$                  z        }|j'                  |gd       |j'                  d dd      }	t+        d |	D              }	| j                  |	t+        |j                         t        j                   f|j                         t        j                   fg             |j-                  d       |j-                  d	       t/        d
      D ]:  }
|j'                  d dd      }	t1        |	      dk(  r n(t3        j4                  d       < | j7                  d       t+        d |	D              }	| j                  |	t+        |j                         t        j                   f|j                         t        j(                  f|j                         t        j                   f|j                         t        j(                  fg             t        j                  |j                         t        j                   t        j8                        }|j'                  |gd       t        j                  |j                         t        j(                  t        j8                        }|j'                  |gd       t        j                  |j                         t        j(                  t        j8                        }|j'                  |gdd       |j'                  g dd      }	t+        d |	D              }	| j                  |	t+        |j                         t        j                   fg             |j;                          |j;                          |j;                          y # t
        $ r8}| j                  |j                  d   t        j                         Y d }~Sd }~ww xY w)N)	127.0.0.1r   Fr:   r   r   r   c              3   L   K   | ]  }|j                   |j                  f  y wNr(   r)   .0es     r   	<genexpr>z.TestKQueue.test_queue_event.<locals>.<genexpr>        9Qaggqxx(9   "$s   Hello!s   world!!!
   g      ?z'timeout waiting for event notificationsc              3   L   K   | ]  }|j                   |j                  f  y wr<   r=   r>   s     r   rA   z.TestKQueue.test_queue_event.<locals>.<genexpr>   rB   rC   gGz?c              3   L   K   | ]  }|j                   |j                  f  y wr<   r=   r>   s     r   rA   z.TestKQueue.test_queue_event.<locals>.<genexpr>   rB   rC   )socketcreate_serversetblockingconnectgetsocknameOSErrorr'   argserrnoEINPROGRESSacceptr   r   fromfdr
   r&   r2   r,   KQ_EV_ENABLEcontrolr*   setsendrangelentimesleepfailKQ_EV_DELETEr   )r   serverSocketclientr@   serveraddrr   kq2r   eventsis              r   test_queue_eventzTestKQueue.test_queue_eventp   sJ   ++,<=5!	NNK)A)A)CA)FGH
 #**,]]_mm""299;/]]6==?!11!++f.A.AAC 	

B4]]6==?!00!++f.A.AAC 	

B4]]6==?!11!++f.A.AAC 	RD!]]6==?!00!++f.A.AAC 	RD!D!Q'9&99]]_f445]]_f445&7 "8 	9 	IK  r 	AAZZa+F6{aJJsO		A II?@9&99]]_f445]]_f334]]_f445]]_f334	&6 "7 	8 ]]6==?!11!..0 	

B4]]6==?!00!..0 	

B4]]6==?!00!..0 	

B4AB4(9&99]]_f445&7 "8 	9 	S  	;QVVAY(9(9::	;s   $U8 8	V9-V44V9c                    t        j                         }t        j                         \  }}|j	                  d       t        j
                  |t         j                  t         j                  t         j                  z        }t        j
                  |t         j                  t         j                  t         j                  z        }|j                  ||gdd      }| j                  |       | j                  |d   j                  t         j                  z         | j                  |j                  |d   j                         d       |j#                          |j#                          |j#                          y )Ns   foor   r   )r   r   rG   
socketpairrU   r&   r*   r,   rR   rS   r	   assertFalser+   KQ_EV_ERRORr'   recvr.   r   )r   r   abevent1event2rs          r   testPairzTestKQueue.testPair   s    ]]_  "1	vq&"7"79I9IFL_L_9_`q&"7"79I9IFL_L_9_`JJ'A.1f&8&889!		*F3				

r   c                    t        j                         }t        j                         \  }}t        j                  |t         j
                  t         j                  t         j                  z        |j                  gd       |j                  fd        G fdd      }|j                   |       d       |j                  t        g      d       |j                          |j                          |j                          y )Nr   c                       e Zd Zd Z fdZy)+TestKQueue.test_issue30058.<locals>.BadListc                      yr    )r   s    r   __len__z3TestKQueue.test_issue30058.<locals>.BadList.__len__   s    r   c              3   6   K   t        d      D ]  }  y w)Nd   )rV   )r   rb   r   s     r   __iter__z4TestKQueue.test_issue30058.<locals>.BadList.__iter__   s     s AHs   N)__name__
__module____qualname__rt   rw   )r   s   r   BadListrq      s    r   r{   )r   r   rG   re   r&   r*   r,   rR   rS   iterr   )r   r   ri   rj   r{   r   s        @r   test_issue30058zTestKQueue.test_issue30058   s    ]]_  "1]]1f33V5E5EH[H[5[\


B4


B5!	 	 	

79a 


4:q!				

r   c                    t        t        d      }| j                  |j                         |j	                         }t        j                         }| j                  |j	                         t               | j                  |j                         |j                          | j                  |j                         | j                  t        |j                         |j                          | j                  t        |j                  d d       y )Nrbr   )r"   __file__r%   r   r
   r   r   assertIsInstanceintrf   r   r	   r   r   rS   )r   	open_filer4   r   s       r   
test_closezTestKQueue.test_close   s    4(		( 	fmmos3' 	&*fmm4 	 	*fnndA>r   c                     t        j                         }| j                  |j                         | j	                  t        j                  |j                               d       y )NF)r   r   r%   r   r'   r!   get_inheritabler
   )r   r   s     r   test_fd_non_inheritablez"TestKQueue.test_fd_non_inheritable   s>    %++FMMO<eDr   N)
rx   ry   rz   r   r8   rc   rn   r}   r   r   rs   r   r   r   r      s*    1V'rOb 0?*Er   r   __main__)rN   r!   r   rG   rX   unittesthasattrSkipTestTestCaser   rx   mainrs   r   r   <module>r      sm     	    vx 
(

4
55sE"" sEl zHMMO r   