Author: Armin Rigo <[email protected]>
Branch: all_ordered_dicts
Changeset: r75391:dfe68418c314
Date: 2015-01-16 17:00 +0100
http://bitbucket.org/pypy/pypy/changeset/dfe68418c314/
Log: Fix this test (unsure if it's worth it but well)
diff --git a/rpython/translator/tool/staticsizereport.py
b/rpython/translator/tool/staticsizereport.py
--- a/rpython/translator/tool/staticsizereport.py
+++ b/rpython/translator/tool/staticsizereport.py
@@ -3,6 +3,7 @@
from rpython.tool.ansicolor import red, yellow, green
from rpython.rtyper.lltypesystem.lltype import typeOf, _ptr, Ptr, ContainerType
+from rpython.rtyper.lltypesystem.lltype import GcOpaqueType
from rpython.rtyper.lltypesystem import llmemory
from rpython.memory.lltypelayout import convert_offset_to_int
@@ -54,6 +55,8 @@
if isinstance(typeOf(value), Ptr):
container = value._obj
if isinstance(typeOf(container), ContainerType):
+ if isinstance(typeOf(container), GcOpaqueType):
+ container = container.container
node = database.getcontainernode(container)
if node.nodekind != 'func':
nodes.append(node)
@@ -77,7 +80,10 @@
return 0
else:
length = None
- return convert_offset_to_int(llmemory.sizeof(TYPE, length))
+ #print obj, ', length =', length
+ r = convert_offset_to_int(llmemory.sizeof(TYPE, length))
+ #print '\tr =', r
+ return r
def guess_size(database, node, recursive=None):
diff --git a/rpython/translator/tool/test/test_staticsizereport.py
b/rpython/translator/tool/test/test_staticsizereport.py
--- a/rpython/translator/tool/test/test_staticsizereport.py
+++ b/rpython/translator/tool/test/test_staticsizereport.py
@@ -57,10 +57,17 @@
P = rffi.sizeof(rffi.VOIDP)
B = 1 # bool
assert guess_size(func.builder.db, dictvalnode, set()) > 100
- assert guess_size(func.builder.db, dictvalnode2, set()) == 2 * S + 1 *
P + 1 * S + 8 * (2*S + 1 * B)
+ assert guess_size(func.builder.db, dictvalnode2, set()) == (
+ (4 * S + 2 * P) + # struct dicttable
+ (S + 8) + # indexes, length 8
+ (S + S + S)) # entries, length 1
r_set = set()
dictnode_size = guess_size(db, test_dictnode, r_set)
- assert dictnode_size == 2 * S + 1 * P + 1 * S + (4096-256) * (1*S+1*P
+ (1 * S + 1*P + 5)) + (8192-4096+256) * (1*S+1*P)
+ assert dictnode_size == (
+ (4 * S + 2 * P) + # struct dicttable
+ (S + 2 * 8192) + # indexes, length 8192, rffi.USHORT
+ (S + (S + S) * 3840) + # entries, length 3840
+ (S + S + 5) * 3840) # 3840 strings with 5 chars each
assert guess_size(func.builder.db, fixarrayvalnode, set()) == 100 *
rffi.sizeof(lltype.Signed) + 1 * rffi.sizeof(lltype.Signed)
assert guess_size(func.builder.db, dynarrayvalnode, set()) == 100 *
rffi.sizeof(lltype.Signed) + 2 * rffi.sizeof(lltype.Signed) + 1 *
rffi.sizeof(rffi.VOIDP)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit