+
     BiG                        R t ^ RIt^ RIt^ RIt ! R R4      tR tR tR tR t]P                  R 4       t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R  t"R! t#R" t$R# t%R$ t&R% t'R& t(])R'8X  dF   ^ R(I*H+t+ ]+! 4        ]PX                  ^,          t-].! 4       ]-,          ! ]PX                  R),          !   R# R# )*zThis script contains the actual auditing tests.

It should not be imported directly, but should be run by the test_audit
module with arguments identifying each test.

Nc                   Z   a  ] tR t^t o RtR]3R ltR tR tR t	]
R 4       tR tR	tV tR# )
TestHookzUsed in standard hook tests to collect any logged events.

Should be used in a with block to ensure that it has no impact
after the test completes.
Nc                P    T;'       g    RV n         W n        . V n        R V n        R# )FN )raise_on_eventsexc_typeseenclosed)selfr   r   s   &&&'/usr/lib/python3.14/test/audit-tests.py__init__TestHook.__init__   s%    .44" 	    c                2    \         P                  ! V 4       V # N)sysaddaudithookr
   as   &*r   	__enter__TestHook.__enter__   s    r   c                &    V P                  4        R # r   )closer   s   &*r   __exit__TestHook.__exit__   s    

r   c                    R V n         R# )TN)r	   r
   s   &r   r   TestHook.close!   s	    r   c                P    V P                    Uu. uF  q^ ,          NK  	  up# u upi )    )r   )r
   is   & r   seen_eventsTestHook.seen_events$   s"    "ii(i!i(((s   #c                    V P                   '       d   R # V P                  P                  W34       WP                  9   d   V P	                  RV,           4      hR # )Nz
saw event )r	   r   appendr   r   )r
   eventargss   &&&r   __call__TestHook.__call__(   sG    ;;;		%'(((--u 455 )r   )r	   r   r   r   )__name__
__module____qualname____firstlineno____doc__RuntimeErrorr   r   r   r   propertyr!   r'   __static_attributes____classdictcell____classdict__s   @r   r   r      sC      (,l  ) )6 6r   r   c                 6    W8w  d   \        V : R V: 24      hR# ) should equal NAssertionErrorxys   &&r   assertEqualr;   1   s"    vuN1%899 r   c                 6    W9  d   \        V : R V: 24      hR# )z should be in Nr6   elseriess   &&r   assertInr@   6   s#    	v^F:>?? r   c                 6    W9   d   \        V : R V: 24      hR# )z should not be in Nr6   r=   s   &&r   assertNotInrB   ;   s#    	|v%7zBCC r   c                    \        V 4      \        V4      8w  d   \        V : R V: 24      h\        ;QJ d%    R \        W4       4       F  '       g   K   RM	  RM! R \        W4       4       4      '       d   \        V : R V: 24      hR# )r5   c              3   .   "   T F  w  rW8g  x  K  	  R # 5ir   r   ).0ixiys   &  r   	<genexpr>&assertSequenceEqual.<locals>.<genexpr>C   s     
,)28)s   TFN)lenr7   anyzipr8   s   &&r   assertSequenceEqualrM   @   sl    
1vQuN1%899
s
,#a)
,sss
,#a)
,,,uN1%899 -r   c              #   x   "    R x  R #   \          d#   p\        T\        4      '       d   h  R p?R # R p?ii ; i5ir   )BaseException
isinstancer7   )ex_typeexs   & r   assertRaisesrS   G   s4     @ @b.)) *@s    :
 :72:7:c                  &   \        4       ;_uu_ 4       p \        P                  ! R ^^^4       \        V P                  ^ ,          ^ ,          R 4       \        V P                  ^ ,          ^,          R4       RRR4       R#   + '       g   i     R# ; i)
