From 39a156c505b7dc431a0a4cffcbefca577848db38 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Tue, 7 Nov 2017 15:08:09 +0200 Subject: [PATCH] Fix the sizeof test for dicts with shared keys. (#4311) By accident the size of the empty dict keys object matched the size of values array. --- Lib/test/test_sys.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 6872629612..50eb1b7c57 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -1074,6 +1074,7 @@ class SizeofTest(unittest.TestCase): fmt += '3n2P' s = vsize(fmt) check(int, s) + # class s = vsize(fmt + # PyTypeObject '3P' # PyAsyncMethods '36P' # PyNumberMethods @@ -1081,13 +1082,17 @@ class SizeofTest(unittest.TestCase): '10P' # PySequenceMethods '2P' # PyBufferProcs '4P') - # Separate block for PyDictKeysObject with 8 keys and 5 entries - s += calcsize("2nP2n") + 8 + 5*calcsize("n2P") - # class class newstyleclass(object): pass - check(newstyleclass, s) + # Separate block for PyDictKeysObject with 8 keys and 5 entries + check(newstyleclass, s + calcsize("2nP2n0P") + 8 + 5*calcsize("n2P")) + # dict with shared keys + check(newstyleclass().__dict__, size('nQ2P') + 5*self.P) + o = newstyleclass() + o.a = o.b = o.c = o.d = o.e = o.f = o.g = o.h = 1 + # Separate block for PyDictKeysObject with 16 keys and 10 entries + check(newstyleclass, s + calcsize("2nP2n0P") + 16 + 10*calcsize("n2P")) # dict with shared keys - check(newstyleclass().__dict__, size('nQ2P' + '2nP2n')) + check(newstyleclass().__dict__, size('nQ2P') + 10*self.P) # unicode # each tuple contains a string and its expected character size # don't put any static strings here, as they may contain -- 2.40.0