restructured control flow tests

This commit is contained in:
Svetlana Isakova
2014-03-04 19:00:18 +04:00
parent fe349da4d5
commit ec47821567
85 changed files with 317 additions and 203 deletions
@@ -0,0 +1,80 @@
== Test ==
class Test {
var x : Int;
}
---------------------
L0:
<START>
v(var x : Int;)
L1:
<END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
<SINK> PREV:[<ERROR>, <END>]
=====================
== assignments ==
fun assignments() : Unit {
var x = 1
x = 2
x += 2
x = if (true) 1 else 2
val y = true && false
val z = false && true
val t = Test();
t.x = 1
}
---------------------
L0:
<START>
mark({ var x = 1 x = 2 x += 2 x = if (true) 1 else 2 val y = true && false val z = false && true val t = Test(); t.x = 1 })
v(var x = 1)
r(1)
w(x)
r(2)
w(x)
mark(x += 2)
r(x)
r(2)
call(+=, plus)
w(x)
mark(if (true) 1 else 2)
r(true)
jf(L2) NEXT:[r(2), r(1)]
r(1)
jmp(L3) NEXT:[w(x)]
L2:
r(2) PREV:[jf(L2)]
L3:
w(x) PREV:[jmp(L3), r(2)]
v(val y = true && false)
r(true)
jf(L4) NEXT:[r(true && false), r(false)]
r(false)
L4:
r(true && false) PREV:[jf(L4), r(false)]
w(y)
v(val z = false && true)
r(false)
jf(L5) NEXT:[r(false && true), r(true)]
r(true)
L5:
r(false && true) PREV:[jf(L5), r(true)]
w(z)
v(val t = Test())
mark(Test())
call(Test, <init>)
w(t)
r(1)
r(t)
w(t.x)
L1:
<END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
sink:
<SINK> PREV:[<ERROR>, <END>]
=====================