Add WITH_RUNTIME and WITH_REFLECT directives to box tests

Currently all tests in boxWithStdlib/ run with both runtime and reflection
included; eventually they'll be merged into box/ using these directives
This commit is contained in:
Alexander Udalov
2016-03-03 15:40:33 +03:00
parent f47cc5ce2f
commit daab3db062
69 changed files with 162 additions and 95 deletions
@@ -1,33 +0,0 @@
// NO_KOTLIN_REFLECT
import kotlin.test.*
class Klass
fun box(): String {
val kClass = Klass::class
val jClass = kClass.java
val kjClass = Klass::class.java
val kkClass = jClass.kotlin
val jjClass = kkClass.java
assertEquals("Klass", jClass.getSimpleName())
assertEquals("Klass", kjClass.getSimpleName())
assertEquals("Klass", kkClass.java.simpleName)
assertEquals(kjClass, jjClass)
try { kClass.simpleName; return "Fail 1" } catch (e: Error) {}
try { kClass.qualifiedName; return "Fail 2" } catch (e: Error) {}
try { kClass.members; return "Fail 3" } catch (e: Error) {}
val jlError = Error::class.java
val kljError = Error::class
val jljError = kljError.java
val jlkError = jlError.kotlin
assertEquals("Error", jlError.getSimpleName())
assertEquals("Error", jljError.getSimpleName())
assertEquals("Error", jlkError.java.simpleName)
return "OK"
}
@@ -1,31 +0,0 @@
// NO_KOTLIN_REFLECT
import kotlin.reflect.KCallable
import kotlin.test.*
class M {
fun foo() {}
val bar = 1
}
fun checkEquals(x: KCallable<*>, y: KCallable<*>) {
assertEquals(x, y)
assertEquals(y, x)
assertEquals(x.hashCode(), y.hashCode())
}
fun checkToString(x: KCallable<*>, expected: String) {
assertEquals(expected + " (Kotlin reflection is not available)", x.toString())
}
fun box(): String {
checkEquals(M::foo, M::foo)
checkEquals(M::bar, M::bar)
checkEquals(::M, ::M)
checkToString(M::foo, "function foo")
checkToString(M::bar, "property bar")
checkToString(::M, "constructor")
return "OK"
}
@@ -1,24 +0,0 @@
// NO_KOTLIN_REFLECT
import kotlin.reflect.KClass
import kotlin.test.*
class M
fun check(x: KClass<*>) {
assertEquals(x, x.java.kotlin)
assertEquals(x.hashCode(), x.java.kotlin.hashCode())
assertEquals(x.java.toString() + " (Kotlin reflection is not available)", x.toString())
}
fun box(): String {
check(M::class)
check(String::class)
check(Error::class)
check(Int::class)
check(java.lang.Integer::class)
check(MutableList::class)
check(Array<String>::class)
return "OK"
}
@@ -1,20 +0,0 @@
// NO_KOTLIN_REFLECT
import kotlin.test.assertEquals
fun check(name: String, c: Class<*>) {
assertEquals(name, c.simpleName)
}
fun box(): String {
check("boolean", Boolean::class.java)
check("byte", Byte::class.java)
check("char", Char::class.java)
check("short", Short::class.java)
check("int", Int::class.java)
check("float", Float::class.java)
check("long", Long::class.java)
check("double", Double::class.java)
return "OK"
}
@@ -1,16 +0,0 @@
// NO_KOTLIN_REFLECT
import kotlin.reflect.*
data class Box(val value: String)
var pr = Box("first")
fun box(): String {
val p = ::pr
if (p.get().value != "first") return "Fail value 1: ${p.get()}"
if (p.name != "pr") return "Fail name: ${p.name}"
p.set(Box("second"))
if (p.get().value != "second") return "Fail value 2: ${p.get()}"
return "OK"
}
@@ -1,37 +0,0 @@
// NO_KOTLIN_REFLECT
import kotlin.reflect.*
import kotlin.test.assertTrue
import kotlin.test.assertFalse
class A {
val readonly: String = ""
var mutable: String = ""
}
val readonly: String = ""
var mutable: String = ""
fun box(): String {
assertTrue(::readonly is KProperty0<*>)
assertFalse(::readonly is KMutableProperty0<*>)
assertFalse(::readonly is KProperty1<*, *>)
assertFalse(::readonly is KProperty2<*, *, *>)
assertTrue(::mutable is KProperty0<*>)
assertTrue(::mutable is KMutableProperty0<*>)
assertFalse(::mutable is KProperty1<*, *>)
assertFalse(::mutable is KProperty2<*, *, *>)
assertFalse(A::readonly is KProperty0<*>)
assertTrue(A::readonly is KProperty1<*, *>)
assertFalse(A::readonly is KMutableProperty1<*, *>)
assertFalse(A::readonly is KProperty2<*, *, *>)
assertFalse(A::mutable is KProperty0<*>)
assertTrue(A::mutable is KProperty1<*, *>)
assertTrue(A::mutable is KMutableProperty1<*, *>)
assertFalse(A::mutable is KProperty2<*, *, *>)
return "OK"
}
@@ -1,22 +0,0 @@
// NO_KOTLIN_REFLECT
import kotlin.test.assertEquals
class Klass
inline fun <reified T : Any> simpleName(): String =
T::class.java.getSimpleName()
inline fun <reified T : Any> simpleName2(): String {
val kClass = T::class // Intrinsic for T::class.java is not used
return kClass.java.getSimpleName()
}
fun box(): String {
assertEquals("Integer", simpleName<Int>())
assertEquals("Integer", simpleName2<Int>())
assertEquals("Klass", simpleName<Klass>())
return "OK"
}
@@ -1,14 +0,0 @@
// NO_KOTLIN_REFLECT
import kotlin.test.assertNotNull
class Klass
fun box(): String {
assertNotNull(Int::class)
assertNotNull(String::class)
assertNotNull(Klass::class)
assertNotNull(Error::class)
return "OK"
}