o
    E6÷d“  ã                   @   s€   d dl mZ d dl mZ d dlZd dlmZ d dlZddlmZ ddlm	Z	 dd	„ Z
G d
d„ de	ƒZedkr>edƒ ¡  dS dS )é    )Úprint_function)Úabsolute_importN)ÚProcessé   )Ú_test_extension_cpp)ÚTestCasec                  C   s   dd„ } t   | ¡}| ¡  d S )Nc                   S   s   t  t j¡ d S ©N)r   Z"test_exception_switch_and_do_in_g2Útest_exception_throw© r
   r
   únC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\greenlet/tests/test_cpp.pyÚ_   s   ÿz5run_unhandled_exception_in_greenlet_aborts.<locals>._)ÚgreenletÚswitch)r   Úg1r
   r
   r   Ú*run_unhandled_exception_in_greenlet_aborts   s   
r   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚCPPTestsc                 C   sX   g }t dƒD ]}t tj¡}| |¡ | |¡ qt|ƒD ]\}}|  | ¡ |¡ qd S )Né   )Úranger   r   Útest_exception_switchr   ÚappendÚ	enumerateÚassertEqual)ÚselfZ	greenletsÚiÚgr
   r
   r   r      s   
ÿzCPPTests.test_exception_switchc                 C   sZ   dd l }|j d¡}t|d}| ¡  | d¡ |s"tj tj fnd}|  	|j
|¡ d S )Nr   Úwin)Útargeté
   )é   )ÚsysÚplatformÚ
startswithr   ÚstartÚjoinÚsignalÚSIGABRTÚSIGSEGVZassertInÚexitcode)r   r   r   ZWINÚpZexpected_exitr
   r
   r   Ú_do_test_unhandled_exception!   s   

ùúù
z%CPPTests._do_test_unhandled_exceptionc                 C   s   |   tj¡ d S r   )r)   r   r	   ©r   r
   r
   r   Útest_unhandled_exception_abortsE   s   z(CPPTests.test_unhandled_exception_abortsc                 C   s   |   t¡ d S r   )r)   r   r*   r
   r
   r   Ú+test_unhandled_exception_in_greenlet_abortsJ   s   z4CPPTests.test_unhandled_exception_in_greenlet_abortsN)Ú__name__Ú
__module__Ú__qualname__r   r)   r+   r,   r
   r
   r
   r   r      s
    	$r   Ú__main__Zunittest)Ú
__future__r   r   r$   Úmultiprocessingr   r   Ú r   r   r   r   r-   Ú
__import__Úmainr
   r
   r
   r   Ú<module>   s    8ÿ