§
    dŠtj\  ã                   óœ   — d dl Z d dl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 )	é    Né   )ÚWIN)ÚTestCase)Ú_test_extension_cppc                   óf   — e Zd Zd„ Zd„ Zd„ Zd„ Z ej        e	d¦  «        d„ ¦   «         Z
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       úU/var/www/html/CA-Chatbot/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)r6   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 r8   )r6   r   Útest_exception_throw_stdr:   s    r   Ú#test_unhandled_std_exception_abortsz,CPPTests.test_unhandled_std_exception_aborts2   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.)r6   r,   )r   r.   s     r   Ú8test_unhandled_std_exception_as_greenlet_function_abortszACPPTests.test_unhandled_std_exception_as_greenlet_function_aborts6   s@   € ð ×2Ò2Ð3KÑLÔLˆØ�Šð
 (Øñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ó0   — |                       d¦  «         d S )NÚ*run_unhandled_exception_in_greenlet_aborts)r6   r:   s    r   Ú+test_unhandled_exception_in_greenlet_abortsz4CPPTests.test_unhandled_exception_in_greenlet_abortsD   s   € à×)Ò)Ð*VÑWÔWÐWÐWÐWr   c                 óŽ  — d„ }t          j        ¦   «          t          j        d¦  «        }t	          d¦  «        D ]H}|                      t          ¦  «        5  t          j        |¦  «         d d d ¦  «         n# 1 swxY w Y   ŒIt          j        ¦   «          t          j        d¦  «        }||z
  }|  	                    d|¦  «         d S )Nc                  ó    — t          d¦  «        ‚)NÚboom)Ú
ValueError© r   r   ÚraiserzECPPTests.test_leak_test_exception_switch_and_do_in_g2.<locals>.raiserJ   s   € Ý˜VÑ$Ô$Ð$r   r   iè  r   )
ÚgcÚcollectÚobjgraphÚcountr   r%   rH   r   Ú"test_exception_switch_and_do_in_g2r   )r   rJ   ÚbeforeÚ_ÚafterÚleakeds         r   Ú,test_leak_test_exception_switch_and_do_in_g2z5CPPTests.test_leak_test_exception_switch_and_do_in_g2I   s  € ð	%ð 	%ð 	%õ 	Œ
‰ŒˆÝ” 
Ñ+Ô+ˆå�t‘”ð 	Oð 	OˆAØ×"Ò"¥:Ñ.Ô.ð Oð OÝ#ÔFÀvÑNÔNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oøõ 	Œ
‰ŒˆÝ”˜zÑ*Ô*ˆØ˜‘ˆØ×Ò˜˜FÑ#Ô#Ð#Ð#Ð#s   ÁA7Á7A;	Á>A;	N)r$   Ú
__module__Ú__qualname__r   r6   r;   r>   ÚunittestÚskipIfr   rA   rD   rT   rI   r   r   r   r      s£   € € € € € ð,ð ,ð ,ðð ð ð.[ð [ð [ðXð Xð Xð €X„_�SÐ?Ñ@Ô@ð

ð 

ñ AÔ@ð

ðXð Xð Xð
$ð $ð $ð $ð $r   r   Ú__main__)rK   r&   rW   r   rM   Ú r   r   r   r   r$   ÚmainrI   r   r   ú<module>r\      sÄ   ðØ 	€	€	€	Ø Ð Ð Ð Ø €€€à €€€Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !ðJ$ð J$ð J$ð J$ð J$ˆxñ J$ô J$ð J$ðZ ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   