HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_trace.cpython-37.opt-2.pyc
B

��g�E�@s�ddlZddlZddlmZmZmZmZddlmZm	Z	ddl
Z
ddlZddlZddlm
Z
ddlmZdd�Zdd	�Zd
d�Zdd
�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�ZGd d!�d!e�ZGd"d#�d#ej�Z Gd$d%�d%ej�Z!Gd&d'�d'ej�Z"Gd(d)�d)ej�Z#Gd*d+�d+ej�Z$Gd,d-�d-ej�Z%Gd.d/�d/ej�Z&Gd0d1�d1ej�Z'e(d2k�r�e�)�dS)3�N)�TESTFN�rmtree�unlink�captured_stdout)�assert_python_ok�assert_python_failure)�Trace)�testmodcCs|�d�r|dd�}|S)Nz.pyc���)�endswith)�filename�r
�+/usr/local/lib/python3.7/test/test_trace.py�
fix_ext_pys
rcCs$tj�tj�t��d}tt�|fS)Nr)�os�path�splitext�basename�__file__r)�modnamer
r
r�my_file_and_modnamesrcCs|jjS)N)�__code__�co_firstlineno)�funcr
r
r�get_firstlinenosrcCs|}|}||}|S)Nr
)�x�y�a�b�cr
r
r�traced_func_linear$sr cCs"|}xtd�D]}||7}qW|S)N�)�range)rrr�ir
r
r�traced_func_loop*sr$cCs||t�d�S)N�)r	r)rrr
r
r�traced_func_importing0sr&cCst||�}||S)N)r )rrr
r
r�traced_func_simple_caller3s
r'cCst|�}|t||�7}|S)N)r'r&)r�kr
r
r�traced_func_importing_caller7sr)ccs$d}xt|�D]}||VqWdS)Nr!)r")�numrr#r
r
r�traced_func_generator<sr+cCs"d}xtd�D]}||7}qWdS)Nr�
)r+)r(r#r
r
r�traced_func_calling_generatorAsr-cCs|dS)N�r
)r*r
r
r�traced_doublerFsr/cOs||fS)Nr
)�args�kwargsr
r
r�traced_capturerIsr2cCsd}dd�t|�D�}|S)Nr,cSsg|]}t|��qSr
)r/)�.0r#r
r
r�
<listcomp>Nsz4traced_caller_list_comprehension.<locals>.<listcomp>)r")r(Zmylistr
r
r� traced_caller_list_comprehensionLsr5c@s<eZdZdd�Zdd�Zdd�Zedd��Zed	d
��Z	dS)�TracedClasscCs
||_dS)N)r)�selfrr
r
r�__init__SszTracedClass.__init__cCs
|j|S)N)r)r7rr
r
r�inst_method_linearVszTracedClass.inst_method_linearcCs|�|�}|t||�S)N)r9r )r7rrr
r
r�inst_method_callingYs
zTracedClass.inst_method_callingcCs|dS)Nr.r
)�clsrr
r
r�class_method_linear]szTracedClass.class_method_linearcCs|dS)Nr.r
)rr
r
r�static_method_linearasz TracedClass.static_method_linearN)
�__name__�
__module__�__qualname__r8r9r:�classmethodr<�staticmethodr=r
r
r
rr6Rs
r6c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestLineCountscCs2|�tjt���tddddd�|_tt�|_dS)Nr%r)�count�trace�
countfuncs�countcallers)	�
addCleanup�sys�settrace�gettracer�tracerrr�my_py_filename)r7r
r
r�setUpkszTestLineCounts.setUpcCsf|j�tdd�}|�|d�i}tt�}x$tdd�D]}d||j||f<q4W|�|j��j|�dS)Nr.r!�r%)	rL�runfuncr �assertEqualrr"rM�results�counts)r7�result�expected�firstlinenor#r
r
r�test_traced_func_linearpsz&TestLineCounts.test_traced_func_linearc	Csl|j�tdd�tt�}|j|dfd|j|dfd|j|dfd|j|dfdi}|�|j��j|�dS)Nr.�r%�r!�)rLrPr$rrMrQrRrS)r7rVrUr
r
r�test_traced_func_loop|sz$TestLineCounts.test_traced_func_loopcCs^|j�tdd�tt�}|j|dfdttj�dfdttj�dfdi}|�|j�	�j
|�dS)Nr.r!r%rX)rLrPr&rrMrr	rrQrRrS)r7rVrUr
r
r�test_traced_func_importing�sz)TestLineCounts.test_traced_func_importingc
Cs�|j�t�tt�}tt�}|j|dfd|j|dfd|j|dfd|j|dfd|j|dfd|j|dfdi}|�|j��j|�dS)Nr%r.�rXr,)	rLrPr-rr+rMrQrRrS)r7�firstlineno_callingZfirstlineno_genrUr
r
r�test_trace_func_generator�sz(TestLineCounts.test_trace_func_generatorc	Csp|j�t�tt�}tt�}|j|dfd|j|dfd|j|dfd|j|dfdi}|�|j��j|�dS)Nr%r.�rXr,)	rLrPr5rr/rMrQrRrS)r7r^Zfirstlineno_calledrUr
r
r�test_trace_list_comprehension�sz,TestLineCounts.test_trace_list_comprehensioncCslxfdD]^}tddddd�}td�}t||�}|�|d�t|�}|j|dfdi}|�|��j|�qWdS)N)r9r%r)rDrErFrG��)	rr6�getattrrPrrMrQrRrS)r7ZmethnamerLZ
traced_obj�methodrVrUr
r
r�test_linear_methods�s

