[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