Skip to content

Commit 238b224

Browse files
alexander-gorshenevminamoto79
authored andcommitted
A set of tests on fake override motion in class hierarchy
(cherry picked from commit 4612e03d24fb3ff55c1622ea11fe892d5f1f1965)
1 parent 704224f commit 238b224

File tree

6 files changed

+67
-0
lines changed

6 files changed

+67
-0
lines changed

backend.native/tests/build.gradle

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4001,6 +4001,20 @@ task library_ir_provider_mismatch(type: KonanDriverTest) {
40014001
}
40024002
}
40034003

4004+
standaloneTest("fake_override_0") {
4005+
def sources = "$projectDir/link/fake_overrides"
4006+
def dir = buildDir.absolutePath
4007+
doBeforeBuild {
4008+
konanc("$sources/base.kt -p library -o $dir/base")
4009+
konanc("$sources/move.kt -p library -o $dir/move -r $dir -l base")
4010+
konanc("$sources/use.kt -p library -o $dir/use -r $dir -l move")
4011+
konanc("$sources/move2.kt -p library -o $dir/move -r $dir -l base")
4012+
}
4013+
source = "$sources/main.kt"
4014+
flags = ["-l", "use", "-r", "$dir"]
4015+
goldValue = "Moved\nMoved\nChild\nSuper\n"
4016+
}
4017+
40044018
if (isAppleTarget(project)) {
40054019
task testObjCExport(type: FrameworkTest) {
40064020
final String frameworkName = 'Kt'
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package serialization.fake_overrides
2+
3+
open class A {
4+
open fun qux() = "Super"
5+
open fun tic() = "Super"
6+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import serialization.fake_overrides.*
2+
fun test1() = println(Z().bar())
3+
4+
fun main() {
5+
test0()
6+
test1()
7+
test2()
8+
test3()
9+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package serialization.fake_overrides
2+
3+
open class X {
4+
}
5+
6+
class Y: X() {
7+
fun bar() = "Stale"
8+
}
9+
10+
class B: A() {
11+
}
12+
13+
class C: A() {
14+
override fun tic() = "Child"
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package serialization.fake_overrides
2+
3+
open class X {
4+
fun bar() = "Moved"
5+
}
6+
7+
class Y: X() {
8+
}
9+
10+
class B: A() {
11+
override fun qux() = "Child"
12+
}
13+
14+
class C: A() {
15+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package serialization.fake_overrides
2+
3+
class Z: X() {
4+
}
5+
6+
fun test0() = println(Y().bar())
7+
fun test2() = println(B().qux())
8+
fun test3() = println(C().qux())

0 commit comments

Comments
 (0)