Author: Antonio Cuni <[email protected]>
Branch: virtual-raw-mallocs
Changeset: r59477:43d8e4d8dbc0
Date: 2012-12-17 15:07 +0100
http://bitbucket.org/pypy/pypy/changeset/43d8e4d8dbc0/
Log: a failing test
diff --git a/pypy/jit/metainterp/test/test_virtual.py
b/pypy/jit/metainterp/test/test_virtual.py
--- a/pypy/jit/metainterp/test/test_virtual.py
+++ b/pypy/jit/metainterp/test/test_virtual.py
@@ -1195,6 +1195,8 @@
('floatval', lltype.Float),
('extra', lltype.Signed))
+RAW_NODE = lltype.Struct('NODE', ('value', lltype.Signed))
+
class TestLLtype_NotObject(VirtualTests, LLJitMixin):
_new_op = 'new'
_field_prefix = ''
@@ -1203,6 +1205,28 @@
def _new():
return lltype.malloc(NODE)
+ def test_raw_malloc(self):
+ mydriver = JitDriver(greens=[], reds = 'auto')
+ def f(n):
+ i = 0
+ res = 0
+ while i < n:
+ mydriver.jit_merge_point()
+ node = lltype.malloc(RAW_NODE, flavor='raw')
+ node.value = i
+ node.value += 1
+ res += node.value
+ i = node.value
+ lltype.free(node, flavor='raw')
+ return res
+ assert f(10) == 55
+ res = self.meta_interp(f, [10])
+ assert res == 55
+ self.check_trace_count(1)
+ self.check_resops(setfield_raw=0, getfield_raw=0)
+
+
+
OONODE = ootype.Instance('NODE', ootype.ROOT, {})
OONODE._add_fields({'value': ootype.Signed,
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit