From 287eca658d472b737746a0c25d3bf5d041cfd89b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Wed, 28 Sep 2011 10:03:28 +0200 Subject: Fix struct sizes. Drop -1, since the resulting string was actually the largest one that could be allocated. --- Lib/test/test_unicode.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index f256ba6..b903fbe9 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) -- cgit v0.12