]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-111803: Make test_deep_nesting from test_plistlib more strict (GH-114026...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 22 Jan 2024 15:16:12 +0000 (16:16 +0100)
committerGitHub <noreply@github.com>
Mon, 22 Jan 2024 15:16:12 +0000 (17:16 +0200)
It is no longer silently passed if RecursionError was raised for low
recursion depth.
(cherry picked from commit db1c18eb6220653290a3ba9ebbe1df44394a3f19)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Lib/test/test_plistlib.py

index b08ababa341cfe548fa5dd4e6548de945b29d4e8..3f10f16d71996dca63f7919e3336a7d504313dd2 100644 (file)
@@ -908,12 +908,13 @@ class TestBinaryPlistlib(unittest.TestCase):
         self.assertIs(b['x'], b)
 
     def test_deep_nesting(self):
-        for N in [300, 100000]:
+        tests = [50, 100_000] if support.is_wasi else [50, 300, 100_000]
+        for N in tests:
             chunks = [b'\xa1' + (i + 1).to_bytes(4, 'big') for i in range(N)]
             try:
                 result = self.decode(*chunks, b'\x54seed', offset_size=4, ref_size=4)
             except RecursionError:
-                pass
+                self.assertGreater(N, sys.getrecursionlimit()//2)
             else:
                 for i in range(N):
                     self.assertIsInstance(result, list)