
    /hh                        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	  S SK
r
Sr S SKJr  S SKJr  S r " S	 S
\ R"                  5      r\S:X  a  \ R(                  " 5         gg! \ a    \ R                  " S5      ef = f)    N)	os_helperSHORT_TIMEOUT)make_scriptF)PROCESS_VM_READV_SUPPORTED)get_stack_tracez8Test only runs when _testexternalinspection is availablec                 H    [        XU5      n[        R                  " 5         U$ )N)r   	importlibinvalidate_caches)
script_dirscript_basenamesource	to_returns       F/opt/python-3.13.8/usr/lib/python3.13/test/test_external_inspection.py_make_test_scriptr      s     J@I!    c                      \ rS rSr\R
                  " \R                  S:g  =(       a    \R                  S:g  S5      \R
                  " \R                  S:H  =(       a    \(       + S5      S 5       5       r	\R
                  " \R                  S:g  =(       a    \R                  S:g  S5      \R
                  " \R                  S:H  =(       a    \(       + S5      S 5       5       r
Srg	)
TestGetStackTrace   darwinlinuxz!Test only runs on Linux and MacOSz5Test only runs on Linux with process_vm_readv supportc                    [         R                  " S5      nS n[        R                  " 5        n[        R
                  R                  US5      n[        R                  " U5        U S3n[        R                  " U5        [        USU5      n [        R                  " [        R                  U[        U5      /5      n[        US5       nUR!                  5       n	S S S 5        U R#                  W	S5        [%        UR&                  5      n[        R,                  " U5        WR/                  5         UR1                  5         UR3                  [4        S9  / S	Qn
U R#                  X*5        S S S 5        g ! , (       d  f       N= f! [(         a    U R+                  S5         Nf = f! [        R,                  " U5        WR/                  5         UR1                  5         UR3                  [4        S9  f = f! , (       d  f       g = f)
Na              import time, sys, os
            def bar():
                for x in range(100):
                    if x == 50:
                        baz()
            def baz():
                foo()

            def foo():
                fifo = sys.argv[1]
                with open(sys.argv[1], "w") as fifo:
                    fifo.write("ready")
                time.sleep(1000)

            bar()
            
script_pkgz	/the_fifoscriptrreadyz0Insufficient permissions to read the stack trace)timeout)foobazbarz<module>)textwrapdedentr   temp_dirospathjoinmkdirmkfifor   
subprocessPopensys
executablestropenreadassertEqualr   pidPermissionErrorskipTestremovekill	terminatewaitr   )selfr   stack_tracework_dirr   fifoscript_namep	fifo_fileresponseexpected_stack_traces              r   test_remote_stack_trace)TestGetStackTrace.test_remote_stack_trace   sz     " " !Xh=JHHZ Zy)DIIdO+J&IK.$$cnnkCI%NO$_	(~~/H %  73-aee4 		$}-$  [?7 "! %_ # RPQR 		$}-% "!sV   AG1<F
E1/F
AG11
E?	;FF F#F  F##AG..G11
G?c                 j    [        [        R                  " 5       5      nU R                  US   S5        g )Nr   test_self_trace)r   r#   getpidr/   )r7   r8   s     r   rC   !TestGetStackTrace.test_self_traceM   s)     &biik2Q):;r    N)__name__
__module____qualname____firstlineno__unittestskipIfr*   platformr   r@   rC   __static_attributes__rF   r   r   r   r      s    __S\\X-I#,,'2IKno__S\\W,O5O1O  RI  J/@ J p/@b __S\\X-I#,,'2IKno__S\\W,O5O1O  RI  J< J p<r   r   __main__)rK   r#   r    r	   r*   test.supportr   r   test.support.script_helperr   r(   r   _testexternalinspectionr   ImportErrorSkipTestr   TestCaser   rG   mainrF   r   r   <module>rW      s     	   
 1 2 " XB7
9<)) 9<v zMMO G  X


V
WWXs   A' 'B 