From 8004c4570b1d1277ea8754e22b5eb60e63f5026c Mon Sep 17 00:00:00 2001 From: Batuhan Taskaya Date: Tue, 8 Jun 2021 20:39:03 +0300 Subject: [PATCH] bpo-11105: document the new test.support.infinite_recursion context manager (GH-26604) --- Lib/test/support/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index d17331e6e89..933c2c99b29 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -49,7 +49,7 @@ __all__ = [ # processes "reap_children", # miscellaneous - "run_with_locale", "swap_item", "findfile", + "run_with_locale", "swap_item", "findfile", "infinite_recursion", "swap_attr", "Matcher", "set_memlimit", "SuppressCrashReport", "sortdict", "run_with_tz", "PGO", "missing_compiler_executable", "ALWAYS_EQ", "NEVER_EQ", "LARGEST", "SMALLEST", @@ -2002,6 +2002,12 @@ def check_disallow_instantiation(testcase, tp, *args, **kwds): @contextlib.contextmanager def infinite_recursion(max_depth=75): + """Set a lower limit for tests that interact with infinite recursions + (e.g test_ast.ASTHelpers_Test.test_recursion_direct) since on some + debug windows builds, due to not enough functions being inlined the + stack size might not handle the default recursion limit (1000). See + bpo-11105 for details.""" + original_depth = sys.getrecursionlimit() try: sys.setrecursionlimit(max_depth)