
    /hh(                        S SK r S SKrS SKrS SKJr  S SKJr  S SKJr  \" \S5      (       a  \" \S5      (       d  \R                  " S5      e\R                  " S5      r " S	 S
\R                  5      r\S:X  a  \R                  " 5         gg)    N)support)import_helper)	os_helperaddaudithookauditz.test only relevant when sys.audit is availablezaudit-tests.pyc                   &   \ rS rSrSr\R                  " 5       S 5       rS rSS.S j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\R0                  " S5      S 5       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)%	AuditTest   Nc                 V   [         R                  " [        R                  S[        /UQSS[         R
                  [         R
                  S9 nUR                  5         X"R                  R                  5       UR                  R                  5       4sS S S 5        $ ! , (       d  f       g = f)Nz-X utf8zutf-8backslashreplace)encodingerrorsstdoutstderr)

subprocessPopensys
executableAUDIT_TESTS_PYPIPEwaitr   readr   )selfargsps      8/opt/python-3.13.8/usr/lib/python3.13/test/test_audit.pyrun_test_in_subprocess AuditTest.run_test_in_subprocess   sq    ^^Y>>%????
 FFHhhmmoqxx}}6
 
 
s   AB
B(c                     U R                   " U6 u  p#n[        R                  R                  U5        [        R                  R                  U5        UR
                  (       a  U R                  U5        g g )N)r   r   r   writer   
returncodefail)r   r   procr   r   s        r   do_testAuditTest.do_test!   sS    #::DAf

 

 ??IIf     Fexpect_stderrc                >   / nU R                   " U6 u  pEnU(       a  [        R                  (       a  [        R                  R                  U5        UR                  UR                  5        Vs/ s H!  owR                  5       R                  S5      PM#     snU4$ s  snf )N )
r   r   verboser   r   r    r!   
splitlinesstrip	partition)r   r(   r   eventsr#   r   r   lines           r   
run_pythonAuditTest.run_python)   sz    #::DAfJJV$OO5;5F5F5HI5HTZZ\##C(5HI
 	
