APIs for easier freeze debugging. (#1783)

This commit is contained in:
Nikolay Igotti
2018-07-10 14:28:56 +03:00
committed by GitHub
parent 7e517ef6f1
commit da7e31a10a
7 changed files with 79 additions and 9 deletions
+6
View File
@@ -692,6 +692,12 @@ task freeze3(type: RunKonanTest) {
source = "runtime/workers/freeze3.kt"
}
task freeze4(type: RunKonanTest) {
disabled = (project.testTarget == 'wasm32') // No exceptions on WASM.
goldValue = "OK\n"
source = "runtime/workers/freeze4.kt"
}
task atomic0(type: RunKonanTest) {
disabled = (project.testTarget == 'wasm32') // Workers need pthreads.
goldValue = "35\n" + "20\n" + "OK\n"
@@ -0,0 +1,24 @@
package runtime.workers.freeze4
import kotlin.test.*
import konan.worker.*
data class Data(val x: Int, val s: String, val next: Data? = null)
@Test fun runTest() {
val data1 = Data(1, "")
data1.freeze()
assertFailsWith<FreezingException> {
data1.ensureNeverFrozen()
}
val dataNF = Data(42, "42")
dataNF.ensureNeverFrozen()
val data2 = Data(2, "2", dataNF)
assertFailsWith<FreezingException> {
data2.freeze()
}
assert(!data2.isFrozen)
println("OK")
}