Files
kotlin-fork/compiler/testData/codegen/box/fullJdk/native/nativePropertyAccessors.kt
T
Ilya Matveev a5e4e0284e Mute some box tests for native backend
This patch mutes the following test categories:
   * Tests with java dependencies (System class,
     java stdlib, jvm-oriented annotations etc).
   * Coroutines tests.
   * Reflection tests.
   * Tests with an inheritance from the standard
     collections.
2017-03-10 19:59:37 +03:00

55 lines
1.3 KiB
Kotlin
Vendored

// TODO: muted automatically, investigate should it be ran for JS or not
// IGNORE_BACKEND: JS, NATIVE
// FULL_JDK
class C {
companion object {
val defaultGetter: Int = 1
external get
var defaultSetter: Int = 1
external get
external set
}
val defaultGetter: Int = 1
external get
var defaultSetter: Int = 1
external get
external set
}
val defaultGetter: Int = 1
external get
var defaultSetter: Int = 1
external get
external set
fun check(body: () -> Unit, signature: String): String? {
try {
body()
return "Link error expected"
}
catch (e: java.lang.UnsatisfiedLinkError) {
if (e.message != signature) return "Fail $signature: " + e.message
}
return null
}
fun box(): String {
return check({defaultGetter}, "NativePropertyAccessorsKt.getDefaultGetter()I")
?: check({defaultSetter = 1}, "NativePropertyAccessorsKt.setDefaultSetter(I)V")
?: check({C.defaultGetter}, "C\$Companion.getDefaultGetter()I")
?: check({C.defaultSetter = 1}, "C\$Companion.setDefaultSetter(I)V")
?: check({C().defaultGetter}, "C.getDefaultGetter()I")
?: check({C().defaultSetter = 1}, "C.setDefaultSetter(I)V")
?: "OK"
}