Is   -(Bc                 &    U R                  S5        g )N
test_basicr$   r   s    r   r4   AuditTest.test_basic4   s    \"r&   c                 &    U R                  S5        g )Ntest_block_add_hookr5   r6   s    r   r9   AuditTest.test_block_add_hook7   s    *+r&   c                 &    U R                  S5        g )N!test_block_add_hook_baseexceptionr5   r6   s    r   r<   +AuditTest.test_block_add_hook_baseexception:   s    89r&   c                 R    [         R                  " S5        U R                  S5        g )Nmarshaltest_marshalr   import_moduler$   r6   s    r   r@   AuditTest.test_marshal=   s    ##I.^$r&   c                 R    [         R                  " S5        U R                  S5        g )Npickletest_picklerA   r6   s    r   rF   AuditTest.test_pickleB   s    ##H-]#r&   c                 &    U R                  S5        g )Ntest_monkeypatchr5   r6   s    r   rI   AuditTest.test_monkeypatchG   s    '(r&   c                 D    U R                  S[        R                  5        g )N	test_open)r$   r   TESTFNr6   s    r   rL   AuditTest.test_openJ   s    [)"2"23r&   c                 &    U R                  S5        g )Ntest_cantracer5   r6   s    r   rP   AuditTest.test_cantraceM   s    _%r&   c                 &    U R                  S5        g )N	test_mmapr5   r6   s    r   rS   AuditTest.test_mmapP   s    [!r&   c                     U R                  S5      u  pnU(       d  U R                  SU 35        U R                  S/U5        g )Ntest_excepthookzExpected fatal exception
)zsys.excepthookr*   zRuntimeError('fatal-error'))r1   r"   assertSequenceEqualr   r!   r/   r   s       r   rV   AuditTest.test_excepthookS   sC    %)__5F%G"
FII26(;<  CDf	
r&   c                     [         R                  " S5        U R                  S5      u  pnU(       a  U R                  U5        U R	                  US   S   S5        U R	                  US   S   S5        g )N	_testcapitest_unraisablehookr   zsys.unraisablehook   zDRuntimeError('nonfatal-error') Exception ignored for audit hook test)r   rB   r1   r"   assertEqualrX   s       r   r\   AuditTest.test_unraisablehook\   sh    ##K0%)__5J%K"
FIIf1';<1IaLR	
r&   c                    [         R                  " S5        U R                  S5      u  pnU(       a  U R                  U5        U R	                  US   S   S5        U R	                  US   S   S5        US   S   nU R                  U5        U R                  SS	U S
3/US   5        U R                  SS	U S3/US   5        U R                  SS	U/US   5        g )Nwinregtest_winregr   zwinreg.OpenKey   zwinreg.OpenKey/resultr]   zwinreg.EnumKeyr*   z 0z 10000   zwinreg.PyHKEY.Detach   )r   rB   r1   r"   r^   
assertTruerW   )r   r!   r/   r   expecteds        r   rb   AuditTest.test_winregh   s    ##H-%)__]%C"
FIIf1'781'>?!9Q<!  "2CH:R!I6RS9U  "2CH:V9L!MvVWyY  "8#x!H&QR)Tr&   c                    [         R                  " S5        U R                  S5      u  pnU(       a  U R                  U5        [        R
                  (       a  [        USS06  U R                  US   S   S5        U R                  US   S   S5        U R                  US	   S   S
5        U R                  US	   S	   R                  S5      5        g )Nsockettest_socketsep
r   zsocket.gethostnamerc   zsocket.__new__r]   zsocket.bindz('127.0.0.1', 8080))
r   rB   r1   r"   r   r+   printr^   rf   endswithrX   s       r   rk   AuditTest.test_socketv   s    ##H-%)__]%C"
FIIf??6$t$1';<1'781}5q	!--.CDEr&   c                     U R                  S5      u  pnU(       a  U R                  U5        [        R                  (       a  [	        USS06  U R                  U Vs/ s H  oDS   PM	     sn/ SQ5        g s  snf )Ntest_gcrl   rm   r   )zgc.get_objectszgc.get_referrerszgc.get_referentsr1   r"   r   r+   rn   r^   )r   r!   r/   r   events        r   rr   AuditTest.test_gc   s`    %)__Y%?"
FIIf??6$t$#)*6%1X6*F	
*s   A5networkc                    [         R                  " S5        U R                  S5      u  pnU(       a  U R                  U5        [        R
                  (       a  [        USS06  U R                  US   S   S5        U R                  US   S   S5        U R                  US	   S   S
5        US	   S   S:w  a  U R                  SUS	   S   5        g g )Nzhttp.clienttest_http_clientrl   rm   r   zhttp.client.connectr]   zwww.python.org 80rc   zhttp.client.sendz[cannot send]HTTP)	r   rB   r1   r"   r   r+   rn   r^   assertInrX   s       r   	test_httpAuditTest.test_http   s    ##M2%)__5G%H"
FIIf??6$t$1'<=1':;1'9:!9Q<?*MM&&)A,/ +r&   c                 n   [         R                  " S5      nU R                  S5      u  p#nU(       a  U R                  U5        [        R
                  (       a  [        USS06  U Vs/ s H  oUS   PM	     nnSS/S-  n[        UR                  S	5      (       a  US
S/-  nU R                  Xg5        g s  snf )Nsqlite3test_sqlite3rl   rm   r   zsqlite3.connectzsqlite3.connect/handler]   enable_load_extensionzsqlite3.enable_load_extensionzsqlite3.load_extension)
r   rB   r1   r"   r   r+   rn   hasattr
Connectionr^   )r   r~   r!   r/   r   evactualrg   s           r   r   AuditTest.test_sqlite3   s    --i8%)__^%D"
FIIf??6$t$"()&BQ%&)%'?@1D7%%'>??/( H 	* *s   'B2c                     U R                  S5      u  pnU(       a  U R                  U5        [        R                  (       a  [	        USS06  U Vs/ s H  oDS   US   4PM     nnS/nU R                  XV5        g s  snf )Ntest_sys_getframerl   rm   r   r]   )zsys._getframer   rs   r   r!   r/   r   r   r   rg   s          r   r   AuditTest.test_sys_getframe   sr    %)__5H%I"
FIIf??6$t$+126Ra5"Q%.62:;* 3   A;c                     U R                  S5      u  pnU(       a  U R                  U5        [        R                  (       a  [	        USS06  U Vs/ s H  oDS   US   4PM     nnS/nU R                  XV5        g s  snf )Ntest_sys_getframemodulenamerl   rm   r   r]   )zsys._getframemodulename0rs   r   s          r   r   %AuditTest.test_sys_getframemodulename   sr    %)__5R%S"
FIIf??6$t$+126Ra5"Q%.6245* 3r   c                    U R                  S5      u  pnU(       a  U R                  U5        [        R                  (       a  [	        USS06  U Vs/ s H  oDS   US   4PM     nn/ SQnU R                  XV5        g s  snf )Ntest_threadingrl   rm   r   r]   ))z_thread.start_new_threadz(<test_func>, (), None)ztest.test_funcz())z_thread.start_joinable_threadz(<test_func>, 1, None)r   rs   r   s          r   r   AuditTest.test_threading   ss    %)__5E%F"
FIIf??6$t$+126Ra5"Q%.62
 	* 3s   A<c                 ,   [         R                  " S5        U R                  S5      u  pnU(       a  U R                  U5        [        R
                  (       a  [        USS06  U Vs/ s H  oDS   US   4PM     nnS/nU R                  XV5        g s  snf )N_wmitest_wmi_exec_queryrl   rm   r   r]   )z_wmi.exec_queryz#SELECT * FROM Win32_OperatingSystemr   rB   r1   r"   r   r+   rn   r^   r   s          r   r   AuditTest.test_wmi_exec_query   s    ##F+%)__5J%K"
FIIf??6$t$+126Ra5"Q%.62NO* 3s   'Bc                    [         R                  " S5      nU R                  S5      u  p#nU(       a  U R                  U5        [        R
                  (       a  [        S/UQ7SS06  U R                  USSSUR                   34S	SUR                   S
34SSUR                   4SS	SUR                   S34SSSUR                   34SSSUR                   SUR                   34SSSUR                   34S/	5        g )Nsyslogtest_syslogzEvents:rl   z
  zsyslog.openlogr*   z	python 0 zsyslog.syslogz testzsyslog.setlogmask)zsyslog.closelog r   z test2zaudit-tests.py 0 zaudit-tests.py zNone 0 )r   rB   r1   r"   r   r+   rn   rW   LOG_USERLOG_INFO	LOG_DEBUG