z"TestLineCounts.test_linear_methodsN)
r>r?r@rNrWr[r\r_rarfr
r
r
rrCisrCc@seZdZdd�Zdd�ZdS)�TestRunExecCountscCs tt�|_|�tjt���dS)N)rrrMrHrIrJrK)r7r
r
rrN�s
zTestRunExecCounts.setUpc	Cs�tddddd�|_d}t|td�}|j�|t�t��tt�}|j	|dfd|j	|dfd|j	|dfd	|j	|d
fdi}x,|�
�D] }|�|j��j
|||�q�WdS)Nr%r)rDrErFrGztraced_func_loop(2, 5)�execr.rYrXr!rZ)rrL�compilerZrunctx�globals�varsrr$rM�keysrQrRrS)r7�coderVrUr(r
r
r�test_exec_counts�sz"TestRunExecCounts.test_exec_countsN)r>r?r@rNrnr
r
r
rrg�srgc@sVeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Ze�	e
ed�oDe��d�d
d��Z
dS)�	TestFuncscCs8|�tjt���tdddd�|_t�|_t��|_dS)Nrr%)rDrErF)	rHrIrJrKrrLr�filemod�_saved_tracefunc)r7r
r
rrN�szTestFuncs.setUpcCs|jdk	rt�|j�dS)N)rqrIrJ)r7r
r
r�tearDown�s
zTestFuncs.tearDowncCs>|j�td�|jdd|jddi}|�|j��j|�dS)Nr%)r')r )rLrPr'rprQrR�calledfuncs)r7rUr
r
r�test_simple_caller�s
zTestFuncs.test_simple_callerc	Cst|jjtddddd�}|�|dddd�f�|jjtdd�}|�|dd	dif�|�t��|j��WdQRXdS)
Nr%r.rXrZ)r7r)r%r.)r�argr
ru)rLrPr2rQZassertRaises�	TypeError)r7Zresr
r
r�test_arg_errors�szTestFuncs.test_arg_errorscCsb|j�td�|jdd|jdd|jdd|jddttj�ddfdi}|�|j��j	|�dS)Nr%)r')r )r))r&r	r)
rLrPr)rprr	rrQrRrs)r7rUr
r
r�test_loop_caller_importing�s



z$TestFuncs.test_loop_caller_importingrKz3pre-existing trace function throws off measurementscCsRtd�}|j�|jd�|jdd|jdd|jddi}|�|j��j|�dS)Nrcr%)zTracedClass.inst_method_calling)zTracedClass.inst_method_linear)r )r6rLrPr:rprQrRrs)r7�objrUr
r
r�test_inst_method_callings

