
    0hh/                         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rS SKJrJ	r	  \R                  " SS/S9rSr\S-
  S-  r " S	 S
\R                  5      r " S S\R                  5      rg)    N)import_helper	os_helper_winapiwin)required_on@         c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)(WinAPIBatchedWaitForMultipleObjectsTests   c           	         [        U5       Vs/ s H  n[        R                  SSSS 5      PM     nnU R                  [        5         [        R                  USS5        S S S 5        U H  n[        R                  U5        M      [        R                  USS5        [        S5       Vs/ s H  oU[        U5      S-  -  PM     nnU HD  nX5   nSX5'   U R                  [        5         [        R                  USS5        S S S 5        XsU'   MF     g s  snf ! , (       d  f       N= f! [         a    U R                  S5         Nf = fs  snf ! , (       d  f       NS= f)Nr   FTd   z%expected wait to complete immediately   )
ranger   CreateEventWassertRaisesTimeoutErrorBatchedWaitForMultipleObjectsSetEventfaillenOSError)selfn_evtseichosenold_evts           9/opt/python-3.13.8/usr/lib/python3.13/test/test_winapi.py_events_waitall_test=WinAPIBatchedWaitForMultipleObjectsTests._events_waitall_test   s#   EJ1XNX$$Qud;XN|,11$cB - AQ 	?11$cB 16a91s4yA~&9 AgGDG""7+55dD#F ,G % O,,  	?II=>	?
 : ,+s5   "DDD' *E(E
