import unittest
-from test.support import cpython_only, requires_limited_api, skip_on_s390x
+from test.support import (cpython_only, is_wasi, requires_limited_api, Py_DEBUG,
+ set_recursion_limit, skip_on_s390x)
try:
import _testcapi
except ImportError:
class TestRecursion(unittest.TestCase):
@skip_on_s390x
+ @unittest.skipIf(is_wasi and Py_DEBUG, "requires deep stack")
def test_super_deep(self):
def recurse(n):
if m:
_testcapi.pyobject_vectorcall(py_recurse, (1000, m), ())
- depth = sys.getrecursionlimit()
- sys.setrecursionlimit(100_000)
- try:
+ with set_recursion_limit(100_000):
recurse(90_000)
with self.assertRaises(RecursionError):
recurse(101_000)
c_py_recurse(90)
with self.assertRaises(RecursionError):
c_py_recurse(100_000)
- finally:
- sys.setrecursionlimit(depth)
class TestFunctionWithManyArgs(unittest.TestCase):