Your IP : 216.73.216.213


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/test_dtrace.cpython-310.opt-2.pyc

o

0�i��@s�ddlZddlZddlZddlZddlZddlZddlZddlm	Z	dd�Z
dd�ZGdd�d�ZGd	d
�d
e�Z
Gdd�de�ZGd
d�d�ZGdd�deej�ZGdd�deej�ZGdd�deej�ZGdd�deej�Zedkrze��dSdS)�N)�findfilecCstj�t|dd��S)NZ
dtracedata)Zsubdir)�os�path�abspathr)�filename�r�7/opt/alt/python310/lib64/python3.10/test/test_dtrace.pyrsrc	Csn	t�dd|�}zdd�|��D�}|jdd�d�dd�|D�}d	�|�WSttfy6td
�|���w)Nz\[[0-9]+ refs\]�cSs$g|]}|r|�d�s|�d��qS)�#�	)�
startswith�split��.0�rowrrr�
<listcomp>s���z*normalize_trace_output.<locals>.<listcomp>cSst|d�S)Nr)�int)rrrr�<lambda> sz(normalize_trace_output.<locals>.<lambda>)�keycSsg|]}|d�qS)�rrrrrr!s�
z%tracer produced unparsable output:
{})	�re�sub�
splitlines�sort�join�
IndexError�
ValueError�AssertionError�format)�output�resultrrr�normalize_trace_outputs���r"c@sHeZdZdZdZgZddd�Zddd�Zddd�Zddd	�Z	d
d�Z
dS)
�TraceBackendNcCsvt|jt||j�t|d�|d��}tt||jd���}|����}Wd�||fS1s2wY||fS)Nz.py)�script_file�python_file�optimize_pythonz	.expected)r"�trace_pythonr�	EXTENSION�open�read�rstrip)�self�namer&�
actual_output�f�expected_outputrrr�run_case.s
�
��zTraceBackend.run_casecCs |j|g}|r|d|g7}|S)Nz-c)�COMMAND)r,r$�
subcommand�commandrrr�generate_trace_command9sz#TraceBackend.generate_trace_commandcCs.|�||�}tj|tjtjdd���\}}|S)NT)�stdout�stderrZuniversal_newlines)r5�
subprocess�Popen�PIPEZSTDOUTZcommunicate)r,r$r3r4r6�_rrr�trace?s��zTraceBackend.tracecCs<g}|r|�dg|�d�tjg||g�}|�||�S)Nz-O� )�extendr�sys�
executabler<)r,r$r%r&Zpython_flagsr3rrrr'Gs
zTraceBackend.trace_pythonc
Csxz|�td|j��}|��}Wntttfy)}z
t|�}WYd}~nd}~ww|dkr:t�	d�
|jd|���dS)N�
assert_usablezprobe: successz{}(1) failed: {}r)r<rr(�strip�FileNotFoundError�NotADirectoryError�PermissionError�str�unittestZSkipTestrr2)r,r ZfnferrrrANs����zTraceBackend.assert_usable�N)�__name__�
__module__�__qualname__r(r2ZCOMMAND_ARGSr1r5r<r'rArrrrr#)s



r#c@seZdZdZgd�ZdS)�
DTraceBackendz.d)Zdtracez-qz-sN�rIrJrKr(r2rrrrrLZ�rLc@seZdZdZddgZdS)�SystemTapBackendz.stpZstapz-gNrMrrrrrO_rNrOc@sLeZdZdZdZdZedd��Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�ZdS)�
TraceTestsNrcCs|j��dSrH)�backendrA�r,rrr�
setUpClasslszTraceTests.setUpClasscCs&|jj||jd�\}}|�||�dS)N)r&)rQr1r&�assertEqual)r,r-r.r0rrrr1ps
�zTraceTests.run_casecC�|�d�dS)NZ
call_stack�r1rRrrr�test_function_entry_returnu�z%TraceTests.test_function_entry_returncs|	tgd��}ttd���}|���Wd�n1swY��fdd�}|d�D]}|�|j�q,��t�|�dS)N)Z
CALL_FUNCTIONZCALL_FUNCTION_EXZCALL_FUNCTION_KWz
call_stack.pycsFt�dd�jd�}|jD]}t|tj�r |j|kr t�|�SqgS)Nz<string>�exec)�sourcer�mode�optimize)	�compiler&�	co_consts�
isinstance�types�CodeType�co_name�disZget_instructions)�funcname�code�c�Zcode_stringr,rr�get_function_instructions�s�
�zFTraceTests.test_verify_call_opcodes.<locals>.get_function_instructions�start)�setr)rr*�discard�opnamerT)r,Zopcodesr/rhZinstructionrrgr�test_verify_call_opcodesxs
�z#TraceTests.test_verify_call_opcodescCrU)NZgcrVrRrrr�test_gc�rXzTraceTests.test_gccCrU)N�linerVrRrrr�	test_line�rXzTraceTests.test_line)
rIrJrKZmaxDiffrQr&�classmethodrSr1rWrmrnrprrrrrPds
rPc@�eZdZe�ZdZdS)�DTraceNormalTestsrN�rIrJrKrLrQr&rrrrrs��rsc@rr)�DTraceOptimizedTests�Nrtrrrrrv�rurvc@rr)�SystemTapNormalTestsrN�rIrJrKrOrQr&rrrrrx�rurxc@rr)�SystemTapOptimizedTestsrwNryrrrrrz�rurz�__main__)rcZos.pathrrr8r?r`rGZtest.supportrrr"r#rLrOrPZTestCasersrvrxrzrI�mainrrrr�<module>s*14