[pypy-svn] r75310 - pypy/branch/multijit-4/pypy/jit/metainterp/test

arigo at codespeak.net arigo at codespeak.net
Sat Jun 12 10:40:00 CEST 2010


Author: arigo
Date: Sat Jun 12 10:39:59 2010
New Revision: 75310

Added:
   pypy/branch/multijit-4/pypy/jit/metainterp/test/test_jitdriver.py
Log:
Add a first simple test about multiple jitdrivers.


Added: pypy/branch/multijit-4/pypy/jit/metainterp/test/test_jitdriver.py
==============================================================================
--- (empty file)
+++ pypy/branch/multijit-4/pypy/jit/metainterp/test/test_jitdriver.py	Sat Jun 12 10:39:59 2010
@@ -0,0 +1,34 @@
+"""Tests for multiple JitDrivers."""
+from pypy.rlib.jit import JitDriver
+from pypy.jit.metainterp.test.test_basic import LLJitMixin, OOJitMixin
+
+
+class MultipleJitDriversTests:
+
+    def test_simple(self):
+        myjitdriver1 = JitDriver(greens=[], reds=['n', 'm'])
+        myjitdriver2 = JitDriver(greens=['g'], reds=['r'])
+        #
+        def loop1(n, m):
+            while n > 0:
+                myjitdriver1.can_enter_jit(n=n, m=m)
+                myjitdriver1.jit_merge_point(n=n, m=m)
+                n -= m
+            return n
+        #
+        def loop2(g, r):
+            while r > 0:
+                myjitdriver2.can_enter_jit(g=g, r=r)
+                myjitdriver2.jit_merge_point(g=g, r=r)
+                r += loop1(r, g) - 1
+            return r
+        #
+        res = self.meta_interp(loop2, [4, 40])
+        assert res == loop2(4, 40)
+
+
+class TestLLtype(MultipleJitDriversTests, LLJitMixin):
+    pass
+
+class TestOOtype(MultipleJitDriversTests, OOJitMixin):
+    pass



More information about the Pypy-commit mailing list