LOG_NDELAY
LOG_LOCAL0)r   r   r!   r/   r   s        r   r   AuditTest.test_syslog   s   ,,X6%)__]%C"
FIIf??)1f1&1  y0A%BCcfoo%6e#<= #&*:*:);='cfoo%6f#=>s&77H$IJsof6G6G5H&J[J[I\$]^sgfoo->$?@')	
r&   c                 ^    U R                  S5      u  pnU(       a  U R                  U5        g g )Ntest_not_in_gcr1   r"   r   r!   _r   s       r   r   AuditTest.test_not_in_gc  s*     $0@ A
vIIf r&   c                    U R                  SS5      u  pnU(       a  U R                  U5        [        R                  (       a  [	        USS06  U Vs/ s H  oDS   US   4PM     nn/ SQnU R                  XV5        g s  snf )N	test_timern   rl   rm   r   r]   ))
time.sleepr   )r   z0.0625)r   z-1rs   r   s          r   r   AuditTest.test_time  st    %)__['%J"
FIIf??6$t$+126Ra5"Q%.62* 	* 3s   A=c                     U R                  SSSS9u  pnU R                  US5        U R                  SUR                  5       S   5        g )Nr   r"   Tr'   r   zhook failed)r1   assertNotEqualrz   r,   rX   s       r   test_time_failAuditTest.test_time_fail  sN    %)__[&CG &5 &I"
FJ*mV%6%6%8%<=r&   c                     U R                  S5      u  pnU(       a  U R                  U5        [        R                  (       a  [	        USS06  U Vs/ s H  oDS   US   4PM     nnS/nU R                  XV5        g s  snf )N%test_sys_monitoring_register_callbackrl   rm   r   r]   )z sys.monitoring.register_callbackz(None,)rs   r   s          r   r   /AuditTest.test_sys_monitoring_register_callback  sr    %)__5\%]"
FIIf??6$t$+126Ra5"Q%.62CD* 3r   c                 @   [         R                  " S5      nSnU R                  SU5      u  p4nU(       a  U R                  U5        [        R
                  (       a  [        USS06  U Vs/ s H  ofS   US   4PM     nnSS	U< S
34/nU R                  Xx5        g s  snf )N_winapiz+\\.\pipe\LOCAL\test_winapi_createnamed_pipetest_winapi_createnamedpiperl   rm   r   r]   z_winapi.CreateNamedPipe(z, 3, 8)r   )	r   winapi	pipe_namer!   r/   r   r   r   rg   s	            r   r   %AuditTest.test_winapi_createnamedpipe(  s    ,,Y7B	%)__5RT]%^"
FIIf??6$t$+126Ra5"Q%.62.!I=0HIJ* 3s   *Bc                 ^    U R                  S5      u  pnU(       a  U R                  U5        g g )Ntest_assert_unicoder   r   s       r   r   AuditTest.test_assert_unicode7  s*     $0E F
vIIf r&    )'__name__
__module____qualname____firstlineno__maxDiffr   requires_subprocessr   r$   r1   r4   r9   r<   r@   rF   rI   rL   rP   rS   rV   r\   rb   rk   rr   requires_resourcer{   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   r&   r   r	   r	      s    G  "	7 #	7 /4 	
#,:%
$
)4&"


UF

 y)0 *0+&
+
++$+
.
+>
++r&   r	   __main__)r   r   unittesttestr   test.supportr   r   r   SkipTestfindfiler   TestCaser	   r   mainr   r&   r   <module>r      s     
   & " sN##73+@+@


L
MM!!"23i!! iX	 zMMO r&   