[pypy-svn] r37543 - in pypy/dist/pypy/jit: codegen/i386/test timeshifter/test

arigo at codespeak.net arigo at codespeak.net
Mon Jan 29 16:19:55 CET 2007


Author: arigo
Date: Mon Jan 29 16:19:52 2007
New Revision: 37543

Added:
   pypy/dist/pypy/jit/codegen/i386/test/test_genc_virtualizable.py   (contents, props changed)
Modified:
   pypy/dist/pypy/jit/timeshifter/test/test_portal.py
   pypy/dist/pypy/jit/timeshifter/test/test_virtualizable.py
Log:
Port test_virtualizatble to the 386 backend.


Added: pypy/dist/pypy/jit/codegen/i386/test/test_genc_virtualizable.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/jit/codegen/i386/test/test_genc_virtualizable.py	Mon Jan 29 16:19:52 2007
@@ -0,0 +1,14 @@
+from pypy.jit.codegen.i386.test.test_genc_portal import I386PortalTestMixin
+from pypy.jit.timeshifter.test import test_virtualizable
+
+
+class TestVirtualizableExplicit(I386PortalTestMixin,
+                                test_virtualizable.TestVirtualizableExplicit):
+    pass
+
+class TestVirtualizableImplicit(I386PortalTestMixin,
+                                test_virtualizable.TestVirtualizableImplicit):
+    pass
+
+# for the individual tests see
+# ====> ../../../timeshifter/test/test_virtualizable.py

Modified: pypy/dist/pypy/jit/timeshifter/test/test_portal.py
==============================================================================
--- pypy/dist/pypy/jit/timeshifter/test/test_portal.py	(original)
+++ pypy/dist/pypy/jit/timeshifter/test/test_portal.py	Mon Jan 29 16:19:52 2007
@@ -7,13 +7,13 @@
 from pypy.rpython.llinterp import LLInterpreter
 from pypy.objspace.flow.model import checkgraph, summary
 from pypy.rlib.objectmodel import hint
+from pypy.jit.codegen.llgraph.rgenop import RGenOp as LLRGenOp
 
 import py.test
 
 
 class PortalTest(object):
-    from pypy.jit.codegen.llgraph.rgenop import RGenOp
-
+    RGenOp = LLRGenOp
     small = True
 
     def setup_class(cls):
@@ -23,6 +23,7 @@
             cls.RGenOp = RDumpGenOp
         cls._cache = {}
         cls._cache_order = []
+        cls.on_llgraph = cls.RGenOp is LLRGenOp
 
     def teardown_class(cls):
         del cls._cache

Modified: pypy/dist/pypy/jit/timeshifter/test/test_virtualizable.py
==============================================================================
--- pypy/dist/pypy/jit/timeshifter/test/test_virtualizable.py	(original)
+++ pypy/dist/pypy/jit/timeshifter/test/test_virtualizable.py	Mon Jan 29 16:19:52 2007
@@ -148,10 +148,12 @@
         res = self.timeshift_from_portal(main, f, [20, 22], policy=P_OOPSPEC)
         assert res == 42
         self.check_insns(getfield=0)
-        residual_graph = self.get_residual_graph()
-        assert len(residual_graph.startblock.inputargs) == 3
-        assert ([v.concretetype for v in residual_graph.startblock.inputargs] ==
-                [lltype.Ptr(XY), lltype.Signed, lltype.Signed])
+        if self.on_llgraph:
+            residual_graph = self.get_residual_graph()
+            inputargs = residual_graph.startblock.inputargs
+            assert len(inputargs) == 3
+            assert ([v.concretetype for v in inputargs] ==
+                    [lltype.Ptr(XY), lltype.Signed, lltype.Signed])
 
     def test_simple_set(self):
    
@@ -171,10 +173,12 @@
         res = self.timeshift_from_portal(main, f, [20, 22], policy=P_OOPSPEC)
         assert res == 21
         self.check_insns(getfield=0)
-        residual_graph = self.get_residual_graph()
-        assert len(residual_graph.startblock.inputargs) == 3
-        assert ([v.concretetype for v in residual_graph.startblock.inputargs] ==
-                [lltype.Ptr(XY), lltype.Signed, lltype.Signed])
+        if self.on_llgraph:
+            residual_graph = self.get_residual_graph()
+            inputargs = residual_graph.startblock.inputargs
+            assert len(inputargs) == 3
+            assert ([v.concretetype for v in inputargs] ==
+                    [lltype.Ptr(XY), lltype.Signed, lltype.Signed])
 
     def test_set_effect(self):
 
@@ -195,10 +199,12 @@
         res = self.timeshift_from_portal(main, f, [20, 22], policy=P_OOPSPEC)
         assert res == 26
         self.check_insns(getfield=0)
-        residual_graph = self.get_residual_graph()
-        assert len(residual_graph.startblock.inputargs) == 3
-        assert ([v.concretetype for v in residual_graph.startblock.inputargs] ==
-                [lltype.Ptr(XY), lltype.Signed, lltype.Signed])
+        if self.on_llgraph:
+            residual_graph = self.get_residual_graph()
+            inputargs = residual_graph.startblock.inputargs
+            assert len(inputargs) == 3
+            assert ([v.concretetype for v in inputargs] ==
+                    [lltype.Ptr(XY), lltype.Signed, lltype.Signed])
 
     def test_simple_escape(self):
    
@@ -219,9 +225,11 @@
         res = self.timeshift_from_portal(main, f, [20, 22], policy=P_OOPSPEC)
         assert res == 23
         self.check_insns(getfield=0)
-        residual_graph = self.get_residual_graph()
-        assert len(residual_graph.startblock.inputargs) == 4
-        assert ([v.concretetype for v in residual_graph.startblock.inputargs] ==
+        if self.on_llgraph:
+            residual_graph = self.get_residual_graph()
+            inputargs = residual_graph.startblock.inputargs
+            assert len(inputargs) == 4
+            assert ([v.concretetype for v in inputargs] ==
                 [lltype.Ptr(E), lltype.Ptr(XY), lltype.Signed, lltype.Signed])
 
     def test_simple_return_it(self):
@@ -810,18 +818,17 @@
         def main(x, y):
             code = '+d+-+'
             f = Frame(code, x, y)
-            return f.run(), log.acc
-        
+            return f.run() * 10 + log.acc
+
         res = self.timeshift_from_portal(main, Frame.plus_minus.im_func,
                             [0, 2],
                             policy=StopAtXPolicy(Frame.debug.im_func))
-
-        assert res.item0 == 4
-        assert res.item1 == 2
-        calls = self.count_direct_calls()
-        call_count = sum([count for graph, count in calls.iteritems()
-                          if not graph.name.startswith('rpyexc_')])
-        assert call_count == 3
+        assert res == 42
+        if self.on_llgraph:
+            calls = self.count_direct_calls()
+            call_count = sum([count for graph, count in calls.iteritems()
+                              if not graph.name.startswith('rpyexc_')])
+            assert call_count == 3
 
 
     def test_setting_pointer_in_residual_call(self):



More information about the Pypy-commit mailing list