test_eventN)         )r   r   auditr;   r   )hooks    r   
test_basicr[   R   sU    	t		,1a(DIIaLO\2DIIaLOY/ 
s   A"A??B	c            	      H   \        R R7      ;_uu_ 4       p \        4       ;_uu_ 4       p\        P                  ! R4       \        RV P                  4       \        RVP                  4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)sys.addaudithookr   rU   N)r   r   rY   r@   r!   rB   hook1hook2s     r   test_block_add_hookrb   Y   sf     
"4	5	5ZZ5IIl#\5#4#45e&7&78  
6	5Z 
6	5	5s#   BAA=	+B=BBB!	c                  6   \        \        4      ;_uu_ 4        \        R \        R7      ;_uu_ 4       p \        4       ;_uu_ 4       p RRR4       RRR4       RRR4       R#   + '       g   i     L"; i  + '       g   i     L-; i  + '       g   i     R# ; i)r]   )r   r   N)rS   rO   r   r_   s     r   !test_block_add_hook_baseexceptionrd   c   s_    	m	$	$.
 
u 	
 
%	$
 	
 
 
%	$	$s:   BA4	A!A4	B!A1,A4	4B?BB	c            
         ^ RI p RpV P                  V4      p\        4       ;_uu_ 4       p\        WP	                  V P                  V4      4      4        \        RR4      ;_uu_ 4       pV P                  W4       RRR4       \        RR4      ;_uu_ 4       p\        WP                  V4      4       RRR4       \        P                  ! R4        RRR4       XP                   UUu. uF   w  rVVR8X  g   K  V^ ,          V^,          3NK"  	  ppp\        WqV P                  3.^,          4       VP                   UUu. uF  w  rVVR8X  g   K  V^ ,          NK  	  ppp\        Wr.4       VP                   UUu. uF  w  rVVR8X  g   K  VNK  	  ppp\        VR.4       R#   + '       g   i     EL0; i  + '       g   i     EL; i  \        P                  ! R4       i ; i  + '       g   i     EL; iu uppi u uppi u uppi )	r   Nztest-marshal.binwbrbzmarshal.dumpszmarshal.loadszmarshal.loadr   bcrV   rW   rX   )marshaldumpsr   r;   loadsopendumploadosunlinkr   rM   version)rk   opayloadrZ   fer   actuals           r   test_marshalry   n   s    AmmAG	tA}}W]]1%567	*($//1Q" 0($//1A||A/ 0 II() 
 (,yyIytqA4HlqtQqTlyFIW__!5 6 :;#yyAytqA,@daddyFA	* II=IDAn)<aaIF= 01 0///// II() 
 J B >sw   *G%G
)F"	;G
F6	2G
:G%(G98G9?G?G?:H
H"F3-	G
6G	G

G""G%%G6	c            	         ^ RI p  ! R R4      pV P                  V! 4       4      pV P                  R4      p\        RV P                  V4      4       \	        RR7      ;_uu_ 4       p\        \        4      ;_uu_ 4        V P                  V4       RRR4       V P                  V4       RRR4       R#   + '       g   i     L+; i  + '       g   i     R# ; i)r   Nc                   &   a  ] tR t^t o R tRtV tR# ) test_pickle.<locals>.PicklePrintc                    \         R3# )Pwned!)r~   )str)r
   ps   &&r   __reduce_ex__.test_pickle.<locals>.PicklePrint.__reduce_ex__   s    ##r   r   N)r)   r*   r+   r,   r   r0   r1   r2   s   @r   PicklePrintr|      s     	$ 	$r   r   r~   zpickle.find_classr^   rh   )picklerl   r;   rm   r   rS   r.   )r   r   	payload_1	payload_2rZ   s        r   test_pickler      s    $ $ []+I56I &,,y12	"5	6	6$,''LL# ( 	Y 
7	6'' 
7	6	6s$   %C=B2	C2C=CC	c                      ! R  R4      p  ! R R4      p ! R RV 4      pV ! 4       p\        4       ;_uu_ 4       pRVn        V3Vn        \        P                  R,          P                  W!34       VP                  Vn        ^{Vn        Wn        RRR4       XP                   UUu. uF   w  rSVR	8X  g   K  V^ ,          V^,          3NK"  	  ppp\        VR
3VR3VR3XR3.V4       R#   + '       g   i     Lb; iu uppi )c                       ] tR t^tRtR# )test_monkeypatch.<locals>.Ar   Nr)   r*   r+   r,   r0   r   r   r   Ar          r   r   c                       ] tR t^tRtR# )test_monkeypatch.<locals>.Br   Nr   r   r   r   Br      r   r   r   c                       ] tR t^tRtR# )test_monkeypatch.<locals>.Cr   Nr   r   r   r   Cr      r   r   r   X	__bases__Nzobject.__setattr__r)   	__class__)r   r)   r   type__dict____set__r   new_attrr   r   rM   )r   r   r   r   rZ   rw   rx   s          r   test_monkeypatchr      s      A  	
A	t
dk"**1d3ZZ

 
 (,yyNytqA9M4MlqtQqTlyFN
Z1k*Q,<q+>NOQW 
 Os   AC(%C;5C;(C8	c                   a  ^ RI pVP                  4       P                  p ^ RIoV3R lp\        R0R7      ;_uu_ 4       p\        V R3\        \        P                  R3\        ^R3\        V RRRRRR	R
 3	W 3V! R4      V 3V! R4      R3V! R4      V 3V! R4      R3V! R4      ^ V 3V! R4      ^ R3V! R4      V 3V! R4      R33 F6  vrVV'       g   K  \        \        4      ;_uu_ 4         V! V!    RRR4       K8  	  RRR4       XP                   UUu. uF1  w  rxVR8X  g   K  V^,          '       g   K  V^ ,          V^,          3NK3  	  p	ppVP                   UUu. uF1  w  rxVR8X  g   K  V^,          '       d   K  V^ ,          V^,          3NK3  	  p
pp\        V R3\        P                  R3RV R3V'       d   V R3MRS'       d   V R3MRS'       d   RMRS'       d   V R3MRS'       d   RMRV! R4      '       d   V R3MRV! R4      '       d   RMRS'       d   V R3MRS'       d   RMR3 Uu. uF  pVf   K	  VNK  	  upV	4       \        . V
4       R#   \         d    Rp ELIi ; i  \         d    Ro ELXi ; i  \         d    YR8X  d	   Rp\        hh i ; i  + '       g   i     EK  ; i  + '       g   i     EL; iu uppi u uppi u upi )r   Nc                 2   < S'       d   \        SV R 4      # R # r   )getattr)namereadlines   &r   rltest_open.<locals>.rl   s    8T400r   rn   r^   rrg   rf   wFc                      ^# )rV   r   r   s   *r   <lambda>test_open.<locals>.<lambda>   s    r   read_history_filewrite_history_fileappend_history_fileread_init_filer   )rX   r   )
~/.historyr   )r   r   )r   r   )z<readline_init_file>r   )sslcreate_default_contextload_dh_paramsImportErrorr   r   rn   r   
executablerS   r.   NotImplementedErrorr   rM   )testfnr   r   r   rZ   fnr&   rw   r   actual_modeactual_flagr    r   s   &           @r   	test_openr      s   335DD 
6(	+	+t633>>4(1dO63D$e\J$#$f-#$d+$%v.$%t,%&62%&40 !6* !4(
IB l++I ,+#
 
,: -1IINIDAf<1<AaD!A$<IKN,0IIRIDAf<QqTT<AaD!A$<IKR %"0d!)t'/#T!)t'/#T!#$9!:!:')*?'@'@#d!)t19-t	
 ! A	
& 	), K(K  
  @ + +)-** ,++% 
,	+	+: OR	
s   I I. B)J5*J ,J
3J5K	&K	7K	K/K K3K>KI+*I+.I?>I?JJ  J2+
J55K	c                    a . oV3R  lp \         P                  ! V 4      p \        4       ;_uu_ 4       p\        R4       RVn        \        R4       RVn        \        R4       ^Vn        \        R4       ^ Vn        RRR4       \         P                  ! V4       \        R.^,          S4       R#   + '       g   i     L<; i  \         P                  ! T4       i ; i)	c                    < V P                   \        P                  P                  8X  d   SP	                  V4       R # R # r   )f_coder   r'   __code__r$   )framer%   r&   traceds   &&*r   tracetest_cantrace.<locals>.trace  s,    <<8,,555MM%  6r   1F2T34Ncall)r   settracer   eval__cantrace__rM   )r   oldrZ   r   s      @r   test_cantracer     s    F! ,,u
CZZ4I !&DI !%DI !"DI !"D# & 	S1f-+ Z& 	Ss#   C A	B0<C 0C 	;C Cc                      ^ RI p \        4       ;_uu_ 4       pV P                  R^4       \        VP                  ^ ,          ^,          R,          R4       RRR4       R#   + '       g   i     R# ; i)r   N:NrW   Nr   )r      )mmapr   r;   r   )r   rZ   s     r   	test_mmapr   ,  sC    	t		"aDIIaLOB'1 
s   >AA0	c                     ^ RI p ^ RIp\        4       ;_uu_ 4       pVP                  V P                  R4       V P                  V P                  4      ! V P                  4      ! ^^ ^ 4       RRR4       \        4       ;_uu_ 4       pV P                  V P                  ^ 4      V P                  V P                  4      4       RRR4       \        4       ;_uu_ 4       pV P                  \        R4      ^(,           4       RRR4       R#   + '       g   i     L; i  + '       g   i     La; i  + '       g   i     R# ; i)r   Nzctypes.string_at)r   r   r   )ctypes_ctypesr   call_function_memmove_addr	CFUNCTYPEc_voidp_memset_addrcastPOINTERc_char	string_atid)r   r   rZ   s      r   test_ctypes_call_functionr   4  s    	tf22I> 	()<)<=aAF	 
 
tFNN1%v~~fmm'DE 
 
t./"45 
 
 
 
s$   AD;D"D,D	D)	,D=	c                      ^ RI p RpRR.p\        4       ;_uu_ 4       pV P                  P                  WR4       RRR4       R#   + '       g   i     R# ; i)r   Ns   xxxs   yyys   zzzr   )multiprocessing.utilr   utilspawnv_passfds)multiprocessingexer&   rZ   s       r   test_posixsubprocessr   I  s?    
CFD	t++Cr: 
s   AA	c                  n   a R  oV3R lp \         P                  ! V 4       S\         n        \        R4      h)c                 L    V \         Jd   \        P                  ! WV4       R # R # r   )r.   r   __excepthook__)r   	exc_valueexc_tbs   &&&r   
excepthook#test_excepthook.<locals>.excepthookT  s    <'xF; (r   c                 "  < V R 8X  d   \        V^,          V^,          4      '       g#   \        RV^,          : RV^,          : R24      hV^ ,          S8w  d   \        RV^ ,           RS 24      h\        V \	        V^,          4      4       R# R# )zsys.excepthookzExpected isinstance(z, )	Expected  == N)rP   	TypeError
ValueErrorprintrepr)r%   r&   r   s   &&r   rZ   test_excepthook.<locals>.hookX  s    $$d1gtAw//"6tAwkQ{RS TUUAw*$ 9T!WIT*!FGG%d1g' %r   zfatal-error)r   r   r   r.   )rZ   r   s    @r   test_excepthookr   S  s/    <( TCN
}
%%r   c                     a ^ RI Hp  R oV3R lp\        P                  ! V4       S\        n        V ! \        R4      R4       R# )r   )err_formatunraisablec                     R # r   r   )hookargss   &r   unraisablehook+test_unraisablehook.<locals>.unraisablehookh  s    r   c                    < V R 8X  da   V^ ,          S8w  d   \        RV^ ,           RS 24      h\        V \        V^,          P                  4      V^,          P                  4       R# R# )zsys.unraisablehookr   r   N)r   r   r   r   err_msg)r%   r&   r   s   &&r   rZ   !test_unraisablehook.<locals>.hookk  s]    ((Aw.( 9T!WIT.9I!JKK%d1g//0$q'//B )r   znonfatal-errorz%Exception ignored for audit hook testN)	_testcapir   r   r   r   r.   )r   rZ   r   s     @r   test_unraisablehookr   e  s=    .C T'C&67@Br   c                      ^ RI Hp HpHpHp R p\
        P                  ! V4       V ! VR4      pV! V^ 4        V! VR4       \        R4      h  \         d     Mi ; iTP                  4       pT! T4       R# )r   )OpenKeyEnumKeyCloseKeyHKEY_LOCAL_MACHINEc                 R    V P                  R 4      '       g   R# \        V .VO5!   R# )zwinreg.N
startswithr   r%   r&   s   &&r   rZ   test_winreg.<locals>.hookz  s#    	**edr   Softwarei'  z%Expected EnumKey(HKLM, 10000) to failN)
winregr  r  r  r  r   r   r.   OSErrorDetach)r  r  r  r  rZ   kkvs          r   test_winregr  w  sy    EE
 T"J/AAqMD5 BCC  
 
