Update 2025-04-24_11:44:19
This commit is contained in:
@ -0,0 +1,33 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Helper for testing a C++ exception throw aborts the process.
|
||||
|
||||
Takes one argument, the name of the function in :mod:`_test_extension_cpp` to call.
|
||||
"""
|
||||
import sys
|
||||
import greenlet
|
||||
from greenlet.tests import _test_extension_cpp
|
||||
print('fail_cpp_exception is running')
|
||||
|
||||
def run_unhandled_exception_in_greenlet_aborts():
|
||||
def _():
|
||||
_test_extension_cpp.test_exception_switch_and_do_in_g2(
|
||||
_test_extension_cpp.test_exception_throw_nonstd
|
||||
)
|
||||
g1 = greenlet.greenlet(_)
|
||||
g1.switch()
|
||||
|
||||
|
||||
func_name = sys.argv[1]
|
||||
try:
|
||||
func = getattr(_test_extension_cpp, func_name)
|
||||
except AttributeError:
|
||||
if func_name == run_unhandled_exception_in_greenlet_aborts.__name__:
|
||||
func = run_unhandled_exception_in_greenlet_aborts
|
||||
elif func_name == 'run_as_greenlet_target':
|
||||
g = greenlet.greenlet(_test_extension_cpp.test_exception_throw_std)
|
||||
func = g.switch
|
||||
else:
|
||||
raise
|
||||
print('raising', func, flush=True)
|
||||
func()
|
Reference in New Issue
Block a user