
    /hh%                     t   S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  \" \S5      (       d  \R                  " S5      e \R                  " 5          " S S\R                  5      r\S:X  a  \R"                  " 5         gg! \ a2  r\R                   \ R                  :X  a  \R                  " S5      ee SrCff = f)	    N)supportepollztest works only on Linux 2.6zkernel doesn't support epoll()c                   b    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)	TestEPoll*   c                 ^    [         R                  " S5      U l        U R                  /U l        g )N)	127.0.0.1r   )socketcreate_serverserverSocketconnectionsselfs    8/opt/python-3.13.8/usr/lib/python3.13/test/test_epoll.pysetUpTestEPoll.setUp,   s'    "001AB --.    c                 J    U R                    H  nUR                  5         M     g )N)r   close)r   skts     r   tearDownTestEPoll.tearDown0   s    ##CIIK $r   c                    [         R                   " 5       nUR                  S5         UR                  SU R                  R	                  5       S   45        [        S5      e! [         a7  nU R                  UR                  S   [        R                  5         S nAOS nAff = fU R                  R                  5       u  p4U R                  R                  X45        X4$ )NFr	      z&Connect should have raised EINPROGRESSr   )r
   setblockingconnectr   getsocknameAssertionErrorOSErrorassertEqualargserrnoEINPROGRESSacceptr   extend)r   clienteserveraddrs        r   _connected_pairTestEPoll._connected_pair4   s    5!	KNNK):):)F)F)H)KLM !!IJJ  	;QVVAY(9(9::	; ((//1 01~s   .A! !
B"+-BB"c                     [         R                  " S5      nU R                  UR                  5       S:  UR                  5       5        U R                  UR                  (       + 5        UR                  5         U R                  UR                  5        U R                  [        UR                  5        [        [         S5      (       a  [         R                  " S[         R                  5      R                  5         [         R                  " [         R                  S9R                  5         [         R                  " SS9R                  5         g g ! [         a  n[        [	        U5      5      eS nAff = f)N   r   EPOLL_CLOEXECflags)selectr   r   r   str
assertTruefilenoclosedr   assertRaises
ValueErrorhasattrr.   )r   epr'   s      r   test_createTestEPoll.test_createB   s    	)b!B 			a5BII&

		"*bii06?++LLV11288:LLv334::<LLq!'') ,  	) Q((	)s   E 
E3E..E3c                    U R                  [        [        R                  SSS5        U R                  [        [        R                  S5        U R                  [        [        R                  S 5        U R                  [        [        R                  S5        U R                  [        [        R                  S/5        U R                  [        [        R                  0 5        U R                  [        [        R                  S5        U R                  [        [        R                  S5        U R                  [        [        R                  SS9  [        [        S	5      (       a$  U R                  [        [        R                  S
S9  g g )Nr         foo r   )sizehintr.   iD0  r0   )r7   	TypeErrorr2   r   r8   r9   r   r   s    r   test_badcreateTestEPoll.test_badcreateR   s    )V\\1a;)V\\59)V\\48)V\\26)V\\E7;)V\\26*fllA6*fllB7*fllR@6?++gv||5A ,r   c                 P   [         R                  " S5       nU R                  UR                  5       S5        U R	                  UR
                  5        S S S 5        U R                  WR
                  5        U R                  [        UR                  5        g ! , (       d  f       NJ= f)Nr-   r   )	r2   r   assertGreaterr5   assertFalser6   r4   r7   r8   )r   r:   s     r   test_context_managerTestEPoll.test_context_managera   sl    \\"ryy{A.RYY'  			"*bii0	 s   <B
B%c                 L   U R                  5       u  p[        R                  " S5      n UR                  UR	                  5       [        R
                  [        R                  -  5        UR                  UR	                  5       [        R
                  [        R                  -  5        UR                  5         [        R                  " S5      n UR                  U[        R
                  [        R                  -  5        UR                  U[        R
                  [        R                  -  5        UR                  5         [        R                  " S5      n U R                  [        UR                  [        5       [        R
                  [        R                  -  5        U R                  [        UR                  S [        R
                  [        R                  -  5        U R                  [        UR                  S[        R
                  [        R                  -  5        U R                  [        UR                  S[        R
                  [        R                  -  5        UR                  U[        R
                  [        R                  -  5        U R                  [        UR                  U[        R
                  [        R                  -  5        UR                  5         g ! UR                  5         f = f! UR                  5         f = f! UR                  5         f = f)Nr>   r/   i'  )r*   r2   r   registerr5   EPOLLINEPOLLOUTr   r7   rD   objectr8   r   )r   r(   r&   r:   s       r   test_addTestEPoll.test_addh   s   --/\\!_	KK&//)IJKK&//)IJHHJ \\!_	KK @AKK @AHHJ\\!_	ifh$nnv>@id$nnv>@ j"++r$nnv>@ gr{{E$nnv>@ KK @Agr{{F$nnv>@ HHJ9 HHJ HHJ( HHJs&   A>K' A"K< E>L 'K9<LL#c                 d   U R                  5       u  p[        R                  " S5       n[        R                  R                  UR	                  5       5      nUR                  UR	                  5       [        R                  [        R                  -  5        UR                  UR	                  5       [        R                  [        R                  -  5        UR                  SS5      nUR                  SS5      nU R                  [        U5      S5        U R                  [        U5      S5        S S S 5         WR                  SS5        U R                  S5        g ! , (       d  f       N3= f! [         a8  nU R                  UR                  S   [        R                  U5         S nAg S nAff = f)Nr>   r      g?z%epoll on closed fd didn't raise EBADFr   )r*   r2   r   fromfdr5   rM   rN   rO   pollr    lenfailr   r!   r"   EBADF)r   r(   r&   r:   ep2eventsevents2r'   s           r   test_fromfdTestEPoll.test_fromfd   s"   --/\\!_,,%%biik2CLL&..6??*JKLL&..6??*JKWWQ]FhhsA&GS[!,S\1- 	?HHQN II=>! _  	8QVVAYQ77	8s$   DE8E- 
E*-
F/7.F**F/c                 ^   U R                  5       u  p[        R                  " S5      nUR                  UR	                  5       [        R
                  [        R                  -  [        R                  -  5        UR                  UR	                  5       [        R
                  [        R                  -  [        R                  -  5        [        R                  " 5       nUR                  SS5      n[        R                  " 5       nU R                  Xd-
  S:  Xd-
  5        UR	                  5       [        R                  4UR	                  5       [        R                  4/nU R                  [        U5      [        U5      5        UR                  SSS9nU R                  U5        UR                  S5        UR                  S5        / n[        R                   " [        R"                  5       Hh  n[        R                  " 5       nXSR                  SS5      -  n[        R                  " 5       nU R                  Xd-
  S	:  5        [%        U5      S
:  d  Mh    O   UR	                  5       [        R
                  [        R                  -  4UR	                  5       [        R
                  [        R                  -  4/nU R                  [        U5      [        U5      5        UR'                  UR	                  5       5        UR)                  UR	                  5       [        R                  5        [        R                  " 5       nUR                  SS5      n[        R                  " 5       nU R                  Xd-
  S	:  5        UR	                  5       [        R                  4/nU R                  XW5        g )Nr-   r   rT   g?)timeout	maxeventss   Hello!s   world!!!      ?{Gz?r>   )r*   r2   r   rM   r5   rN   rO   EPOLLETtime	monotonicrV   rI   r    sortedsendallr   
busy_retrySHORT_TIMEOUTrW   
unregistermodify)	r   r&   r(   r:   nowr[   thenexpected_s	            r   test_control_and_waitTestEPoll.test_control_and_wait   s   --/\\"
FMMONNV__4v~~E	G
FMMONNV__4v~~E	G nnA~~c)4:6]]_foo6]]_foo68)9: 2  	y!{# ##G$9$9:A.."Cggc1o%F>>#DTZ$./6{a ; ]]_fnnv&FG]]_fnnv&FGI)9: 	fmmo&
		&--/6??3nnA~~d*+]]_foo67*r   c                     U R                  [        [        R                  S5        U R                  [        [        R                  " 5       R                  S[        R
                  5        g )NrB   r/   )r7   r8   r2   r   rM   rN   r   s    r   test_errorsTestEPoll.test_errors   s?    *fllB7*flln&=&=r ..	*r   c                 B   U R                  5       u  pUR                  5       n[        R                  " S5      nUR	                  U5        [
        R                  " 5       nUR                  SS5      n[
        R                  " 5       nU R                  Xu-
  S:  5        UR                  5         U R                  [        5       nUR                  U5        S S S 5        U R                  WR                  R                  [        R                   5        g ! , (       d  f       NC= f)Nr-   r   rT   rc   )r*   r5   r2   r   rM   re   rf   rV   rI   r   r7   r   rk   r    	exceptionr"   rY   )	r   r(   r&   fdr:   rm   r[   rn   cms	            r   test_unregister_closed TestEPoll.test_unregister_closed   s    --/]]_\\"
FnnA~~d*+w'2MM" (++U[[9 ('s   D
Dc                    [        [        S5      nU R                  UR                  5        UR	                  5       n[
        R                  " 5       nU R                  UR	                  5       [        5        U R                  UR                  5        UR                  5         U R                  UR                  5        U R                  [        UR                  5        UR                  5         U R                  [        UR                  U[
        R                  5        U R                  [        UR                   S5        U R                  [        UR"                  U[
        R                  5        U R                  [        UR$                  U5        g )Nrbrb   )open__file__
addCleanupr   r5   r2   r   assertIsInstanceintrI   r6   r4   r7   r8   rl   rN   rV   rM   rk   )r   	open_filerx   r   s       r   
test_closeTestEPoll.test_close   s   4(		( 	ellnc2& 	%*ell3 	 	*ellBG*ejj#6*ennb&..I*e&6&6;r   c                     [         R                  " 5       nU R                  UR                  5        U R	                  [
        R                  " UR                  5       5      S5        g )NF)r2   r   r   r   r    osget_inheritabler5   )r   r   s     r   test_fd_non_inheritable!TestEPoll.test_fd_non_inheritable  s>    $++ELLN;UCr   )r   r   N)__name__
__module____qualname____firstlineno__r   r   r*   r;   rE   rJ   rQ   r]   rq   rt   rz   r   r   __static_attributes__rA   r   r   r   r   *   sG    /* B1$L?*3+j*
:"<0Dr   r   __main__)r"   r   r2   r
   re   unittesttestr   r9   SkipTestr   r   r'   ENOSYSTestCaser   r   mainrA   r   r   <module>r      s   0  	     vw


:
;;

LLN_D!! _DD zMMO O  
ww%,, @AA	
s    A? ?B7-B22B7