Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.220.24.57
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_dtrace.cpython-310.pyc
o

`b��@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�Zedkrye�dSdS)�N)�findfilecCstj�t|dd��S)NZ
dtracedata)Zsubdir)�os�path�abspathr)�filename�r�9/usr/local/python-3.10/lib/python3.10/test/test_dtrace.pyrsrc	Cslt�dd|�}zdd�|��D�}|jdd�d�dd�|D�}d	�|�WSttfy5td
�|���w)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> 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�stderr�universal_newlines)r5�
subprocess�Popen�PIPE�STDOUT�communicate)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 ZfnferrrrDNs����zTraceBackend.assert_usable�N)�__name__�
__module__�__qualname__r(r2ZCOMMAND_ARGSr1r5r?r'rDrrrrr#)s



r#c@seZdZdZgd�ZdS)�
DTraceBackendz.d)Zdtracez-qz-sN�rLrMrNr(r2rrrrrOZ�rOc@seZdZdZddgZdS)�SystemTapBackendz.stpZstapz-gNrPrrrrrR_rQrRc@sLeZdZdZdZdZedd��Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�ZdS)�
TraceTestsNrcCs|j��dSrK)�backendrD�r,rrr�
setUpClasslszTraceTests.setUpClasscCs&|jj||jd�\}}|�||�dS)N)r&)rTr1r&�assertEqual)r,r-r.r0rrrr1ps
�zTraceTests.run_casecC�|�d�dS)NZ
call_stack�r1rUrrr�test_function_entry_returnu�z%TraceTests.test_function_entry_returncsztgd��}ttd���}|���Wd�n1swY��fdd�}|d�D]}|�|j�q+��t�|�dS)z9Ensure our call stack test hits all function call opcodes)Z
CALL_FUNCTIONZCALL_FUNCTION_EXZCALL_FUNCTION_KWz
call_stack.pyNcsFt�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�opnamerW)r,Zopcodesr/rkZinstructionrrjr�test_verify_call_opcodesxs
�z#TraceTests.test_verify_call_opcodescCrX)N�gcrYrUrrr�test_gc�r[zTraceTests.test_gccCrX)N�linerYrUrrr�	test_line�r[zTraceTests.test_line)
rLrMrNZmaxDiffrTr&�classmethodrVr1rZrprrrtrrrrrSds
rSc@�eZdZe�ZdZdS)�DTraceNormalTestsrN�rLrMrNrOrTr&rrrrrw��rwc@rv)�DTraceOptimizedTests�Nrxrrrrrz�ryrzc@rv)�SystemTapNormalTestsrN�rLrMrNrRrTr&rrrrr|�ryr|c@rv)�SystemTapOptimizedTestsr{Nr}rrrrr~�ryr~�__main__)rfZos.pathrrr9rBrcrJZtest.supportrrr"r#rOrRrSZTestCaserwrzr|r~rLZ	test_mainrrrr�<module>s*14
�
© 2025 GrazzMean