[pypy-commit] pypy partial-virtualizable: Add a test that passes in trunk but fails here.

arigo noreply at buildbot.pypy.org
Fri May 20 13:37:49 CEST 2011


Author: Armin Rigo <arigo at tunes.org>
Branch: partial-virtualizable
Changeset: r44325:cb6a2eb637ed
Date: 2011-05-20 13:23 +0200
http://bitbucket.org/pypy/pypy/changeset/cb6a2eb637ed/

Log:	Add a test that passes in trunk but fails here.

diff --git a/pypy/jit/metainterp/test/test_recursive.py b/pypy/jit/metainterp/test/test_recursive.py
--- a/pypy/jit/metainterp/test/test_recursive.py
+++ b/pypy/jit/metainterp/test/test_recursive.py
@@ -725,6 +725,30 @@
         res = self.meta_interp(main, [2], inline=True)
         assert res == 7
 
+    def test_compile_tmp_callback_and_using_it_with_virtualizable(self):
+        # same as the previous test, but with a virtualizable
+        class Frame(object):
+            _virtualizable2_ = ['j']
+            def __init__(self, j):
+                self.j = j
+
+        driver = JitDriver(greens = ['codeno'], reds = ['i', 'frame'],
+                           virtualizables = ['frame'])
+
+        def main(codeno):
+            frame = Frame(codeno+100)
+            i = 1
+            while i < 7:
+                driver.jit_merge_point(codeno=codeno, i=i, frame=frame)
+                assert frame.j == codeno+100
+                if codeno == 1:
+                    return
+                if i >= 3:
+                    main(1)
+                i += 1
+
+        self.meta_interp(main, [2], inline=True)
+
     def test_directly_call_assembler_return(self):
         driver = JitDriver(greens = ['codeno'], reds = ['i', 'k'],
                            get_printable_location = lambda codeno : str(codeno))


More information about the pypy-commit mailing list