[pypy-svn] r34334 - pypy/branch/resume-point-hack/pypy/translator/stackless/test

cfbolz at codespeak.net cfbolz at codespeak.net
Tue Nov 7 15:58:59 CET 2006


Author: cfbolz
Date: Tue Nov  7 15:58:58 2006
New Revision: 34334

Modified:
   pypy/branch/resume-point-hack/pypy/translator/stackless/test/test_resume_point.py
Log:
run most of the resume_point tests on top of CPython too


Modified: pypy/branch/resume-point-hack/pypy/translator/stackless/test/test_resume_point.py
==============================================================================
--- pypy/branch/resume-point-hack/pypy/translator/stackless/test/test_resume_point.py	(original)
+++ pypy/branch/resume-point-hack/pypy/translator/stackless/test/test_resume_point.py	Tue Nov  7 15:58:58 2006
@@ -30,13 +30,14 @@
 def test_no_call():
     def f(x, y):
         x = x-1
-        rstack.resume_point("rp0", x, y) 
+        rstack.resume_point("rp0", x, y)
         r = x+y
         rstack.stack_unwind()
         return r
     def example():
         v1 = f(one(),one()+one())
-        state = rstack.resume_state_create(None, "rp0", one(), one()+one()+one())
+        state = rstack.resume_state_create(None, "rp0", f,
+                                           one(), one()+one()+one())
         v2 = rstack.resume_state_invoke(int, state)
         return v1*10 + v2
 ##     transform_stackless_function(example)
@@ -46,14 +47,16 @@
 def test_bogus_restart_state_create():
     def f(x, y):
         x = x-1
-        rstack.resume_point("rp0", x, y) 
+        rstack.resume_point("rp0", x, y)
         return x+y
     def example():
         v1 = f(one(),one()+one())
-        state = rstack.resume_state_create(None, "rp0", one())
-        return v1
+        state = rstack.resume_state_create(None, "rp0", f, one())
+        v2 = rstack.resume_state_invoke(int, state)
+        return v1 + v2
     info = py.test.raises(AssertionError, "transform_stackless_function(example)")
     assert 'rp0' in str(info.value)
+    py.test.raises(AssertionError, example)
     
 
 def test_call():
@@ -65,13 +68,15 @@
         return z+y
     def example():
         v1 = f(one(),one()+one())
-        s = rstack.resume_state_create(None, "rp1", 5*one())
+        s = rstack.resume_state_create(None, "rp1", f, 5*one())
         v2 = rstack.resume_state_invoke(int, s, returning=one()*7)
         return v1*100 + v2
     res = llinterp_stackless_function(example)
     assert res == 412
     res = run_stackless_function(example)
     assert res == 412
+    res = example()
+    assert res == 412
 
 def test_returns_with_instance():
     class C:
@@ -85,13 +90,15 @@
         return r.x + y
     def example():
         v1 = f(one(),one()+one())
-        s = rstack.resume_state_create(None, "rp1", 5*one())
+        s = rstack.resume_state_create(None, "rp1", f, 5*one())
         v2 = rstack.resume_state_invoke(int, s, returning=C(one()*3))
         return v1*100 + v2
     res = llinterp_stackless_function(example, assert_unwind=False)
     assert res == 408
     res = run_stackless_function(example)
     assert res == 408
+    res = example()
+    assert res == 408
 
 def test_call_uncovered():
     def g(x,y):
@@ -119,13 +126,15 @@
         return r + z
     def example():
         v1 = f(one(), 2*one(), 3*one())
-        s2 = rstack.resume_state_create(None, "rp2", 2*one())
-        s1 = rstack.resume_state_create(s2, "rp1", 4*one(), 5*one())
+        s2 = rstack.resume_state_create(None, "rp2", f, 2*one())
+        s1 = rstack.resume_state_create(s2, "rp1", g, 4*one(), 5*one())
         return 100*v1 + rstack.resume_state_invoke(int, s1)
     res = llinterp_stackless_function(example)
     assert res == 811
     res = run_stackless_function(example)
     assert res == 811
+    res = example()
+    assert res == 811
 
 def test_return_instance():
     class C:
@@ -141,15 +150,17 @@
         return r.x + y
     def example():
         v1 = f(one(), 2*one())
