Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_dtrace.cpython-38.opt-1.pyc
U

>��g��@s�ddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
dd�Zdd�ZGdd�d�Z
Gd	d
�d
e
�ZGdd�de
�ZGd
d�dej�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�Zdd�Zedkr�e�dS)�N)�findfile�run_unittestcCstj�t|dd��S)NZ
dtracedata)Zsubdir)�os�path�abspathr)�filename�r�//opt/cppython/lib/python3.8/test/test_dtrace.pyrsrc	Csvt�dd|�}z<dd�|��D�}|jdd�d�dd�|D�}d	�|�WSttfk
rptd
�|���YnXdS)aMNormalize DTrace output for comparison.

    DTrace keeps a per-CPU buffer, and when showing the fired probes, buffers
    are concatenated. So if the operating system moves our thread around, the
    straight result can be "non-causal". So we add timestamps to the probe
    firing, sort by that field, then strip it from the outputz\[[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> �z(normalize_trace_output.<locals>.<lambda>)�keycSsg|]}|d�qS)�rrrrr	r!s�
z&tracer produced unparseable output:
{}N)	�re�sub�
splitlines�sort�join�
IndexError�
ValueError�AssertionError�format)�output�resultrrr	�normalize_trace_outputs	��r$c@sHeZdZdZdZgZddd�Zd
dd�Zddd�Zddd	�Z	d
d�Z
dS)�TraceBackendNc	Cs\t|jt||j�t|d�|d��}tt||jd���}|����}W5QRX||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�stderr�universal_newlines)r7�
subprocess�Popen�PIPE�STDOUT�communicate)r.r&r5r6r8�_rrr	�trace?s�zTraceBackend.tracecCs<g}|r|�dg|�d�tjg||g�}|�||�S)Nz-O� )�extendr�sys�
executablerA)r.r&r'r(Zpython_flagsr5rrr	r)Gs
zTraceBackend.trace_pythonc
Csvz |�td|j��}|��}Wn0tttfk
rP}zt|�}W5d}~XYnX|dkrrt�	d�
|jd|���dS)N�
assert_usablezprobe: successz{}(1) failed: {}r)rArr*�strip�FileNotFoundError�NotADirectoryError�PermissionError�str�unittestZSkipTestr!r4)r.r"Zfnferrr	rFNs�zTraceBackend.assert_usable)N)N)N)N)�__name__�
__module__�__qualname__r*r4ZCOMMAND_ARGSr3r7rAr)rFrrrr	r%)s



r%c@seZdZdZdddgZdS)�
DTraceBackendz.dZdtracez-qz-sN�rMrNrOr*r4rrrr	rPZsrPc@seZdZdZddgZdS)�SystemTapBackendz.stpZstapz-gNrQrrrr	rR_srRc@sLeZdZdZdZdZedd��Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�ZdS)�
TraceTestsNrcCs|j��dS�N)�backendrF�r.rrr	�
setUpClasslszTraceTests.setUpClasscCs&|jj||jd�\}}|�||�dS)N)r()rUr3r(�assertEqual)r.r/r0r2rrr	r3ps
�
zTraceTests.run_casecCs|�d�dS)NZ
call_stack�r3rVrrr	�test_function_entry_returnusz%TraceTests.test_function_entry_returnc	shtdddg�}ttd���}|���W5QRX��fdd�}|d�D]}|�|j�qD��t�|�dS)	z9Ensure our call stack test hits all function call opcodesZ
CALL_FUNCTIONZCALL_FUNCTION_EXZCALL_FUNCTION_KWz
call_stack.pycsFt�dd�jd�}|jD](}t|tj�r|j|krt�|�SqgS)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�startN)�setr+rr,�discard�opnamerX)r.Zopcodesr1rjZinstructionrrir	�test_verify_call_opcodesxsz#TraceTests.test_verify_call_opcodescCs|�d�dS)N�gcrYrVrrr	�test_gc�szTraceTests.test_gccCs|�d�dS)N�linerYrVrrr	�	test_line�szTraceTests.test_line)
rMrNrOZmaxDiffrUr(�classmethodrWr3rZrorqrsrrrr	rSds
rSc@seZdZe�ZdZdS)�DTraceNormalTestsrN�rMrNrOrPrUr(rrrr	ru�sruc@seZdZe�ZdZdS)�DTraceOptimizedTests�Nrvrrrr	rw�srwc@seZdZe�ZdZdS)�SystemTapNormalTestsrN�rMrNrOrRrUr(rrrr	ry�sryc@seZdZe�ZdZdS)�SystemTapOptimizedTestsrxNrzrrrr	r{�sr{cCsttttt�dSrT)rrurwryr{rrrr	�	test_main�s�r|�__main__)reZos.pathrrr;rDrbrLZtest.supportrrrr$r%rPrRZTestCaserSrurwryr{r|rMrrrr	�<module>s(14

F1le Man4ger