[Python-checkins] test_ast uses infinite_recursion() to prevent crash (GH-100104)

miss-islington webhook-mailer at python.org
Thu Dec 8 03:52:08 EST 2022


https://github.com/python/cpython/commit/42fde2d164eb6f9c31a01b290114026d857676ad
commit: 42fde2d164eb6f9c31a01b290114026d857676ad
branch: 3.11
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2022-12-08T00:52:02-08:00
summary:

test_ast uses infinite_recursion() to prevent crash (GH-100104)


test.test_ast_recursion_limit() now uses infinite_recursion() of
test.support to prevent crashes on debug builds.

Before this change, the test crashed on ARM64 Windows 3.x buildbot
worker which builds Python in debug mode.
(cherry picked from commit cd67c1bb30eccd0c6fd1386405df225aed4c91a9)

Co-authored-by: Victor Stinner <vstinner at python.org>

files:
M Lib/test/test_ast.py

diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py
index 7581adc8fc27..c33c0ae22379 100644
--- a/Lib/test/test_ast.py
+++ b/Lib/test/test_ast.py
@@ -831,7 +831,8 @@ def check_limit(prefix, repeated):
                 details = "Compiling ({!r} + {!r} * {})".format(
                             prefix, repeated, depth)
                 with self.assertRaises(RecursionError, msg=details):
-                    ast.parse(broken)
+                    with support.infinite_recursion():
+                        ast.parse(broken)
 
         check_limit("a", "()")
         check_limit("a", ".b")



More information about the Python-checkins mailing list