Compile common stdlib tests against common stdlib
Declare platform-specific test utilities as expect.
This commit is contained in:
@@ -14,11 +14,14 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package kotlin.test
|
package test
|
||||||
|
|
||||||
|
import kotlin.test.*
|
||||||
|
|
||||||
public fun assertTypeEquals(expected: Any?, actual: Any?) {
|
public fun assertTypeEquals(expected: Any?, actual: Any?) {
|
||||||
assertEquals(expected?.let { it::class.js }, actual?.let { it::class.js })
|
assertEquals(expected?.let { it::class.js }, actual?.let { it::class.js })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
internal inline fun String.removeLeadingPlusOnJava6(): String = this
|
internal inline fun String.removeLeadingPlusOnJava6(): String = this
|
||||||
internal fun doubleTotalOrderEquals(a: Double?, b: Double?) = a == b || (a != a && b != b)
|
internal fun doubleTotalOrderEquals(a: Double?, b: Double?) = a == b || (a != a && b != b)
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ apply plugin: 'kotlin-platform-common'
|
|||||||
|
|
||||||
configurePublishing(project)
|
configurePublishing(project)
|
||||||
|
|
||||||
ext.commonSrcDir = "${buildDir}/common-sources"
|
def commonSrcDir = "${buildDir}/common-sources"
|
||||||
|
def commonTestSrcDir = "${buildDir}/common-test-sources"
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
@@ -13,9 +14,21 @@ sourceSets {
|
|||||||
srcDir commonSrcDir
|
srcDir commonSrcDir
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
test {
|
||||||
|
kotlin {
|
||||||
|
srcDir commonTestSrcDir
|
||||||
|
srcDir 'test'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
testCompile project(":kotlin-test:kotlin-test-common")
|
||||||
|
testCompile project(":kotlin-test:kotlin-test-annotations-common")
|
||||||
}
|
}
|
||||||
|
|
||||||
createPreprocessorTask(project, "Main", "${projectDir}/../src/kotlin", commonSrcDir)
|
createPreprocessorTask(project, "Main", "${projectDir}/../src/kotlin", commonSrcDir)
|
||||||
|
createPreprocessorTask(project, "Test", "${projectDir}/../test", commonTestSrcDir)
|
||||||
|
|
||||||
compileKotlinCommon {
|
compileKotlinCommon {
|
||||||
dependsOn preprocessSourcesMain
|
dependsOn preprocessSourcesMain
|
||||||
@@ -34,6 +47,10 @@ compileKotlinCommon {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
compileTestKotlinCommon {
|
||||||
|
dependsOn preprocessSourcesTest
|
||||||
|
}
|
||||||
|
|
||||||
kotlin.experimental.coroutines 'enable'
|
kotlin.experimental.coroutines 'enable'
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package test.collections.js
|
||||||
|
|
||||||
|
// TODO: These have actuals only in JVM tests, and in JS they are in stdlib
|
||||||
|
public expect fun <V> stringMapOf(vararg pairs: Pair<String, V>): HashMap<String, V>
|
||||||
|
public expect fun <V> linkedStringMapOf(vararg pairs: Pair<String, V>): LinkedHashMap<String, V>
|
||||||
|
public expect fun stringSetOf(vararg elements: String): HashSet<String>
|
||||||
|
public expect fun linkedStringSetOf(vararg elements: String): LinkedHashSet<String>
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package test
|
||||||
|
|
||||||
|
public expect fun assertTypeEquals(expected: Any?, actual: Any?)
|
||||||
|
|
||||||
|
internal expect fun String.removeLeadingPlusOnJava6(): String
|
||||||
|
internal expect fun doubleTotalOrderEquals(a: Double?, b: Double?): Boolean
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
internal expect class NumberFormatException : Throwable
|
||||||
@@ -22,3 +22,14 @@ import kotlin.test.assertEquals
|
|||||||
public fun assertTypeEquals(expected: Any?, actual: Any?) {
|
public fun assertTypeEquals(expected: Any?, actual: Any?) {
|
||||||
assertEquals(expected?.javaClass, actual?.javaClass)
|
assertEquals(expected?.javaClass, actual?.javaClass)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@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
|
||||||
|
|
||||||
|
@kotlin.jvm.JvmVersion
|
||||||
|
internal fun doubleTotalOrderEquals(a: Any?, b: Any?) = a == b
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
@file:Suppress("NAMED_ARGUMENTS_NOT_ALLOWED") // for common tests
|
||||||
package test.text
|
package test.text
|
||||||
|
|
||||||
import kotlin.text.*
|
import kotlin.text.*
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package test.text
|
package test.text
|
||||||
|
|
||||||
|
import test.*
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|
||||||
class StringNumberConversionTest {
|
class StringNumberConversionTest {
|
||||||
@@ -334,13 +335,3 @@ private class ConversionWithRadixContext<T: Any>(val convertOrFail: (String, Int
|
|||||||
assertNull(convertOrNull(input, radix), message = "On input \"$input\" with radix $radix")
|
assertNull(convertOrNull(input, radix), message = "On input \"$input\" with radix $radix")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
private val isJava6 = System.getProperty("java.version").startsWith("1.6.")
|
|
||||||
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
private fun String.removeLeadingPlusOnJava6(): String =
|
|
||||||
if (isJava6) removePrefix("+") else this
|
|
||||||
|
|
||||||
@kotlin.jvm.JvmVersion
|
|
||||||
private fun doubleTotalOrderEquals(a: Any?, b: Any?) = a == b
|
|
||||||
|
|||||||
Reference in New Issue
Block a user