z"TestFuncs.test_inst_method_callingN)r>r?r@rNrrrtrwrx�unittest�skipIf�hasattrrIrKrzr
r
r
rro�s	roc@s6eZdZdd�Ze�eed�o$e��d�dd��Z	dS)�TestCallerscCs.|�tjt���tdddd�|_t�|_dS)Nrr%)rDrErG)rHrIrJrKrrLrrp)r7r
r
rrNszTestCallers.setUprKz3pre-existing trace function throws off measurementscCs�|j�td�tj�tj�ddddf|jdfd|jd|jdfd|jd|jdfd|jd|jd	fd|jd	t	t
j�d
dffdi}|�|j��j
|�dS)Nr%rz.pyrEz
Trace.runfunc)r))r')r )r&r	r)rLrPr)rrrrErrprr	rQrRZcallers)r7rUr
r
rrxsz&TestCallers.test_loop_caller_importingN)
r>r?r@rNr{r|r}rIrKrxr
r
r
rr~sr~c@s>eZdZdd�Zdd�Zddd�Zdd	�Zd
d�Zdd
�ZdS)�TestCoveragecCs|�tjt���dS)N)rHrIrJrK)r7r
r
rrN3szTestCoverage.setUpcCstt�tt�dS)N)rrr)r7r
r
rrr6szTestCoverage.tearDown�_import test.support, test.test_pprint;test.support.run_unittest(test.test_pprint.QueryTestCase)cCs&|�|�|��}|jddtd�dS)NT)Zshow_missingZsummaryZcoverdir)�runrRZ
write_resultsr)r7rL�cmd�rr
r
r�	_coverage:s
zTestCoverage._coveragec	Csptjddd�}t��}|�|�WdQRX|��}|�d|�|�d|�t�t�}|�d|�|�d|�dS)Nrr%)rErDz	pprint.pyzcase.pyzpprint.coverzunittest.case.cover)	rErrr��getvalue�assertInr�listdirr)r7rL�stdout�filesr
r
r�
test_coverageAs
zTestCoverage.test_coveragec	Csttj�tj�tj��}tjtjtj	|gddd�}t
��}|�|�WdQRXtj�t
�rpt�t
�}|�|dg�dS)Nrr%)Z
ignoredirsrErDz_importlib.cover)rr�normpath�dirnamerrErrI�base_prefix�base_exec_prefixrr��existsrr�rQ)r7ZlibpathrLr�r�r
r
r�test_coverage_ignoreLs
z!TestCoverage.test_coverage_ignorec
	Cs�tjddd�}d}|tjkr$tj|=d}t��}|�||�WdQRX|�d�|��i}x>|D]6}|��dd�\}}}	t	|�t	|dd��f||	<qbWt�
tj|j�}|�||�|�
||d�dS)	Nrr%)rErDztest.tracedmodules.testmodz<import test.tracedmodules.testmod as t;t.func(0); t.func2();rXr
)r!�d)rErrI�modulesrr��seek�readline�split�intZ_fullmodnamerr�rQ)
r7rLrr�r�Zcoverage�line�linesZcov�moduler
r
r�test_issue9936Xs 


 zTestCoverage.test_issue9936N)r�)	r>r?r@rNrrr�r�r�r�r
r
r
rr2s
rc@seZdZdd�ZdS)�Test_IgnorecCs�tjj}t�ddg|dd�g�}|�|�dd��|�|�dd��|�|�dd	��|�|�|ddd
�d��|�|�|dd�d
��|�|�|dd
�d��dS)Nrzy.zZfooZbarzx.pyzxy.pyZxyzy.pyrzbaz.pyZbazzz.py�z)rr�joinrEZ_Ignore�
assertTrue�names�assertFalse)r7Zjn�ignorer
r
r�test_ignoredqszTest_Ignore.test_ignoredN)r>r?r@r�r
r
r
rr�psr�c@s4eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdS)�TestCoverageCommandLineOutputztmp.pyz	tmp.coverc	Cs,t|jd��}|�t�d��WdQRXdS)N�wzc                x = 42
                if []:
                    print('unreachable')
            )�open�codefile�write�textwrap�dedent)r7�fr
