diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2017-11-07 13:59:33 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2017-11-07 13:59:33 (GMT) |
commit | a5dca7d173f9f1d98b13939498269ce3e35b3a07 (patch) | |
tree | 1bbeb35657cbdd6dd18cab6380a104597cc79d3b /Lib/test/test_sys.py | |
parent | ef6f224ae6cd63f47bd2bf7084b8f982d9825be7 (diff) | |
download | cpython-a5dca7d173f9f1d98b13939498269ce3e35b3a07.zip cpython-a5dca7d173f9f1d98b13939498269ce3e35b3a07.tar.gz cpython-a5dca7d173f9f1d98b13939498269ce3e35b3a07.tar.bz2 |
Fix the sizeof test for dicts with shared keys. (GH-4311) (#4312)
By accident the size of the empty dict keys object matched the
size of values array.
(cherry picked from commit 39a156c505b7dc431a0a4cffcbefca577848db38)
Diffstat (limited to 'Lib/test/test_sys.py')
-rw-r--r-- | Lib/test/test_sys.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index e151f49..d49e4ab 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -1092,6 +1092,7 @@ class SizeofTest(unittest.TestCase): fmt += '3n2P' s = vsize(fmt) check(int, s) + # class s = vsize(fmt + # PyTypeObject '3P' # PyAsyncMethods '36P' # PyNumberMethods @@ -1099,13 +1100,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 |