a
    "hM                     @   s   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 deZG dd	 d	ejZd
d Zi Zded< ded< ded< edkre  dS )z#Test suite for the cProfile module.    N)ProfileTestregenerate_expected_output)assert_python_failure)supportc                   @   s:   e Zd ZejZeZdZdd Zdd Z	dd Z
dd	 Zd
S )CProfileTestz{built-in method builtins.max}c                 C   s   t S N)_ProfileOutput)self r
   :/opt/python-3.9.21/usr/lib/python3.9/test/test_cprofile.pyget_expected_output   s    z CProfileTest.get_expected_outputc                 C   st   dd l }t P}|dd }|  |d}|  |  | |jj	t
 W d    n1 sf0    Y  d S )Nr   c                   S   s   t S r   )intr
   r
   r
   r   <lambda>       z>CProfileTest.test_bad_counter_during_dealloc.<locals>.<lambda>   )_lsprofr   Zcatch_unraisable_exceptionZProfilerenabledisableclearZassertEqualZ
unraisableexc_type	TypeError)r	   r   cmobjr
   r
   r   test_bad_counter_during_dealloc   s    

z,CProfileTest.test_bad_counter_during_deallocc                 C   sH   |   }| |j |  | t | |  | t d  d S r   )profilerclass
addCleanupr   r   assertIssys
getprofile)r	   profr
   r
   r   test_profile_enable_disable"   s    z(CProfileTest.test_profile_enable_disablec                 C   sh   |   }| |j |,}| || | t | W d    n1 sJ0    Y  | t d  d S r   )r   r   r   r   r   r   )r	   r   Z"_CProfileTest__enter__return_valuer
   r
   r   test_profile_as_context_manager-   s    .z,CProfileTest.test_profile_as_context_managerN)__name__
__module____qualname__cProfileZProfiler   ZprofilermoduleZexpected_max_outputr   r   r    r!   r
   r
   r
   r   r      s   r   c                   @   s   e Zd Zdd ZdS )TestCommandLinec                 C   s0   t dddd\}}}| |d | d| d S )Nz-mr%   z-sdemor   s!   option -s: invalid choice: 'demo')r   ZassertGreaterZassertIn)r	   rcouterrr
   r
   r   	test_sort>   s    zTestCommandLine.test_sortN)r"   r#   r$   r+   r
   r
   r
   r   r&   =   s   r&   c                   C   s"   dt jvrt  n
ttt d S )Nz-r)r   argvunittestmainr   __file__r   r
   r
   r
   r   r.   D   s    

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)Z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)Z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__)Zprint_callees__main__)__doc__r   r-   r%   Ztest.test_profiler   r   Ztest.support.script_helperr   testr   r   ZTestCaser&   r.   r   r"   r
   r
   r
   r   <module>   s   0	
