Disable running checkers by default (#4644)

* Make checkers be disabled by default

* Allow running checkers in test launcher
This commit is contained in:
Alexander Shabalin
2021-01-22 12:23:53 +03:00
committed by Nikolay Krasko
parent 71f44dce0f
commit 77e2b9f9a0
22 changed files with 82 additions and 76 deletions
@@ -1,24 +0,0 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the LICENSE file.
*/
@file:OptIn(ExperimentalStdlibApi::class)
import kotlin.test.*
import kotlin.native.internal.*
// This cleaner won't be run, because it's deinitialized with globals after
// cleaners are disabled.
val globalCleaner = createCleaner(42) {
println(it)
}
fun main() {
// Cleaner holds onto a finalization lambda. If it doesn't get executed,
// the memory will leak. Suppress memory leak checker to check for cleaners
// leak only.
Platform.isMemoryLeakCheckerActive = false
// Make sure cleaner is initialized.
assertNotNull(globalCleaner)
}
@@ -16,10 +16,6 @@ val globalCleaner = createCleaner(42) {
}
fun main() {
// Cleaner holds onto a finalization lambda. If it doesn't get executed,
// the memory will leak. Suppress memory leak checker to check for cleaners
// leak only.
Platform.isMemoryLeakCheckerActive = false
Platform.isCleanersLeakCheckerActive = true
// Make sure cleaner is initialized.
assertNotNull(globalCleaner)
@@ -16,11 +16,6 @@ val globalCleaner = createCleaner(42) {
}
fun main() {
// Cleaner holds onto a finalization lambda. If it doesn't get executed,
// the memory will leak. Suppress memory leak checker to check for cleaners
// leak only.
Platform.isMemoryLeakCheckerActive = false
Platform.isCleanersLeakCheckerActive = false
// Make sure cleaner is initialized.
assertNotNull(globalCleaner)
}
@@ -1,5 +1,6 @@
import kotlin.native.concurrent.*
import kotlin.native.internal.GC
import kotlin.native.Platform
import kotlin.test.*
fun test1() {
@@ -175,6 +176,7 @@ fun test9() {
}
fun main() {
Platform.isMemoryLeakCheckerActive = true
kotlin.native.internal.GC.cyclicCollectorEnabled = true
test1()
test2()
@@ -187,4 +189,4 @@ fun main() {
test7()
test8()
test9()
}
}
@@ -1,5 +1,6 @@
import kotlin.native.concurrent.*
import kotlin.native.internal.GC
import kotlin.native.Platform
import kotlin.test.*
class Holder(var other: Any?)
@@ -32,6 +33,11 @@ fun assertArrayEquals(
}
}
@BeforeTest
fun enableMemoryChecker() {
Platform.isMemoryLeakCheckerActive = true
}
@Test
fun noCycles() {
val atomic1 = AtomicReference<Any?>(null)
@@ -1,5 +1,7 @@
import kotlinx.cinterop.*
import kotlin.native.Platform
fun main() {
Platform.isMemoryLeakCheckerActive = true
StableRef.create(Any())
}
@@ -0,0 +1,14 @@
import kotlin.test.*
import kotlinx.cinterop.*
import kotlin.native.Platform
@BeforeTest
fun enableMemoryChecker() {
Platform.isMemoryLeakCheckerActive = true
}
@Test
fun test() {
StableRef.create(Any())
}
@@ -1,7 +1,9 @@
import kotlin.native.concurrent.*
import kotlin.native.Platform
import kotlinx.cinterop.*
fun main() {
Platform.isMemoryLeakCheckerActive = true
val worker = Worker.start()
// Make sure worker is initialized.
worker.execute(TransferMode.SAFE, {}, {}).result;
@@ -1,7 +1,9 @@
import kotlin.native.concurrent.*
import kotlin.native.Platform
import kotlinx.cinterop.*
fun main() {
Platform.isMemoryLeakCheckerActive = true
val worker = Worker.start()
// Make sure worker is initialized.
worker.execute(TransferMode.SAFE, {}, {}).result;
@@ -4,11 +4,13 @@
*/
import kotlin.native.concurrent.*
import kotlin.native.Platform
@ThreadLocal
var x = Any()
fun main() {
Platform.isMemoryLeakCheckerActive = true
val worker = Worker.start()
worker.execute(TransferMode.SAFE, {}) {