Author: Maciej Fijalkowski <[email protected]>
Branch: kill-gen-store-back-in
Changeset: r64972:102265dc8e2a
Date: 2013-06-25 07:23 +0200
http://bitbucket.org/pypy/pypy/changeset/102265dc8e2a/
Log: Write one more test for another case in _nonstandard_virtualizable
if chain
diff --git a/rpython/jit/metainterp/test/test_virtualizable.py
b/rpython/jit/metainterp/test/test_virtualizable.py
--- a/rpython/jit/metainterp/test/test_virtualizable.py
+++ b/rpython/jit/metainterp/test/test_virtualizable.py
@@ -1510,6 +1510,40 @@
res = self.meta_interp(main, [])
assert res == main()
+ def test_two_virtualizables_mixed(self):
+ driver1 = JitDriver(greens=[], reds=['i', 's', 'frame',
+ 'subframe'])
+ driver2 = JitDriver(greens=[], reds=['subframe'],
+ virtualizables=['subframe'])
+
+ class Frame(object):
+ _virtualizable2_ = ['x']
+
+ class SubFrame(object):
+ _virtualizable2_ = ['x']
+
+ def g(subframe):
+ driver2.jit_merge_point(subframe=subframe)
+ subframe.x += 1
+
+ def f():
+ i = 0
+ frame = Frame()
+ frame.x = 0
+ subframe = SubFrame()
+ subframe.x = 0
+ s = 0
+ while i < 10:
+ driver1.jit_merge_point(frame=frame, subframe=subframe, i=i,
+ s=s)
+ g(subframe)
+ s += subframe.x
+ i += 1
+ return s
+
+ res = self.meta_interp(f, [])
+ assert res == f()
+
class TestLLtype(ExplicitVirtualizableTests,
ImplicitVirtualizableTests,
LLJitMixin):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit