+
    Biu%                         R t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIt]	! ]R4      '       g   ]P                  ! R4      h ! R R]P                  4      t]R8X  d   ]P                  ! 4        R# R# )z
Tests for kqueue wrapper.
N)supportkqueueztest works only on BSDc                   x   a  ] tR t^t o R tR tR tR tR tR t	R t
]P                  ! 4       R 4       tR	tV tR
# )
TestKQueuec                h   \         P                  ! 4       pV P                  VP                  4       ^ 8  VP                  4       4       V P                  VP                  '       * 4       VP                  4        V P                  VP                  4       V P                  \        VP                  4       R# )    N)selectr   
assertTruefilenoclosedcloseassertRaises
ValueError)selfkqs   & '/usr/lib/python3.14/test/test_kqueue.pytest_create_queueTestKQueue.test_create_queue   sj    ]]_		a5BII&

		"*bii0    c                d   ^ RI HpHpHpHp \
        P                  ! \
        P                  \
        P                  4      pV P                  \
        P                  V4       \        P                  ! V4      p\        P                  ! R4      pV P                  VP                  V4       V P                  VP                  \        P                   4       V P                  VP"                  \        P$                  4       V P                  VP&                  ^ 4       V P                  VP(                  ^ 4       V P                  VP*                  ^ 4       V P                  Wf4       V P-                  Wg4       V P/                  Wg8  4       V P/                  Wv8  4       WW43 FH  pV P1                  \2        WR4       V P1                  \2        W^4       V P1                  \2        WR4       KJ  	  \        P                  ! V\        P4                  4      pV P                  VP                  V4       V P                  VP                  \        P4                  4       V P                  VP"                  \        P$                  4       V P                  VP&                  ^ 4       V P                  VP(                  ^ 4       V P                  VP*                  ^ 4       V P                  Wf4       V P-                  Wg4       \        P                  ! V\        P4                  \        P6                  4      pV P                  VP                  V4       V P                  VP                  \        P4                  4       V P                  VP"                  \        P6                  4       V P                  VP&                  ^ 4       V P                  VP(                  ^ 4       V P                  VP*                  ^ 4       V P                  Wf4       V P-                  Wg4       \        P                  ! ^^^^^^4      pV P                  VP                  ^4       V P                  VP                  ^4       V P                  VP"                  ^4       V P                  VP&                  ^4       V P                  VP(                  ^4       V P                  VP*                  ^4       V P                  Wf4       V P-                  Wg4       Rp	\        P                  ! V	^^^V	^,
          V	4      pV P                  VP                  V	4       V P                  VP                  ^4       V P                  VP"                  ^4       V P                  VP&                  ^4       V P                  VP(                  V	^,
          4       V P                  VP*                  V	4       V P                  Wf4       V P-                  Wg4       Rp	\        P                  ! ^ ^V	4      pV P                  VP                  ^ 4       V P                  VP                  ^4       V P                  VP"                  V	4       V P                  VP&                  ^ 4       V P                  VP(                  ^ 4       V P                  VP*                  ^ 4       V P                  Wf4       V P-                  Wg4       Rp	\        P                  ! ^ ^^V	4      pV P                  VP                  ^ 4       V P                  VP                  ^4       V P                  VP"                  ^4       V P                  VP&                  V	4       V P                  VP(                  ^ 4       V P                  VP*                  ^ 4       V P                  Wf4       V P-                  Wg4       R# )r   )ltlegtgei  Nevi  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_eventTestKQueue.test_create_event   s   ++WWRZZ-"%]]2d#2&F$9$9:6#3#34A&!$1% B&
#$".Bi6i3i6 !
 ]]2v5562&F$:$:;6#3#34A&!$1% B&]]2v55v7K7KL2&F$:$:;6#7#78A&!$1% B&]]1aAq!,1%A&1%A&!$1% B&]]61aFQJ?6*A&1%A&&1*-6* B& ]]1a(1%A&6*A&!$1% B& ]]1aF+1%A&1%F+!$1% B&r   c           
        \         P                  ! R4      p\         P                   ! 4       pVP                  R4        VP                  R VP	                  4       ^,          34        VP                  4       w  rE\        P                  ! 4       p\        P                  P                  VP                  4       4      p\        P                  ! VP                  4       \        P                   \        P"                  \        P$                  ,          4      pVP'                  V.^ 4       \        P                  ! VP                  4       \        P(                  \        P"                  \        P$                  ,          4      pVP'                  V.^ 4       \        P                  ! VP                  4       \        P                   \        P"                  \        P$                  ,          4      pVP'                  V.^ 4       \        P                  ! VP                  4       \        P(                  \        P"                  \        P$                  ,          4      pVP'                  V.^ 4       VP'                  R^^4      p	\+        R V	 4       4      p	V P                  V	\+        VP                  4       \        P                   3VP                  4       \        P                   3.4      4       VP-                  R4       VP-                  R4       \/        ^
4       F>  p
VP'                  R^^4      p	\1        V	4      ^8X  d    M+\2        P4                  ! R4       K@  	  V P7                  R4       \+        R V	 4       4      p	V P                  V	\+        VP                  4       \        P                   3VP                  4       \        P(                  3VP                  4       \        P                   3VP                  4       \        P(                  3.4      4       \        P                  ! VP                  4       \        P                   \        P8                  4      pVP'                  V.^ 4       \        P                  ! VP                  4       \        P(                  \        P8                  4      pVP'                  V.^ 4       \        P                  ! VP                  4       \        P(                  \        P8                  4      pVP'                  V.^ ^ 4       VP'                  . ^R	4      p	\+        R
 V	 4       4      p	V P                  V	\+        VP                  4       \        P                   3.4      4       VP;                  4        VP;                  4        VP;                  4        R#   \
         d=   pT P                  TP                  ^ ,          \        P                  4        Rp?ELvRp?ii ; i)	127.0.0.1FNc              3   P   "   T F  qP                   VP                  3x  K  	  R # 5iNr#   r$   .0es   & r   	<genexpr>.TestKQueue.test_queue_event.<locals>.<genexpr>        9&Qggqxx(&   $&s   Hello!s   world!!!g      ?z'timeout waiting for event notificationsc              3   P   "   T F  qP                   VP                  3x  K  	  R # 5ir8   r9   r:   s   & r   r=   r>      r?   r@   gGz?c              3   P   "   T F  qP                   VP                  3x  K  	  R # 5ir8   r9   r:   s   & r   r=   r>      r?   r@   )r6   r   )socketcreate_serversetblockingconnectgetsocknameOSErrorr"   argserrnoEINPROGRESSacceptr   r   fromfdr
   r!   r-   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_eventTestKQueue.test_queue_eventq   sA   ++,<=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ZZa+F6{aJJsO	  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   (V W"&1WW"c                    \         P                  ! 4       p\        P                  ! 4       w  r#VP	                  R 4       \         P
                  ! V\         P                  \         P                  \         P                  ,          4      p\         P
                  ! V\         P                  \         P                  \         P                  ,          4      pVP                  WE.^^4      pV P                  V4       V P                  V^ ,          P                  \         P                  ,          4       V P                  VP                  V^ ,          P                   4      R 4       VP#                  4        VP#                  4        VP#                  4        R# )s   fooN)r   r   rC   
socketpairrQ   r!   r%   r'   rN   rO   r	   assertFalser&   KQ_EV_ERRORr"   recvr)   r   )r   r   abevent1event2rs   &      r   testPairTestKQueue.testPair   s    ]]_  "	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                  a \         P                  ! 4       p\        P                  ! 4       w  r#\         P                  ! V\         P
                  \         P                  \         P                  ,          4      oVP                  S.^ 4       VP                  S3^ 4        ! V3R lR4      pVP                  V! 4       ^ 4       VP                  \        S.4      ^ 4       VP                  4        VP                  4        VP                  4        R# )r   c                   4   <a  ] tR t^t o R tV3R ltRtV tR# )+TestKQueue.test_issue30058.<locals>.BadListc                    ^ # )r    )r   s   &r   __len__3TestKQueue.test_issue30058.<locals>.BadList.__len__   s    r   c              3  <   <"   \        ^d4       F  pSx  K	  	  R# 5i)d   N)rR   )r   r^   r   s   & r   __iter__4TestKQueue.test_issue30058.<locals>.BadList.__iter__   s     sAH $s   rq   N)__name__
__module____qualname____firstlineno__rr   rv   __static_attributes____classdictcell__)__classdict__r   s   @r   BadListro      s      r   r   N)r   r   rC   rb   r!   r%   r'   rN   rO   iterr   )r   r   rf   rg   r   r   s   &    @r   test_issue30058TestKQueue.test_issue30058   s    ]]_  "]]1f33V5E5EH[H[5[\


B4


B5!	 	 	

79a 


4:q!				

r   c                   \        \        R 4      pV P                  VP                  4       VP	                  4       p\
        P                  ! 4       pV P                  VP	                  4       \        4       V P                  VP                  4       VP                  4        V P                  VP                  4       V P                  \        VP                  4       VP                  4        V P                  \        VP                  R^4       R# )rbN)r   __file__r    r   r
   r   r   assertIsInstanceintrc   r   r	   r   r   rO   )r   	open_filer/   r   s   &   r   
test_closeTestKQueue.test_close   s    4(		( 	fmmos3' 	&*fmm4 	 	*fnndA>r   c                    \         P                  ! 4       pV P                  VP                  4       V P	                  \
        P                  ! VP                  4       4      R 4       R# )FN)r   r   r    r   r"   r   get_inheritabler
   )r   r   s   & r   test_fd_non_inheritable"TestKQueue.test_fd_non_inheritable   s>    %++FMMO<eDr   c                :   \         P                  ! 4       p\        P                  ! 4       ;p^ 8X  dl    V P	                  VP
                  4       V P                  \        R4      ;_uu_ 4        VP                  4        RRR4       \        P                  ! ^ 4       R# \        P                  ! V^ R7       V P                  VP
                  4       R#   + '       g   i     L]; i   \        P                  ! ^4        Lz; i  \        P                  ! ^ 4       i ; i)r   zclosed kqueueN)exitcode)r   r   r   forkr	   r   assertRaisesRegexr   r
   _exitr   wait_processrc   )r   r   pids   &  r   	test_forkTestKQueue.test_fork  s     779C".++JHHMMO I
   q1V]]+ IHs;   9C% ,C=C% C"	C% !D "C% %C?=D Drq   N)rx   ry   rz   r{   r   r3   r_   rk   r   r   r   r   requires_forkr   r|   r}   )r~   s   @r   r   r      sJ     1V'rOb 0?*E
 , ,r   r   __main__)__doc__rJ   r   r   rC   testr   rT   unittesthasattrSkipTestTestCaser   rx   mainrq   r   r   <module>r      sm     	     vx  


4
55D,"" D,N zMMO r   