
    dafk                         d dl Z d dlZd dlmZ ddlmZmZ d Z ej                   ej                         d       ej                  d       G d d	e                    Zy)
    N)support   )setup_moduleDebuggerTestsc                      t                y )N)r        7/root/Python-3.12.4/Lib/test/test_gdb/test_cfunction.pysetUpModuler      s    Nr	   z&Python was compiled with optimizationscpuc                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
CFunctionTestsc                 \    | j                  ||ddgd      }| j                  d| |       y )Nbtzpy-btT)
breakpointcmds_after_breakpointignore_stderrz<built-in method )get_stack_traceassertIn)self	func_namecmd
gdb_outputs       r
   checkzCFunctionTests.check   sA    )) #'/  * 

 	))5zBr	   c                 H   t         j                  r
t                dD ]w  }| j                  | d|       5  | d| d| d}t	        j
                  d| d      }t         j                  rt        d| d	       | j                  ||       d
d
d
       y y
# 1 sw Y   xY w)zAVerify that "py-bt" displays invocations of PyCFunction instances)	_testcapiz_testcapi.MethClassz_testcapi.MethClass()z_testcapi.MethStatic().()z]
                    import _testcapi
                    def foo():
                        zh
                    def bar():
                        foo()
                    bar()
                z  test call: T)flushN)r   verboseprintsubTesttextwrapdedentr   )r   r   argsobjcallr   s         r
   check_pycfunctionz CFunctionTests.check_pycfunction%   s     ??G
 	+C Qyk23 +a	{!D63oo +  '  ??M$0=

9c*+ +	++ +s   ABB!	c                 (    | j                  dd       y )Nmeth_noargs r)   r   s    r
   test_pycfunction_noargsz&CFunctionTests.test_pycfunction_noargsE   s    }b1r	   c                 (    | j                  dd       y )Nmeth_oz[]r-   r.   s    r
   test_pycfunction_oz!CFunctionTests.test_pycfunction_oH   s    x.r	   c                 (    | j                  dd       y )Nmeth_varargsr,   r-   r.   s    r
   test_pycfunction_varargsz'CFunctionTests.test_pycfunction_varargsK   s    ~r2r	   c                 (    | j                  dd       y )Nmeth_varargs_keywordsr,   r-   r.   s    r
   !test_pycfunction_varargs_keywordsz0CFunctionTests.test_pycfunction_varargs_keywordsN   s    6;r	   c                 (    | j                  dd       y )Nmeth_fastcallr,   r-   r.   s    r
   test_pycfunction_fastcallz(CFunctionTests.test_pycfunction_fastcallQ   s    3r	   c                 (    | j                  dd       y )Nmeth_fastcall_keywordsr,   r-   r.   s    r
   "test_pycfunction_fastcall_keywordsz1CFunctionTests.test_pycfunction_fastcall_keywordsT   s    7<r	   N)__name__
__module____qualname__r   r)   r/   r2   r5   r8   r;   r>   r   r	   r
   r   r      s,    
C*+@2/3<4=r	   r   )r$   unittesttestr   utilr   r   r   skipIfpython_is_optimizedrequires_resourcer   r   r	   r
   <module>rH      se       - ,,,.9;5!F=] F= ";F=r	   