r
rrN�sz#TestCoverageCommandLineOutput.setUpcCst|j�t|j�dS)N)rr��	coverfile)r7r
r
rrr�s
z&TestCoverageCommandLineOutput.tearDownc	Cs�tj�tj�tj��}tj�|d�}t|�d��|j	g}t
|�\}}}|�|d�|�tj�
|��|�tj�
|j��t|j��}|�|��d�WdQRXdS)Nztrace.coverz-m trace --count�z<    1: x = 42
    1: if []:
           print('unreachable')
)rrr��abspathrErr�rr�r�rrQr�r�r�r�r��read)r7ZtracedirZtracecoverpath�argv�statusr��stderrr�r
r
r�%test_cover_files_written_no_highlight�s
zCTestCoverageCommandLineOutput.test_cover_files_written_no_highlightc	Csbd��|jg}t|�\}}}|�tj�|j��t|j��}|�	|�
�t�d��WdQRXdS)Nz-m trace --count --missingzx                    1: x = 42
                    1: if []:
                >>>>>>     print('unreachable')
            )
r�r�rr�rrr�r�r�rQr�r�r�)r7r�r�r�r�r�r
r
r�'test_cover_files_written_with_highlight�szETestCoverageCommandLineOutput.test_cover_files_written_with_highlightN)	r>r?r@r�r�rNrrr�r�r
r
r
rr�}sr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestCommandLinecCs8d}x.|D]&^}}td|���^}}|�||�q
WdS)N))s3filename is missing: required with the main optionsz-lz-T)s8cannot specify both --listfuncs and (--trace or --count)z-lc)s>argument -R/--no-report: not allowed with argument -r/--reportz-rR)sLmust specify one of --trace, --count, --report, --listfuncs, or --trackcallsz-g)s-r/--report requires -f/--filez-r)s3--summary can only be used with --count or --reportz-sT)sunrecognized arguments: -yz-y�-mrE)r�rE)rr�)r7�_errors�messager0�_r�r
r
r�
test_failures�szTestCommandLine.test_failuresc	CsPttd��<}|�tt�|�d�tdddt�\}}}|�d|�WdQRXdS)Nr�za = 1
z-mrEz-lsfunctions called:)r�rrHrr�rr�)r7�fdr�r�r�r
r
r�test_listfuncs_flag_success�s

z+TestCommandLine.test_listfuncs_flag_successc	Cslttd��&}|�tt�|�d�|�d�WdQRXtt�\}}}tdddt�\}}}|�|��|�dS)Nr�zimport sys
zprint(type(sys.argv))
z-mrEz-l)r�rrHrr�rr��strip)r7r�r�Z
direct_stdoutr�Ztrace_stdoutr
r
r�test_sys_argv_list�s
z"TestCommandLine.test_sys_argv_listc	Cs�t�d�}t�d�}t|d��.}|�t|�|�t|�|�t�d��WdQRXtddd|�\}}}|��}|�	|d�|�
d	|�|�
d
t�d|�d�|�dS)
Nz.pyz.coverr�z�                x = 1
                y = 2

                def f():
                    return x + y

                for i in range(10):
                    f()
            z-mrEz-csrzlines   cov%   module   (path)z6   100%   z   (�))rr�rHrr�r�r�r�decoderQr�)r7rZ
coverfilenamer�r�r�r�r
r
r�test_count_and_summary�s

	z&TestCommandLine.test_count_and_summaryN)r>r?r@r�r�r�r�r
r
r
rr��s

r��__main__)*rrIZtest.supportrrrrZtest.support.script_helperrrr�r{rErZtest.tracedmodulesr	rrrr r$r&r'r)r+r-r/r2r5�objectr6ZTestCaserCrgror~rr�r�r�r>�mainr
r
r
r�<module>s@
Z7>
/6