[pypy-svn] r58754 - in pypy/dist/pypy/translator: c/test tool tool/test
xoraxax at codespeak.net
xoraxax at codespeak.net
Tue Oct 7 15:56:55 CEST 2008
Author: xoraxax
Date: Tue Oct 7 15:56:54 2008
New Revision: 58754
Modified:
pypy/dist/pypy/translator/c/test/test_typed.py
pypy/dist/pypy/translator/tool/staticsizereport.py
pypy/dist/pypy/translator/tool/test/test_staticsizereport.py
Log:
(antocuni, xoraxax) Extend and fix the staticsizereport tests.
Modified: pypy/dist/pypy/translator/c/test/test_typed.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_typed.py (original)
+++ pypy/dist/pypy/translator/c/test/test_typed.py Tue Oct 7 15:56:54 2008
@@ -32,7 +32,7 @@
def compilefunc(self, t, func):
from pypy.translator.c import genc
- builder = genc.CExtModuleBuilder(t, func, config=t.config)
+ self.builder = builder = genc.CExtModuleBuilder(t, func, config=t.config)
builder.generate_source()
builder.compile()
return builder.get_entry_point()
Modified: pypy/dist/pypy/translator/tool/staticsizereport.py
==============================================================================
--- pypy/dist/pypy/translator/tool/staticsizereport.py (original)
+++ pypy/dist/pypy/translator/tool/staticsizereport.py Tue Oct 7 15:56:54 2008
@@ -91,7 +91,7 @@
def print_report_static_size(database, grouper=by_lltype):
" Reports all objects with a specified grouper. "
- _, report = report_static_size(database.globalcontainers(), grouper)
+ _, report = make_report_static_size(database.globalcontainers(), grouper)
for line in report:
print format_report_line(line)
Modified: pypy/dist/pypy/translator/tool/test/test_staticsizereport.py
==============================================================================
--- pypy/dist/pypy/translator/tool/test/test_staticsizereport.py (original)
+++ pypy/dist/pypy/translator/tool/test/test_staticsizereport.py Tue Oct 7 15:56:54 2008
@@ -1,5 +1,5 @@
from pypy.translator.c.test.test_typed import CompilationTestCase
-from pypy.translator.tool.staticsizereport import group_static_size
+from pypy.translator.tool.staticsizereport import group_static_size, guess_size
class TestStaticSizeReport(CompilationTestCase):
def test_simple(self):
@@ -16,8 +16,24 @@
return a.key
return a.next.key
func = self.getcompiled(f, [int])
- size, num = group_static_size(self.builder.db)
+ size, num = group_static_size(self.builder.db, self.builder.db.globalcontainers())
for key, value in num.iteritems():
if "staticsizereport.A" in str(key) and "vtable" not in str(key):
assert value == 101
+ def test_large_dict(self):
+ d = {}
+ class wrap:
+ pass
+ for x in xrange(100):
+ i = wrap()
+ i.x = x
+ d[x] = i
+ def f(x):
+ return d[x].x
+ func = self.getcompiled(f, [int])
+ gcontainers = self.builder.db.globalcontainers()
+ dictvalnode = [node for node in gcontainers if "struct dicttable" in repr(node.obj)][0]
+ assert guess_size(self.builder.db, dictvalnode, set()) > 100
+ size, num = group_static_size(self.builder.db, gcontainers)
+ 1/0
More information about the Pypy-commit
mailing list