BRLs   	A AAc                  <   ^ RI p R p\        P                  ! V4       V P                  4        V P                  V P                  V P
                  4      p VP                  R4       VP                  4        R#   \         d     Li ; i  TP                  4        i ; i)r   Nc                 R    V P                  R 4      '       d   \        V .VO5!   R# R# )zsocket.Nr  r	  s   &&r   rZ   test_socket.<locals>.hook  %    I&&%$ 'r   )z	127.0.0.1i  )	socketr   r   gethostnameAF_INETSOCK_STREAMbind	Exceptionr   )r  rZ   socks      r   test_socketr    s      T
 ==););<D		%& 	

   	

s$   A8 8BB	 BB	 	Bc                      ^ RI p R p\        P                  ! V4       V P                  ^R7       \	        4       pV.pV P                  V4       V P                  V4       R# )r   Nc                 R    V P                  R 4      '       d   \        V .VO5!   R# R# )zgc.Nr  r	  s   &&r   rZ   test_gc.<locals>.hook  s%    E""%$ #r   )
generation)gcr   r   get_objectsobjectget_referrersget_referents)r"  rZ   r9   r:   s       r   test_gcr'    sR      TNNaN A	
AQQr   c                      ^ RI p R p\        P                  ! V4       V P                  P	                  R4      p VP                  RR4       VP                  4        R#   \         d    \        RR4        L+i ; i  TP                  4        i ; i)r   Nc                 `    V P                  R 4      '       d   \        V .VR,          O5!   R# R# )zhttp.client.:rV   NNNr  r	  s   &&r   rZ   test_http_client.<locals>.hook  s)    N++%#$r(# ,r   zwww.python.orgGET/zhttp.client.sendz[cannot send])	http.clientr   r   clientHTTPConnectionrequestr  r   r   )httprZ   conns      r   test_http_clientr3    su    $ T;;%%&67DUC  	

  3 /23 	

