
    ;eM                         d Z ddlZddlZddlZddlmZmZ ddlmZ ddl	m
Z
  G d de          Z G d d	ej                  Zd
 Zi Zded<   ded<   ded<   edk    r e             dS dS )z#Test suite for the cProfile module.    N)ProfileTestregenerate_expected_output)assert_python_failure)supportc                   <    e Zd Zej        ZeZdZd Zd Z	d Z
d ZdS )CProfileTestz{built-in method builtins.max}c                     t           S N)_ProfileOutput)selfs    )/usr/lib/python3.11/test/test_cprofile.pyget_expected_outputz CProfileTest.get_expected_output   s        c                 ~   dd l }t          j                    5 }|                    d           }|                                 |                    d          }|                                 |                                 |                     |j        j	        t                     d d d            d S # 1 swxY w Y   d S )Nr   c                      t           S r
   )int r   r   <lambda>z>CProfileTest.test_bad_counter_during_dealloc.<locals>.<lambda>   s    3 r      )_lsprofr   catch_unraisable_exceptionProfilerenabledisableclearassertEqual
unraisableexc_type	TypeError)r   r   cmobjs       r   test_bad_counter_during_deallocz,CProfileTest.test_bad_counter_during_dealloc   s    /11 	@R"";;//CJJLLL""1%%CKKMMMIIKKKR]3Y???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   BB22B69B6c                 N   |                                  }|                     |j                   |                                 |                     t          j                    |           |                                 |                     t          j                    d            d S r
   )profilerclass
addCleanupr   r   assertIssys
getprofile)r   profs     r   test_profile_enable_disablez(CProfileTest.test_profile_enable_disable"   s    !!##%%%cn&&---cn&&-----r   c                 ^   |                                  }|                     |j                   |5 }|                     ||           |                     t	          j                    |           d d d            n# 1 swxY w Y   |                     t	          j                    d            d S r
   )r$   r%   r   r&   r'   r(   )r   r)   "_CProfileTest__enter__return_values      r   test_profile_as_context_managerz,CProfileTest.test_profile_as_context_manager-   s    !!##%%% 	2*MM$ 5666 MM#.**D111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	cn&&-----s   >A;;A?A?N)__name__
__module____qualname__cProfileProfiler$   profilermoduleexpected_max_outputr   r"   r*   r-   r   r   r   r   r      sf        $MN:  @ @ @	. 	. 	.. . . . .r   r   c                       e Zd Zd ZdS )TestCommandLinec                     t          dddd          \  }}}|                     |d           |                     d|           d S )Nz-mr1   z-sdemor   s!   option -s: invalid choice: 'demo')r   assertGreaterassertIn)r   rcouterrs       r   	test_sortzTestCommandLine.test_sort>   sL    ,T:tVLLC2q!!!:C@@@@@r   N)r.   r/   r0   r>   r   r   r   r6   r6   =   s(        A A A A Ar   r6   c                      dt           j        vrt          j                     d S t	          t
          t                     d S )Nz-r)r'   argvunittestmainr   __file__r   r   r   r   rB   rB   D   s4    38"8\:::::r   a         28    0.028    0.001    0.028    0.001 profilee.py:110(__getattr__)
        1    0.270    0.270    1.000    1.000 profilee.py:25(testfunc)
     23/3    0.150    0.007    0.170    0.057 profilee.py:35(factorial)
       20    0.020    0.001    0.020    0.001 profilee.py:48(mul)
        2    0.040    0.020    0.600    0.300 profilee.py:55(helper)
        4    0.116    0.029    0.120    0.030 profilee.py:73(helper1)
        2    0.000    0.000    0.140    0.070 profilee.py:84(helper2_indirect)
        8    0.312    0.039    0.400    0.050 profilee.py:88(helper2)
        8    0.064    0.008    0.080    0.010 profilee.py:98(subhelper)print_statsa  profilee.py:110(__getattr__)                      <-      16    0.016    0.016  profilee.py:98(subhelper)
profilee.py:25(testfunc)                          <-       1    0.270    1.000  <string>:1(<module>)
profilee.py:35(factorial)                         <-       1    0.014    0.130  profilee.py:25(testfunc)
                                                        20/3    0.130    0.147  profilee.py:35(factorial)
                                                           2    0.006    0.040  profilee.py:84(helper2_indirect)
profilee.py:48(mul)                               <-      20    0.020    0.020  profilee.py:35(factorial)
profilee.py:55(helper)                            <-       2    0.040    0.600  profilee.py:25(testfunc)
profilee.py:73(helper1)                           <-       4    0.116    0.120  profilee.py:55(helper)
profilee.py:84(helper2_indirect)                  <-       2    0.000    0.140  profilee.py:55(helper)
profilee.py:88(helper2)                           <-       6    0.234    0.300  profilee.py:55(helper)
                                                           2    0.078    0.100  profilee.py:84(helper2_indirect)
profilee.py:98(subhelper)                         <-       8    0.064    0.080  profilee.py:88(helper2)
{built-in method builtins.hasattr}                <-       4    0.000    0.004  profilee.py:73(helper1)
                                                           8    0.000    0.008  profilee.py:88(helper2)
{built-in method sys.exc_info}                    <-       4    0.000    0.000  profilee.py:73(helper1)
{method 'append' of 'list' objects}               <-       4    0.000    0.000  profilee.py:73(helper1)print_callersa;  <string>:1(<module>)                              ->       1    0.270    1.000  profilee.py:25(testfunc)
profilee.py:110(__getattr__)                      ->
profilee.py:25(testfunc)                          ->       1    0.014    0.130  profilee.py:35(factorial)
                                                           2    0.040    0.600  profilee.py:55(helper)
profilee.py:35(factorial)                         ->    20/3    0.130    0.147  profilee.py:35(factorial)
                                                          20    0.020    0.020  profilee.py:48(mul)
profilee.py:48(mul)                               ->
profilee.py:55(helper)                            ->       4    0.116    0.120  profilee.py:73(helper1)
                                                           2    0.000    0.140  profilee.py:84(helper2_indirect)
                                                           6    0.234    0.300  profilee.py:88(helper2)
profilee.py:73(helper1)                           ->       4    0.000    0.004  {built-in method builtins.hasattr}
profilee.py:84(helper2_indirect)                  ->       2    0.006    0.040  profilee.py:35(factorial)
                                                           2    0.078    0.100  profilee.py:88(helper2)
profilee.py:88(helper2)                           ->       8    0.064    0.080  profilee.py:98(subhelper)
profilee.py:98(subhelper)                         ->      16    0.016    0.016  profilee.py:110(__getattr__)
{built-in method builtins.hasattr}                ->      12    0.012    0.012  profilee.py:110(__getattr__)print_callees__main__)__doc__r'   rA   r1   test.test_profiler   r   test.support.script_helperr   testr   r   TestCaser6   rB   r   r.   r   r   r   <module>rM      s%   ) ) 



   E E E E E E E E < < < < < <      .. .. .. .. ..; .. .. ..`A A A A Ah' A A A; ; ; 	!K} #k "#p $ zDFFFFF r   