[pypy-svn] r65973 - pypy/branch/pyjitpl5/pypy/jit/metainterp/test
fijal at codespeak.net
fijal at codespeak.net
Thu Jun 25 23:20:29 CEST 2009
Author: fijal
Date: Thu Jun 25 23:20:29 2009
New Revision: 65973
Modified:
pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_recursive.py
Log:
refactor test a bit for the future reuse this interpreter
Modified: pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_recursive.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_recursive.py (original)
+++ pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_recursive.py Thu Jun 25 23:20:29 2009
@@ -95,19 +95,14 @@
policy=StopAtXPolicy(opaque))
assert res == 1
- def test_inline(self):
+ def get_interpreter(self, codes):
ADD = "0"
JUMP_BACK = "1"
CALL = "2"
- code = "021"
- subcode = "0"
-
jitdriver = JitDriver(greens = ['code', 'i'], reds = ['n'])
-
- codes = [code, subcode]
-
- def f(codenum, n):
+
+ def interpret(codenum, n):
i = 0
code = codes[codenum]
while i < len(code):
@@ -117,7 +112,7 @@
n += 1
i += 1
elif op == CALL:
- n = f(1, n)
+ n = interpret(1, n)
i += 1
elif op == JUMP_BACK:
if n > 20:
@@ -128,11 +123,21 @@
raise NotImplementedError
return n
+ return interpret
+
+ def test_inline(self):
+
+ code = "021"
+ subcode = "0"
+
+ codes = ["021", "0"]
+ f = self.get_interpreter(codes)
+
assert self.meta_interp(f, [0, 0], optimizer=Optimizer) == 42
self.check_loops(int_add = 1, call = 1)
assert self.meta_interp(f, [0, 0], optimizer=Optimizer,
inline=True) == 42
- self.check_loops(int_add = 2, call = 0, guard_no_exception = 0)
+ self.check_loops(int_add = 2, call = 0, guard_no_exception = 0)
class TestLLtype(RecursiveTests, LLJitMixin):
pass
More information about the Pypy-commit
mailing list