D$'EE
E	c           	         [        U5       Vs/ s H  n[        R                  SSSS 5      PM     nnU R                  [        5         [        R                  USS5        S S S 5        [        S5       Vs/ s H  oD[        U5      S-  -  PM     nnU Hv  nU R                  SU S[        U5       35         [        R                  X4   5        [        R                  USS5      nU R                  [        U5      U15        S S S 5        Mx     U H  n[        R                  X4   5        M     [        5       n[        U5      [        U5      :  a@  UR                  [        R                  USS5      5        [        U5      [        U5      :  a  M@  U R                  U[        U5      5        U Hm  nU R                  SU S[        U5       35         X4   nS	X4'   U R                  [        5         [        R                  USS5        S S S 5        XsU'   S S S 5        Mo     g s  snf ! , (       d  f       GN= fs  snf ! , (       d  f       GM  = f! , (       d  f       NN= f! , (       d  f       M  = f)
Nr   Fr   r   ztrigger event z of i'  zcorrupt event r   )r   r   r   r   r   r   r   subTestr   assertSetEqualsetupdater   )r   r   r   r   r    r!   	triggeredr"   s           r#   _events_waitany_test=WinAPIBatchedWaitForMultipleObjectsTests._events_waitany_test-   s   EJ1XNX$$Qud;XN|,11$sC -
 16a91s4yA~&9 Aqcc$i[AB  )#AA$uU	##C	NQC8 CB  ATW% E	)ns6{*WBB4PUVW )ns6{*Is6{3 Aqcc$i[AB'&&w/99$sK 0!Q CB 3 O,,
 : CB$ 0/ CBsH   "HH"4H45AH9I,II"
H19
I		
II
I,	c                 &    U R                  S5        g N   r$   r   s    r#   test_few_events_waitall@WinAPIBatchedWaitForMultipleObjectsTests.test_few_events_waitallP       !!"%    c                 &    U R                  S5        g N   r1   r2   s    r#   test_many_events_waitallAWinAPIBatchedWaitForMultipleObjectsTests.test_many_events_waitallS       !!#&r6   c                 .    U R                  [        5        g N)r$   MAXIMUM_BATCHED_WAIT_OBJECTSr2   s    r#   test_max_events_waitall@WinAPIBatchedWaitForMultipleObjectsTests.test_max_events_waitallV       !!">?r6   c                 &    U R                  S5        g r/   r,   r2   s    r#   test_few_events_waitany@WinAPIBatchedWaitForMultipleObjectsTests.test_few_events_waitanyZ   r5   r6   c                 &    U R                  S5        g r8   rD   r2   s    r#   test_many_events_waitanyAWinAPIBatchedWaitForMultipleObjectsTests.test_many_events_waitany]   r<   r6   c                 .    U R                  [        5        g r>   )r,   r?   r2   s    r#   test_max_events_waitany@WinAPIBatchedWaitForMultipleObjectsTests.test_max_events_waitany`   rB   r6    N)__name__
__module____qualname____firstlineno__r$   r,   r3   r:   r@   rE   rH   rK   __static_attributes__rM   r6   r#   r   r      s-    6 "F&'@&'@r6   r   c                   &    \ rS rSrS rS rS rSrg)WinAPITestsr   c                 Z   [         R                  " [        R                  " S5      5      R                  S   S-  n[        R
                  R                  U5      (       d  [        R                  " S5      eU R                  [        5         [        R                  U5        S S S 5        [        R                  [        R                  " U5      5      n[        UR                  R!                  S5      5      nU R#                  [         R                  " U5      U5        g ! , (       d  f       N= f)NProgramFilesr   zPROGRA~1zrequire x:\PROGRA~1 to testzProgra*)pathlibPathosgetenvparentspathisdirunittestSkipTestr   	TypeErrorr   GetLongPathNamefsdecoder)   parentglobassertIn)r   testfnactual
candidatess       r#   test_getlongpathname WinAPITests.test_getlongpathnamee   s    bii78@@DzQww}}V$$##$BCC y)##F+ * ((V)<= ++I67
gll6*J7 *)s   
D
D*c                    [         R                  " [        R                  " S5      5      n[        R                  R                  U5      (       d  [        R                  " S5      eU R                  [        5         [        R                  U5        S S S 5        [        R                  [        R                  " U5      5      nU R                  [        R                  " SUR!                  5       5      U5        g ! , (       d  f       Nm= f)NrV   z require '%ProgramFiles%' to testz.\:\\PROGRA~\d)rW   rX   rY   rZ   r\   r]   r^   r_   r   r`   r   GetShortPathNamerb   assertIsNotNonerematchupper)r   rf   rg   s      r#   test_getshortpathname!WinAPITests.test_getshortpathnameu   s    bii78ww}}V$$##$FGG y)$$V, * ))"++f*=> 	RXX&7H&Q *)s   :C77
Dc           
         S[         R                   3nU R                  [        5         [        R                  US5        S S S 5        [        R                  U[        R                  SSSSSS5      nU R                  [        R                  U5        [        R                  US5        [        US5       nU R                  [        5         [        R                  US5        S S S 5        [        R                  US5        U R                  SUR                  S5      5        U R                  S[        R                  US5      S S 5        UR!                  S5        UR#                  5         U R                  S	[        R                  US5      S S 5        S S S 5        g ! , (       d  f       GNc= f! , (       d  f       N= f! , (       d  f       g = f)
Nz\\.\pipe\LOCAL\r   r   r
       zw+b   testdata)r6   r   )ru   r   )r   TESTFNr   FileNotFoundErrorr   WaitNamedPipeCreateNamedPipePIPE_ACCESS_DUPLEX
addCleanupCloseHandleopenr   	WriteFileassertEqualreadPeekNamedPipewriteflush)r   	pipe_namepipepipe2s       r#   test_namedpipeWinAPITests.test_namedpipe   sl   &y'7'7&89	 01!!)Q/ 2 &&&&Aq 	++T2 	i+)U#u ""7+%%i3 , dK0[%**Q-8Xw'<'<T1'Ebq'IJKK$KKM-w/D/DT1/Mbq/QR $# 21" ,+ $#s0   F4F?
F.!B2F?
F+.
F<	8F??
GrM   N)rN   rO   rP   rQ   ri   rq   r   rR   rM   r6   r#   rT   rT   d   s    8 RSr6   rT   )rY   rW   randomrn   	threadingtimer^   test.supportr   r   import_moduler   MAXIMUM_WAIT_OBJECTSr?   TestCaser   rT   rM   r6   r#   <module>r      st    
   	    1

%
%ieW
E  4q 8Q> P@x/@/@ P@f=S(## =Sr6   