Viewing File: /opt/hc_python/lib/python3.12/site-packages/greenlet/tests/__pycache__/test_cpp.cpython-312.pyc

�

`�*j\���ddlZddlZddlZddlZddlZddlmZddlmZddlmZGd�de�Z	e
dk(rej�yy)	�N�)�WIN)�TestCase)�_test_extension_cppc�b�eZdZd�Zd�Zd�Zd�Zeje	d�d��Z
d�Zd�Zy	)
�CPPTestsc��g}td�D]G}tjtj�}|j	|�|j|��It
|�D]%\}}|j|j	�|��'y)N�)�range�greenletr�test_exception_switch�switch�append�	enumerate�assertEqual)�self�	greenlets�i�gs    �H/opt/hc_python/lib64/python3.12/site-packages/greenlet/tests/test_cpp.pyr
zCPPTests.test_exception_switchsp���	��q��A��!�!�"5�"K�"K�L�A�
�H�H�Q�K����Q����i�(�D�A�q����Q�X�X�Z��+�)�c�R�ddl}ddl}|jj|jj	t
�d�}|j|t|t�s|jn|g}|}|jtj�5}tj|dtj��ddd�j}|j!�}	|j#|j$|	�|j#d|j&�|j&S#1swY�ixYw)Nrzfail_cpp_exception.pyzutf-8)�encoding�stderrzfail_cpp_exception is running)�os�sys�path�join�dirname�__file__�
executable�
isinstance�str�__name__�assertRaises�
subprocess�CalledProcessError�check_output�STDOUT�	exception�,get_expected_returncodes_for_aborted_process�assertIn�
returncode�output)
r�targetrr�script�args�__traceback_info__�exc�ex�
expected_exits
          r�_do_test_unhandled_exceptionz%CPPTests._do_test_unhandled_exceptions�����������G�G�O�O�H�%�#�
������z�&�RU�?V����\b�c��!��
�
�
�z�<�<�
=���#�#�� �!�(�(�
�>��]�]���I�I�K�
��
�
�b�m�m�]�3��
�
�5�r�y�y�A��y�y��>�
=�s�'D�D&c�B�|jtj�y�N)r6r�test_exception_throw_nonstd�rs r�&test_unhandled_nonstd_exception_abortsz/CPPTests.test_unhandled_nonstd_exception_aborts.s���)�)�*=�*Y�*Y�Zrc�B�|jtj�yr8)r6r�test_exception_throw_stdr:s r�#test_unhandled_std_exception_abortsz,CPPTests.test_unhandled_std_exception_aborts2s���)�)�*=�*V�*V�Wrz#XXX: This does not crash on Windowsc�J�|jd�}|jd|�y)N�run_as_greenlet_targetzThrown from an extension.)r6r,)rr.s  r�8test_unhandled_std_exception_as_greenlet_function_abortszACPPTests.test_unhandled_std_exception_as_greenlet_function_aborts6s)���2�2�3K�L���
�
�

(��
	
rc�&�|jd�y)N�*run_unhandled_exception_in_greenlet_aborts)r6r:s r�+test_unhandled_exception_in_greenlet_abortsz4CPPTests.test_unhandled_exception_in_greenlet_abortsDs���)�)�*V�Wrc�z�d�}tj�tjd�}t	d�D]5}|jt�5tj|�ddd��7tj�tjd�}||z
}|jd|�y#1swY��xYw)Nc��td��)N�boom)�
ValueError�rr�raiserzECPPTests.test_leak_test_exception_switch_and_do_in_g2.<locals>.raiserJs
���V�$�$rri�r)
�gc�collect�objgraph�countrr%rHr�"test_exception_switch_and_do_in_g2r)rrJ�before�_�after�leakeds      r�,test_leak_test_exception_switch_and_do_in_g2z5CPPTests.test_leak_test_exception_switch_and_do_in_g2Is���	%�	�
�
�����
�+���t��A��"�"�:�.�#�F�F�v�N�/�.��	�
�
�����z�*����������F�#�
/�.�s�B1�1B:	N)
r$�
__module__�__qualname__r
r6r;r>�unittest�skipIfrrArDrTrIrrrr
sF��,��.[�X��X�_�_�S�?�@�

�A�

�X�
$rr�__main__)rKr&rWrrM�rrrrr$�mainrIrr�<module>r\sF��	�������!�J$�x�J$�Z�z���H�M�M�O�r
Back to Directory File Manager