Author: Carl Friedrich Bolz <[email protected]>
Branch: unpickle-coroutine-trampoline
Changeset: r44147:d50af6b7bebd
Date: 2011-05-13 18:38 +0200
http://bitbucket.org/pypy/pypy/changeset/d50af6b7bebd/

Log:    (arigo, cfbolz): fix the remaining failing test. Coroutines that end
        with an exception didn't work as they should. The fix is obvious,
        no?

diff --git a/pypy/module/_stackless/interp_coroutine.py 
b/pypy/module/_stackless/interp_coroutine.py
--- a/pypy/module/_stackless/interp_coroutine.py
+++ b/pypy/module/_stackless/interp_coroutine.py
@@ -403,4 +403,6 @@
         except OperationError, operr:
             pass
         frame = frame.f_backref()
+    if operr:
+        raise operr
     return w_result
diff --git a/pypy/module/_stackless/test/test_pickle.py 
b/pypy/module/_stackless/test/test_pickle.py
--- a/pypy/module/_stackless/test/test_pickle.py
+++ b/pypy/module/_stackless/test/test_pickle.py
@@ -257,16 +257,26 @@
     pckl = pickle.dumps(sub_coro)
     new_coro = pickle.loads(pckl)
 
-    new_coro.switch()
+    try:
+        sub_coro.switch()
+    except ValueError:
+        pass
+    else:
+        assert 0
+    try:
+        new_coro.switch()
+    except ValueError:
+        pass
+    else:
+        assert 0
 
 example()
-assert output == [16, 8, 4, 2, 1]
+assert output == [16, 8, 4, 2, 1] * 2
 ''' in mod.__dict__
         finally:
             del sys.modules['mod']
 
     def test_loop(self):
-        #skip("happily segfaulting")
         import new, sys
 
         mod = new.module('mod')
@@ -375,7 +385,6 @@
 
 
     def test_solver(self):
-        skip("fix me please")
         import new, sys
 
         mod = new.module('mod')
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to