§
    VøÁi°
  ã                   ó¤   — d dl mZ d dl mZ d dlZd dlZd dlZddlmZ ddlmZ ddlm	Z	  G d„ d	e¦  «        Z
ed
k    r ej        ¦   «          dS dS )é    )Úprint_function)Úabsolute_importNé   )Ú_test_extension_cpp)ÚTestCase)ÚWINc                   ó`   — e Zd Zd„ Zd„ Zd„ Zd„ Z ej        e	d¦  «        d„ ¦   «         Z
d„ ZdS )	ÚCPPTestsc                 ó8  — g }t          d¦  «        D ]J}t          j        t          j        ¦  «        }|                     |¦  «         |                     |¦  «         ŒKt          |¦  «        D ]-\  }}|                      |                     ¦   «         |¦  «         Œ.d S )Né   )ÚrangeÚgreenletr   Útest_exception_switchÚswitchÚappendÚ	enumerateÚassertEqual)ÚselfÚ	greenletsÚiÚgs       úa/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/greenlet/tests/test_cpp.pyr   zCPPTests.test_exception_switch   sœ   € Øˆ	Ý�q‘”ð 	 ð 	 ˆAÝÔ!Õ"5Ô"KÑLÔLˆAØ�HŠH�Q‰KŒKˆKØ×Ò˜QÑÔÐÐÝ˜iÑ(Ô(ð 	,ð 	,‰DˆAˆqØ×Ò˜QŸXšX™ZœZ¨Ñ+Ô+Ð+Ð+ð	,ð 	,ó    c                 ó2  — dd l }dd l}|j                             |j                             t
          ¦  «        d¦  «        }|j        |t          |t          ¦  «        s|j	        n|g}|}|  
                    t          j        ¦  «        5 }t          j        |dt          j        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   |j        }|                      ¦   «         }	|                      |j        |	¦  «         |                      d|j        ¦  «         |j        S )Nr   zfail_cpp_exception.pyzutf-8)ÚencodingÚstderrzfail_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_exits
             r   Ú_do_test_unhandled_exceptionz%CPPTests._do_test_unhandled_exception   sH  € Øˆ	ˆ	ˆ	Øˆ
ˆ
ˆ
Ø”—’ØŒG�OŠO�HÑ%Ô%Ø#ñ
ô 
ˆð ” ½zÈ&ÕRUÑ?VÔ?VÐ(b¨¬¨Ð\bÐcˆØ!ÐØ×Ò�zÔ<Ñ=Ô=ð 	ÀÝÔ#ØØ Ý!Ô(ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð Œ]ˆØ×IÒIÑKÔKˆØ�Š�b”m ]Ñ3Ô3Ð3Ø�ŠÐ5°r´yÑAÔAÐAØŒyÐs   Â"B6Â6B:Â=B:c                 óD   — |                       t          j        ¦  «         d S ©N)r8   r   Útest_exception_throw_nonstd©r   s    r   Ú&test_unhandled_nonstd_exception_abortsz/CPPTests.test_unhandled_nonstd_exception_aborts-   s    € à×)Ò)Õ*=Ô*YÑZÔZÐZÐZÐZr   c                 óD   — |                       t          j        ¦  «         d S r:   )r8   r   Útest_exception_throw_stdr<   s    r   Ú#test_unhandled_std_exception_abortsz,CPPTests.test_unhandled_std_exception_aborts1   s    € à×)Ò)Õ*=Ô*VÑWÔWÐWÐWÐWr   z#XXX: This does not crash on Windowsc                 ó\   — |                       d¦  «        }|                      d|¦  «         d S )NÚrun_as_greenlet_targetzThrown from an extension.)r8   r.   )r   r0   s     r   Ú8test_unhandled_std_exception_as_greenlet_function_abortszACPPTests.test_unhandled_std_exception_as_greenlet_function_aborts5   s@   € ð ×2Ò2Ð3KÑLÔLˆØ�Šð
 (Øñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó0   — |                       d¦  «         d S )NÚ*run_unhandled_exception_in_greenlet_aborts)r8   r<   s    r   Ú+test_unhandled_exception_in_greenlet_abortsz4CPPTests.test_unhandled_exception_in_greenlet_abortsC   s   € à×)Ò)Ð*VÑWÔWÐWÐWÐWr   N)r&   Ú
__module__Ú__qualname__r   r8   r=   r@   ÚunittestÚskipIfr   rC   rF   © r   r   r
   r
      s–   € € € € € ð,ð ,ð ,ðð ð ð.[ð [ð [ðXð Xð Xð €X„_�SÐ?Ñ@Ô@ð

ð 

ñ AÔ@ð

ðXð Xð Xð Xð Xr   r
   Ú__main__)Ú
__future__r   r   r(   rI   r   Ú r   r   r   r
   r&   ÚmainrK   r   r   ú<module>rP      sÖ   ðØ %Ð %Ð %Ð %Ð %Ð %Ø &Ð &Ð &Ð &Ð &Ð &à Ð Ð Ð Ø €€€à €€€Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð9Xð 9Xð 9Xð 9Xð 9Xˆxñ 9Xô 9Xð 9Xðx ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   