File: //usr/local/lib/python3.10/dist-packages/greenlet/tests/__pycache__/test_cpp.cpython-310.pyc
o
���g�
� @ s| d dl mZ d dl mZ d dlZd dlZd dlZddlmZ ddlmZ ddlm Z G dd � d e�Z
ed
kr<e�� dS dS )� )�print_function)�absolute_importN� )�_test_extension_cpp)�TestCase)�WINc @ sH e Zd Zdd� Zdd� Zdd� Zdd� Ze�e d �d
d� �Z
dd
� ZdS )�CPPTestsc C sX g }t d�D ]}t�tj�}|�|� |�|� qt|�D ]\}}| �|�� |� qd S )N� )�range�greenletr �test_exception_switch�switch�append� enumerate�assertEqual)�self� greenlets�i�g� r �B/usr/local/lib/python3.10/dist-packages/greenlet/tests/test_cpp.pyr
s
�zCPPTests.test_exception_switchc
C s� dd l }dd l}|j�|j�t�d�}|j|t|t�s|j n|g}|}| �
tj��}tj
|dtjd� W d � n1 s=w Y |j}| �� } | �|j| � | �d|j� |jS )Nr zfail_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 �targetr r �script�args�__traceback_info__�exc�ex�
expected_exitr r r �_do_test_unhandled_exception s(
���z%CPPTests._do_test_unhandled_exceptionc C � | � tj� d S �N)r4 r �test_exception_throw_nonstd�r r r r �&test_unhandled_nonstd_exception_aborts- � z/CPPTests.test_unhandled_nonstd_exception_abortsc C r5 r6 )r4 r �test_exception_throw_stdr8 r r r �#test_unhandled_std_exception_aborts1 r: z,CPPTests.test_unhandled_std_exception_abortsz#XXX: This does not crash on Windowsc C s | � d�}| �d|� d S )N�run_as_greenlet_targetzThrown from an extension.)r4 r* )r r, r r r �8test_unhandled_std_exception_as_greenlet_function_aborts5 s
�zACPPTests.test_unhandled_std_exception_as_greenlet_function_abortsc C s | � d� d S )N�*run_unhandled_exception_in_greenlet_aborts)r4 r8 r r r �+test_unhandled_exception_in_greenlet_abortsC s z4CPPTests.test_unhandled_exception_in_greenlet_abortsN)r"