Freeze objects by default, stdlib improvements. (#1743)

This commit is contained in:
Nikolay Igotti
2018-07-03 16:45:34 +03:00
committed by GitHub
parent c19b9d787f
commit dfc01847c5
16 changed files with 220 additions and 142 deletions
+6
View File
@@ -671,6 +671,12 @@ task freeze2(type: RunKonanTest) {
source = "runtime/workers/freeze2.kt"
}
task freeze3(type: RunKonanTest) {
disabled = (project.testTarget == 'wasm32') // No exceptions on WASM.
goldValue = "OK\n"
source = "runtime/workers/freeze3.kt"
}
task atomic0(type: RunKonanTest) {
disabled = (project.testTarget == 'wasm32') // Workers need pthreads.
goldValue = "35\n" + "20\n" + "OK\n"
@@ -0,0 +1,25 @@
package runtime.workers.freeze3
import kotlin.test.*
import konan.worker.*
object Immutable {
var x = 1
}
@konan.ThreadLocal
object Mutable {
var x = 2
}
@Test fun runTest() {
assertEquals(1, Immutable.x)
assertFailsWith<InvalidMutabilityException> {
Immutable.x++
}
assertEquals(1, Immutable.x)
Mutable.x++
assertEquals(3, Mutable.x)
println("OK")
}