Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_dtrace.cpython-311.opt-2.pyc
�

�Ke����ddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZe	jsej
d���d�Zd�ZGd�d��ZGd	�d
e��ZGd�de��ZGd
�d��ZGd�deej��ZGd�deej��ZGd�deej��ZGd�deej��Zedkrej��dSdS)�N)�support)�findfileztest module requires subprocessc�^�tj�t|d�����S)N�
dtracedata)�subdir)�os�path�abspathr)�filenames �:/usr/local/apps/python3/lib/python3.11/test/test_dtrace.pyr
r
s#��
�7�?�?�8�H�\�B�B�B�C�C�C�c�L�	tjdd|��}	d�|���D��}|�d����d�|D��}d�|��S#t
tf$r#td�|�����wxYw)	Nz\[[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���A��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_case3s���.�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@rArD�_s      r�tracezTraceBackend.traceDsX���-�-�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�
executablerM)r8r0r1r2�python_flagsr@s      rr3zTraceBackend.trace_pythonLs`�����	:������� 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)rMr
r4�strip�FileNotFoundError�NotADirectoryError�PermissionError�str�unittest�SkipTestr)r?)r8r*�fnfes   rrUzTraceBackend.assert_usableSs���	��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=rBrMr3rUrr
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_r`rar4r?rr
rrdrd_s�������I�$�$�$�G�G�Gr
rdc��eZdZdZddgZdS)�SystemTapBackendz.stp�stapz-gNrfrr
rrhrhds�������I��t�n�G�G�Gr
rhc�N�eZdZdZdZdZed���Zd�Zd�Z	d�Z
d�Zd�ZdS)	�
TraceTestsNrc�8�|j���dSr^)�backendrU�r8s r�
setUpClasszTraceTests.setUpClassqs����"�"�$�$�$�$�$r
c�z�|j�||j���\}}|�||��dS)N)r2)rmr=r2�assertEqual)r8r9r:r<s    rr=zTraceTests.run_caseusG��)-��)>�)>��$�"6�*?�*8�*8�&�
�������8�8�8�8�8r
c�0�|�d��dS)N�
call_stack�r=rns r�test_function_entry_returnz%TraceTests.test_function_entry_returnzs���
�
�l�#�#�#�#�#r
c�^���	tgd���}ttd����5}|����ddd��n#1swxYwY��fd�}|d��D]}|�|j�����t��|��dS)N)�
CALL_FUNCTION�CALL_FUNCTION_EX�CALL_FUNCTION_KWz
call_stack.pyc����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�opnamerq)r8�opcodesr;r��instructionr�s`    @r�test_verify_call_opcodesz#TraceTests.test_verify_call_opcodes}s����G��O�O�O�P�P��
�'�/�*�*�
+�
+�	#�q��&�&�(�(�K�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
	�
	�
	�
	�
	�
	�5�4�W�=�=�	0�	0�K��O�O�K�.�/�/�/�/��������(�(�(�(�(s�A�A�Ac�0�|�d��dS)N�gcrtrns r�test_gczTraceTests.test_gc�s���
�
�d�����r
c�0�|�d��dS)N�linertrns r�	test_linezTraceTests.test_line�s���
�
�f�����r
)
r_r`ra�maxDiffrmr2�classmethodror=rur�r�r�rr
rrkrkis��������G��G��O��%�%��[�%�9�9�9�
$�$�$�)�)�)�2�������r
rkc�&�eZdZe��ZdZdS)�DTraceNormalTestsrN�r_r`rardrmr2rr
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_r`rarhrmr2rr
rr�r���!�������� � �G��O�O�Or
r�c�&�eZdZe��ZdZdS)�SystemTapOptimizedTestsr�Nr�rr
rr�r��r�r
r��__main__)r��os.pathrr!rGrQr�r[�testr�test.supportr�has_subprocess_supportr\r
r,r.rdrhrk�TestCaser�r�r�r�r_�mainrr
r�<module>r�s5��
�
�
�
�����	�	�	�	�����
�
�
�
���������������!�!�!�!�!�!��%�?�
�(�
�=�
>�
>�>�D�D�D�
�
�
�2.�.�.�.�.�.�.�.�b%�%�%�%�%�L�%�%�%�
�����|����
1�1�1�1�1�1�1�1�h�����
�H�$5����
�����:�x�'8����
�����:�x�'8����
�����j�(�*;����
�z����H�M�O�O�O�O�O��r