
    daf                        d Z ddlZddlZddlZej                  dk7  r ej
                  d      ddlZddlZddlZddlm	Z	 ddl
mZ d Z G d d	ej                        Z G d
 dej                        Zedk(  r ej"                          yy)zTests for window_utils    Nwin32zWindows only)windows_utils)supportc                  .    t        j                  d        y )N)asyncioset_event_loop_policy     ?/root/Python-3.12.4/Lib/test/test_asyncio/test_windows_utils.pytearDownModuler      s    !!$'r
   c                       e Zd Zd Zd Zy)	PipeTestsc                    t        j                  d      \  }}	 t        j                         }| j	                  |j
                         | j                  |j                  d       |j                  |d       | j                  |j
                         | j                  |j                  t        j                         d}	 |j                          t        d      # t        $ r&}| j                  |j                  |       Y d }~nd }~ww xY wt        j                         }| j	                  |j
                         | j                  |j                  d       |j!                  |d       | j#                  |j                  dt        j                  h       t        j$                  |j&                  gdd      }| j                  |t        j(                         | j	                  |j
                         | j                  |j                  |       | j	                  |j
                         | j#                  |j                  dt        j                  h       | j                  |j                         d       t        j*                  |       t        j*                  |       y # t        j*                  |       t        j*                  |       w xY w)	NTT
overlappedr   d   i  zexpected ERROR_IO_INCOMPLETEs   helloF)r   pipe_overlapped
OverlappedassertFalsependingassertEqualerrorReadFile
assertTrue_winapiERROR_IO_PENDING	getresultRuntimeErrorOSErrorwinerror	WriteFileassertInWaitForMultipleObjectseventWAIT_OBJECT_0CloseHandle)selfh1h2ov1ERROR_IO_INCOMPLETEeov2ress           r   test_pipe_overlappedzPipeTests.test_pipe_overlapped   s   ##|<B!	$((*CS[[)SYY*LLS!OOCKK(SYY(@(@A"%C ##ABB  B  -@AAB
 ((*CS[[)SYY*MM"h'MM#))a)A)A%BC00#))eSICS'"7"78S[[)SYY(;<S[[)MM#))a)A)A%BCS]]_h7## ##s7   B$J!  C J! 	D
$D J! D

E,J! !,Kc                 X   t        j                  d      \  }}t        j                  |       t        j                  |      }| j                  |j                         |       | j                  |j                  |       t        j                         5  t        j                  ddt               ~t        j                          d d d        	 t        j                  |       t        d      # 1 sw Y   *xY w# t        $ r&}| j                  |j                   d       Y d }~y d }~ww xY w)Nr   r   ignore zexpected ERROR_INVALID_HANDLE   )r   r   r   r(   
PipeHandler   filenohandlewarningscatch_warningsfilterwarningsResourceWarningr   
gc_collectr    r!   r"   )r)   h_pr.   s        r   test_pipe_handlezPipeTests.test_pipe_handle=   s    !!\:1A$$Q'Q'1% $$& 	!##Hb?C 	!	@" >??	! 	!  	,QZZ++	,s$   1C.C: .C7:	D)D$$D)N)__name__
__module____qualname__r1   rA   r	   r
   r   r   r      s    #$J@r
   r   c                       e Zd Zd Zy)
PopenTestsc                 H   d}d}t        j                  t        j                  d|gt         j                  t         j                  t         j                        }|j
                  |j                  |j                  fD ]"  }| j                  |t         j                         $ t        j                         }t        j                         }t        j                         }|j                  |j
                  j                  |       |j                  |j                  j                  d       |j                  |j                  j                  d       |j                  |j                  |j                  g}t!        j"                  |dt%        t&        j(                  dz              }	| j+                  |	t         j,                         | j/                  |j0                         | j/                  |j0                         | j/                  |j0                         | j+                  |j3                         t5        |             |j3                         j7                         }
|j3                         j7                         }| j9                  t5        |
      d       | j9                  t5        |      d       | j;                  |j=                         j7                         j?                  |
             | j;                  d	j?                  |             |5  	 d d d        y # 1 sw Y   y xY w)
Nzif 1:
            import sys
            s = sys.stdin.readline()
            sys.stdout.write(s.upper())
            sys.stderr.write('stderr')
            s   blah
z-c)stdinstdoutstderrr   Ti  r   s   stderr) r   Popensys
executablePIPErH   rI   rJ   assertIsInstancer6   r   r   r#   r8   r   r&   r   r%   intr   SHORT_TIMEOUTr   r'   r   r   r   lenrstripassertGreaterr   upper
startswith)r)   commandmsgr@   fovinovoutoverreventsr0   outerrs               r   
test_popenzPopenTests.test_popenS   sC    w ?&3&8&8'4'9'9'4'9'9;
 ''188QXX. 	?A!!!]%=%=>	? %%'&&(&&(qww~~s+qxx,qxx,**ekk5;;7,,VT-01F1F1M-NPg334''&)3s84oo&&(oo&&(3s8Q'3s8Q'		**,77<=	,,S12  		 	 	s   LL!N)rB   rC   rD   r`   r	   r
   r   rF   rF   Q   s    .r
   rF   __main__)__doc__rL   unittestr9   platformSkipTestr   r   r   r   testr   r   TestCaser   rF   rB   mainr	   r
   r   <module>ri      s     
  <<7
(

N
++    ! (8@!! 8@v0"" 0f zHMMO r
   