[K/N][tests] Migrate link tests to new testing infra ^KT-61259

This commit is contained in:
Alexander Shabalin
2023-12-20 16:40:03 +01:00
committed by Space Team
parent 588549d1d0
commit d6a922bc74
136 changed files with 1615 additions and 1246 deletions
+9
View File
@@ -0,0 +1,9 @@
// MODULE: lib@name
// FILE: lib.kt
fun foo() = "OK"
// MODULE: main(lib@name)
// FILE: main.kt
fun box() = foo()
+23
View File
@@ -0,0 +1,23 @@
// MODULE: lib
// FILE: lib1.kt
package qwerty
fun foo(a: String): String {
return a
}
// FILE: lib2.kt
package qwerty
fun foo2(a: String): String {
return a
}
// MODULE: main(lib)
// FILE: main.kt
import qwerty.*
fun box() = foo(foo2("OK"))
+13
View File
@@ -0,0 +1,13 @@
// MODULE: lib
// FILE: lib.kt
package foo
fun foo() {}
// MODULE: main(lib)
// FILE: main.kt
// TODO: This test should be checking that there's no foo in the resulting binary.
fun box(): String = "OK"
@@ -0,0 +1,76 @@
// MODULE: lib
// FILE: lib.kt
val sb = StringBuilder()
// Private classes
private open class A {
public fun foo1() = sb.appendLine("PASS")
internal fun foo2() = sb.appendLine("PASS")
protected fun foo3() = sb.appendLine("PASS")
}
private class B:A() {
fun foo4() = foo3()
}
// Private interfaces
private interface C {
fun foo() = sb.appendLine("PASS")
}
private class D: C
fun runner() {
B().foo1()
B().foo2()
B().foo4()
D().foo()
// Objects
object : A(){
fun foo4() = foo3()
}.apply {
foo1()
foo2()
foo4()
}
// Function local classes
abstract class E {
public open fun foo1() = sb.appendLine("PASS")
internal open fun foo2() = sb.appendLine("PASS")
protected open fun foo3() = sb.appendLine("PASS")
}
class F : E() {
fun foo4() = foo3()
}
F().foo1()
F().foo2()
F().foo4()
}
// MODULE: main(lib)
// FILE: main.kt
import kotlin.test.*
fun box(): String {
runner()
assertEquals("""
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
""".trimIndent(), sb.toString())
return "OK"
}
@@ -0,0 +1,128 @@
// MODULE: lib
// FILE: lib.kt
val sb = StringBuilder()
// Private classes
private open class A {
public open fun foo1() = sb.appendLine("FAIL")
internal open fun foo2() = sb.appendLine("FAIL")
protected open fun foo3() = sb.appendLine("FAIL")
private fun foo4() = sb.appendLine("FAIL")
}
private class B:A() {
override public fun foo1() = sb.appendLine("PASS")
override internal fun foo2() = sb.appendLine("PASS")
override protected fun foo3() = sb.appendLine("PASS")
private fun foo4() = sb.appendLine("PASS")
fun foo5() = foo3()
fun foo6() = foo4()
}
private abstract class G {
public abstract fun foo1()
internal abstract fun foo2()
protected abstract fun foo3()
private fun foo4() = sb.appendLine("FAIL")
}
private class H:A() {
override public fun foo1() = sb.appendLine("PASS")
override internal fun foo2() = sb.appendLine("PASS")
override protected fun foo3() = sb.appendLine("PASS")
private fun foo4() = sb.appendLine("PASS")
fun foo5() = foo3()
fun foo6() = foo4()
}
// Private interfaces
private interface C {
fun foo() = sb.appendLine("FAIL")
}
private class D: C {
override fun foo() = sb.appendLine("PASS")
}
fun runner() {
B().foo1()
B().foo2()
B().foo5()
B().foo6()
H().foo1()
H().foo2()
H().foo5()
H().foo6()
D().foo()
// Objects
object : A(){
override public fun foo1() = sb.appendLine("PASS")
override internal fun foo2() = sb.appendLine("PASS")
override protected fun foo3() = sb.appendLine("PASS")
private fun foo4() = sb.appendLine("PASS")
fun foo5() = foo3()
fun foo6() = foo4()
}.apply {
foo1()
foo2()
foo5()
foo6()
}
// Function local classes
open class E {
public open fun foo1() = sb.appendLine("FAIL")
internal open fun foo2() = sb.appendLine("FAIL")
protected open fun foo3() = sb.appendLine("FAIL")
private fun foo4() = sb.appendLine("FAIL")
}
class F : E() {
public override fun foo1() = sb.appendLine("PASS")
internal override fun foo2() = sb.appendLine("PASS")
protected override fun foo3() = sb.appendLine("PASS")
private fun foo4() = sb.appendLine("PASS")
fun foo5() = foo3()
fun foo6() = foo4()
}
F().foo1()
F().foo2()
F().foo5()
F().foo6()
}
// MODULE: main(lib)
// FILE: main.kt
import kotlin.test.*
fun box(): String {
runner()
assertEquals("""
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
""".trimIndent(), sb.toString())
return "OK"
}