[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