summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_exceptions.py
diff options
context:
space:
mode:
authorLysandros Nikolaou <lisandrosnik@gmail.com>2023-10-17 22:34:56 (GMT)
committerGitHub <noreply@github.com>2023-10-17 22:34:56 (GMT)
commit1af7b7db0d1cd6756ecb6081364fdd1378b1605c (patch)
treef25821bfd3d167c47728fd4ca17481300e296249 /Lib/test/test_exceptions.py
parent73ebe2f881ac2ffb4d3d23b8693213fea53357e9 (diff)
downloadcpython-1af7b7db0d1cd6756ecb6081364fdd1378b1605c.zip
cpython-1af7b7db0d1cd6756ecb6081364fdd1378b1605c.tar.gz
cpython-1af7b7db0d1cd6756ecb6081364fdd1378b1605c.tar.bz2
[3.11] gh-107450: Check for overflow in the tokenizer and fix overflow test (GH-110832) (#110939)
(cherry picked from commit a1ac5590e0f8fe008e5562d22edab65d0c1c5507) Co-authored-by: Filipe LaĆ­ns <lains@riseup.net> Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Diffstat (limited to 'Lib/test/test_exceptions.py')
-rw-r--r--Lib/test/test_exceptions.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py
index c7c63e5..cd06421 100644
--- a/Lib/test/test_exceptions.py
+++ b/Lib/test/test_exceptions.py
@@ -19,6 +19,12 @@ from test.support.os_helper import TESTFN, unlink
from test.support.warnings_helper import check_warnings
from test import support
+try:
+ from _testcapi import INT_MAX
+except ImportError:
+ INT_MAX = 2**31 - 1
+
+
class NaiveException(Exception):
def __init__(self, x):
@@ -318,11 +324,13 @@ class ExceptionTests(unittest.TestCase):
check('(yield i) = 2', 1, 2)
check('def f(*):\n pass', 1, 7)
+ @unittest.skipIf(INT_MAX >= sys.maxsize, "Downcasting to int is safe for col_offset")
@support.requires_resource('cpu')
- @support.bigmemtest(support._2G, memuse=1.5)
- def testMemoryErrorBigSource(self, _size):
- with self.assertRaises(OverflowError):
- exec(f"if True:\n {' ' * 2**31}print('hello world')")
+ @support.bigmemtest(INT_MAX, memuse=2, dry_run=False)
+ def testMemoryErrorBigSource(self, size):
+ src = b"if True:\n%*s" % (size, b"pass")
+ with self.assertRaisesRegex(OverflowError, "Parser column offset overflow"):
+ compile(src, '<fragment>', 'exec')
@cpython_only
def testSettingException(self):