s#   A A85A; 7A88A; ;Bc                     ^ RI p R p\        P                  ! V4       V P                  R4      pV P	                  R4      p \        V P                  R4      '       d/   VP                  R4        VP                  R4       \        R4      hVP                  4        VP                  4        R#   T P                   d     L5i ; i  TP                  4        TP                  4        i ; i)r   Nc                 R    V P                  R 4      '       d   \        V .VO5!   R# R# )zsqlite3.Nr  r	  s   &*r   rZ   test_sqlite3.<locals>.hook  s%    J''%$ (r   z:memory:enable_load_extensionFtestz'Expected sqlite3.load_extension to fail)sqlite3r   r   connect
Connectionhasattrr7  load_extensionr.   OperationalErrorr   )r9  rZ   cx1cx2s       r   test_sqlite3rA    s      T
//*
%C


Z
(C7%%'>??%%e,N""6* ##LMM				 ++ 
 					s0   -C /B-  C -C>C  CC "C&c                  Z    ^ RI p R pV P                  ! V4       V P                  ! 4        R# )r   Nc                     V P                  R 4      '       d)   \        W^ ,          P                  P                  4       R# R# zsys.N)r  r   r   co_namer	  s   &&r   rZ   test_sys_getframe.<locals>.hook  s.    F##%a//0 $r   )r   r   	_getframer   rZ   s     r   test_sys_getframerI    s#    1 TMMOr   c                  Z    ^ RI p R pV P                  ! V4       V P                  ! 4        R# )r   Nc                 R    V P                  R 4      '       d   \        V .VO5!   R# R# rD  r  r	  s   &&r   rZ   )test_sys_getframemodulename.<locals>.hook  s%    F##%$ $r   )r   r   _getframemodulenamerH  s     r   test_sys_getframemodulenamerN    s&      Tr   c                  6  a ^ RI p R p\        P                  ! V4       V P                  4       oSP	                  4         ! V3R lR4      pV P                  V! 4       R4      pSP	                  4        V P                  V! 4       4      pVP                  4        R# )r   Nc                 N    V P                  R4      '       d   \        W4       R# R# )_thread.N)rQ  zcpython.PyThreadStateztest.r  r	  s   &&r   rZ   test_threading.<locals>.hook  s"    JKK% Lr   c                   4   <a  ] tR tRt o R tV3R ltRtV tR# )!test_threading.<locals>.test_funci  c                    R # )z<test_func>r   r   s   &r   __repr__*test_threading.<locals>.test_func.__repr__  s    =r   c                T   < \         P                  ! R 4       SP                  4        R# )ztest.test_funcN)r   rY   release)r
   locks   &r   r'   *test_threading.<locals>.test_func.__call__  s    II&'LLNr   r   N)r)   r*   r+   r,   rV  r'   r0   r1   )r3   rZ  s   @r   	test_funcrT    s     0	 	r   r\  r   )_threadr   r   allocate_lockacquirestart_new_threadstart_joinable_threadjoin)r]  rZ   r\  r    handlerZ  s        @r   test_threadingrd    sv     T  "DLLN  	  b1ALLN**9;7F
