Author: Maciej Fijalkowski <fij...@gmail.com>
Branch: kill-someobject
Changeset: r58045:88dedebc91e5
Date: 2012-10-12 16:08 +0200
http://bitbucket.org/pypy/pypy/changeset/88dedebc91e5/

Log:    merge

diff --git a/pypy/objspace/flow/model.py b/pypy/objspace/flow/model.py
--- a/pypy/objspace/flow/model.py
+++ b/pypy/objspace/flow/model.py
@@ -257,13 +257,6 @@
 class Variable(object):
     __slots__ = ["_name", "_nr", "concretetype"]
 
-##    def getter(x): return x._ct
-##    def setter(x, ct):
-##        if repr(ct) == '<* PyObject>':
-##            import pdb; pdb.set_trace()
-##        x._ct = ct
-##    concretetype = property(getter, setter)
-
     dummyname = 'v'
     namesdict = {dummyname : (dummyname, 0)}
 
diff --git a/pypy/translator/c/test/test_genc.py 
b/pypy/translator/c/test/test_genc.py
--- a/pypy/translator/c/test/test_genc.py
+++ b/pypy/translator/c/test/test_genc.py
@@ -106,6 +106,13 @@
     t.compile_c()
     ll_res = graphof(t.context, fn).getreturnvar().concretetype
 
+    def output(stdout):
+        for line in stdout.splitlines(False):
+            if len(repr(line)) == len(line) + 2:   # no escaped char
+                print line
+            else:
+                print 'REPR:', repr(line)
+
     def f(*args, **kwds):
         expected_extra_mallocs = kwds.pop('expected_extra_mallocs', 0)
         expected_exception_name = kwds.pop('expected_exception_name', None)
@@ -118,19 +125,20 @@
             " ".join([llrepr_in(arg) for arg in args]),
             expect_crash=(expected_exception_name is not None))
         #
-        for line in stdout.splitlines(False):
-            if len(repr(line)) == len(line) + 2:   # no escaped char
-                print line
-            else:
-                print 'REPR:', repr(line)
-        #
         if expected_exception_name is not None:
             stdout, stderr = stdout
+            print '--- stdout ---'
+            output(stdout)
+            print '--- stderr ---'
+            output(stderr)
+            print '--------------'
             stderr, lastline, empty = stderr.rsplit('\n', 2)
             assert empty == ''
             assert lastline == ('Fatal RPython error: ' +
                                 expected_exception_name)
             return None
+
+        output(stdout)
         stdout, lastline, empty = stdout.rsplit('\n', 2)
         assert empty == ''
         assert lastline.startswith('MALLOC COUNTERS: ')
@@ -159,8 +167,17 @@
         elif ll_res == lltype.Void:
             return None
         raise NotImplementedError("parsing %s" % (ll_res,))
-    f.__name__ = fn.__name__
-    return f
+
+    class CompilationResult(object):
+        def __repr__(self):
+            return 'CompilationResult(%s)' % (fn.__name__,)
+        def __call__(self, *args, **kwds):
+            return f(*args, **kwds)
+
+    cr = CompilationResult()
+    cr.t = t
+    cr.builder = t.driver.cbuilder
+    return cr
 
 
 def test_simple():
diff --git a/pypy/translator/test/test_exceptiontransform.py 
b/pypy/translator/test/test_exceptiontransform.py
--- a/pypy/translator/test/test_exceptiontransform.py
+++ b/pypy/translator/test/test_exceptiontransform.py
@@ -64,6 +64,8 @@
         assert f() == 1
 
     def test_passthrough(self):
+        if self.type_system == 'ootype':
+            py.test.skip("XXX")
         def one(x):
             if x:
                 raise ValueError()
@@ -73,7 +75,7 @@
             one(1)
         t, g = self.transform_func(foo, [])
         f = self.compile(foo, [])
-        py.test.raises(ValueError, f)
+        f(expected_exception_name='ValueError')
 
     def test_catches(self):
         def one(x):
@@ -142,6 +144,8 @@
         assert result == 2
 
     def test_raises(self):
+        if self.type_system == 'ootype':
+            py.test.skip("XXX")
         def foo(x):
             if x:
                 raise ValueError()
@@ -149,7 +153,7 @@
         assert len(list(g.iterblocks())) == 3
         f = self.compile(foo, [int])
         f(0)
-        py.test.raises(ValueError, f, 1)
+        f(1, expected_exception_name='ValueError')
 
 
     def test_no_multiple_transform(self):
diff --git a/pypy/translator/tool/test/test_staticsizereport.py 
b/pypy/translator/tool/test/test_staticsizereport.py
--- a/pypy/translator/tool/test/test_staticsizereport.py
+++ b/pypy/translator/tool/test/test_staticsizereport.py
@@ -1,8 +1,8 @@
-from pypy.translator.c.test.test_typed import CompilationTestCase
+from pypy.translator.c.test.test_genc import compile
 from pypy.translator.tool.staticsizereport import group_static_size, guess_size
 from pypy.rpython.lltypesystem import llmemory, lltype, rffi
 
-class TestStaticSizeReport(CompilationTestCase):
+class TestStaticSizeReport(object):
     def test_simple(self):
         class A:
             def __init__(self, n):
@@ -16,8 +16,9 @@
             if x:
                 return a.key
             return a.next.key
-        func = self.getcompiled(f, [int])
-        size, num = group_static_size(self.builder.db, 
self.builder.db.globalcontainers())
+        func = compile(f, [int])
+        size, num = group_static_size(func.builder.db,
+                                      func.builder.db.globalcontainers())
         for key, value in num.iteritems():
             if "staticsizereport.A" in str(key) and "vtable" not in str(key):
                 assert value == 101
@@ -39,8 +40,8 @@
             if x > 42:
                 dynlist.append(x)
             return d[x].x + fixlist[x] + d_small[x] + 
reverse_dict[test_dict[x]]
-        func = self.getcompiled(f, [int])
-        db = self.builder.db
+        func = compile(f, [int])
+        db = func.builder.db
         gcontainers = list(db.globalcontainers())
         t = db.translator
         rtyper = t.rtyper
@@ -55,11 +56,11 @@
         S = rffi.sizeof(lltype.Signed)
         P = rffi.sizeof(rffi.VOIDP)
         B = 1 # bool
-        assert guess_size(self.builder.db, dictvalnode, set()) > 100
-        assert guess_size(self.builder.db, dictvalnode2, set()) == 2 * S + 1 * 
P + 1 * S + 8 * (2*S + 1 * B)
+        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)
         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 guess_size(self.builder.db, fixarrayvalnode, set()) == 100 * 
rffi.sizeof(lltype.Signed) + 1 * rffi.sizeof(lltype.Signed)
-        assert guess_size(self.builder.db, dynarrayvalnode, set()) == 100 * 
rffi.sizeof(lltype.Signed) + 2 * rffi.sizeof(lltype.Signed) + 1 * 
rffi.sizeof(rffi.VOIDP)
+        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
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to