[pypy-commit] pypy jit-short_from_state: failing test
hakanardo
noreply at buildbot.pypy.org
Sun Jun 19 13:09:34 CEST 2011
Author: Hakan Ardo <hakan at debian.org>
Branch: jit-short_from_state
Changeset: r45000:03dec640d1a9
Date: 2011-06-19 13:13 +0200
http://bitbucket.org/pypy/pypy/changeset/03dec640d1a9/
Log: failing test
diff --git a/pypy/jit/metainterp/test/test_ajit.py b/pypy/jit/metainterp/test/test_ajit.py
--- a/pypy/jit/metainterp/test/test_ajit.py
+++ b/pypy/jit/metainterp/test/test_ajit.py
@@ -2621,6 +2621,73 @@
# 1 preamble and 6 speciealized versions of each loop
self.check_tree_loop_count(2*(1 + 6))
+ def test_frame_finished_during_retrace(self):
+ class Base(object):
+ pass
+ class A(Base):
+ def __init__(self, a):
+ self.val = a
+ self.num = 1
+ def inc(self):
+ return A(self.val + 1)
+ class B(Base):
+ def __init__(self, a):
+ self.val = a
+ self.num = 1000
+ def inc(self):
+ return B(self.val + 1)
+ myjitdriver = JitDriver(greens = [], reds = ['sa', 'a'])
+ def f():
+ myjitdriver.set_param('threshold', 3)
+ myjitdriver.set_param('trace_eagerness', 2)
+ a = A(0)
+ sa = 0
+ while a.val < 8:
+ myjitdriver.jit_merge_point(a=a, sa=sa)
+ a = a.inc()
+ if a.val > 4:
+ a = B(a.val)
+ sa += a.num
+ return sa
+ res = self.meta_interp(f, [])
+ assert res == f()
+
+ def test_frame_finished_during_continued_retrace(self):
+ class Base(object):
+ pass
+ class A(Base):
+ def __init__(self, a):
+ self.val = a
+ self.num = 100
+ def inc(self):
+ return A(self.val + 1)
+ class B(Base):
+ def __init__(self, a):
+ self.val = a
+ self.num = 10000
+ def inc(self):
+ return B(self.val + 1)
+ myjitdriver = JitDriver(greens = [], reds = ['sa', 'b', 'a'])
+ def f(b):
+ myjitdriver.set_param('threshold', 6)
+ myjitdriver.set_param('trace_eagerness', 4)
+ a = A(0)
+ sa = 0
+ while a.val < 15:
+ myjitdriver.jit_merge_point(a=a, b=b, sa=sa)
+ a = a.inc()
+ if a.val > 8:
+ a = B(a.val)
+ if b == 1:
+ b = 2
+ else:
+ b = 1
+ sa += a.num + b
+ return sa
+ res = self.meta_interp(f, [1])
+ assert res == f(1)
+
+
class TestOOtype(BasicTests, OOJitMixin):
def test_oohash(self):
More information about the pypy-commit
mailing list