@skip_wasi_stack_overflow()
@skip_emscripten_stack_overflow()
def test_ast_recursion_limit(self):
- crash_depth = 500_000
+ # Android test devices have less memory.
+ crash_depth = 100_000 if sys.platform == "android" else 500_000
success_depth = 200
if _testinternalcapi is not None:
remaining = _testinternalcapi.get_c_recursion_remaining()
def test_compiler_recursion_limit(self):
# Compiler frames are small
limit = 100
- crash_depth = limit * 5000
+ # Android test devices have less memory.
+ crash_depth = limit * (1000 if sys.platform == "android" else 5000)
success_depth = limit
def check_limit(prefix, repeated, mode="single"):
# An implicit test for PyUnicode_FSDecoder().
compile("42", FakePath("test_compile_pathlike"), "single")
+ # bpo-31113: Stack overflow when compile a long sequence of
+ # complex statements.
@support.requires_resource('cpu')
def test_stack_overflow(self):
- # bpo-31113: Stack overflow when compile a long sequence of
- # complex statements.
- compile("if a: b\n" * 200000, "<dummy>", "exec")
+ # Android test devices have less memory.
+ size = 100_000 if sys.platform == "android" else 200_000
+ compile("if a: b\n" * size, "<dummy>", "exec")
# Multiple users rely on the fact that CPython does not generate
# bytecode for dead code blocks. See bpo-37500 for more context.