KKMr   c                     a ^ RI p  ! R R\        4      oV3R lp\        P                  ! V4        V P	                  R R4       R#   S d     R# i ; i)r   Nc                       ] tR tRtRtR# )1test_threading_abort.<locals>.ThreadNewAbortErrori  r   Nr   r   r   r   ThreadNewAbortErrorrg    r   r   rh  c                 $   < V R 8X  d   S! 4       hR# )zcpython.PyThreadState_NewNr   )r%   r&   rh  s   &&r   rZ   "test_threading_abort.<locals>.hook  s    //%'' 0r   c                      R # r   r   r   r   r   r   &test_threading_abort.<locals>.<lambda>  s    r   r   )r]  r  r   r   r`  )r]  rZ   rh  s     @r   test_threading_abortrm    sN    i ( T  r2 s   A AAc                      ^ RI p R p\        P                  ! V4        V P                  R4       R#   \         d   pTP
                  R8w  d   h  Rp?R# Rp?ii ; i)r   Nc                 \    V P                  R 4      '       d   \        W^ ,          4       R# R# )z_wmi.Nr  r	  s   &&r   rZ   !test_wmi_exec_query.<locals>.hook'  s$    G$$%a! %r   z#SELECT * FROM Win32_OperatingSystemi  )_wmir   r   