-        s2 = rstack.resume_state_create(None, "rp2", 2*one())
+        s2 = rstack.resume_state_create(None, "rp2", f, 2*one())
         c = C()
         c.x = 4*one()
-        s1 = rstack.resume_state_create(s2, "rp1", c)
+        s1 = rstack.resume_state_create(s2, "rp1", g, c)
         return v1*100 + rstack.resume_state_invoke(int, s1)
     res = llinterp_stackless_function(example)
     assert res == 406
     res = run_stackless_function(example)
     assert res == 406
+    res = example()
+    assert res == 406
 
 def test_really_return_instance():
     class C:
@@ -163,12 +174,14 @@
         v1 = g(one()).x
         c = C()
         c.x = 4*one()
-        s1 = rstack.resume_state_create(None, "rp1", c)
+        s1 = rstack.resume_state_create(None, "rp1", g, c)
         return v1*100 + rstack.resume_state_invoke(C, s1).x
     res = llinterp_stackless_function(example)
     assert res == 204
     res = run_stackless_function(example)
     assert res == 204
+    res = example()
+    assert res == 204
 
 def test_resume_and_raise():
     def g(x):
@@ -178,7 +191,7 @@
         return x + 1
     def example():
         v1 = g(one())
-        s = rstack.resume_state_create(None, "rp0", one()-1)
+        s = rstack.resume_state_create(None, "rp0", g, one()-1)
         try:
             v2 = rstack.resume_state_invoke(int, s)
         except KeyError:
@@ -188,6 +201,8 @@
     assert res == 242
     res = run_stackless_function(example)
     assert res == 242
+    res = example()
+    assert res == 242
     
 def test_resume_and_raise_and_catch():
     def g(x):
@@ -205,14 +220,16 @@
         return r - 1
     def example():
         v1 = f(one()+one())
-        s1 = rstack.resume_state_create(None, "rp1")
-        s0 = rstack.resume_state_create(s1, "rp0", one()-1)
+        s1 = rstack.resume_state_create(None, "rp1", f)
+        s0 = rstack.resume_state_create(s1, "rp0", g, one()-1)
         v2 = rstack.resume_state_invoke(int, s0)
         return v1*100 + v2
     res = llinterp_stackless_function(example)
     assert res == 141
     res = run_stackless_function(example)
     assert res == 141
+    res = example()
+    assert res == 141
 
 def test_invoke_raising():
     def g(x):
@@ -228,21 +245,23 @@
         return r - 1
     def example():
         v1 = f(one()+one())
-        s1 = rstack.resume_state_create(None, "rp1")
-        s0 = rstack.resume_state_create(s1, "rp0", 0)
+        s1 = rstack.resume_state_create(None, "rp1", f)
+        s0 = rstack.resume_state_create(s1, "rp0", g, 0)
         v2 = rstack.resume_state_invoke(int, s0, raising=KeyError())
         return v1*100 + v2
     res = llinterp_stackless_function(example)
     assert res == 141
     res = run_stackless_function(example)
     assert res == 141
+    res = example()
+    assert res == 141
     
 
 def test_finally():
     def f(x):
-        rstack.resume_point("rp1", x)        
+        rstack.resume_point("rp1", x)
         return 1/x
-    def in_finally(x): 
+    def in_finally(x):
         rstack.resume_point("rp1.5", x)
         return 2/x
     def g(x):
@@ -257,6 +276,7 @@
     def example():
         return g(one())
     transform_stackless_function(example)
+    res = example()
 
 def test_except():
     py.test.skip("please don't write code like this")
@@ -340,8 +360,8 @@
         out = []
         x = h(out)
         l  = len(out)
-        chain = rstack.resume_state_create(None, 'h', out)
-        chain = rstack.resume_state_create(chain, 'g')
+        chain = rstack.resume_state_create(None, 'h', h, out)
+        chain = rstack.resume_state_create(chain, 'g', g)
         x += rstack.resume_state_invoke(int, chain)
         l += len(out)
         return l*100+x
@@ -350,6 +370,8 @@
     assert res == 200
     res = run_stackless_function(example)
     assert res == 200
+    res = example()
+    assert res == 200
 
 def test_more_mess():
     from pypy.interpreter.miscutils import Stack



More information about the Pypy-commit mailing list