From ba873e2b46d9249249b3f3db652558a04e2b0877 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 25 Jan 2018 17:39:37 +0300 Subject: [PATCH] stdlib tests: provide expect/actual helper functions --- libraries/stdlib/common/test/testUtils.kt | 3 --- .../stdlib/js/test/core/jsCollectionFactories.kt | 11 +++++++++++ libraries/stdlib/js/test/core/testUtils.kt | 8 ++++---- libraries/stdlib/test/js/StubsJVM.kt | 8 ++++---- libraries/stdlib/test/testUtilsJVM.kt | 10 +++++----- 5 files changed, 24 insertions(+), 16 deletions(-) create mode 100644 libraries/stdlib/js/test/core/jsCollectionFactories.kt diff --git a/libraries/stdlib/common/test/testUtils.kt b/libraries/stdlib/common/test/testUtils.kt index 8c00ebac2d3..7c6e08814b1 100644 --- a/libraries/stdlib/common/test/testUtils.kt +++ b/libraries/stdlib/common/test/testUtils.kt @@ -22,6 +22,3 @@ public expect fun randomInt(limit: Int): Int internal expect fun String.removeLeadingPlusOnJava6(): String internal expect fun doubleTotalOrderEquals(a: Double?, b: Double?): Boolean - -// TODO -internal expect class NumberFormatException : Throwable \ No newline at end of file diff --git a/libraries/stdlib/js/test/core/jsCollectionFactories.kt b/libraries/stdlib/js/test/core/jsCollectionFactories.kt new file mode 100644 index 00000000000..6c9c6bdd09b --- /dev/null +++ b/libraries/stdlib/js/test/core/jsCollectionFactories.kt @@ -0,0 +1,11 @@ +/* + * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package test.collections.js + +public actual fun stringMapOf(vararg pairs: Pair): HashMap = kotlin.collections.stringMapOf(*pairs) +public actual fun linkedStringMapOf(vararg pairs: Pair): LinkedHashMap = kotlin.collections.linkedStringMapOf(*pairs) +public actual fun stringSetOf(vararg elements: String): HashSet = kotlin.collections.stringSetOf(*elements) +public actual fun linkedStringSetOf(vararg elements: String): LinkedHashSet = kotlin.collections.linkedStringSetOf(*elements) diff --git a/libraries/stdlib/js/test/core/testUtils.kt b/libraries/stdlib/js/test/core/testUtils.kt index a96f5ec9cdb..a3a8d6fd2c1 100644 --- a/libraries/stdlib/js/test/core/testUtils.kt +++ b/libraries/stdlib/js/test/core/testUtils.kt @@ -18,13 +18,13 @@ package test import kotlin.test.* -public fun assertTypeEquals(expected: Any?, actual: Any?) { +public actual fun assertTypeEquals(expected: Any?, actual: Any?) { assertEquals(expected?.let { it::class.js }, actual?.let { it::class.js }) } @Suppress("DEPRECATION") -public fun randomInt(limit: Int): Int = (kotlin.js.Math.random() * limit).toInt() +public actual fun randomInt(limit: Int): Int = (kotlin.js.Math.random() * limit).toInt() @Suppress("NOTHING_TO_INLINE") -internal inline fun String.removeLeadingPlusOnJava6(): String = this -internal fun doubleTotalOrderEquals(a: Double?, b: Double?) = a == b || (a != a && b != b) +internal actual inline fun String.removeLeadingPlusOnJava6(): String = this +internal actual fun doubleTotalOrderEquals(a: Double?, b: Double?) = a == b || (a != a && b != b) diff --git a/libraries/stdlib/test/js/StubsJVM.kt b/libraries/stdlib/test/js/StubsJVM.kt index 3a76a73fc02..2d8f6d0ae2c 100644 --- a/libraries/stdlib/test/js/StubsJVM.kt +++ b/libraries/stdlib/test/js/StubsJVM.kt @@ -17,7 +17,7 @@ @file:JvmVersion package test.collections.js -public fun stringMapOf(vararg pairs: Pair): HashMap = hashMapOf(*pairs) -public fun linkedStringMapOf(vararg pairs: Pair): LinkedHashMap = linkedMapOf(*pairs) -public fun stringSetOf(vararg elements: String): HashSet = hashSetOf(*elements) -public fun linkedStringSetOf(vararg elements: String): LinkedHashSet = linkedSetOf(*elements) +public actual fun stringMapOf(vararg pairs: Pair): HashMap = hashMapOf(*pairs) +public actual fun linkedStringMapOf(vararg pairs: Pair): LinkedHashMap = linkedMapOf(*pairs) +public actual fun stringSetOf(vararg elements: String): HashSet = hashSetOf(*elements) +public actual fun linkedStringSetOf(vararg elements: String): LinkedHashSet = linkedSetOf(*elements) diff --git a/libraries/stdlib/test/testUtilsJVM.kt b/libraries/stdlib/test/testUtilsJVM.kt index 2190d62e34f..799404b8440 100644 --- a/libraries/stdlib/test/testUtilsJVM.kt +++ b/libraries/stdlib/test/testUtilsJVM.kt @@ -19,19 +19,19 @@ package test import kotlin.test.assertEquals @JvmVersion -public fun assertTypeEquals(expected: Any?, actual: Any?) { +public actual fun assertTypeEquals(expected: Any?, actual: Any?) { assertEquals(expected?.javaClass, actual?.javaClass) } @JvmVersion -public fun randomInt(limit: Int): Int = (Math.random() * limit).toInt() +public actual fun randomInt(limit: Int): Int = (Math.random() * limit).toInt() @kotlin.jvm.JvmVersion private val isJava6 = System.getProperty("java.version").startsWith("1.6.") @kotlin.jvm.JvmVersion -internal fun String.removeLeadingPlusOnJava6(): String = - if (isJava6) removePrefix("+") else this +internal actual fun String.removeLeadingPlusOnJava6(): String = + if (isJava6) removePrefix("+") else this @kotlin.jvm.JvmVersion -internal fun doubleTotalOrderEquals(a: Any?, b: Any?) = a == b +internal actual fun doubleTotalOrderEquals(a: Double?, b: Double?) = (a as Any?) == b