[K/N][tests] Migrate various runtime/ tests ^KT-61259
This commit is contained in:
committed by
Space Team
parent
7ad4e58a7a
commit
d88092aa94
+29
@@ -0,0 +1,29 @@
|
||||
// DISABLE_NATIVE: gcType=NOOP
|
||||
import kotlin.native.ref.WeakReference
|
||||
import kotlin.native.runtime.GC
|
||||
import kotlin.test.*
|
||||
|
||||
@OptIn(kotlin.experimental.ExperimentalNativeApi::class)
|
||||
private fun makeWeakRef(create: () -> Any) = WeakReference(create())
|
||||
|
||||
@OptIn(kotlin.native.runtime.NativeRuntimeApi::class, kotlin.experimental.ExperimentalNativeApi::class)
|
||||
private fun ensureGetsCollected(create: () -> Any) {
|
||||
val ref = makeWeakRef(create)
|
||||
GC.collect()
|
||||
assertNull(ref.get())
|
||||
}
|
||||
|
||||
class LazyCapturesThis {
|
||||
fun foo() = 42
|
||||
val bar by lazy { foo() }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun test() {
|
||||
ensureGetsCollected { LazyCapturesThis() }
|
||||
ensureGetsCollected {
|
||||
val l = LazyCapturesThis()
|
||||
l.bar
|
||||
l
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user