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.
|
||||
*/
|
||||
|
||||
package kotlin.test
|
||||
package test
|
||||
|
||||
import kotlin.test.*
|
||||
|
||||
public fun assertTypeEquals(expected: Any?, actual: Any?) {
|
||||
assertEquals(expected?.let { it::class.js }, actual?.let { it::class.js })
|
||||
}
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
internal inline fun String.removeLeadingPlusOnJava6(): String = this
|
||||
internal fun doubleTotalOrderEquals(a: Double?, b: Double?) = a == b || (a != a && b != b)
|
||||
|
||||
@@ -4,7 +4,8 @@ apply plugin: 'kotlin-platform-common'
|
||||
|
||||
configurePublishing(project)
|
||||
|
||||
ext.commonSrcDir = "${buildDir}/common-sources"
|
||||
def commonSrcDir = "${buildDir}/common-sources"
|
||||
def commonTestSrcDir = "${buildDir}/common-test-sources"
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
@@ -13,9 +14,21 @@ sourceSets {
|
||||
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, "Test", "${projectDir}/../test", commonTestSrcDir)
|
||||
|
||||
compileKotlinCommon {
|
||||
dependsOn preprocessSourcesMain
|
||||
@@ -34,6 +47,10 @@ compileKotlinCommon {
|
||||
}
|
||||
*/
|
||||
|
||||
compileTestKotlinCommon {
|
||||
dependsOn preprocessSourcesTest
|
||||
}
|
||||
|
||||
kotlin.experimental.coroutines 'enable'
|
||||
|
||||
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
|
||||
@@ -21,4 +21,15 @@ import kotlin.test.assertEquals
|
||||
@JvmVersion
|
||||
public fun assertTypeEquals(expected: Any?, actual: Any?) {
|
||||
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
|
||||
|
||||
import kotlin.text.*
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package test.text
|
||||
|
||||
import test.*
|
||||
import kotlin.test.*
|
||||
|
||||
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")
|
||||
}
|
||||
}
|
||||
|
||||
@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