Fix running stdlib tests in worker on Native
Add `@SharedImmutable` or `@ThreadLocal` where required.
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
package test.comparisons
|
||||
|
||||
import kotlin.native.concurrent.SharedImmutable
|
||||
import kotlin.test.*
|
||||
|
||||
data class Item(val name: String, val rating: Int) : Comparable<Item> {
|
||||
@@ -13,6 +14,7 @@ data class Item(val name: String, val rating: Int) : Comparable<Item> {
|
||||
}
|
||||
}
|
||||
|
||||
@SharedImmutable
|
||||
val STRING_CASE_INSENSITIVE_ORDER: Comparator<String> =
|
||||
compareBy { it: String -> it.toUpperCase() }.thenBy { it.toLowerCase() }.thenBy { it }
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ package test.properties.delegation.references
|
||||
import kotlin.reflect.*
|
||||
import kotlin.test.*
|
||||
import kotlin.internal.*
|
||||
import kotlin.native.concurrent.ThreadLocal
|
||||
import kotlin.random.*
|
||||
|
||||
open class Data(val stringVal: String, var intVar: Int, var builderVar: StringBuilder = StringBuilder("default"))
|
||||
@@ -16,25 +17,33 @@ var Data.displacedVar: Int
|
||||
get() = intVar + 2
|
||||
set(value) { intVar = value - 2 }
|
||||
|
||||
@ThreadLocal
|
||||
val data = Data("bound string", 42)
|
||||
|
||||
val topVal: Double get() = 3.14
|
||||
@ThreadLocal
|
||||
var topVar: ULong = 0xFFFFUL
|
||||
|
||||
// top-level properties
|
||||
|
||||
// val to bound val
|
||||
@ThreadLocal
|
||||
val tlValBoundVal by data::stringVal
|
||||
// val to bound var
|
||||
@ThreadLocal
|
||||
val tlValBoundVar by data::intVar
|
||||
// var to bound var
|
||||
@ThreadLocal
|
||||
var tlVarBoundVar by data::intVar
|
||||
|
||||
// val to top-level val
|
||||
@ThreadLocal
|
||||
val tlValTopLevelVal by ::topVal
|
||||
// val to top-level var
|
||||
@ThreadLocal
|
||||
val tlValTopLevelVar by ::topVar
|
||||
// var to top-level var
|
||||
@ThreadLocal
|
||||
var tlVarTopLevelVar by ::topVar
|
||||
|
||||
// member properties
|
||||
@@ -73,36 +82,50 @@ class DataExt : Data("member string", -1) {
|
||||
|
||||
// extension properties
|
||||
// val to bound val
|
||||
@ThreadLocal
|
||||
val Data.extValBoundVal by data::stringVal
|
||||
// val to bound var
|
||||
@ThreadLocal
|
||||
val Data.extValBoundVar by data::intVar
|
||||
// var to bound var
|
||||
@ThreadLocal
|
||||
var Data.extVarBoundVar by data::intVar
|
||||
|
||||
// val to top-level val
|
||||
@ThreadLocal
|
||||
val Data.extValTopLevelVal by ::topVal
|
||||
// val to top-level var
|
||||
@ThreadLocal
|
||||
val Data.extValTopLevelVar by ::topVar
|
||||
// var to top-level var
|
||||
@ThreadLocal
|
||||
var Data.extVarTopLevelVar by ::topVar
|
||||
|
||||
// val to member val
|
||||
@ThreadLocal
|
||||
val Data.extValMemberVal by Data::stringVal
|
||||
// val to member var
|
||||
@ThreadLocal
|
||||
val Data.extValMemberVar by Data::intVar
|
||||
// var to member var
|
||||
@ThreadLocal
|
||||
var Data.extVarMemberVar by Data::intVar
|
||||
|
||||
// val to extension val
|
||||
@ThreadLocal
|
||||
val Data.extValExtVal by Data::formattedVal
|
||||
// val to extension var
|
||||
@ThreadLocal
|
||||
val Data.extValExtVar by Data::displacedVar
|
||||
// var to extension var
|
||||
@ThreadLocal
|
||||
var Data.extVarExtVar by Data::displacedVar
|
||||
|
||||
|
||||
// covariance
|
||||
@ThreadLocal
|
||||
val covariantVal: Number by ::topVal
|
||||
@ThreadLocal
|
||||
val Data.extCovariantVal: CharSequence by Data::builderVar
|
||||
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
package test.random
|
||||
|
||||
import kotlin.math.*
|
||||
import kotlin.native.concurrent.ThreadLocal
|
||||
import kotlin.random.*
|
||||
import kotlin.test.*
|
||||
|
||||
@@ -566,6 +567,7 @@ class DefaultRandomSmokeTest : RandomSmokeTest() {
|
||||
override val subject: Random get() = Random
|
||||
}
|
||||
|
||||
@ThreadLocal
|
||||
private val seededRandomSmokeTestSubject = Random(Random.nextInt().also { println("Seed: $it") })
|
||||
|
||||
class SeededRandomSmokeTest : RandomSmokeTest() {
|
||||
|
||||
@@ -11,6 +11,7 @@ import test.collections.behaviors.iteratorBehavior
|
||||
import test.collections.behaviors.setBehavior
|
||||
import test.collections.compare
|
||||
import kotlin.math.sign
|
||||
import kotlin.native.concurrent.SharedImmutable
|
||||
import kotlin.random.Random
|
||||
|
||||
|
||||
@@ -18,6 +19,7 @@ fun createString(content: String): CharSequence = content
|
||||
fun createStringBuilder(content: String): CharSequence = StringBuilder((content as Any).toString()) // required for Rhino JS
|
||||
|
||||
|
||||
@SharedImmutable
|
||||
val charSequenceBuilders = listOf(::createString, ::createStringBuilder)
|
||||
|
||||
fun withOneCharSequenceArg(f: ((String) -> CharSequence) -> Unit) {
|
||||
|
||||
@@ -8,11 +8,14 @@ package test.time
|
||||
|
||||
import test.numbers.assertAlmostEquals
|
||||
import test.*
|
||||
import kotlin.native.concurrent.SharedImmutable
|
||||
import kotlin.test.*
|
||||
import kotlin.time.*
|
||||
import kotlin.random.*
|
||||
|
||||
@SharedImmutable
|
||||
private val expectStorageUnit = DurationUnit.NANOSECONDS
|
||||
@SharedImmutable
|
||||
private val units = DurationUnit.values()
|
||||
|
||||
class DurationTest {
|
||||
|
||||
Reference in New Issue
Block a user