1
from pypy.objspace.flow.model import *
5
g = FunctionGraph("g", Block([]))
6
g.startblock.closeblock(Link([Constant(1)], g.returnblock))
10
g = FunctionGraph("g", Block([]))
11
g.startblock.closeblock(Link([Constant(1)], g.returnblock))
13
py.test.raises(AssertionError, checkgraph, g)
16
def test_nostartblock():
17
g = FunctionGraph("g", Block([]))
18
g.startblock.closeblock(Link([Constant(1)], g.returnblock))
19
g.startblock.isstartblock = False
20
py.test.raises(AssertionError, checkgraph, g)
22
def test_twostartblocks():
23
g = FunctionGraph("g", Block([]))
26
g.startblock.closeblock(Link([], b))
27
b.closeblock(Link([Constant(1)], g.returnblock))
28
py.test.raises(AssertionError, checkgraph, g)
30
def test_exitlessblocknotexitblock():
31
g = FunctionGraph("g", Block([]))
32
py.test.raises(AssertionError, checkgraph, g)
35
def test_nonvariableinputarg():
36
b = Block([Constant(1)])
37
g = FunctionGraph("g", b)
38
g.startblock.closeblock(Link([Constant(1)], g.returnblock))
40
py.test.raises(AssertionError, checkgraph, g)
42
def test_multiplydefinedvars():
44
g = FunctionGraph("g", Block([v, v]))
45
g.startblock.closeblock(Link([v], g.returnblock))
46
py.test.raises(AssertionError, checkgraph, g)
50
b.operations.append(SpaceOperation("add", [Constant(1), Constant(2)], v))
51
g = FunctionGraph("g", b)
52
g.startblock.closeblock(Link([v], g.returnblock))
54
py.test.raises(AssertionError, checkgraph, g)
56
def test_varinmorethanoneblock():
58
g = FunctionGraph("g", Block([]))
59
g.startblock.operations.append(SpaceOperation("pos", [Constant(1)], v))
61
g.startblock.closeblock(Link([v], b))
62
b.closeblock(Link([v], g.returnblock))
63
py.test.raises(AssertionError, checkgraph, g)
65
def test_useundefinedvar():
67
g = FunctionGraph("g", Block([]))
68
g.startblock.closeblock(Link([v], g.returnblock))
69
py.test.raises(AssertionError, checkgraph, g)
72
g = FunctionGraph("g", Block([]))
73
g.startblock.exitswitch = v
74
g.startblock.closeblock(Link([Constant(1)], g.returnblock))
75
py.test.raises(AssertionError, checkgraph, g)
77
def test_invalid_arg():
79
g = FunctionGraph("g", Block([]))
80
g.startblock.operations.append(SpaceOperation("pos", [1], v))
81
g.startblock.closeblock(Link([v], g.returnblock))
82
py.test.raises(AssertionError, checkgraph, g)
84
def test_invalid_links():
85
g = FunctionGraph("g", Block([]))
86
g.startblock.closeblock(Link([Constant(1)], g.returnblock), Link([Constant(1)], g.returnblock))
87
py.test.raises(AssertionError, checkgraph, g)
90
g = FunctionGraph("g", Block([v]))
91
g.startblock.exitswitch = v
92
g.startblock.closeblock(Link([Constant(1)], g.returnblock, True),
93
Link([Constant(1)], g.returnblock, True))
94
py.test.raises(AssertionError, checkgraph, g)
97
g = FunctionGraph("g", Block([v]))
98
g.startblock.exitswitch = v
99
g.startblock.closeblock(Link([Constant(1)], g.returnblock))
100
py.test.raises(AssertionError, checkgraph, g)