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
@@ -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())
}