Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.11/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.11/test/__pycache__/test_dtrace.cpython-311.opt-1.pyc

�

SԚgt���ddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZe
j
sejd���d�Zd�ZGd�d��ZGd	�d
e��ZGd�de��ZGd
�d��ZGd�deej��ZGd�deej��ZGd�deej��ZGd�deej��ZGd�dej��Zedkrej��dSdS)�N)�support)�findfileztest module requires subprocessc�^�tj�t|d�����S)N�
dtracedata)�subdir)�os�path�abspathr)�filenames �-/usr/local/lib/python3.11/test/test_dtrace.pyr
r
s#��
�7�?�?�8�H�\�B�B�B�C�C�C�c�J�tjdd|��}	d�|���D��}|�d����d�|D��}d�|��S#t
tf$r#td�|�����wxYw)	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\]�c�f�g|].}|�|�d���|�d����/S)�#�	)�
startswith�split��.0�rows  r�
<listcomp>z*normalize_trace_output.<locals>.<listcomp>!sN��
�
�
���
��>�>�#�.�.�
��I�I�d�O�O�
�
�
r
c�,�t|d��S)Nr)�int)rs r�<lambda>z(normalize_trace_output.<locals>.<lambda>&s��C��A��K�K�r
)�keyc��g|]
}|d��S)��rs  rrz*normalize_trace_output.<locals>.<listcomp>'s��+�+�+�S�#�a�&�+�+�+r
�
z%tracer produced unparsable output:
{})	�re�sub�
splitlines�sort�join�
IndexError�
ValueError�AssertionError�format)�output�results  r�normalize_trace_outputr,s����V�&��F�
3�
3�F�
�
�
��(�(�*�*�
�
�
��
	���/�/��0�0�0�+�+�F�+�+�+���y�y�� � � ���
�#�
�
�
��4�;�;�F�C�C�
�
�	
�
���s�AA.�.4B"c�@�eZdZdZdZgZdd�Zdd�Zdd�Zdd�Z	d�Z
dS)�TraceBackendNc	�h�t|�t||jz��t|dz��|�����}t	t||jzdz����5}|������}ddd��n#1swxYwY||fS)Nz.py)�script_file�python_file�optimize_pythonz	.expected)r,�trace_pythonr
�	EXTENSION�open�read�rstrip)�self�namer2�
actual_output�f�expected_outputs      r�run_casezTraceBackend.run_case4s���.�t�/@�/@���t�~� 5�6�6���u��-�-�+�0A�0-�0-�.�.�
�
�'�$���/�+�=�>�>�
?�
?�	0�1��f�f�h�h�o�o�/�/�O�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0� ��/�/s�2'B%�%B)�,B)c�.�|j|gz}|r|d|gz
}|S)Nz-c)�COMMAND)r8r0�
subcommand�commands    r�generate_trace_commandz#TraceBackend.generate_trace_command?s,���,�+��.���	*���j�)�)�G��r
c��|�||��}tj|tjtjd������\}}|S)NT��stdout�stderr�universal_newlines)rB�
subprocess�Popen�PIPE�STDOUT�communicate)r8r0r@rArE�_s      r�tracezTraceBackend.traceEsX���-�-�k�:�F�F���$�W�,6�O�,6�,=�8<�>�>�>�?J�k�m�m�	����
r
c��g}|r|�dg|z��d�tjg|z|gz��}|�||��S)Nz-O� )�extendr%�sys�
executablerN)r8r0r1r2�python_flagsr@s      rr3zTraceBackend.trace_pythonMs`�����	:������� 8�9�9�9��X�X�s�~�.��=��
�M�N�N�
��z�z�+�z�2�2�2r
c�^�	|�td|jz����}|���}n3#tt
tf$r}t|��}Yd}~nd}~wwxYw|dkr3tj	d�
|jd|�����dS)N�
assert_usablezprobe: successz{}(1) failed: {}r)rNr
r4�strip�FileNotFoundError�NotADirectoryError�PermissionError�str�unittest�SkipTestr)r?)r8r*�fnfes   rrVzTraceBackend.assert_usableTs���	��Z�Z���$�.�(H� I� I�J�J�F��\�\�^�^�F�F��!�#5��G�	�	�	���Y�Y�F�F�F�F�F�F�����	�����%�%�%��#�"�)�)�$�,�q�/�6�B�B���
�&�%s�>A�A1�A,�,A1�N)�__name__�
__module__�__qualname__r4r?�COMMAND_ARGSr=rBrNr3rVrr
rr.r./s��������I��G��L�	0�	0�	0�	0���������3�3�3�3�	�	�	�	�	r
r.c��eZdZdZgd�ZdS)�
DTraceBackendz.d)�dtracez-qz-sN�r`rarbr4r?rr
rrere`s�������I�$�$�$�G�G�Gr
rec��eZdZdZddgZdS)�SystemTapBackendz.stp�stapz-gNrgrr
rriries�������I��t�n�G�G�Gr
ric�N�eZdZdZdZdZed���Zd�Zd�Z	d�Z
d�Zd�ZdS)	�
TraceTestsNrc�8�|j���dSr_)�backendrV�r8s r�
setUpClasszTraceTests.setUpClassrs����"�"�$�$�$�$�$r
c�z�|j�||j���\}}|�||��dS)N)r2)rnr=r2�assertEqual)r8r9r:r<s    rr=zTraceTests.run_casevsG��)-��)>�)>��$�"6�*?�*8�*8�&�
�������8�8�8�8�8r
c�0�|�d��dS)N�
call_stack�r=ros r�test_function_entry_returnz%TraceTests.test_function_entry_return{s���
�
�l�#�#�#�#�#r
c�\���tgd���}ttd����5}|����ddd��n#1swxYwY��fd�}|d��D]}|�|j�����t��|��dS)z9Ensure our call stack test hits all function call opcodes)�
CALL_FUNCTION�CALL_FUNCTION_EX�CALL_FUNCTION_KWz
call_stack.pyNc����t�dd�j���}|jD]=}t|tj��r!|j|krtj|��cS�>gS)Nz<string>�exec)�sourcer�mode�optimize)	�compiler2�	co_consts�
isinstance�types�CodeType�co_name�dis�get_instructions)�funcname�code�c�code_stringr8s   ��r�get_function_instructionszFTraceTests.test_verify_call_opcodes.<locals>.get_function_instructions�su����+�$.� &�$(�$8�:�:�:�D�
�^�
3�
3���a���0�0�3�Q�Y�(�5J�5J��/��2�2�2�2�2���Ir
�start)�setr5r
r6�discard�opnamerr)r8�opcodesr;r��instructionr�s`    @r�test_verify_call_opcodesz#TraceTests.test_verify_call_opcodes~s�����O�O�O�P�P��
�'�/�*�*�
+�
+�	#�q��&�&�(�(�K�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
	�
	�
	�
	�
	�
	�5�4�W�=�=�	0�	0�K��O�O�K�.�/�/�/�/��������(�(�(�(�(s�A�A�Ac�0�|�d��dS)N�gcruros r�test_gczTraceTests.test_gc�s���
�
�d�����r
c�0�|�d��dS)N�lineruros r�	test_linezTraceTests.test_line�s���
�
�f�����r
)
r`rarb�maxDiffrnr2�classmethodrpr=rvr�r�r�rr
rrlrljs��������G��G��O��%�%��[�%�9�9�9�
$�$�$�)�)�)�2�������r
rlc�&�eZdZe��ZdZdS)�DTraceNormalTestsrN�r`rarbrernr2rr
rr�r����������m�o�o�G��O�O�Or
r�c�&�eZdZe��ZdZdS)�DTraceOptimizedTests�Nr�rr
rr�r��r�r
r�c�&�eZdZe��ZdZdS)�SystemTapNormalTestsrN�r`rarbrirnr2rr
rr�r���!�������� � �G��O�O�Or
r�c�&�eZdZe��ZdZdS)�SystemTapOptimizedTestsr�Nr�rr
rr�r��r�r
r�c�F�eZdZed���Zed���Zd�Zd�ZdS)�CheckDtraceProbesc���tjd��r<|���\}}tjrtd|�d|����dSdSt
jd���)N�WITH_DTRACEzreadelf version: �.z9CPython must be configured with the --with-dtrace option.)�	sysconfig�get_config_var�get_readelf_versionr�verbose�printr\r])�cls�readelf_major_version�readelf_minor_versions   rrpzCheckDtraceProbes.setUpClass�s����#�M�2�2�	a�;>�;R�;R�;T�;T�8�!�#8���
[��Y�*?�Y�Y�BW�Y�Y�Z�Z�Z�Z�Z�
[�
[��#�$_�`�`�`r
c
�d�	ddg}tj|tjtjd���}|5|���\}}ddd��n#1swxYwY|jr3tdd�|���d|j�d|�d	|�����n"#t$rtj	d
���wxYwtjd|��}|�tj	d|�����t|�
d
����t|�
d����fS)N�readelfz	--versionTrDzCommand rPz failed with exit code z	: stdout=z stderr=z!Couldn't find readelf on the pathz!^(?:GNU) readelf.*?\b(\d+)\.(\d+)z!Unable to parse readelf version: rr�)rHrIrJrL�
returncode�	Exceptionr%�OSErrorr\r]r!�searchr�group)�cmd�proc�versionrF�matchs     rr�z%CheckDtraceProbes.get_readelf_version�s���	I��k�*�C��#��!��!��#'�	���D��
5�
5�"&�"2�"2�"4�"4����
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5���
��<�s�x�x��}�}�<�<�&*�o�<�<�%�<�<�17�<�<����
���	I�	I�	I��#�$G�H�H�H�	I����
�	�>��H�H���=��#�$Q��$Q�$Q�R�R�R��5�;�;�q�>�>�"�"�C����A���$7�$7�7�7s.�2B�A�B�A�B�A� =B�B=c��ddtjg}tj|tjtjd������\}}|S)Nr�z-nTrD)rRrSrHrIrJrKrL)r8rArErMs    r�get_readelf_outputz$CheckDtraceProbes.get_readelf_output�sQ���d�C�N�3���$���?��$�#�	
�
�
�
�+�-�-�	����
r
c���|���}gd�}|D]F}|�|���5|�||��ddd��n#1swxYwY�GdS)N)zName: import__find__load__donezName: import__find__load__startzName: auditzName: gc__startzName: gc__donezName: function__entryzName: function__returnz
Name: line)�
probe_name)r��subTest�assertIn)r8�readelf_output�available_probe_namesr�s    r�test_check_probesz#CheckDtraceProbes.test_check_probes�s����0�0�2�2��	!
�	!
�	!
��0�	:�	:�J������4�4�
:�
:��
�
�j�.�9�9�9�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:��	:�	:s�A�A	�A	N)	r`rarbr�rp�staticmethodr�r�r�rr
rr�r��si�������a�a��[�a��8�8��\�8�:���:�:�:�:�:r
r��__main__)r��os.pathrr!rHrRr�r�r\�testr�test.supportr�has_subprocess_supportr]r
r,r.rerirl�TestCaser�r�r�r�r�r`�mainrr
r�<module>r�sw��
�
�
�
�����	�	�	�	�����
�
�
�
�������������������!�!�!�!�!�!��%�?�
�(�
�=�
>�
>�>�D�D�D�
�
�
�2.�.�.�.�.�.�.�.�b%�%�%�%�%�L�%�%�%�
�����|����
1�1�1�1�1�1�1�1�h�����
�H�$5����
�����:�x�'8����
�����:�x�'8����
�����j�(�*;����C:�C:�C:�C:�C:��)�C:�C:�C:�L�z����H�M�O�O�O�O�O��r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists