L i ddlmZddlmZddlZddlZddlZddlmZddlmZddlm Z Gdd eZ e d k(rejyy) )print_function)absolute_importN)_test_extension_cpp)TestCase)WINc\eZdZdZdZdZdZeje ddZ dZ y) CPPTestscg}tdD]G}tjtj}|j ||j |It |D]%\}}|j|j |'y)N)rangegreenletrtest_exception_switchswitchappend enumerate assertEqual)self greenletsigs ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/greenlet/tests/test_cpp.pyrzCPPTests.test_exception_switch sz q A!!"5"K"KLA HHQK   Q  i( ,DAq   QXXZ + ,cRddl}ddl}|jj|jj t d}|j |t|ts |jn|g}|}|jtj5}tj|dtjdddj}|j!} |j#|j$| |j#d|j&|j&S#1swYixYw)Nrzfail_cpp_exception.pyzutf-8)encodingstderrzfail_cpp_exception is running)ossyspathjoindirname__file__ executable isinstancestr__name__ assertRaises subprocessCalledProcessError check_outputSTDOUT exception,get_expected_returncodes_for_aborted_processassertIn returncodeoutput) rtargetrrscriptargs__traceback_info__excex expected_exits r_do_test_unhandled_exceptionz%CPPTests._do_test_unhandled_exceptions GGOOH % # z&RU?V\bc!   z<< =   # # !((  ]]IIK  bmm]3 5ryyAyy  s 'DD&cB|jtjyN)r8rtest_exception_throw_nonstdrs r&test_unhandled_nonstd_exception_abortsz/CPPTests.test_unhandled_nonstd_exception_aborts-s ))*=*Y*YZrcB|jtjyr:)r8rtest_exception_throw_stdr<s r#test_unhandled_std_exception_abortsz,CPPTests.test_unhandled_std_exception_aborts1s ))*=*V*VWrz#XXX: This does not crash on WindowscJ|jd}|jd|y)Nrun_as_greenlet_targetzThrown from an extension.)r8r.)rr0s r8test_unhandled_std_exception_as_greenlet_function_abortszACPPTests.test_unhandled_std_exception_as_greenlet_function_aborts5s)223KL (   rc&|jdy)N*run_unhandled_exception_in_greenlet_aborts)r8r<s r+test_unhandled_exception_in_greenlet_abortsz4CPPTests.test_unhandled_exception_in_greenlet_abortsCs ))*VWrN) r& __module__ __qualname__rr8r=r@unittestskipIfrrCrFrrr r sA,.[XX__S?@  A  Xrr __main__) __future__rrr(rIrrrrr r&mainrKrrrPsF%&!9Xx9Xx zHMMOr