[pypy-svn] r64571 - pypy/branch/pyjitpl5/pypy/jit/metainterp/test
fijal at codespeak.net
fijal at codespeak.net
Wed Apr 22 17:21:19 CEST 2009
Author: fijal
Date: Wed Apr 22 17:21:17 2009
New Revision: 64571
Modified:
pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_exception.py
Log:
a passing test
Modified: pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_exception.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_exception.py (original)
+++ pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_exception.py Wed Apr 22 17:21:17 2009
@@ -430,6 +430,42 @@
# ENTER - compile the leaving path (raising MyError)
self.check_enter_count(4)
+
+ def test_bridge_from_interpreter_exc_2(self):
+ from pypy.jit.metainterp.simple_optimize import Optimizer
+
+ mydriver = JitDriver(reds = ['n'], greens = [])
+
+ def x(n):
+ if n == 1:
+ raise MyError(n)
+
+ def f(n):
+ try:
+ while n > 0:
+ mydriver.can_enter_jit(n=n)
+ mydriver.jit_merge_point(n=n)
+ x(n)
+ n -= 1
+ except MyError:
+ z()
+
+ def z():
+ raise ValueError
+
+ def main(n):
+ try:
+ f(n)
+ return 3
+ except MyError, e:
+ return e.n
+ except ValueError:
+ return 8
+
+ res = self.meta_interp(main, [41], repeat=7, policy=StopAtXPolicy(x),
+ optimizer=Optimizer)
+ assert res == 8
+
class MyError(Exception):
def __init__(self, n):
self.n = n
More information about the Pypy-commit
mailing list