diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2017-11-07 13:08:09 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-07 13:08:09 (GMT) |
commit | 39a156c505b7dc431a0a4cffcbefca577848db38 (patch) | |
tree | a3e32ee0509d3c499e74bc151a33ed38977ae3a4 /Lib/test | |
parent | a935654f0613640535fbf0ba190f81d02a63d35c (diff) | |
download | cpython-39a156c505b7dc431a0a4cffcbefca577848db38.zip cpython-39a156c505b7dc431a0a4cffcbefca577848db38.tar.gz cpython-39a156c505b7dc431a0a4cffcbefca577848db38.tar.bz2 |
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.
Diffstat (limited to 'Lib/test')
-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 6872629..50eb1b7 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 |