[PL][tests] Keep PL test data under "testData/klib/" dir

This commit is contained in:
Dmitriy Dolovov
2023-08-15 14:38:02 +02:00
committed by Space Team
parent 9e3afe7a1f
commit 5c3e63e19a
186 changed files with 156 additions and 156 deletions
@@ -0,0 +1,27 @@
sealed interface SI1 {
class A : SI1
class B : SI1
}
sealed class SC1 {
class A: SC1()
class B: SC1()
}
enum class E1 {
A, B
}
enum class E2 {
A, B
}
sealed interface SI2 {
class ClassToObject : SI2
object ObjectToClass : SI2
}
sealed class SC2 {
class ClassToObject : SC2()
object ObjectToClass : SC2()
}
@@ -0,0 +1,29 @@
/*sealed*/ interface SI1 {
class A : SI1
class B : SI1
}
/*sealed*/ abstract class SC1 {
class A: SC1()
class B: SC1()
}
abstract class E1 {
object A : E1()
object B : E1()
}
abstract class E2 {
class A : E2()
class B : E2()
}
sealed interface SI2 {
object ClassToObject : SI2
class ObjectToClass : SI2
}
sealed class SC2 {
object ClassToObject : SC2()
class ObjectToClass : SC2()
}
@@ -0,0 +1,6 @@
STEP 0:
dependencies: stdlib
STEP 1:
dependencies: stdlib
modifications:
U : l1.kt.1 -> l1.kt
@@ -0,0 +1,29 @@
fun computeSC1(sealedClass: SC1): String = when (sealedClass) {
is SC1.A -> "A"
is SC1.B -> "B"
}
fun computeSI1(sealedInterface: SI1): String = when (sealedInterface) {
is SI1.A -> "A"
is SI1.B -> "B"
}
fun computeE1(enum: E1): String = when (enum) {
E1.A -> "A"
E1.B -> "B"
}
fun computeE2(enum: E2): String = when (enum) {
E2.A -> "A"
E2.B -> "B"
}
fun computeSC2(sealedClass: SC2): String = when (sealedClass) {
is SC2.ClassToObject -> "ClassToObject"
SC2.ObjectToClass -> "ObjectToClass"
}
fun computeSI2(sealedInterface: SI2): String = when (sealedInterface) {
is SI2.ClassToObject -> "ClassToObject"
SI2.ObjectToClass -> "ObjectToClass"
}
@@ -0,0 +1,2 @@
STEP 0:
dependencies: stdlib, lib1
@@ -0,0 +1,30 @@
import abitestutils.abiTest
fun box() = abiTest {
class SI1_C : SI1
class SC1_C : SC1()
class E1_C : E1()
class E2_C : E2()
expectSuccess("A") { computeSI1(SI1.A()) }
expectFailure(noWhenBranch()) { computeSI1(SI1_C()) }
expectSuccess("B") { computeSI1(SI1.B()) }
expectSuccess("A") { computeSC1(SC1.A()) }
expectFailure(noWhenBranch()) { computeSC1(SC1_C()) }
expectSuccess("B") { computeSC1(SC1.B()) }
expectFailure(linkage("Can not get instance of singleton 'E1.A': No enum entry found for symbol '/E1.A'")) { computeE1(E1.A) }
expectFailure(linkage("Can not get instance of singleton 'E1.A': No enum entry found for symbol '/E1.A'")) { computeE1(E1_C()) }
expectFailure(linkage("Can not get instance of singleton 'E1.A': No enum entry found for symbol '/E1.A'")) { computeE1(E1.B) }
expectFailure(linkage("Can not get instance of singleton 'E2.A': No enum entry found for symbol '/E2.A'")) { computeE2(E2.A()) }
expectFailure(linkage("Can not get instance of singleton 'E2.A': No enum entry found for symbol '/E2.A'")) { computeE2(E2_C()) }
expectFailure(linkage("Can not get instance of singleton 'E2.A': No enum entry found for symbol '/E2.A'")) { computeE2(E2.B()) }
expectSuccess("ClassToObject") { computeSI2(SI2.ClassToObject) }
expectFailure(linkage("Can not get instance of singleton 'ObjectToClass': 'ObjectToClass' is class while object is expected")) { computeSI2(SI2.ObjectToClass()) }
expectSuccess("ClassToObject") { computeSC2(SC2.ClassToObject) }
expectFailure(linkage("Can not get instance of singleton 'ObjectToClass': 'ObjectToClass' is class while object is expected")) { computeSC2(SC2.ObjectToClass()) }
}
@@ -0,0 +1,2 @@
STEP 1:
dependencies: stdlib, lib1, lib2
@@ -0,0 +1,7 @@
MODULES: lib1, lib2, main
STEP 0:
libs: lib1, lib2
STEP 1:
libs: lib1, main