exec_queryWindowsErrorwinerror)rq  rZ   rw   s      r   test_wmi_exec_queryru  $  sR    " T=>  :: s   2 AAAc                     ^ RI p R p\        P                  ! V4       V P                  R4       V P                  R4       V P	                  V P
                  4       V P                  4        V P                  R4       V P                  V P                  V P                  R7       R\        n	        V P                  4        V P                  4        R# )r   Nc                 R    V P                  R 4      '       d   \        V .VO5!   R# R# )zsyslog.Nr  r	  s   &&r   rZ   test_syslog.<locals>.hook7  r  r   pythonr8  test2)	logoptionfacility)
syslogr   r   openlog
setlogmask	LOG_DEBUGcloselog
LOG_NDELAY
LOG_LOCAL0argv)r}  rZ   s     r   test_syslogr  4  s      T
NN8
MM&
f&&'
OO
MM'
NNV..9J9JNKCH
NN
OOr   c                      ^ RI p R p\        P                  ! V4       V P                  4        F  p\	        V\
        4      '       g   K  K  	  R# )r   Nc                      R # r   r   r   s   *r   r    test_not_in_gc.<locals>.<lambda>L  s    dr   )r"  r   r   r#  rP   list)r"  rZ   rt   s      r   test_not_in_gcr  I  s6    DT^^a r   c                    a  ^ RI pV 3R lp\        P                  ! V4       VP                  ^ 4       VP                  R4        VP                  R4       R#   \         d     R# i ; i)r   Nc                    < V P                  R 4      '       d+   SR8X  d   \        V .VO5!   R# SR8X  d   \        R4      hR# R# )ztime.r   failzhook failedN)r  r   r7   )r%   r&   modes   &&r   rZ   test_time.<locals>.hookW  sD    G$$we#d#$]33   %r   g      ?r   )timer   r   sleepr   )r  r  rZ   s   f  r   	test_timer  T  sT    4 TJJqMJJv

