
    +gg                       % S SK J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
  S SKJrJr  S SKJr  S SKJr  S SKJr  S SKJrJrJr  S S	KJr  S SKrS SKrS S
KJrJr  SSKJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'  SSK(J)r)J*r*  SSK+J,r,  SSK-J.r.J/r/J0r0  \(       a  S SK1J2r2  S SK3J4r4  SSK5J6r6  \Rn                  S:X  a  Sr8S\9S'   O\r8S\9S'   S\9S'   S\9S'   S\9S'   \Rt                  S:H  r;\(       d  \;(       d  \Rn                  S:w  a  S SKJ<r<J=r=J>r>  OSu  r<r=r>SHS jr?\?" S5      r@\?" S5      rA\?" S5      rB\;(       a  SIS  jrCOSIS! jrC\      SJS" j5       rD\      SJS# j5       rE\R                  R                  S$\D\E/S%S&/S'9rH\
S(\\!   4   rIS\9S)'   \HSKS* j5       rJ\HSKS+ j5       rK\H    SKS, j5       rL\HSKS- j5       rM\HSKS. j5       rN\?" S/5      rO\HSKS0 j5       rP\HSKS1 j5       rQSLS2 jrRSLS3 jrS\)SLS4 j5       rT\HSKS5 j5       rUSLS6 jrV\HSKS7 j5       rW\R                  R                  \;(       + S8S99\HSKS: j5       5       rY\R                  R                  \;(       + S8S99\H    SKS; j5       5       rZ\*SLS< j5       r[SLS= jr\SLS> jr]SMS? jr^\R                  R                  \;(       + S@S99      SNSA j5       r_SLSB jr`\R                  R                  \" SC5      R                  5       (       + SDS99SLSE j5       rbSMSF jrcSLSG jrdg)O    )annotationsN)AsyncIteratorCallable)AbstractAsyncContextManagerasynccontextmanager)partial)Path)Signals)TYPE_CHECKINGAnyNoReturn)mock)MatcherRaisesGroup   )EventProcess_core
fail_aftermove_on_afterrun_processsleepsleep_forever)skip_if_fbsd_pipes_brokenslow)open_process)	MockClockassert_no_checkpointswait_all_tasks_blocked)	FrameType)	TypeAlias)ReceiveStreamwin32r!   
SignalTypeSIGKILLSIGTERMSIGUSR1posix)r%   r&   r'   )NNNc                0    [         R                  SSSU -   /$ )Nz-u-czimport sys; )sys
executable)codes    c/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/trio/_tests/test_subprocess.pypythonr/   B   s    NND$(=>>    zsys.exit(0)zsys.exit(1)z0sys.stdout.buffer.write(sys.stdin.buffer.read())c                    S[        U 5      /$ )Nr   )strsecondss    r.   SLEEPr5   L   s    W&&r0   c                     [        SU  S35      $ )Nzimport time; time.sleep())r/   r3   s    r.   r5   r5   Q   s    0	;<<r0   c                   #    [        U 0 UD6I S h  vN n U7v   UR                  5         UR                  5       I S h  vN   g  N3 N! UR                  5         UR                  5       I S h  vN    f = f7fN)r   killwait)argskwargsprocs      r.   open_process_then_killr?   U   s`     
 t.v..D
		iik /
 	 			iiksB   A7AA7A	 #A7A A7A7	$A4-A0.A44A7c                  #    [         R                  " 5        IS h  vN nUR                  SS5        UR                  [	        [
        /U Q70 UD65      I S h  vN n[        U[        5      (       d   eUnU7v   UR                  R                  5         S S S 5      IS h  vN   g  N NO N	! , IS h  vN  (       d  f       g = f7f)NcheckF)
r   open_nursery
setdefaultstartr   r   
isinstancer   cancel_scopecancel)r<   r=   nurseryvaluer>   s        r.   run_process_in_nurseryrJ   b   s     
 !!##w'5)mmGK$I$$I&$IJJ%))))
##% $##J $###sV   CB&C8B,B(<B,C B*!C(B,*C,C2B53C?Cbackground_processr   zrun_process in nursery)ids.BackgroundProcessTypec                  #    U " [         5       IS h  vN nUR                  5       I S h  vN   S S S 5      IS h  vN   [        W[        5      (       d   eUR                  b   eUR
                  S:X  d   e[        U5      S[          S3:X  d   eU " [        5       IS h  vN nUR                  5       I S h  vN   S S S 5      IS h  vN   UR
                  S:X  d   e[        U5      SR                  [        S5      :X  d   eg  N N N! , IS h  vN  (       d  f       N= f N Nn N`! , IS h  vN  (       d  f       Nu= f7f)Nr   <trio.Process : exited with status 0>   <trio.Process {!r}: {}>exited with status 1)		EXIT_TRUEr;   rE   r   _pidfd
returncoderepr
EXIT_FALSEformatrK   r>   s     r.   
test_basicr[   |   s    !),,iik -,dG$$$$;;??a:>)4KLLLL!*--iik .-??a:299    - -,,, . .---s   EDEDDDED
A%E!D&"E%D,9D(:D,>E	D*
=ED
ED#DD#E(D,*E,E2D53E?Ec                  #    [         R                  " SSS9   U " [        5       IS h  vN nUR                  b   eUR	                  5       I S h  vN   S S S 5      IS h  vN   [        W[        5      (       d   eUR                  b   eUR                  S:X  d   e[        U5      S[         S3:X  d   eU " [        5       IS h  vN nUR	                  5       I S h  vN   S S S 5      IS h  vN   UR                  S:X  d   e[        U5      SR                  [        S	5      :X  d   e S S S 5        g  GN N N! , IS h  vN  (       d  f       N= f N Nx Nj! , IS h  vN  (       d  f       N= f! , (       d  f       g = f7f)
N#trio._subprocess.can_try_pidfd_openFnewr   rO   rP   rQ   rR   rS   )r   patchrT   rU   r;   rE   r   rV   rW   rX   rY   rZ   s     r.   test_basic_no_pidfdra      s9    	9u	E%i00D;;&&&))+ 10 $(((({{"""!###Dz~i[8OPPPP%j11T))+ 21!###Dz6=="
 
 	
 
 
F	E0 1000 2 2111 
F	Es   FE5D4E5#D;D7D;E5 D9!A%E5EE5
EEE#E5.E/;E5+	F4E57D;9E5;E	EE	E5EE5E2	!E$"E2	.E55
F?Fc                  #    U " [        S5      5       IS h  vN nUR                  b   eS[        U5      ;   d   eUR                  5         UR                  R                  5         UR                  c   eS[        U5      ;   d   eUR                  b   eUR                  c   eS S S 5      IS h  vN   g  N N! , IS h  vN  (       d  f       g = f7f)N'  runningexited)r5   rV   rW   r:   _procr;   rU   )rK   ps     r.   test_auto_update_returncoderh      s      "%+..!||###DG###		||'''47"""xx||''' /.....sE   CB6CB	B:%C0B81C8C:C CCCc                  #    U " [        S5      5       IS h  vN n[        R                  " 5        IS h  vN nUR                  UR                  5        UR                  UR                  5        UR                  UR                  5        [        5       I S h  vN   UR                  R                  5         S S S 5      IS h  vN   [        R                  " 5        IS h  vN nUR                  UR                  5        UR                  UR                  5        UR                  UR                  5        [        5       I S h  vN   UR                  5         S S S 5      IS h  vN   S S S 5      IS h  vN   g  GNb GNG N N! , IS h  vN  (       d  f       N= f N N[ N=! , IS h  vN  (       d  f       NR= f NI! , IS h  vN  (       d  f       g = f7f)N
   )	r5   r   rB   
start_soonr;   r   rF   rG   r:   rK   r>   rH   s      r.   test_multi_waitrm      s2    !%),,%%''7tyy)tyy)tyy)(***  '') (' %%''7tyy)tyy)tyy)(***IIK (' -,,' +	 (''' ( +	 (''' -,,,s   GE:GG E=G AFF F8G FG !F"G %AF$F F$G $F"%G )G4F>5G=G  FG F	
FF	G  F$"G $F;	*F-+F;	7G >G GG	GGc           	       #    [         R                  " SSS9   U " [        S5      5       IS h  vN n[        R                  " 5        IS h  vN nUR                  UR                  5        UR                  UR                  5        UR                  UR                  5        [        5       I S h  vN   UR                  R                  5         S S S 5      IS h  vN   [        R                  " 5        IS h  vN nUR                  UR                  5        UR                  UR                  5        UR                  UR                  5        [        5       I S h  vN   UR                  5         S S S 5      IS h  vN   S S S 5      IS h  vN   S S S 5        g  GNj GNO N N! , IS h  vN  (       d  f       N= f N Nc NE! , IS h  vN  (       d  f       NZ= f NQ! , IS h  vN  (       d  f       Nf= f! , (       d  f       g = f7f)Nr]   Fr^   rj   )r   r`   r5   r   rB   rk   r;   r   rF   rG   r:   rl   s      r.   test_multi_wait_no_pidfdro      sT    	9u	E%eBi00D))++w""499-""499-""499-,...$$++- ,+ ))++w""499-""499-""499-,...		 ,+ 10 
F	E0+ /	 ,+++ , /	 ,+++ 1000 
F	Es  H	G8FG8GF
GAF"/F
0F"GF G7F<
8G;AGF>
G/G:G ;G?G8
GG8	H	G8GF" G"F9(F+)F95G>G GGG	GGG8G5	$G'%G5	1G88
HH	zbdata = sys.stdin.buffer.read(); sys.stdout.buffer.write(data); sys.stderr.buffer.write(data[::-1])c           
     L  ^^#    U " [         [        R                  [        R                  [        R                  S9 IS h  vN mSmSUU4S jjnS	S jnTR                  c   eTR                  c   e[
        R                  " 5        IS h  vN n[
        R                  " 5       S-   UR                  l	        UR                  U5        UR                  UTR                  T5        UR                  UTR                  TS S S2   5        S S S 5      IS h  vN   WR                  R                  (       a   eTR                  5       I S h  vN S:X  d   eS S S 5      IS h  vN   g  GN% N NU! , IS h  vN  (       d  f       Nj= f N< N(! , IS h  vN  (       d  f       g = f7f)
Nstdinstdoutstderrs+   the quick brown fox jumps over the lazy dogc                    >#    TR                   c   eTR                   R                  T 5      I S h  vN   TR                   R                  5       I S h  vN   g  N' N7fr9   )rr   send_allaclose)msgr>   s   r.   
feed_inputtest_pipes.<locals>.feed_input   sL     ::)))**%%c*****##%%% +%s!   .AA!AAAAc                V   #    [        5       nU   S h  vN nX#-  nM   N

 X!:X  d   eg 7fr9   )	bytearray)streamexpectedseenchunks       r.   check_output test_pipes.<locals>.check_output   s0     ;D% ev###s   )  ) 	)g      >@r   returnNone)r}   r"   r~   bytesr   r   )+COPY_STDIN_TO_STDOUT_AND_BACKWARD_TO_STDERR
