From: Martin v. Löwis Date: Wed, 28 Sep 2011 08:03:28 +0000 (+0200) Subject: Fix struct sizes. Drop -1, since the resulting string was actually the largest one X-Git-Tag: v3.3.0a1~1483 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=287eca658d472b737746a0c25d3bf5d041cfd89b;p=thirdparty%2FPython%2Fcpython.git Fix struct sizes. Drop -1, since the resulting string was actually the largest one that could be allocated. --- diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index f256ba67278e..b903fbe944cf 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -1585,12 +1585,12 @@ class UnicodeTest(string_tests.CommonTest, def test_raiseMemError(self): if struct.calcsize('P') == 8: # 64 bits pointers - ascii_struct_size = 64 - compact_struct_size = 88 + ascii_struct_size = 48 + compact_struct_size = 72 else: # 32 bits pointers - ascii_struct_size = 32 - compact_struct_size = 44 + ascii_struct_size = 24 + compact_struct_size = 36 for char in ('a', '\xe9', '\u20ac', '\U0010ffff'): code = ord(char) @@ -1604,8 +1604,9 @@ class UnicodeTest(string_tests.CommonTest, char_size = 4 # sizeof(Py_UCS4) struct_size = compact_struct_size # Note: sys.maxsize is half of the actual max allocation because of - # the signedness of Py_ssize_t. -1 because of the null character. - maxlen = ((sys.maxsize - struct_size) // char_size) - 1 + # the signedness of Py_ssize_t. Strings of maxlen-1 should in principle + # be allocatable, given enough memory. + maxlen = ((sys.maxsize - struct_size) // char_size) alloc = lambda: char * maxlen self.assertRaises(MemoryError, alloc) self.assertRaises(MemoryError, alloc)