2 s   A A'&A'c                  r    ^ RI p R pV P                  ! V4       V P                  P                  ^^R4       R# )r   Nc                 N    V P                  R 4      '       d   \        W4       R# R# )zsys.monitoringNr  r	  s   &&r   rZ   3test_sys_monitoring_register_callback.<locals>.hooki  s!    ,--% .r   )r   r   
monitoringregister_callbackrH  s     r   %test_sys_monitoring_register_callbackr  f  s0     TNN$$Q40r   c           
          ^ RI pR p\        P                  ! V4       VP                  WP                  ^^^ ^ ^ ^ 4       R# )r   Nc                 .    V R 8X  d   \        W4       R# R# )z_winapi.CreateNamedPipeNr   r	  s   &&r   rZ   )test_winapi_createnamedpipe.<locals>.hookt  s    --% .r   )_winapir   r   CreateNamedPipePIPE_ACCESS_DUPLEX)	pipe_namer  rZ   s   &  r   test_winapi_createnamedpiper  q  s;     TI'A'A1aAqRSTr   c                      ^ RI p V P                  ! R 4        V P                  ! ^	4       \        R4      h  \         d     R# i ; i)r   Nc                      R # r   r   )r&   s   *r   r   %test_assert_unicode.<locals>.<lambda>~  s    4r   zExpected sys.audit(9) to fail.)r   r   rY   r.   r   )r   s    r   test_assert_unicoder  |  sF    '(=		! ;<<  s   6 AAc                    aaa ^ RI p \        P                  ! 4       pRoRoRoVVV3R lp\        P                  ! V4       V P                  RRR7      ;_uu_ 4       pVP                  R4       VP                  4        \        P                  ! WP                  4       \        SV4       \        SVP                  4       \        SVP                  4       RRR4       R#   + '       g   i     R# ; i)	r   N c                    < V R9  d   R# \        W4       T ;R 8X  d    V^ ,          oV^,          oR# R8X  d   V^ ,          oR# R# )sys.remote_execcpython.remote_debugger_scriptN)r  r  r  )r%   r&   	event_pidevent_script_pathremote_event_script_paths   &&r   rZ   "test_sys_remote_exec.<locals>.hook  sB    MMe" G	$(G!1+/7( 2r   zw+T)r  deleteza = 1+1
r   )tempfilerq   getpidr   r   NamedTemporaryFilewriteflushremote_execr   r;   )r  pidrZ   tmp_filer  r  r  s       @@@r   test_sys_remote_execr    s    
))+CI!3 T		$	$$t	$	<	<{#]]+Is#%x}}5,hmm< 
=	<	<	<s   A:C  C1	__main__)suppress_msvcrt_asserts:rW   NN)/r-   
contextlibrq   r   r   r;   r@   rB   rM   contextmanagerrS   r[   rb   rd   ry   r   r   r   r   r   r   r   r   r   r  r  r'  r3  rA  rI  rN  rd  rm  ru  r  r  r  r  r  r  r  r)   test.supportr  r  r8  globalsr   r   r   <module>r     s*    	 
 6  6H:
@
D
: @ @0924 *@K)\.B26*P&$B$.,$$22( *!$1U==: z488A;DIdOSXXb\" r   