diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2014-05-30 11:25:22 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2014-05-30 11:25:22 (GMT) |
commit | 1753d2255e14e1a768e4db63e5353191ad1e54e1 (patch) | |
tree | 88416765d2dd50268cf305a93c83eda4e9fe920a /Lib/test/test_tcl.py | |
parent | 88c56cbba5b7485aa2a0aac75a91b4c273253eca (diff) | |
parent | 79851d755bf4edacd3f423c5e2cca21d0c07c3b6 (diff) | |
download | cpython-1753d2255e14e1a768e4db63e5353191ad1e54e1.zip cpython-1753d2255e14e1a768e4db63e5353191ad1e54e1.tar.gz cpython-1753d2255e14e1a768e4db63e5353191ad1e54e1.tar.bz2 |
Issue #21552: Fixed possible integer overflow of too long string lengths in
the tkinter module on 64-bit platforms.
Diffstat (limited to 'Lib/test/test_tcl.py')
-rw-r--r-- | Lib/test/test_tcl.py | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/Lib/test/test_tcl.py b/Lib/test/test_tcl.py index cc9f6c2..db65566 100644 --- a/Lib/test/test_tcl.py +++ b/Lib/test/test_tcl.py @@ -565,10 +565,35 @@ class BigmemTclTest(unittest.TestCase): @support.cpython_only @unittest.skipUnless(INT_MAX < PY_SSIZE_T_MAX, "needs UINT_MAX < SIZE_MAX") @support.bigmemtest(size=INT_MAX + 1, memuse=5, dry_run=False) - def test_huge_string(self, size): + def test_huge_string_call(self, size): value = ' ' * size self.assertRaises(OverflowError, self.interp.call, 'set', '_', value) + @support.cpython_only + @unittest.skipUnless(INT_MAX < PY_SSIZE_T_MAX, "needs UINT_MAX < SIZE_MAX") + @support.bigmemtest(size=INT_MAX + 1, memuse=9, dry_run=False) + def test_huge_string_builtins(self, size): + value = '1' + ' ' * size + self.assertRaises(OverflowError, self.interp.getint, value) + self.assertRaises(OverflowError, self.interp.getdouble, value) + self.assertRaises(OverflowError, self.interp.getboolean, value) + self.assertRaises(OverflowError, self.interp.eval, value) + self.assertRaises(OverflowError, self.interp.evalfile, value) + self.assertRaises(OverflowError, self.interp.record, value) + self.assertRaises(OverflowError, self.interp.adderrorinfo, value) + self.assertRaises(OverflowError, self.interp.setvar, value, 'x', 'a') + self.assertRaises(OverflowError, self.interp.setvar, 'x', value, 'a') + self.assertRaises(OverflowError, self.interp.unsetvar, value) + self.assertRaises(OverflowError, self.interp.unsetvar, 'x', value) + self.assertRaises(OverflowError, self.interp.adderrorinfo, value) + self.assertRaises(OverflowError, self.interp.exprstring, value) + self.assertRaises(OverflowError, self.interp.exprlong, value) + self.assertRaises(OverflowError, self.interp.exprboolean, value) + self.assertRaises(OverflowError, self.interp.splitlist, value) + self.assertRaises(OverflowError, self.interp.split, value) + self.assertRaises(OverflowError, self.interp.createcommand, value, max) + self.assertRaises(OverflowError, self.interp.deletecommand, value) + def setUpModule(): if support.verbose: |