+
    ÃìÜj\  ã                   óœ   € ^ RI t ^ RIt^ RIt^ RIt^ RIt^RIHt ^RIHt ^RIHt  ! R R]4      t	]
R8X  d   ]P                  ! 4        R# R# )é    N)ÚWIN)ÚTestCase)Ú_test_extension_cppc                   óv   a € ] tR t^t o R tR tR tR t]P                  ! ]
R4      R 4       tR tR tR	tV tR
# )ÚCPPTestsc                ó"  € . p\        ^4       FI  p\        P                  ! \        P                  4      pVP	                  V4       VP                  V4       KK  	  \        V4       F%  w  r#V P                  VP	                  4       V4       K'  	  R# )é   N)ÚrangeÚgreenletr   Útest_exception_switchÚswitchÚappendÚ	enumerateÚassertEqual)ÚselfÚ	greenletsÚiÚgs   &   ÚU/opt/render/project/src/.venv/lib/python3.14/site-packages/greenlet/tests/test_cpp.pyr   ÚCPPTests.test_exception_switch   sn   € Øˆ	Ü�q–ˆAÜ×!Ò!Ô"5×"KÑ"KÓLˆAØ�H‰H�QŒKØ×Ñ˜QÖñ ô ˜iÖ(‰DˆAØ×Ñ˜QŸX™X›Z¨Ö+ó )ó    c                ó~  € ^ RI p^ RIpVP                  P                  VP                  P	                  \
        4      R4      pVP                  T\        V\        4      '       g   VP                  MT.pTpV P                  \        P                  4      ;_uu_ 4       p\        P                  ! VR\        P                  R7       RRR4       XP                  pV P!                  4       p	V P#                  VP$                  V	4       V P#                  RVP&                  4       VP&                  #   + '       g   i     Lp; i)r   Nz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_exceptionÚ%CPPTests._do_test_unhandled_exception   så   € ÛÛØ—‘—‘Ø�G‰G�O‰OœHÓ%Ø#ó
ˆð —‘ ¼zÈ&ÔRU×?VÒ?V¨¯ªÐ\bÐcˆØ!ÐØ×Ñœz×<Ñ<×=Ô=ÀÜ×#Ò#ØØ Ü!×(Ñ(õ÷ >ð �]‰]ˆØ×IÑIÓKˆØ�‰�b—m‘m ]Ô3Ø�‰Ð5°r·y±yÔAØ�y‰yÐ÷ >×=ús   Â(D,Ä,D<	c                óD   € V P                  \        P                  4       R # ©N)r6   r   Útest_exception_throw_nonstd©r   s   &r   Ú&test_unhandled_nonstd_exception_abortsÚ/CPPTests.test_unhandled_nonstd_exception_aborts.   s   € à×)Ñ)Ô*=×*YÑ*YÖZr   c                óD   € V P                  \        P                  4       R # r9   )r6   r   Útest_exception_throw_stdr;   s   &r   Ú#test_unhandled_std_exception_abortsÚ,CPPTests.test_unhandled_std_exception_aborts2   s   € à×)Ñ)Ô*=×*VÑ*VÖWr   z#XXX: This does not crash on Windowsc                óL   € V P                  R 4      pV P                  RV4       R# )Úrun_as_greenlet_targetzThrown from an extension.N)r6   r,   )r   r.   s   & r   Ú8test_unhandled_std_exception_as_greenlet_function_abortsÚACPPTests.test_unhandled_std_exception_as_greenlet_function_aborts6   s)   € ð ×2Ñ2Ð3KÓLˆØ�‰ð
 (Øö	
r   c                ó(   € V P                  R 4       R# )Ú*run_unhandled_exception_in_greenlet_abortsN)r6   r;   s   &r   Ú+test_unhandled_exception_in_greenlet_abortsÚ4CPPTests.test_unhandled_exception_in_greenlet_abortsD   s   € à×)Ñ)Ð*VÖWr   c                ó°  € R  p\         P                  ! 4        \        P                  ! R4      p\	        R4       F?  pV P                  \        4      ;_uu_ 4        \        P                  ! V4       RRR4       KA  	  \         P                  ! 4        \        P                  ! R4      pWB,
          pV P                  ^ V4       R#   + '       g   i     K›  ; i)c                  ó   € \        R 4      h)Úboom)Ú
ValueError© r   r   ÚraiserÚECPPTests.test_leak_test_exception_switch_and_do_in_g2.<locals>.raiserJ   s   € Ü˜VÓ$Ð$r   r   iè  N)
ÚgcÚcollectÚobjgraphÚcountr
   r%   rM   r   Ú"test_exception_switch_and_do_in_g2r   )r   rO   ÚbeforeÚ_ÚafterÚleakeds   &     r   Ú,test_leak_test_exception_switch_and_do_in_g2Ú5CPPTests.test_leak_test_exception_switch_and_do_in_g2I   s‘   € ò	%ô 	�
Š
ŒÜ—’ 
Ó+ˆä�t–ˆAØ×"Ñ"¤:×.Õ.Ü#×FÒFÀvÔN÷ /Ñ.ñ ô 	�
Š
ŒÜ—’˜zÓ*ˆØ•ˆØ×Ñ˜˜FÖ#÷ /×.Ð.ús   ÁCÃCrN   N)r$   Ú
__module__Ú__qualname__Ú__firstlineno__r   r6   r<   r@   ÚunittestÚskipIfr   rD   rH   rZ   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      sL   ø‡ € ò,òò.[òXð ‡_‚_�SÐ?Ó@ñ

ó Að

òX÷
$ð $r   r   Ú__main__)rQ   r&   r_   r   rS   Ú r   r   r   r   r$   ÚmainrN   r   r   Ú<module>rg      sD   ðÛ 	Û Û ã Û å Ý Ý !ôJ$ˆxô J$ðZ ˆzÔØ‡M‚M†Oñ r   