backend: add tests:

* test for uninitialized vals
* test initializers3: global `var` of reference type
* expression_as_statement (disabled): using type operator as statement

Also enable test break1.
This commit is contained in:
Svyatoslav Scherbina
2016-12-23 10:48:39 +07:00
parent 25db86df3e
commit 62737efd54
4 changed files with 54 additions and 1 deletions
+16 -1
View File
@@ -681,6 +681,11 @@ task scope1(type: RunKonanTest) {
source = "codegen/dataflow/scope1.kt"
}
task uninitialized_val(type: RunKonanTest) {
goldValue = "1\n2\n"
source = "codegen/dataflow/uninitialized_val.kt"
}
task try1(type: RunKonanTest) {
goldValue = "5\n"
source = "codegen/try/try1.kt"
@@ -712,7 +717,6 @@ task break_continue(type: RunKonanTest) {
}
task break1(type: RunKonanTest) {
disabled = true
goldValue = "Body\nDone\n"
source = "codegen/controlflow/break1.kt"
}
@@ -842,3 +846,14 @@ task initializers2(type: RunKonanTest) {
"globalValue3\n"
source = "runtime/basic/initializers2.kt"
}
task initializers3(type: RunKonanTest) {
goldValue = "42\n"
source = "runtime/basic/initializers3.kt"
}
task expression_as_statement(type: RunKonanTest) {
disabled = true
goldValue = "Ok\n"
source = "codegen/basics/expression_as_statement.kt"
}
@@ -0,0 +1,14 @@
fun foo() {
Any() as String
}
fun main(args: Array<String>) {
try {
foo()
} catch (e: Throwable) {
println("Ok")
return
}
println("Fail")
}
@@ -0,0 +1,17 @@
fun foo(b: Boolean): Int {
val x: Int
if (b) {
x = 1
} else {
x = 2
}
return x
}
fun main(args: Array<String>) {
val uninitializedUnused: Int
println(foo(true))
println(foo(false))
}
@@ -0,0 +1,7 @@
class Foo(val bar: Int)
var x = Foo(42)
fun main(args: Array<String>) {
println(x.bar)
}