[PL][tests] Keep PL test data under "testData/klib/" dir
This commit is contained in:
committed by
Space Team
parent
9e3afe7a1f
commit
5c3e63e19a
+25
@@ -0,0 +1,25 @@
|
||||
package lib1
|
||||
|
||||
interface I {
|
||||
}
|
||||
|
||||
interface J {
|
||||
}
|
||||
|
||||
interface Default {
|
||||
fun foo(): String = "Default v1"
|
||||
val bar: String get() = "Default v1"
|
||||
}
|
||||
|
||||
interface RemovedDefault {
|
||||
fun foo(): String = "RemovedDefault v1"
|
||||
val bar: String get() = "RemovedDefault v1"
|
||||
}
|
||||
|
||||
open class Unrelated
|
||||
|
||||
abstract class AbstractUnrelated
|
||||
|
||||
open class WithFakeOverride : I
|
||||
|
||||
open class WithRealOverride : I
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package lib1
|
||||
|
||||
interface I {
|
||||
fun foo(): String = "I v2"
|
||||
val bar: String get() = "I v2"
|
||||
}
|
||||
|
||||
interface J {
|
||||
fun foo(): String = "J v2"
|
||||
val bar: String get() = "J v2"
|
||||
}
|
||||
|
||||
interface Default {
|
||||
fun foo(): String = "Default v2"
|
||||
val bar: String get() = "Default v2"
|
||||
}
|
||||
|
||||
interface RemovedDefault {
|
||||
fun foo(): String
|
||||
val bar: String
|
||||
}
|
||||
|
||||
open class Unrelated {
|
||||
fun foo(): String = "Unrelated v2"
|
||||
val bar: String = "Unrelated v2"
|
||||
}
|
||||
|
||||
abstract class AbstractUnrelated {
|
||||
abstract fun foo(): String
|
||||
abstract val bar: String
|
||||
}
|
||||
|
||||
open class WithFakeOverride : I
|
||||
|
||||
open class WithRealOverride : I {
|
||||
override fun foo() = "WithRealOverride v2"
|
||||
override val bar = "WithRealOverride v2"
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
STEP 0:
|
||||
dependencies: stdlib
|
||||
modifications:
|
||||
U : l1.kt.0 -> l1.kt
|
||||
STEP 1:
|
||||
dependencies: stdlib
|
||||
modifications:
|
||||
U : l1.kt.1 -> l1.kt
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
package lib2
|
||||
|
||||
import lib1.*
|
||||
|
||||
class I_Default : I, Default
|
||||
class Default_I : Default, I
|
||||
class I_RemovedDefault : I, RemovedDefault
|
||||
class RemovedDefault_I : RemovedDefault, I
|
||||
class I_J_Default : I, J, Default
|
||||
class Default_J_I : Default, I, J
|
||||
class I_J_RemovedDefault : I, J, RemovedDefault
|
||||
class RemovedDefault_J_I : RemovedDefault, I, J
|
||||
|
||||
|
||||
class Unrelated_I_Default : Unrelated(), I, Default
|
||||
class Unrelated_Default_I : Unrelated(), Default, I
|
||||
class Unrelated_I_RemovedDefault : Unrelated(), I, RemovedDefault
|
||||
class Unrelated_RemovedDefault_I : Unrelated(), RemovedDefault, I
|
||||
class Unrelated_I_J_Default : Unrelated(), I, J, Default
|
||||
class Unrelated_Default_J_I : Unrelated(), Default, I, J
|
||||
class Unrelated_I_J_RemovedDefault : Unrelated(), I, J, RemovedDefault
|
||||
class Unrelated_RemovedDefault_J_I : Unrelated(), RemovedDefault, I, J
|
||||
|
||||
class AbstractUnrelated_I_Default : AbstractUnrelated(), I, Default
|
||||
class AbstractUnrelated_Default_I : AbstractUnrelated(), Default, I
|
||||
class AbstractUnrelated_I_RemovedDefault : AbstractUnrelated(), I, RemovedDefault
|
||||
class AbstractUnrelated_RemovedDefault_I : AbstractUnrelated(), RemovedDefault, I
|
||||
class AbstractUnrelated_I_J_Default : AbstractUnrelated(), I, J, Default
|
||||
class AbstractUnrelated_Default_J_I : AbstractUnrelated(), Default, I, J
|
||||
class AbstractUnrelated_I_J_RemovedDefault : AbstractUnrelated(), I, J, RemovedDefault
|
||||
class AbstractUnrelated_RemovedDefault_J_I : AbstractUnrelated(), RemovedDefault, I, J
|
||||
|
||||
|
||||
class WithFakeOverride_I_Default : WithFakeOverride(), I, Default
|
||||
class WithFakeOverride_Default_I : WithFakeOverride(), Default, I
|
||||
class WithFakeOverride_I_RemovedDefault : WithFakeOverride(), I, RemovedDefault
|
||||
class WithFakeOverride_RemovedDefault_I : WithFakeOverride(), RemovedDefault, I
|
||||
class WithFakeOverride_I_J_Default : WithFakeOverride(), I, J, Default
|
||||
class WithFakeOverride_Default_J_I : WithFakeOverride(), Default, I, J
|
||||
class WithFakeOverride_I_J_RemovedDefault : WithFakeOverride(), I, J, RemovedDefault
|
||||
class WithFakeOverride_RemovedDefault_J_I : WithFakeOverride(), RemovedDefault, I, J
|
||||
|
||||
class WithRealOverride_I_Default : WithRealOverride(), I, Default
|
||||
class WithRealOverride_Default_I : WithRealOverride(), Default, I
|
||||
class WithRealOverride_I_RemovedDefault : WithRealOverride(), I, RemovedDefault
|
||||
class WithRealOverride_RemovedDefault_I : WithRealOverride(), RemovedDefault, I
|
||||
class WithRealOverride_I_J_Default : WithRealOverride(), I, J, Default
|
||||
class WithRealOverride_Default_J_I : WithRealOverride(), Default, I, J
|
||||
class WithRealOverride_I_J_RemovedDefault : WithRealOverride(), I, J, RemovedDefault
|
||||
class WithRealOverride_RemovedDefault_J_I : WithRealOverride(), RemovedDefault, I, J
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
STEP 0:
|
||||
dependencies: stdlib, lib1
|
||||
+137
@@ -0,0 +1,137 @@
|
||||
import abitestutils.*
|
||||
import lib1.*
|
||||
import lib2.*
|
||||
|
||||
private fun TestBuilder.fe(className: String) = linkage("Function 'foo' in class '${className}' inherits more than one default implementation")
|
||||
private fun TestBuilder.pe(className: String) = linkage("Property accessor 'bar.<get-bar>' in class '${className}' inherits more than one default implementation")
|
||||
|
||||
fun box() = abiTest {
|
||||
// For now it's not working with caches, because of incorrect lazy-IR usage.
|
||||
// Check KT-54019 for details.
|
||||
if (!testMode.lazyIr.usedEverywhere) {
|
||||
expectSuccess("OK") { "OK" }
|
||||
return@abiTest
|
||||
}
|
||||
val instance_I_Default = I_Default()
|
||||
val instance_Default_I = Default_I()
|
||||
val instance_I_RemovedDefault = I_RemovedDefault()
|
||||
val instance_RemovedDefault_I = RemovedDefault_I()
|
||||
val instance_I_J_Default = I_J_Default()
|
||||
val instance_Default_J_I = Default_J_I()
|
||||
val instance_I_J_RemovedDefault = I_J_RemovedDefault()
|
||||
val instance_RemovedDefault_J_I = RemovedDefault_J_I()
|
||||
val instance_Unrelated_I_Default = Unrelated_I_Default()
|
||||
val instance_Unrelated_Default_I = Unrelated_Default_I()
|
||||
val instance_Unrelated_I_RemovedDefault = Unrelated_I_RemovedDefault()
|
||||
val instance_Unrelated_RemovedDefault_I = Unrelated_RemovedDefault_I()
|
||||
val instance_Unrelated_I_J_Default = Unrelated_I_J_Default()
|
||||
val instance_Unrelated_Default_J_I = Unrelated_Default_J_I()
|
||||
val instance_Unrelated_I_J_RemovedDefault = Unrelated_I_J_RemovedDefault()
|
||||
val instance_Unrelated_RemovedDefault_J_I = Unrelated_RemovedDefault_J_I()
|
||||
val instance_AbstractUnrelated_I_Default = AbstractUnrelated_I_Default()
|
||||
val instance_AbstractUnrelated_Default_I = AbstractUnrelated_Default_I()
|
||||
val instance_AbstractUnrelated_I_RemovedDefault = AbstractUnrelated_I_RemovedDefault()
|
||||
val instance_AbstractUnrelated_RemovedDefault_I = AbstractUnrelated_RemovedDefault_I()
|
||||
val instance_AbstractUnrelated_I_J_Default = AbstractUnrelated_I_J_Default()
|
||||
val instance_AbstractUnrelated_Default_J_I = AbstractUnrelated_Default_J_I()
|
||||
val instance_AbstractUnrelated_I_J_RemovedDefault = AbstractUnrelated_I_J_RemovedDefault()
|
||||
val instance_AbstractUnrelated_RemovedDefault_J_I = AbstractUnrelated_RemovedDefault_J_I()
|
||||
val instance_WithFakeOverride_I_Default = WithFakeOverride_I_Default()
|
||||
val instance_WithFakeOverride_Default_I = WithFakeOverride_Default_I()
|
||||
val instance_WithFakeOverride_I_RemovedDefault = WithFakeOverride_I_RemovedDefault()
|
||||
val instance_WithFakeOverride_RemovedDefault_I = WithFakeOverride_RemovedDefault_I()
|
||||
val instance_WithFakeOverride_I_J_Default = WithFakeOverride_I_J_Default()
|
||||
val instance_WithFakeOverride_Default_J_I = WithFakeOverride_Default_J_I()
|
||||
val instance_WithFakeOverride_I_J_RemovedDefault = WithFakeOverride_I_J_RemovedDefault()
|
||||
val instance_WithFakeOverride_RemovedDefault_J_I = WithFakeOverride_RemovedDefault_J_I()
|
||||
val instance_WithRealOverride_I_Default = WithRealOverride_I_Default()
|
||||
val instance_WithRealOverride_Default_I = WithRealOverride_Default_I()
|
||||
val instance_WithRealOverride_I_RemovedDefault = WithRealOverride_I_RemovedDefault()
|
||||
val instance_WithRealOverride_RemovedDefault_I = WithRealOverride_RemovedDefault_I()
|
||||
val instance_WithRealOverride_I_J_Default = WithRealOverride_I_J_Default()
|
||||
val instance_WithRealOverride_Default_J_I = WithRealOverride_Default_J_I()
|
||||
val instance_WithRealOverride_I_J_RemovedDefault = WithRealOverride_I_J_RemovedDefault()
|
||||
val instance_WithRealOverride_RemovedDefault_J_I = WithRealOverride_RemovedDefault_J_I()
|
||||
|
||||
expectFailure(fe("I_Default")) { instance_I_Default.foo() }
|
||||
expectFailure(fe("Default_I")) { instance_Default_I.foo() }
|
||||
expectSuccess("I v2") { instance_I_RemovedDefault.foo() }
|
||||
expectSuccess("I v2") { instance_RemovedDefault_I.foo() }
|
||||
expectFailure(fe("I_J_Default")) { instance_I_J_Default.foo() }
|
||||
expectFailure(fe("Default_J_I")) { instance_Default_J_I.foo() }
|
||||
expectFailure(fe("I_J_RemovedDefault")) { instance_I_J_RemovedDefault.foo() }
|
||||
expectFailure(fe("RemovedDefault_J_I")) { instance_RemovedDefault_J_I.foo() }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_I_Default.foo() }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_Default_I.foo() }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_I_RemovedDefault.foo() }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_RemovedDefault_I.foo() }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_I_J_Default.foo() }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_Default_J_I.foo() }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_I_J_RemovedDefault.foo() }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_RemovedDefault_J_I.foo() }
|
||||
expectFailure(fe("AbstractUnrelated_I_Default")) { instance_AbstractUnrelated_I_Default.foo() }
|
||||
expectFailure(fe("AbstractUnrelated_Default_I")) { instance_AbstractUnrelated_Default_I.foo() }
|
||||
expectSuccess("I v2") { instance_AbstractUnrelated_I_RemovedDefault.foo() }
|
||||
expectSuccess("I v2") { instance_AbstractUnrelated_RemovedDefault_I.foo() }
|
||||
expectFailure(fe("AbstractUnrelated_I_J_Default")) { instance_AbstractUnrelated_I_J_Default.foo() }
|
||||
expectFailure(fe("AbstractUnrelated_Default_J_I")) { instance_AbstractUnrelated_Default_J_I.foo() }
|
||||
expectFailure(fe("AbstractUnrelated_I_J_RemovedDefault")) { instance_AbstractUnrelated_I_J_RemovedDefault.foo() }
|
||||
expectFailure(fe("AbstractUnrelated_RemovedDefault_J_I")) { instance_AbstractUnrelated_RemovedDefault_J_I.foo() }
|
||||
expectFailure(fe("WithFakeOverride_I_Default")) { instance_WithFakeOverride_I_Default.foo() }
|
||||
expectFailure(fe("WithFakeOverride_Default_I")) { instance_WithFakeOverride_Default_I.foo() }
|
||||
expectSuccess("I v2") { instance_WithFakeOverride_I_RemovedDefault.foo() }
|
||||
expectSuccess("I v2") { instance_WithFakeOverride_RemovedDefault_I.foo() }
|
||||
expectFailure(fe("WithFakeOverride_I_J_Default")) { instance_WithFakeOverride_I_J_Default.foo() }
|
||||
expectFailure(fe("WithFakeOverride_Default_J_I")) { instance_WithFakeOverride_Default_J_I.foo() }
|
||||
expectFailure(fe("WithFakeOverride_I_J_RemovedDefault")) { instance_WithFakeOverride_I_J_RemovedDefault.foo() }
|
||||
expectFailure(fe("WithFakeOverride_RemovedDefault_J_I")) { instance_WithFakeOverride_RemovedDefault_J_I.foo() }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_I_Default.foo() }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_Default_I.foo() }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_I_RemovedDefault.foo() }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_RemovedDefault_I.foo() }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_I_J_Default.foo() }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_Default_J_I.foo() }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_I_J_RemovedDefault.foo() }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_RemovedDefault_J_I.foo() }
|
||||
|
||||
expectFailure(pe("I_Default")) { instance_I_Default.bar }
|
||||
expectFailure(pe("Default_I")) { instance_Default_I.bar }
|
||||
expectSuccess("I v2") { instance_I_RemovedDefault.bar }
|
||||
expectSuccess("I v2") { instance_RemovedDefault_I.bar }
|
||||
expectFailure(pe("I_J_Default")) { instance_I_J_Default.bar }
|
||||
expectFailure(pe("Default_J_I")) { instance_Default_J_I.bar }
|
||||
expectFailure(pe("I_J_RemovedDefault")) { instance_I_J_RemovedDefault.bar }
|
||||
expectFailure(pe("RemovedDefault_J_I")) { instance_RemovedDefault_J_I.bar }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_I_Default.bar }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_Default_I.bar }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_I_RemovedDefault.bar }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_RemovedDefault_I.bar }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_I_J_Default.bar }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_Default_J_I.bar }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_I_J_RemovedDefault.bar }
|
||||
expectSuccess("Unrelated v2") { instance_Unrelated_RemovedDefault_J_I.bar }
|
||||
expectFailure(pe("AbstractUnrelated_I_Default")) { instance_AbstractUnrelated_I_Default.bar }
|
||||
expectFailure(pe("AbstractUnrelated_Default_I")) { instance_AbstractUnrelated_Default_I.bar }
|
||||
expectSuccess("I v2") { instance_AbstractUnrelated_I_RemovedDefault.bar }
|
||||
expectSuccess("I v2") { instance_AbstractUnrelated_RemovedDefault_I.bar }
|
||||
expectFailure(pe("AbstractUnrelated_I_J_Default")) { instance_AbstractUnrelated_I_J_Default.bar }
|
||||
expectFailure(pe("AbstractUnrelated_Default_J_I")) { instance_AbstractUnrelated_Default_J_I.bar }
|
||||
expectFailure(pe("AbstractUnrelated_I_J_RemovedDefault")) { instance_AbstractUnrelated_I_J_RemovedDefault.bar }
|
||||
expectFailure(pe("AbstractUnrelated_RemovedDefault_J_I")) { instance_AbstractUnrelated_RemovedDefault_J_I.bar }
|
||||
expectFailure(pe("WithFakeOverride_I_Default")) { instance_WithFakeOverride_I_Default.bar }
|
||||
expectFailure(pe("WithFakeOverride_Default_I")) { instance_WithFakeOverride_Default_I.bar }
|
||||
expectSuccess("I v2") { instance_WithFakeOverride_I_RemovedDefault.bar }
|
||||
expectSuccess("I v2") { instance_WithFakeOverride_RemovedDefault_I.bar }
|
||||
expectFailure(pe("WithFakeOverride_I_J_Default")) { instance_WithFakeOverride_I_J_Default.bar }
|
||||
expectFailure(pe("WithFakeOverride_Default_J_I")) { instance_WithFakeOverride_Default_J_I.bar }
|
||||
expectFailure(pe("WithFakeOverride_I_J_RemovedDefault")) { instance_WithFakeOverride_I_J_RemovedDefault.bar }
|
||||
expectFailure(pe("WithFakeOverride_RemovedDefault_J_I")) { instance_WithFakeOverride_RemovedDefault_J_I.bar }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_I_Default.bar }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_Default_I.bar }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_I_RemovedDefault.bar }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_RemovedDefault_I.bar }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_I_J_Default.bar }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_Default_J_I.bar }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_I_J_RemovedDefault.bar }
|
||||
expectSuccess("WithRealOverride v2") { instance_WithRealOverride_RemovedDefault_J_I.bar }
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
STEP 0:
|
||||
dependencies: stdlib, lib1, lib2
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
MODULES: lib1, lib2, main
|
||||
|
||||
STEP 0:
|
||||
libs: lib1, lib2, main
|
||||
|
||||
STEP 1:
|
||||
libs: lib1
|
||||
Reference in New Issue
Block a user