subprocessPIPErs   rt   r   rB   current_timerF   deadlinerk   cancelled_caughtr;   )rK   ry   r   rH   rx   r>   s       @@r.   
test_pipesr      sB    !3oo	 
 
<	& 	&
	$ {{&&&{{&&&%%''7,1,>,>,@4,GG  )z*|T[[#>|T[[#dd)D (' ''8888YY[ A%%%=  , (''' !=   s   <F$ E%F$AF
E(F
A9E,	F
E*4F
	F

F
F$F F$(F
*F
,F	2E53F	?F
F$
F!FF!F$c                  ^^#    U " [        S5      [        R                  [        R                  [        R                  S9 IS h  vN m[        (       a  SOSmSUU4S jjnTR                  c   eTR
                  c   eTR                  c   e[        S5         TR                  R                  S5      I S h  vN   [        S5      I S h  vN   TR                  R                  S	T-   5      I S h  vN   U" S
S5      I S h  vN   TR                  R                  ST-   S-   T-   5      I S h  vN   U" SS5      I S h  vN   U" SS5      I S h  vN   TR                  R                  ST-   5      I S h  vN   U" SS
5      I S h  vN   TR                  R                  S5      I S h  vN   [        S5       nU" SS
5      I S h  vN   S S S 5        WR                  (       d   eTR                  R                  T5      I S h  vN   U" SS5      I S h  vN   TR                  R                  5       I S h  vN   TR
                  R                  S5      I S h  vN S:X  d   eTR                  R                  S5      I S h  vN S:X  d   eTR                  5       I S h  vN   S S S 5        S S S 5      IS h  vN   TR                  S
:X  d   eg  GN GN GN GN GN GN GN GN GNt GNf GNF GN,! , (       d  f       GN1= f GN N N N N Np! , (       d  f       Nt= f Nk! , IS h  vN  (       d  f       N= f7f)Nzidx = 0
while True:
    line = sys.stdin.readline()
    if line == '': break
    request = int(line.strip())
    print(str(idx * 2) * request)
    print(str(idx * 2 + 1) * request * 2, file=sys.stderr)
    idx += 1
rq      
s   
c                  >#    [         R                  " 5        IS h  vN n        SU4S jjnTR                  c   eTR                  c   eUR	                  UTR                  XS-  5        UR	                  UTR                  US-  U S-  S-   5        S S S 5      IS h  vN   g  N N! , IS h  vN  (       d  f       g = f7f)Nc                $  >#    US:  aQ  U R                  U5      I S h  vN nX2 R                  5       [        U5      -  :X  d   eU[        U5      -  nUS:  a  MQ  US:X  d   eU R                  [        T5      5      I S h  vN T:X  d   eg  Nm N7f)Nr   )receive_someencodelen)r}   countdigitresultnewlines       r.   	drain_one3test_interactive.<locals>.expect.<locals>.drain_one%  s     
  !)'-':':5'A!A%G*;*;*=F*KLLLV,  !) !A:%:!'!4!4S\!BBgMMM	 "B Cs'   BB:B%B BBBr   rQ   )r}   r"   r   intr   r   r   r   )r   rB   rs   rt   rk   )idxrequestrH   r   r   r>   s       r.   expect test_interactive.<locals>.expect"  s     ))++w
N)
N
N 
N 	
N {{...{{...""9dkk7!GL""9dkk7Q;aRST# ,+++++sE   CB(CA6B,C"B*#C*C,C2B53C?C   s   12g?s   345r   i90  s   100s   200rQ   d   r         0   s   999999   i?B r0   )r   r   r   r   r   r   )r/   r   r   r(   rr   rs   rt   r   rv   r   r   r   rw   r   r;   rV   )rK   r   scoper   r>   s      @@r.   test_interactiver     s     "		
 oo  
 5%g	U 	U( zz%%%{{&&&{{&&&]**%%e,,,***%%fw&6777E"""**%%fw&6&?'&IJJJC.  C.  **%%dWn555A,**%%i000s#uQl"" $))))**%%g...F###**##%%%11!44;;;11!44;;;))+' Q z ??a{R -7"J  50" $# /#%44' ]Q   s  AMKM	AL)L9K:LK%L2K3LK+L/K"0L K%LK(%L7K+8LK.	"L+K1,L;K7K4
	K79LL	LL!L9L:"LL(LLL#L$L(L)0M;L'<MLLLL"L%L(L+L.L1L4K77
L	LLLLLL
L$	 L)'M)M /L20M <Mc                   #    [        S [        S5       5       5      n [        [        U SSS9I S h  vN nUR                  [        :X  d   eUR
                  S:X  d   eUR                  U :X  d   eUR                  S:X  d   e[        [        SS9I S h  vN nUR                  [        :X  d   eUR
                  S:X  d   eUR                  S:X  d   eUR                  b   e[        [        U SSS9I S h  vN nUR                  [        :X  d   eUR
                  S:X  d   eUR                  U :X  d   eUR                  U S S S2   :X  d   e[        R                  " [        5         [        [        S	S
9I S h  vN   S S S 5        Sn[        R                  " [        US9   [        [        [        R                  S
9I S h  vN   S S S 5        [        R                  " [        US9   [        [        [        R                  S9I S h  vN   S S S 5        [        R                  " [        UR                  SSS5      S9   [        [        [        R                  S9I S h  vN   S S S 5        [        R                  " [        SS9   [        [        S[        R                   S9I S h  vN   S S S 5        [        R                  " [        SS9   [        [        SS S9I S h  vN   S S S 5        g  GN GNZ GN GN|! , (       d  f       GN= f GNI! , (       d  f       GNN= f GN! , (       d  f       GN= f N! , (       d  f       N= f N! , (       d  f       N= f N{! , (       d  f       g = f7f)Nc              3  P   #    U  H  n[         R                  " S S5      v   M     g7f)r      N)randomrandint).0_s     r.   	<genexpr>test_run.<locals>.<genexpr>R  s     >A3''s   $&i   T)rr   capture_stdoutcapture_stderrr   r0   r   r   zoh no, it's textrr   z^stdout=subprocess\.PIPE is only valid with nursery\.start, since that's the only way to access the pipe(; use nursery\.start or pass the data you want to write directly)*$match)rs   rs   rt   rQ   )rt   z.^can't specify both stdout and capture_stdout$)r   rs   z.^can't specify both stderr and capture_stderr$)r   rt   )r   ranger   CATr<   rV   rs   rt   r   pytestraisesUnicodeError
ValueErrorr   r   replaceDEVNULL)datar   pipe_stdout_errors      r.   test_runr   Q  s    >u>>D	 F ;;#!!!==D   ==Cs488F;;#!!!==C==   3	 F ;;EEEE!!!==D   ==D2J&&& 
|	$#%7888 
% H	z):	;#Z__555 
<	z):	;#joo666 
<	''(A>
 #joo666	

 
?
 #d:;M;MNNN	

 
?
 #d4@@@	
 
_ 9 	9 
%	$
 	6 
<	; 	7 
<	; 	7	
 
 	O	
 
 	A	
 
s2  /M+K*A!M+K-A M+4K05A0M+%K67K38K6<#M+ L?L L!M+% L LL 
2M+< L4L2L4!!M+!M#M$M(!M+	MMM!
M+-M+0M+3K66
L M+L
LM+L  
L/*M+2L44
M>M+M
MM+M
M($M+c                 z  #    [        S5      n [        R                  " [        R                  5       n[        U [        R                  SS9I S h  vN   S S S 5        WR                  R                  U :X  d   eUR                  R                  S:X  d   eUR                  R                  S:X  d   eUR                  R                  b   e[        U SSSS9I S h  vN nUR                  U :X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eg  N! , (       d  f       N= f N`7f)	Nz/sys.stderr.buffer.write(b'test\n'); sys.exit(1)T)rr   r   rQ   s   test
F)r   r   rA   r0   )r/   r   r   r   CalledProcessErrorr   r   rI   cmdrV   rt   rs   r<   )r   excinfor   s      r.   test_run_checkr     s    
C
DC	z44	5#Z%7%7MMM 
6==###==##q(((==9,,,=='''	 F ;;#==C==I%%%!!! 	N 
6	5s<   0D;D(D&D(BD;D9AD;&D((
D62D;c                    #    [        [        R                  SS/SS-  S9I S h  vN n U R                  S:X  d   eU R                  U R
                  s=L a  b   e   eg  N97f)Nr*   zimport sys; sys.stdin.close()   xi   r   r   )r   r+   r,   rV   rs   rt   )r   s    r.   test_run_with_broken_piper     sa     	>?Vm F !!!==FMM11111s   "A A:A c                L  #    U " [         [        R                  [        R                  [        R                  S9 IS h  vN nUR                  c   eUR
                  c   eUR                  b   eUR                  R                  S5      I S h  vN   UR                  R                  5       I S h  vN   / n UR                  R                  S5      I S h  vN nUS:X  a  OUR                  U5        M=  SR                  U5      S:X  d   eS S S 5      IS h  vN   WR                  S:X  d   e[        [         SS[        R                  S9I S h  vN nUR                  S:X  d   eUR
                  S:X  d   eUR                  b   eU " [        [        R                  [        R                  S	9 IS h  vN nUR
                  b   eUR                  b   eUR                  R!                  5       I S h  vN   UR#                  5       I S h  vN   S S S 5      IS h  vN   UR                  S:X  d   e[$        (       GaQ   [&        R(                  " 5       u  pVU " [         [        R                  U[        R                  S9 IS h  vN n[&        R*                  " U5        UR                  b   eUR
                  b   eUR                  b   eUR                  R                  S5      I S h  vN   UR                  R!                  5       I S h  vN   UR#                  5       I S h  vN S:X  d   e[&        R,                  " US
5      S:X  d   e[&        R,                  " US
5      S:X  d   eS S S 5      IS h  vN   [&        R*                  " U5        g g  GNR GN GN GN GN! , IS h  vN  (       d  f       GN= f GNk GN
 GN GN GN! , IS h  vN  (       d  f       GN= f GNa N N N Ny! , IS h  vN  (       d  f       N= f! [&        R*                  " W5        f = f7f)Nrq   s   1234T   r0   s   12344321r   )rr   r   rt   )rr   rt   i   )r   r   r   STDOUTstdiors   rt   rv   send_eofr   appendjoinrV   r   r   rr   rw   r;   r(   ospipecloseread)rK   r>   outputr   r   rws          r.   test_stderr_stdoutr     ss    !3oo  	 
 
zz%%%{{&&&{{"""jj!!'***jj!!###**11"55E|MM% 	 
 xx;...% & ??a 3  	 F !!!==K'''==    "oo    
{{"""{{"""jj!!!iik  ??au	779DA); oo!((	 
 zz))){{***{{***jj))'222jj'')))!YY[(A---wwq$';666wwq$'3...   HHQK) [ 	+# 6   , 	"    3)(     HHQKs  <P$NP$ANN!N0N1%NN5NP$N7P$N:A#P$3N=4P$7<O	3O 4O	OO	P$O"P$?AP	 O$P	 A"O/)O'*!O/O)O/#O+$AO/(P	 3O-4P	 8P$NNNP$N7%N(&N72	P$=P$ O	O	P$	O!OO!P$$P	 'O/)O/+O/-P	 /P5O86PP	 	P!!P$c                 D  #    [         R                  " [        5       n [        S/SS9I S h  vN   S S S 5        S[	        W R
                  5      ;   d   eS[	        U R
                  5      ;   d   e[        (       al  [         R                  " [        5       n [        S/SS9I S h  vN   S S S 5        [         R                  " [        5       n [        SSS9I S h  vN   S S S 5        g g  N! , (       d  f       N= f NV! , (       d  f       NZ= f N4! , (       d  f       g = f7f)	Nlszutf-8)encodingzunbuffered byte streamsz&the 'encoding' option is not supportedT)shellF)r   r   	TypeErrorr   r2   rI   r(   )r   s    r.   test_errorsr     s     	y	!WD6G444 
" %GMM(::::3s7==7IIIIu]]9%vT222 &]]9%t5111 &% 	 	5 
"	! 3 &% 2 &%s   D C)C'C)A#D C<#C:$C<("D 
DDD
D 'C))
C73D :C<<
D
D D
DD c                D  ^ #          SU 4S jjnU" [         R                  [        5      I S h  vN   U" [         R                  [        5      I S h  vN   [
        (       d  [        (       d  [        R                  S:w  a  U" S [        5      I S h  vN   g g  Ni NH N
7f)Nc                  >#    [        S5       nT" [        S5      5       IS h  vN nU " U5        UR                  5       I S h  vN   S S S 5      IS h  vN   S S S 5        WR                  (       a   e[        (       a  Uc   eWR
                  U* :X  d   eg WR
                  S:w  d   eg  N Nh NZ! , IS h  vN  (       d  f       No= f! , (       d  f       Nx= f7f)N      ?  r   )r   r5   r;   r   r(   rV   )send_itsignumr   r>   rK   s       r.   test_one_signal%test_signals.<locals>.test_one_signal  s      35)%+66$iik!! 76   ))))5%%%??vg---??a''' 7! 7666  st   CCB,CB2B.B2
CB0CAC,C.B20C2C		8B;9C		C
CCr#   c                ,    U R                  [        5      $ r9   )send_signalr'   r>   s    r.   <lambda>test_signals.<locals>.<lambda>  s    4+;+;G+Dr0   )r   zCallable[[Process], None]r   zsignal.Signals | Noner   r   )
r   r:   r%   	terminater&   r   r(   r+   platformr'   )rK   r   s   ` r.   test_signalsr     s     (*(%( 
( ',,
000
'++W
555 Mee(?DgNNN )@ 15 	Os3   -B B"B B?B BB B B zPOSIX specific)reasonc                  #    [         (       a  [        R                  S:X  a  g [        R                  " [        R                  [        R
                  5      n U " [        S5      5       IS h  vN n[        R                  " 5        IS h  vN nUR                  UR                  5        [        5       I S h  vN   UR                  5         [        R                  " 5       S-   UR                  l        S S S 5      IS h  vN   WR                  R                   (       a   eUR"                  S:X  d   eS S S 5      IS h  vN   [        R                  " [        R                  U5        g  N N N No! , IS h  vN  (       d  f       N= f NL! , IS h  vN  (       d  f       Na= f! [        R                  " [        R                  U5        f = f7f)Nr#   r   r   r   )r   r+   r   signalSIGCHLDSIG_IGNr5   r   rB   rk   r;   r   r:   r   rF   r   r   rV   rK   old_sigchldr>   rH   s       r.   test_wait_reapable_failsr     s(     }0--?K3 &eDk22d))++w""499-,...		050B0B0Ds0J$$-	 ,+
 ++<<<<??a''' 32 	fnnk2 3+. ,+++ 3222 	fnnk2s   AGF& ,E(-F& 0F
E*F)E07E,8;E03F>E.?3F2F& =F
>F& &G(F& *F,E0.F0F	6E97F	F
F& F#FF#F& &'GGc           	       #    [         (       a  [        R                  S:X  a  g [        R                  " SSS9   [
        R
                  " [
        R                  [
        R                  5      n U " [        S5      5       IS h  vN n[        R                  " 5        IS h  vN nUR                  UR                  5        [        5       I S h  vN   UR                  5         [        R                  " 5       S-   UR                   l        S S S 5      IS h  vN   WR                   R$                  (       a   eUR&                  S:X  d   eS S S 5      IS h  vN   [
        R
                  " [
        R                  U5         S S S 5        g  GN N N Ny! , IS h  vN  (       d  f       N= f NV! , IS h  vN  (       d  f       Nk= f! [
        R
                  " [
        R                  U5        f = f! , (       d  f       g = f7f)Nr#   r]   Fr^   r   r   r   )r   r+   r   r   r`   r   r   r   r5   r   rB   rk   r;   r   r:   r   rF   r   r   rV   r   s       r.   !test_wait_reapable_fails_no_pidfdr   1  sJ    
 }0	9u	EmmFNNFNNC	7 *%+66$ --//7&&tyy10222IIK494F4F4H34NG((1	 0/
 #//@@@@!+++ 76 MM&..+6 
F	E 7/2 0/// 7666 MM&..+6 
F	Es   6H4G0-GFGF, F

!F,$)FF
;F	F,F3F,GF*G%G0>	HG
F,FF,F'FF'#F,*G,G	2F53G	?G'G--G00
G>:Hc                 T  ^^ SSK Jn   [        (       a)  [        R                  S:X  d  [        R                  S:X  a  g U R
                  R                  S5      (       d  [        R                  " S5        SSK	J
n  Sm[        R                  " S	S
/5      mSUU4S jjn[        R                  " [        R                  U5      n [        R                  " S5        U" TR                   5        TR#                  SS9S:X  d   e TR$                  c   TR'                  5         TR#                  5         [        R                  " [        R                  U5        g ! TR$                  c   TR'                  5         TR#                  5         [        R                  " [        R                  U5        f = f)Nr   )wait_child_exitingr#   darwinwaitidzwaitid only)sync_wait_reapableFr   3600c                *   > SmTR                  5         g NT)r:   )sigframe	got_alarmsleepers     r.   on_alarm#test_waitid_eintr.<locals>.on_alarm`  s    	r0   rQ   )timeouti)r  r   r  zFrameType | Noner   r   )_subprocess_platformr   r   r+   r   
__module__endswithr   skip_subprocess_platform.waitidr   r   Popenr   SIGALRMalarmpidr;   rV   r:   )r   r   r  old_sigalrmr  r  s       @@r.   test_waitid_eintrr  J  s'    :}#,,'1S\\X5M((11(;;M"
 I01G 
 --9K
3Q7;;'||A|&",,,% LLNLLNfnnk2 % LLNLLNfnnk2s   =E AF'c            	     v  ^#    SmSU4S jjn [         R                  " 5        IS h  vN nUR                  [        [        [        S5      U S95        [        5       I S h  vN   UR                  R                  5         S S S 5      IS h  vN   T(       d   eg  Nq N: N! , IS h  vN  (       d  f       N'= f7f)NFc                   >#    SmU R                  5          [        5       I S h  vN   U R                  c   eg  N! U R                  c   ef = f7fr  )r   r   rV   )r>   custom_deliver_cancel_calleds    r.   custom_deliver_cancel9test_custom_deliver_cancel.<locals>.custom_deliver_cancelv  sL     '+$	//!!??... "??...s%   A; 9; A; AArc   deliver_cancelr>   r   r   r   	r   rB   rk   r   r   r5   r   rF   rG   )r  rH   r  s     @r.   test_custom_deliver_cancelr  s  s     #( 	/ !!##wKt=RS	
 %&&&##% $# ('' $ 	'	 $###sV   $B9BB95B B!B?B9
BB9BB9B6%B(&B62B9c                    ^ SS jmSU4S jjn [        [        [        [        S5      5      5         [        R                  " U SS9  S S S 5        g ! , (       d  f       g = f)Nc                @   #    U R                  5         [        S5      e7f)Nfoo)r   r   r   s    r.   r  6test_bad_deliver_cancel.<locals>.custom_deliver_cancel  s     s   c            	     P  >#    [         R                  " 5        IS h  vN n U R                  [        [        [        S5      TS95        [        5       I S h  vN   U R                  R                  5         S S S 5      IS h  vN   g  Nh N1 N	! , IS h  vN  (       d  f       g = f7f)Nrc   r  r  )rH   r  s    r.   do_stuff)test_bad_deliver_cancel.<locals>.do_stuff  st     %%''7U4[AVW )***  '') ('' +	 ('''sV   B&BB&5BBB5B& B
B&B
B&B#BB#B&z^foo$T)strict_exception_groupsr  r   )r   r   r   r   run)r#  r  s    @r.   test_bad_deliver_cancelr'    s>     * 
[W!=>	?		(D9 
@	?	?s   A
Ac                  ^#    [         R                  mSU4S jjnU R                  [         SU5        [        R                  " [
        SS9   [        R                  " 5        IS h  vN nUR                  [        [        S5      5        [        5       I S h  vN   UR                  R                  5         S S S 5      IS h  vN   S S S 5        g  Nh N9 N! , IS h  vN  (       d  f       N&= f! , (       d  f       g = f7f)Nc                *   > T" U 5        [        S5      e)Nwhoops)OSError)selforiginal_terminates    r.   broken_terminate>test_warn_on_failed_cancel_terminate.<locals>.broken_terminate  s    4 hr0   r   z
.*whoops.*r   rc   )r,  r   r   r   )r   r   setattrr   warnsRuntimeWarningr   rB   rk   r   r5   r   rF   rG   )monkeypatchr.  rH   r-  s      @r.   $test_warn_on_failed_cancel_terminater4    s      **  .>?	nL	9%%''7{E$K8(***  '') (' 
:	9'* (''' 
:	9sx   A	D C/&C'C/*-CCC6C/CC/	D C/CC/C,	CC,	(C//
C=9D z
posix onlyc                  #    UR                  [        SS 5        [        R                  " [        SS9   [
        R                  " 5        IS h  vN nUR                  [        [        S5      5        [        5       I S h  vN   UR                  R                  5         S S S 5      IS h  vN   S S S 5        g  Nh N9 N! , IS h  vN  (       d  f       N&= f! , (       d  f       g = f7f)Nr   c                     g r9    )r<   s    r.   r   8test_warn_on_cancel_SIGKILL_escalation.<locals>.<lambda>  s    Dr0   z.*ignored SIGTERM.*r   rc   )r0  r   r   r1  r2  r   rB   rk   r   r5   r   rF   rG   )autojump_clockr3  rH   s      r.   &test_warn_on_cancel_SIGKILL_escalationr:    s     
 .@A	n,A	B%%''7{E$K8(***  '') (' 
C	B'* (''' 
C	Bsv   2C(CB7C-B=?B9 B=C)B;*C.	C(7C9B=;C=C	CC	C
C%!C(c                   #    [        [        R                  5         [        R                  " 5        IS h  vN n U R                  [        [        5      I S h  vN n[        U[        5      (       d   eUnS S S 5      IS h  vN   S S S 5        WR                  S:X  d   eg  Nj NJ N#! , IS h  vN  (       d  f       N8= f! , (       d  f       NA= f7f)NrQ   )r   r   r   r   rB   rD   r   rX   rE   r   rV   )rH   rI   r>   s      r.    test_run_process_background_failr<    s     	Z22	3%%''7!--Z@@EeW----!D (' 
4
 ??a	 (@ (''' 
4	3ss   CCB!CB'B#B'6CB%CC!C#B'%C'B>	-B0.B>	:C
CC/dev/fdz,requires a way to iterate through open filesc                   #    [         R                  " 5         [        [        S5      R	                  5       5      n [        [        5      I S h  vN   [        [        S5      R	                  5       5      U :X  d   e[        R                  " [        R                  5         [        [        5      I S h  vN   S S S 5        [        [        S5      R	                  5       5      U :X  d   e[        R                  " [        5         [        S/5      I S h  vN   S S S 5        [        [        S5      R	                  5       5      U :X  d   eg  N N! , (       d  f       N= f NJ! , (       d  f       NN= f7f)Nr=  z	/dev/fd/0)gccollectsetSyncPathiterdirr   rT   r   r   r   r   rX   PermissionError)starting_fdss    r.   test_for_leaking_fdsrF    s     
 JJLx	*2245L
i
   x	"**,-===	z44	5*%%% 
6x	"**,-===		';-((( 
(x	"**,-=== ! 	& 
6	5
 	) 
(	'sh   A
E-EAE-E	0E1E	5A
E-?EEE2E-E		
EE-E
E*&E-c                   #    SS jnU R                  [        R                  SU5        [        [        [        5         [        [        SS9I S h  vN   S S S 5        g  N! , (       d  f       g = f7f)Nc                    #    g7f)Noopsr7  )r<   r=   s     r.   very_broken_open9test_run_process_internal_error.<locals>.very_broken_open  s     s   r   Tr   )r<   objectr=   rL  r   r2   )r0  trio_subprocessr   AttributeErrorr   rT   )r3  rJ  s     r.   test_run_process_internal_errorrP    sR      ((.:JK	^^	4)D999 
5	49 
5	4s.   ;A0AAA	A0A
A-)A0c                   ^#    S mSU4S jjn [        [        S5      5      I S h  vN n[        R                  " 5        IS h  vN nUR	                  X5        [        5       I S h  vN   [        T[        5      (       d   eUR                  5         [        5          UR                  R                  5         UR                  5         S S S 5        [        S5         TR                  5       I S h  vN   S S S 5        TR                  5       (       d   S5       eS S S 5      IS h  vN   g  GN N N! , (       d  f       Nn= f NQ! , (       d  f       NU= f N0! , IS h  vN  (       d  f       g = f7f)Nc                v   >#    [        5       mU R                  5       I S h  vN   TR                  5         g  N7fr9   )r   r;   rA  )r>   noticed_exits    r.   wait_and_tell7test_subprocess_pidfd_unnotified.<locals>.wait_and_tell  s-     wiik 	s   979rc   r   z,child task wasn't woken after poll, DEADLOCKr  )r   r5   r   rB   rk   r   rE   r   r   r   rf   r;   pollr   is_set)rT  r>   rH   rS  s      @r.    test_subprocess_pidfd_unnotifiedrX    s    L eDk**D!!##w=/$&&&,...."$JJOOIIK	 %
 1 ##%%%  ""$$T&TT$ $## +#& %$ &  $###s   "E/D(E/D+E/E&D-'5E+D/EE.E /E3$EE/"E#E/+E/-E/
D=	9E E
E	EE/E,EE,(E/)r-   r2   r   	list[str])r4   r   r   rY  )r<   r   r=   r   r   zAsyncIterator[Process])rK   rM   r   r   r   )r3  pytest.MonkeyPatchr   r   )r9  r   r3  rZ  r   r   )e
__future__r   r?  r   r   r   r   r+   collections.abcr   r   
contextlibr   r   	functoolsr   pathlibr	   rB  r
   typingr   r   r   unittestr   r   rM  trio.testingr   r    r   r   r   r   r   r   r   r   _core._tests.tutilr   r   lowlevelr   testingr   r   r   typesr    typing_extensionsr!   _abcr"   r   r$   __annotations__namer(   r%   r&   r'   r/   rT   rX   r   r5   r?   rJ   markparametrizebackground_process_paramrM   r[   ra   rh   rm   ro   r   r   r   r   r   r   r   r   r   skipifr   r   r  r  r'  r4  r:  r<  existsrF  rP  rX  r7  r0   r.   <module>rq     s   " 	 	    
 3 G  $  
    -	 	 	 A # N N+$<<7 J	 #J	#	 	 	 
7%CLLG$;00 0GWg? =!	M"
?@'
= 			 	 	 
&
&
& 
& 
& ";;2234	12 3   $,(*$ y   " 
 
& (-(	( (  &  ( /5*/ + & &D I  I X6Ar"* 2 2 B BJ2 O O: I&673  83( I&677-7	7  87. %3 %3P(0:$*  Il3
*
*#
* 

* 4
*  ""$$9  >	> :Ur0   