testsuite updated to reflect recent changes in codegen: branch support

This commit is contained in:
Konstantin Anisimov
2016-10-28 16:43:37 +03:00
committed by vvlevchenko
parent 76ee79adc0
commit 3c68ee4ce5
14 changed files with 149 additions and 4 deletions
+28 -4
View File
@@ -174,7 +174,31 @@ task hello2(type: RunKonanTest) {
source = "runtime/basic/hello2.kt"
} */
// TODO: waiting for boolean to be implemented
//task bool_yes(type: KonanTest) {
// source = "codegen/function/boolean.kt"
//}
task if_else(type: UnitKonanTest) {
source = "codegen/branching/if_else.kt"
}
task when2(type: UnitKonanTest) {
source = "codegen/branching/when2.kt"
}
task when5(type: UnitKonanTest) {
source = "codegen/branching/when5.kt"
}
task when_through(type: UnitKonanTest) {
source = "codegen/branching/when_through.kt"
}
task advanced_when2(type: UnitKonanTest) {
source = "codegen/branching/advanced_when2.kt"
}
task advanced_when5(type: UnitKonanTest) {
source = "codegen/branching/advanced_when5.kt"
}
task bool_yes(type: UnitKonanTest) {
source = "codegen/function/boolean.kt"
}
@@ -0,0 +1,10 @@
extern void *resolve_symbol(const char*);
int
run_test() {
int (*advanced_when2)(int) = resolve_symbol("kfun:advanced_when2");
if (advanced_when2(2) != 3) return 1;
return 0;
}
@@ -0,0 +1,11 @@
fun advanced_when2(i: Int): Int {
var value = 1
when (i) {
10 -> {val v = 42; value = v}
// 11 -> {val v = 43; value = v}
// 12 -> {val v = 44; value = v}
}
return value
}
@@ -0,0 +1,10 @@
extern void *resolve_symbol(const char*);
int
run_test() {
int (*advanced_when5)(int) = resolve_symbol("kfun:advanced_when5");
if (advanced_when5(2) != 3) return 1;
return 0;
}
@@ -0,0 +1,10 @@
fun advanced_when5(i: Int): Int {
when (i) {
0 -> { val v = 42; return v}
1 -> { val v = 42; return v}
2 -> { val v = 42; return v}
3 -> { val v = 42; return v}
4 -> { val v = 42; return v}
else -> return 24
}
}
@@ -0,0 +1,10 @@
extern void *resolve_symbol(const char*);
int
run_test() {
int (*if_else)(int) = resolve_symbol("kfun:if_else");
if (if_else(0) != 24) return 1;
return 0;
}
@@ -0,0 +1,4 @@
fun if_else(b: Boolean): Int {
if (b) return 42
else return 24
}
@@ -0,0 +1,10 @@
extern void *resolve_symbol(const char*);
int
run_test() {
int (*when2)(int) = resolve_symbol("kfun:when2");
if (when2(0) != 42) return 1;
return 0;
}
@@ -0,0 +1,6 @@
fun when2(i: Int): Int {
when (i) {
0 -> return 42
else -> return 24
}
}
@@ -0,0 +1,10 @@
fun when5(i: Int): Int {
when (i) {
0 -> return 42
1 -> return 4
2 -> return 3
3 -> return 2
4 -> return 1
}
return 24
}
@@ -0,0 +1,10 @@
extern void *resolve_symbol(const char*);
int
run_test() {
int (*when5)(int) = resolve_symbol("kfun:when5");
if (when5(2) != 3) return 1;
return 0;
}
@@ -0,0 +1,10 @@
fun when5(i: Int): Int {
when (i) {
0 -> return 42
1 -> return 4
2 -> return 3
3 -> return 2
4 -> return 1
else -> return 24
}
}
@@ -0,0 +1,10 @@
extern void *resolve_symbol(const char*);
int
run_test() {
int (*when_through)(int) = resolve_symbol("kfun:when_through");
if (when_through(2) != 3) return 1;
return 0;
}
@@ -0,0 +1,10 @@
fun when_through(i: Int): Int {
var value = 1
when (i) {
10 -> value = 42
11 -> value = 43
12 -> value = 44
}
return value
}