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