BC native tests port to Konan's TestRunner

This commit is contained in:
Pavel Punegov
2017-10-11 15:09:33 +03:00
parent 9b07fd61ce
commit 9d077d7f4f
352 changed files with 1798 additions and 384 deletions
+29
View File
@@ -252,6 +252,18 @@ task sum2(type: RunKonanTest) {
source = "codegen/function/sum_imm.kt"
}
task sum_func(type: RunKonanTest) {
source = "codegen/function/sum_func.kt"
}
task sum_mixed(type: RunKonanTest) {
source = "codegen/function/sum_mixed.kt"
}
task sum_illy(type: RunKonanTest) {
source = "codegen/function/sum_silly.kt"
}
task function_defaults(type: RunKonanTest) {
source = "codegen/function/defaults.kt"
}
@@ -1173,6 +1185,10 @@ task cycle_do(type: RunKonanTest) {
source = "codegen/cycles/cycle_do.kt"
}
task cycle_for(type: RunKonanTest) {
source = "codegen/cycles/cycle_for.kt"
}
task abstract_super(type: RunKonanTest) {
source = "datagen/rtti/abstract_super.kt"
}
@@ -1774,11 +1790,24 @@ task memory_throw_cleanup(type: RunKonanTest) {
source = "runtime/memory/throw_cleanup.kt"
}
task memory_escape0(type: RunKonanTest) {
source = "runtime/memory/escape1.kt"
}
task memory_escape1(type: RunKonanTest) {
goldValue = "zzz\n"
source = "runtime/memory/escape1.kt"
}
task memory_cycles0(type: RunKonanTest) {
goldValue = "42\n"
source = "runtime/memory/cycles0.kt"
}
task memory_basic0(type: RunKonanTest) {
source = "runtime/memory/cycles0.kt"
}
task memory_escape2(type: RunKonanTest) {
goldValue = "zzz\n"
source = "runtime/memory/escape2.kt"
@@ -1,4 +1,9 @@
fun main(args: Array<String>) {
package codegen.basics.array_to_any
import kotlin.test.*
@Test
fun runTest() {
foo().hashCode()
}
@@ -1,3 +1,7 @@
package codegen.basics.canonical_name
import kotlin.test.*
interface I<U, T> {
fun foo(a: U): T
fun qux(a: T): U
@@ -24,10 +28,7 @@ fun <U, V> baz(i: I<U, V>, u: U, v:V) {
//-----------------------------------------------------------------------------//
fun main(args: Array<String>) {
@Test
fun runTest() {
baz<A1, A2>(A(), A1(), A2())
}
}
@@ -1,15 +1,20 @@
fun main(args: Array<String>) {
package codegen.basics.cast_null
import kotlin.test.*
@Test
fun runTest() {
testCast(null, false)
testCastToNullable(null, true)
testCastToNullable(Test(), true)
testCastToNullable(TestKlass(), true)
testCastToNullable("", false)
testCastNotNullableToNullable(Test(), true)
testCastNotNullableToNullable(TestKlass(), true)
testCastNotNullableToNullable("", false)
println("Ok")
}
class Test
class TestKlass
fun ensure(b: Boolean) {
if (!b) {
@@ -19,7 +24,7 @@ fun ensure(b: Boolean) {
fun testCast(x: Any?, expectSuccess: Boolean) {
try {
x as Test
x as TestKlass
} catch (e: Throwable) {
ensure(!expectSuccess)
return
@@ -29,7 +34,7 @@ fun testCast(x: Any?, expectSuccess: Boolean) {
fun testCastToNullable(x: Any?, expectSuccess: Boolean) {
try {
x as Test?
x as TestKlass?
} catch (e: Throwable) {
ensure(!expectSuccess)
return
@@ -39,7 +44,7 @@ fun testCastToNullable(x: Any?, expectSuccess: Boolean) {
fun testCastNotNullableToNullable(x: Any, expectSuccess: Boolean) {
try {
x as Test?
x as TestKlass?
} catch (e: Throwable) {
ensure(!expectSuccess)
return
@@ -1,3 +1,7 @@
package codegen.basics.cast_simple
import kotlin.test.*
open class A() {}
class B(): A() {}
@@ -9,6 +13,7 @@ fun castTest(): Boolean {
return true
}
fun main(args: Array<String>) {
@Test
fun runTest() {
if (!castTest()) throw Error()
}
@@ -1,3 +1,7 @@
package codegen.basics
import kotlin.test.*
interface I
class A() : I {}
class B() {}
@@ -28,8 +32,8 @@ fun isTypeOfInterface(a: Any) : Boolean {
//-----------------------------------------------------------------------------//
fun main(args: Array<String>) {
@Test
fun runTest() {
println(isTypeOf(A()))
println(isTypeOf(null))
println(isTypeNullableOf(A()))
@@ -1,4 +1,9 @@
fun main(args: Array<String>) {
package codegen.basics.concatenation
import kotlin.test.*
@Test
fun runTest() {
val s = "world"
val i = 1
println("Hello $s $i ${2*i}")
@@ -6,5 +11,4 @@ fun main(args: Array<String>) {
for (item in listOf("a", "b")) {
println("Hello, $item")
}
}
}
@@ -1,8 +1,13 @@
package codegen.basics.expression_as_statement
import kotlin.test.*
fun foo() {
Any() as String
}
fun main(args: Array<String>) {
@Test
fun runTest() {
try {
foo()
} catch (e: Throwable) {
@@ -1,9 +1,14 @@
package codegen.basics.local_variable
import kotlin.test.*
fun local_variable(a: Int) : Int {
var b = 0
b = a + 11
return b
}
fun main(args: Array<String>) {
@Test
fun runTest() {
if (local_variable(3) != 14) throw Error()
}
@@ -1,3 +1,7 @@
package codegen.basics.null_check
import kotlin.test.*
//--- Test "eqeq" -------------------------------------------------------------//
fun check_eqeq(a: Any?) = a == null
@@ -22,7 +26,8 @@ fun null_check_eqeqeq2() : Boolean {
return check_eqeqeq(null)
}
fun main(args: Array<String>) {
@Test
fun runTest() {
if (null_check_eqeq1()) throw Error()
if (!null_check_eqeq2()) throw Error()
if (null_check_eqeqeq1()) throw Error()
@@ -1,3 +1,7 @@
package codegen.basics.safe_cast
import kotlin.test.*
open class A
class B : A()
class C
@@ -14,8 +18,8 @@ fun safe_cast_negative(): Boolean {
return foo(c) == null
}
fun main(args: Array<String>) {
@Test
fun runTest() {
val safeCastPositive = safe_cast_positive().toString()
val safeCastNegative = safe_cast_negative().toString()
println("safe_cast_positive: " + safeCastPositive)
@@ -1,4 +1,9 @@
fun main(arg:Array<String>) {
package codegen.basics.spread_operator_0
import kotlin.test.*
@Test
fun runTest() {
val list0 = _arrayOf("K", "o", "t", "l", "i", "n")
val list1 = _arrayOf("l", "a","n", "g", "u", "a", "g", "e")
val list = foo(list0, list1)
@@ -1,3 +1,7 @@
package codegen.basics.superFunCall
import kotlin.test.*
open class C {
open fun f() = "<fun:C>"
}
@@ -13,7 +17,8 @@ class C3: C2() {
override fun f() = super<C2>.f() + "<fun:C3>"
}
fun main(args: Array<String>) {
@Test
fun runTest() {
println(C1().f())
println(C3().f())
}
@@ -1,3 +1,7 @@
package codegen.basics.superGetterCall
import kotlin.test.*
open class C {
open val p1 = "<prop:C>"
}
@@ -13,7 +17,8 @@ class C3: C2() {
override val p1 = super<C2>.p1 + "<prop:C3>"
}
fun main(args: Array<String>) {
@Test
fun runTest() {
println(C1().p1)
println(C3().p1)
}
@@ -1,3 +1,7 @@
package codegen.basics.superSetterCall
import kotlin.test.*
open class C {
open var p2 = "<prop:C>"
set(value) { field = "<prop:C>" + value }
@@ -22,7 +26,8 @@ class C3: C2() {
}
}
fun main(args: Array<String>) {
@Test
fun runTest() {
val c1 = C1()
val c3 = C3()
c1.p2 = "zzz"
@@ -1,4 +1,9 @@
fun main(args: Array<String>) {
package codegen.basics.typealias1
import kotlin.test.*
@Test
fun runTest() {
println(Bar(42).x)
}
@@ -1,4 +1,9 @@
fun main(args: Array<String>) {
package codegen.basics.unchecked_cast1
import kotlin.test.*
@Test
fun runTest() {
foo<String>("17")
bar<String>("17")
foo<String>(42)
@@ -1,4 +1,9 @@
fun main(args: Array<String>) {
package codegen.basics.unchecked_cast2
import kotlin.test.*
@Test
fun runTest() {
try {
val x = cast<String>(Any())
println(x.length)
@@ -1,12 +1,17 @@
fun main(args: Array<String>) {
testCast<Test>(Test(), true)
testCast<Test>(null, false)
testCastToNullable<Test>(null, true)
package codegen.basics.unchecked_cast3
import kotlin.test.*
@Test
fun runTest() {
testCast<TestKlass>(TestKlass(), true)
testCast<TestKlass>(null, false)
testCastToNullable<TestKlass>(null, true)
println("Ok")
}
class Test
class TestKlass
fun ensure(b: Boolean) {
if (!b) {
+6 -1
View File
@@ -1,3 +1,8 @@
fun main(args: Array<String>) {
package codegen.basics.unit1
import kotlin.test.*
@Test
fun runTest() {
println(println("First").toString())
}
+6 -1
View File
@@ -1,4 +1,9 @@
fun main(args: Array<String>) {
package codegen.basics.unit2
import kotlin.test.*
@Test
fun runTest() {
val x = foo()
println(x.toString())
}
+6 -1
View File
@@ -1,4 +1,9 @@
fun main(args: Array<String>) {
package codegen.basics.unit3
import kotlin.test.*
@Test
fun runTest() {
foo(Unit)
}
+6 -1
View File
@@ -1,4 +1,9 @@
fun main(args: Array<String>) {
package codegen.basics.unit4
import kotlin.test.*
@Test
fun runTest() {
for (x in 0 .. 8) {
foo(x, Unit)
}
@@ -1,9 +1,12 @@
package codegen.boxing.boxing0
import kotlin.test.*
class Box<T>(t: T) {
var value = t
}
fun main(args: Array<String>) {
@Test fun runTest() {
val box: Box<Int> = Box<Int>(17)
println(box.value)
}
@@ -1,8 +1,12 @@
package codegen.boxing.boxing1
import kotlin.test.*
fun foo(arg: Any) {
println(arg.toString())
}
fun main(args: Array<String>) {
@Test fun runTest() {
foo(1)
foo(false)
foo("Hello")
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.boxing.boxing10
import kotlin.test.*
@Test fun runTest() {
val FALSE: Boolean? = false
if (FALSE != null) {
@@ -1,3 +1,7 @@
package codegen.boxing.boxing11
import kotlin.test.*
fun printInt(x: Int) = println(x)
class Foo(val value: Int?) {
@@ -6,7 +10,7 @@ class Foo(val value: Int?) {
}
}
fun main(args: Array<String>) {
@Test fun runTest() {
Foo(17).foo()
Foo(null).foo()
}
@@ -1,7 +1,11 @@
package codegen.boxing.boxing12
import kotlin.test.*
fun foo(x: Number) {
println(x.toByte())
}
fun main(args: Array<String>) {
@Test fun runTest() {
foo(18)
}
@@ -1,9 +1,13 @@
package codegen.boxing.boxing13
import kotlin.test.*
fun is42(x: Any?) {
println(x == 42)
println(42 == x)
}
fun main(args: Array<String>) {
@Test fun runTest() {
is42(16)
is42(42)
is42("42")
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.boxing.boxing14
import kotlin.test.*
@Test fun runTest() {
42.println()
}
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.boxing.boxing15
import kotlin.test.*
@Test fun runTest() {
println(foo(17))
}
@@ -1,3 +1,7 @@
package codegen.boxing.boxing2
import kotlin.test.*
fun printInt(x: Int) = println(x)
fun printBoolean(x: Boolean) = println(x)
@@ -10,7 +14,7 @@ fun foo(arg: Any) {
println("other")
}
fun main(args: Array<String>) {
@Test fun runTest() {
foo(1)
foo(true)
foo("Hello")
@@ -1,3 +1,7 @@
package codegen.boxing.boxing3
import kotlin.test.*
fun printInt(x: Int) = println(x)
fun foo(arg: Int?) {
@@ -5,6 +9,6 @@ fun foo(arg: Int?) {
printInt(arg)
}
fun main(args: Array<String>) {
@Test fun runTest() {
foo(42)
}
@@ -1,3 +1,7 @@
package codegen.boxing.boxing4
import kotlin.test.*
fun printInt(x: Int) = println(x)
fun foo(arg: Any?) {
@@ -5,6 +9,6 @@ fun foo(arg: Any?) {
printInt(arg)
}
fun main(args: Array<String>) {
@Test fun runTest() {
foo(16)
}
@@ -1,10 +1,14 @@
package codegen.boxing.boxing5
import kotlin.test.*
fun printInt(x: Int) = println(x)
fun foo(arg: Int?) {
printInt(arg ?: 16)
}
fun main(args: Array<String>) {
@Test fun runTest() {
foo(null)
foo(42)
}
@@ -1,10 +1,14 @@
package codegen.boxing.boxing6
import kotlin.test.*
fun printInt(x: Int) = println(x)
fun foo(arg: Any) {
printInt(arg as? Int ?: 16)
}
fun main(args: Array<String>) {
@Test fun runTest() {
foo(42)
foo("Hello")
}
@@ -1,3 +1,7 @@
package codegen.boxing.boxing7
import kotlin.test.*
fun printInt(x: Int) = println(x)
fun foo(arg: Any) {
@@ -9,7 +13,7 @@ fun foo(arg: Any) {
printInt(argAsInt)
}
fun main(args: Array<String>) {
@Test fun runTest() {
foo(1)
foo("Hello")
}
@@ -1,9 +1,13 @@
package codegen.boxing.boxing8
import kotlin.test.*
fun foo(vararg args: Any?) {
for (arg in args) {
println(arg.toString())
}
}
fun main(args: Array<String>) {
@Test fun runTest() {
foo(1, null, true, "Hello")
}
@@ -1,3 +1,7 @@
package codegen.boxing.boxing9
import kotlin.test.*
fun foo(vararg args: Any?) {
for (arg in args) {
println(arg.toString())
@@ -8,6 +12,6 @@ fun bar(vararg args: Any?) {
foo(1, *args, 2, *args, 3)
}
fun main(args: Array<String>) {
@Test fun runTest() {
bar(null, true, "Hello")
}
@@ -1,3 +1,7 @@
package codegen.boxing.advanced_when2
import kotlin.test.*
fun advanced_when2(i: Int): Int {
var value = 1
when (i) {
@@ -9,6 +13,6 @@ fun advanced_when2(i: Int): Int {
return value
}
fun main(args: Array<String>) {
@Test fun runTest() {
if (advanced_when2(10) != 42) throw Error()
}
@@ -1,3 +1,7 @@
package codegen.boxing.advanced_when5
import kotlin.test.*
fun advanced_when5(i: Int): Int {
when (i) {
0 -> { val v = 42; return v}
@@ -9,6 +13,6 @@ fun advanced_when5(i: Int): Int {
}
}
fun main(args: Array<String>) {
@Test fun runTest() {
if (advanced_when5(5) != 24) throw Error()
}
@@ -1,8 +1,12 @@
package codegen.boxing.if_else
import kotlin.test.*
fun if_else(b: Boolean): Int {
if (b) return 42
else return 24
}
fun main(args: Array<String>) {
@Test fun runTest() {
if (if_else(false) != 24) throw Error()
}
@@ -1,3 +1,7 @@
package codegen.boxing.when2
import kotlin.test.*
fun when2(i: Int): Int {
when (i) {
0 -> return 42
@@ -5,6 +9,6 @@ fun when2(i: Int): Int {
}
}
fun main(args: Array<String>) {
@Test fun runTest() {
if (when2(0) != 42) throw Error()
}
@@ -1,3 +1,7 @@
package codegen.boxing.when4
import kotlin.test.*
fun when5(i: Int): Int {
when (i) {
0 -> return 42
@@ -1,3 +1,7 @@
package codegen.boxing.when5
import kotlin.test.*
fun when5(i: Int): Int {
when (i) {
0 -> return 42
@@ -9,6 +13,6 @@ fun when5(i: Int): Int {
}
}
fun main(args: Array<String>) {
@Test fun runTest() {
if (when5(2) != 3) throw Error()
}
@@ -1,6 +1,10 @@
package codegen.boxing.when6
import kotlin.test.*
fun foo() {
}
fun main(args: Array<String>) {
@Test fun runTest() {
if (true) foo() else foo()
}
@@ -1,3 +1,11 @@
package codegen.boxing.when7
import kotlin.test.*
@Test fun runTest() {
main(emptyArray())
}
fun main(args: Array<String>) {
val b = args.size < 1
val x = if (b) Any() else throw Error()
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.boxing.when8
import kotlin.test.*
@Test fun runTest() {
when (true) {
true -> println("true")
false -> println("false")
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.boxing.when9
import kotlin.test.*
@Test fun runTest() {
foo(0)
println("Ok")
}
@@ -1,3 +1,7 @@
package codegen.boxing.when_through
import kotlin.test.*
fun when_through(i: Int): Int {
var value = 1
when (i) {
@@ -9,6 +13,6 @@ fun when_through(i: Int): Int {
return value
}
fun main(args: Array<String>) {
@Test fun runTest() {
if (when_through(2) != 1) throw Error()
}
@@ -1,4 +1,4 @@
package a
package codegen.bridges.linkTest.a
interface A<T> {
fun foo(): T
@@ -1,8 +1,11 @@
import a.*
package codegen.bridges.linkTest_main
import kotlin.test.*
import codegen.bridges.linkTest.a.*
class B: C()
fun main(args: Array<String>) {
@Test fun runTest() {
val b = B()
println(b.foo())
val c: C = b
@@ -1,3 +1,7 @@
package codegen.bridges.test0
import kotlin.test.*
// vtable call
open class A {
open fun foo(): Any = "A"
@@ -7,7 +11,7 @@ open class C : A() {
override fun foo(): Int = 42
}
fun main(args: Array<String>) {
@Test fun runTest() {
val c = C()
val a: A = c
println(c.foo().toString())
@@ -1,3 +1,7 @@
package codegen.bridges.test1
import kotlin.test.*
// interface call, bridge overridden
interface Z1 {
fun foo(x: Int) : Any
@@ -11,7 +15,7 @@ open class B : A() {
override fun foo(x: Int) : Int = 42
}
fun main(args: Array<String>) {
@Test fun runTest() {
val z1: A = B()
println((z1.foo(1) + 1000).toString())
}
@@ -1,3 +1,7 @@
package codegen.bridges.test10
import kotlin.test.*
open class A<T> {
open fun foo(x: T) {
println(x.toString())
@@ -19,7 +23,7 @@ fun zzz(a: A<Int>) {
a.foo(42)
}
fun main(args: Array<String>) {
@Test fun runTest() {
val b = B()
zzz(b)
val a = A<Int>()
@@ -1,3 +1,7 @@
package codegen.bridges.test11
import kotlin.test.*
interface I {
fun foo(x: Int)
}
@@ -10,7 +14,7 @@ class B : A<Int>(), I {
override fun foo(x: Int) = println(x)
}
fun main(args: Array<String>) {
@Test fun runTest() {
val b = B()
val a: A<Int> = b
val c: I = b
@@ -1,3 +1,7 @@
package codegen.bridges.test12
import kotlin.test.*
abstract class A<in T> {
abstract fun foo(x: T)
}
@@ -18,7 +22,7 @@ fun foo(arg: A<Int>) {
arg.foo(42)
}
fun main(args: Array<String>) {
@Test fun runTest() {
foo(B())
foo(C())
}
@@ -1,3 +1,7 @@
package codegen.bridges.test13
import kotlin.test.*
open class A<T> {
open fun T.foo() {
println(this.toString())
@@ -1,3 +1,7 @@
package codegen.bridges.test14
import kotlin.test.*
open class A<T, U> {
open fun foo(x: T, y: U) {
println(x.toString())
@@ -26,7 +30,7 @@ fun zzz(a: A<Int, Int>) {
a.foo(42, 56)
}
fun main(args: Array<String>) {
@Test fun runTest() {
val b = B()
zzz(b)
val a = A<Int, Int>()
@@ -1,3 +1,7 @@
package codegen.bridges.test15
import kotlin.test.*
// non-generic interface, generic impl, vtable call + interface call
open class A<T> {
open var size: T = 56 as T
@@ -30,6 +34,6 @@ fun box(): String {
return "OK"
}
fun main(args: Array<String>) {
@Test fun runTest() {
println(box())
}
@@ -1,3 +1,7 @@
package codegen.bridges.test16
import kotlin.test.*
interface A {
fun foo(): String
}
@@ -12,7 +16,7 @@ open class B: C() {
fun bar(c: C) = c.foo()
fun main(args: Array<String>) {
@Test fun runTest() {
val b = B()
val c: C = b
println(bar(b))
@@ -1,3 +1,7 @@
package codegen.bridges.test17
import kotlin.test.*
// abstract bridge
interface A<T> {
fun foo(): T
@@ -13,7 +17,7 @@ class D: C() {
}
}
fun main(args: Array<String>) {
@Test fun runTest() {
val d = D()
val c: C = d
val b: B<Int> = d
@@ -1,3 +1,7 @@
package codegen.bridges.test18
import kotlin.test.*
// overriden function returns Unit
open class A {
open fun foo(): Any = 42
@@ -7,7 +11,7 @@ open class B: A() {
override fun foo(): Unit { }
}
fun main(args: Array<String>) {
@Test fun runTest() {
val a: A = B()
println(a.foo())
}
@@ -1,3 +1,7 @@
package codegen.bridges.test2
import kotlin.test.*
// vtable call, bridge inherited
open class A {
open fun foo(): Any = "A"
@@ -9,7 +13,7 @@ open class C : A() {
open class D: C()
fun main(args: Array<String>) {
@Test fun runTest() {
val c = D()
val a: A = c
println(c.foo().toString())
@@ -1,3 +1,7 @@
package codegen.bridges.test3
import kotlin.test.*
// non-generic interface, generic impl, non-virtual call + interface call
open class A<T> {
var size: T = 56 as T
@@ -25,6 +29,6 @@ fun box(): String {
return "OK"
}
fun main(args: Array<String>) {
@Test fun runTest() {
println(box())
}
@@ -1,3 +1,7 @@
package codegen.bridges.test4
import kotlin.test.*
// vtable call + interface call
interface Z {
fun foo(): Any
@@ -13,7 +17,7 @@ open class A {
open class B: A(), Z, Y
fun main(args: Array<String>) {
@Test fun runTest() {
val z: Z = B()
val y: Y = z as Y
println(z.foo().toString())
@@ -1,3 +1,7 @@
package codegen.bridges.test5
import kotlin.test.*
// non-generic interface, generic impl, vtable call + interface call
open class A<T> {
open var size: T = 56 as T
@@ -25,6 +29,6 @@ fun box(): String {
return "OK"
}
fun main(args: Array<String>) {
@Test fun runTest() {
println(box())
}
@@ -1,3 +1,7 @@
package codegen.bridges.test6
import kotlin.test.*
// vtable call + interface call
interface Z {
fun foo(): Any
@@ -17,7 +21,7 @@ open class C : A() {
open class D: C(), Y, Z
fun main(args: Array<String>) {
@Test fun runTest() {
val d = D()
val y: Y = d
val z: Z = d
@@ -1,3 +1,7 @@
package codegen.bridges.test7
import kotlin.test.*
// generic interface, non-generic impl, vtable call + interface call
open class A {
open var size: Int = 56
@@ -25,6 +29,6 @@ fun box(): String {
return "OK"
}
fun main(args: Array<String>) {
@Test fun runTest() {
println(box())
}
@@ -1,3 +1,7 @@
package codegen.bridges.test8
import kotlin.test.*
// generic interface, non-generic impl, non-virtual call + interface call
open class A {
var size: Int = 56
@@ -25,6 +29,6 @@ fun box(): String {
return "OK"
}
fun main(args: Array<String>) {
@Test fun runTest() {
println(box())
}
@@ -1,3 +1,7 @@
package codegen.bridges.test9
import kotlin.test.*
// abstract class vtable call
abstract class A {
abstract fun foo(): String
@@ -22,6 +26,6 @@ fun box(): String {
}
}
fun main(args: Array<String>) {
@Test fun runTest() {
println(box())
}
@@ -1,3 +1,7 @@
package codegen.classDelegation.generic
import kotlin.test.*
open class Content() {
override fun toString() = "OK"
}
@@ -16,6 +20,6 @@ class ContentBoxDelegate<T : Content>() : ContentBox<T> by (Impl as ContentBox<T
fun box() = ContentBoxDelegate<Content>().get().toString()
fun main(args: Array<String>) {
@Test fun runTest() {
println(box())
}
@@ -1,3 +1,7 @@
package codegen.classDelegation.method
import kotlin.test.*
interface A<T> {
fun foo(): T
}
@@ -14,6 +18,6 @@ fun box(): String {
return c.foo() + a.foo()
}
fun main(args: Array<String>) {
@Test fun runTest() {
println(box())
}
@@ -1,3 +1,7 @@
package codegen.classDelegation.property
import kotlin.test.*
interface A {
val x: Int
}
@@ -14,6 +18,6 @@ fun box(): String {
return q.x.toString() + a.x.toString()
}
fun main(args: Array<String>) {
@Test fun runTest() {
println(box())
}
@@ -1,3 +1,7 @@
package codegen.classDelegation.withBridge
import kotlin.test.*
interface A<T> {
fun foo(t: T): String
}
@@ -23,6 +27,6 @@ fun box(): String {
}
}
fun main(args: Array<String>) {
@Test fun runTest() {
println(box())
}
@@ -1,3 +1,7 @@
package codegen.controlflow.`break`
import kotlin.test.*
fun foo() {
var i = 0
l1@while (true) {
@@ -45,7 +49,7 @@ fun qux() {
}
}
fun main(args: Array<String>) {
@Test fun runTest() {
foo()
bar()
qux()
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.controlflow.break1
import kotlin.test.*
@Test fun runTest() {
loop@ while (true) {
println("Body")
break
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.controlflow.for_loops
import kotlin.test.*
@Test fun runTest() {
// Simple loops
for (i in 0..4) {
@@ -1,9 +1,13 @@
package codegen.controlflow.for_loops_call_order
import kotlin.test.*
fun f1(): Int { print("1"); return 0 }
fun f2(): Int { print("2"); return 6 }
fun f3(): Int { print("3"); return 2 }
fun f4(): Int { print("4"); return 3 }
fun main(args: Array<String>) {
@Test fun runTest() {
for (i in f1()..f2() step f3() step f4()) { }; println()
for (i in f1() until f2() step f3() step f4()) {}; println()
for (i in f2() downTo f1() step f3() step f4()) {}; println()
@@ -1,6 +1,10 @@
package codegen.controlflow.for_loops_coroutines
import kotlin.test.*
import kotlin.coroutines.experimental.*
fun main(args: Array<String>) {
@Test fun runTest() {
val sq = buildSequence {
for (i in 0..6 step 2) {
print("before: $i ")
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.controlflow.for_loops_empty_range
import kotlin.test.*
@Test fun runTest() {
// Simple loops
for (i in 4..0) { print(i) }
for (i in 4 until 0) { print(i) }
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.controlflow.for_loops_errors
import kotlin.test.*
@Test fun runTest() {
// Negative step.
try {
for (i in 0 .. 4 step -2) print(i); println()
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.controlflow.for_loops_nested
import kotlin.test.*
@Test fun runTest() {
// Simple
for (i in 0..2) {
for (j in 0..2) {
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.controlflow.for_loops_overflow
import kotlin.test.*
@Test fun runTest() {
for (i in Int.MAX_VALUE - 1 .. Int.MAX_VALUE) { print(i); print(' ') }; println()
for (i in Int.MAX_VALUE - 1 until Int.MAX_VALUE) { print(i); print(' ') }; println()
for (i in Int.MIN_VALUE + 1 downTo Int.MIN_VALUE) { print(i); print(' ') }; println()
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.controlflow.for_loops_types
import kotlin.test.*
@Test fun runTest() {
for (i in 0.toByte() .. 4.toByte()) print(i); println()
for (i in 0.toByte() .. 4.toShort()) print(i); println()
for (i in 0.toByte() .. 4.toInt()) print(i); println()
@@ -1,4 +1,8 @@
fun main(args: Array<String>) {
package codegen.controlflow.unreachable1
import kotlin.test.*
@Test fun runTest() {
println(foo())
}
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_finally1
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -32,7 +36,7 @@ fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_finally2
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -32,7 +36,7 @@ fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_finally3
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -32,7 +36,7 @@ fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_finally4
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -32,7 +36,7 @@ fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_finally5
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -32,7 +36,7 @@ fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_finally6
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -32,7 +36,7 @@ fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_finally7
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -38,7 +42,7 @@ fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_if1
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -32,7 +36,7 @@ fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_if2
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -32,7 +36,7 @@ fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_inline1
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -21,7 +25,7 @@ inline suspend fun inline_s2(): Int {
return 42
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_inline2
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -22,7 +26,7 @@ inline suspend fun inline_s2(): Int {
return x
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_inline3
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -35,7 +39,7 @@ inline suspend fun inline_s2(): Int {
return x
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_tryCatch1
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -32,7 +36,7 @@ fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {
@@ -1,3 +1,7 @@
package codegen.coroutines.controlFlow_tryCatch2
import kotlin.test.*
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
@@ -32,7 +36,7 @@ fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun main(args: Array<String>) {
@Test fun runTest() {
var result = 0
builder {

Some files were not shown because too many files have changed in this diff Show More