a
    ze;                     @   st   d dl Z d dlmZ d dlmZ d dlmZ d dlZd dlZG dd de jZ	G dd de jZ
ed	krpe   dS )
    N)support)StringIO)SortKeyc                   @   s   e Zd ZdZdd ZdS )AddCallersTestCasez$Tests for pstats.add_callers helper.c                 C   sd   ddi}ddd}t ||}| |ddd ddi}ddd}t ||}| |ddd d S )	Na)            )            )r   b)r   r
   r   r   r   r   r   )pstatsZadd_callersassertEqual)selftargetsourceZnew_callers r   &/usr/lib/python3.9/test/test_pstats.pytest_combine_results   s    

z'AddCallersTestCase.test_combine_resultsN)__name__
__module____qualname____doc__r   r   r   r   r   r   
   s   r   c                   @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )StatsTestCasec                 C   s   t d}t|| _d S )Nz
pstats.pck)r   Zfindfiler   Statsstats)r   Z
stats_filer   r   r   setUp   s    
zStatsTestCase.setUpc                 C   s&   t  }tj|d}|| j| j d S )N)stream)r   r   r   addr   )r   r    r   r   r   r   test_add!   s    zStatsTestCase.test_addc                 C   sL   ddddd}|  D ]0\}}| j| | | jj| jj| d  qd S )Nstdnamecallstime
cumulative)r   r   r   r'   )itemsr   
sort_statsr   	sort_typesort_arg_dict_default)r   Z
valid_argsZarg_intZarg_strr   r   r   test_sort_stats_int&   s    
z!StatsTestCase.test_sort_stats_intc                 C   s6   dD ],}| j | | | j j| j j| d  qd S )N)r$   ZncallsZcumtimer&   filenamelinemodulenameZnflZpcallsr#   r%   Ztottimer'   r   r)   r   r*   r+   )r   	sort_namer   r   r   test_sort_stats_string0   s
    
z$StatsTestCase.test_sort_stats_stringc                 C   s:   d}dD ],}| j | | | j j| j j| d  qd S )Nr-   )ffiZfilfileZfilenZfilenaZfilenamr-   r'   r1   )r   Zsortkeyr2   r   r   r   test_sort_stats_partial8   s    
z%StatsTestCase.test_sort_stats_partialc                 C   s8   t D ].}| j| | | jj| jj|j d  qd S )Nr'   )r   r   r)   r   r*   r+   value)r   memberr   r   r   test_sort_stats_enum@   s    z"StatsTestCase.test_sort_stats_enumc                 C   s0   |  t| jjdtj |  t| jjtjd d S )Nr$   )ZassertRaises	TypeErrorr   r)   r   ZTIMEr   r   r   r   test_sort_starts_mixG   s    z"StatsTestCase.test_sort_starts_mixc                 C   s   dd }dd }dd }t  }|  |  |  |  |  t|}| }t|j	 }| 
d| | 
d| | 
d	| d S )
Nc                   S   s   d S Nr   r   r   r   r   pass1P       z3StatsTestCase.test_get_stats_profile.<locals>.pass1c                   S   s   d S r>   r   r   r   r   r   pass2Q   r@   z3StatsTestCase.test_get_stats_profile.<locals>.pass2c                   S   s   d S r>   r   r   r   r   r   pass3R   r@   z3StatsTestCase.test_get_stats_profile.<locals>.pass3r?   rA   rB   )cProfileZProfileenableZcreate_statsr   r   Zget_stats_profilesetZfunc_profileskeysZassertIn)r   r?   rA   rB   ZprZpsZstats_profileZfuncs_calledr   r   r   test_get_stats_profileO   s    
z$StatsTestCase.test_get_stats_profilec                 C   s"   |  tjd | tjtj d S )Nr-   )r   r   ZFILENAMEZassertNotEqualZCALLSr<   r   r   r   test_SortKey_enumb   s    zStatsTestCase.test_SortKey_enumN)r   r   r   r   r"   r,   r3   r7   r:   r=   rG   rH   r   r   r   r   r      s   
r   __main__)Zunittesttestr   ior   r   r   rC   ZTestCaser   r   r   mainr   r   r   r   <module>   s   J