[K2/N] Run new stdlib tests also for K2.
Merge-request: KT-MR-8708 Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
f86d28449f
commit
6e434748d1
+4
-2
@@ -14,9 +14,9 @@ import org.jetbrains.kotlin.konan.file.File
|
||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||
|
||||
fun CompilerConfiguration.setupFromArguments(arguments: K2NativeCompilerArguments) = with(KonanConfigKeys) {
|
||||
val commonSources = arguments.commonSources?.toSet().orEmpty()
|
||||
val commonSources = arguments.commonSources?.toSet().orEmpty().map { it.absoluteNormalizedFile() }
|
||||
arguments.freeArgs.forEach {
|
||||
addKotlinSourceRoot(it, it in commonSources)
|
||||
addKotlinSourceRoot(it, it.absoluteNormalizedFile() in commonSources)
|
||||
}
|
||||
|
||||
// Can be overwritten by explicit arguments below.
|
||||
@@ -253,6 +253,8 @@ fun CompilerConfiguration.setupFromArguments(arguments: K2NativeCompilerArgument
|
||||
putIfNotNull(SAVE_LLVM_IR_DIRECTORY, arguments.saveLlvmIrDirectory)
|
||||
}
|
||||
|
||||
private fun String.absoluteNormalizedFile() = java.io.File(this).absoluteFile.normalize()
|
||||
|
||||
internal fun CompilerConfiguration.setupCommonOptionsForCaches(konanConfig: KonanConfig) = with(KonanConfigKeys) {
|
||||
put(TARGET, konanConfig.target.toString())
|
||||
put(DEBUG, konanConfig.debug)
|
||||
|
||||
@@ -9,6 +9,7 @@ package org.jetbrains.kotlin.konan.blackboxtest
|
||||
|
||||
import org.jetbrains.kotlin.konan.blackboxtest.support.TestCaseId
|
||||
import org.jetbrains.kotlin.konan.blackboxtest.support.TestRunnerType
|
||||
import org.jetbrains.kotlin.konan.blackboxtest.support.group.K2Pipeline
|
||||
import org.jetbrains.kotlin.konan.blackboxtest.support.group.PredefinedPaths.KOTLIN_NATIVE_DISTRIBUTION
|
||||
import org.jetbrains.kotlin.konan.blackboxtest.support.group.PredefinedTestCase as TC
|
||||
import org.jetbrains.kotlin.konan.blackboxtest.support.group.PredefinedTestCases
|
||||
@@ -52,9 +53,83 @@ class StdlibTest : AbstractNativeBlackBoxTest() {
|
||||
fun worker() = dynamicTestCase(TestCaseId.Named("worker"))
|
||||
}
|
||||
|
||||
@Tag("stdlib")
|
||||
@PredefinedTestCases(
|
||||
TC(
|
||||
name = "default",
|
||||
runnerType = TestRunnerType.DEFAULT,
|
||||
freeCompilerArgs = [ENABLE_MPP, STDLIB_IS_A_FRIEND, ENABLE_X_STDLIB_API, ENABLE_X_ENCODING_API, ENABLE_RANGE_UNTIL,
|
||||
"-Xcommon-sources=libraries/stdlib/common/test/jsCollectionFactories.kt",
|
||||
"-Xcommon-sources=libraries/stdlib/common/test/testUtils.kt",
|
||||
"-Xcommon-sources=libraries/stdlib/test/testUtils.kt",
|
||||
"-Xcommon-sources=libraries/stdlib/test/text/StringEncodingTest.kt",
|
||||
],
|
||||
sourceLocations = [
|
||||
"libraries/stdlib/test/**.kt",
|
||||
"libraries/stdlib/common/test/**.kt",
|
||||
"kotlin-native/backend.native/tests/stdlib_external/text/**.kt",
|
||||
"kotlin-native/backend.native/tests/stdlib_external/utils.kt",
|
||||
"kotlin-native/backend.native/tests/stdlib_external/jsCollectionFactoriesActuals.kt"
|
||||
],
|
||||
ignoredFiles = [
|
||||
DISABLED_K2_NUMBERS,
|
||||
DISABLED_K2_MATH,
|
||||
DISABLED_K2_DURATION,
|
||||
DISABLED_K2_ARRAYS,
|
||||
DISABLED_K2_STRING_NUMBER_CONVERSIONS,
|
||||
DISABLED_K2_UNSIGNED_ARRAYS,
|
||||
DISABLED_K2_RANGE_ITERATION,
|
||||
],
|
||||
ignoredTests = [DISABLED_STDLIB_TEST]
|
||||
),
|
||||
TC(
|
||||
name = "worker",
|
||||
runnerType = TestRunnerType.WORKER,
|
||||
freeCompilerArgs = [ENABLE_MPP, STDLIB_IS_A_FRIEND, ENABLE_X_STDLIB_API, ENABLE_X_ENCODING_API, ENABLE_RANGE_UNTIL,
|
||||
"-Xcommon-sources=libraries/stdlib/common/test/jsCollectionFactories.kt",
|
||||
"-Xcommon-sources=libraries/stdlib/common/test/testUtils.kt",
|
||||
"-Xcommon-sources=libraries/stdlib/test/testUtils.kt",
|
||||
"-Xcommon-sources=libraries/stdlib/test/text/StringEncodingTest.kt",
|
||||
],
|
||||
sourceLocations = [
|
||||
"libraries/stdlib/test/**.kt",
|
||||
"libraries/stdlib/common/test/**.kt",
|
||||
"kotlin-native/backend.native/tests/stdlib_external/text/**.kt",
|
||||
"kotlin-native/backend.native/tests/stdlib_external/utils.kt",
|
||||
"kotlin-native/backend.native/tests/stdlib_external/jsCollectionFactoriesActuals.kt"
|
||||
],
|
||||
ignoredFiles = [
|
||||
DISABLED_K2_NUMBERS,
|
||||
DISABLED_K2_MATH,
|
||||
DISABLED_K2_DURATION,
|
||||
DISABLED_K2_ARRAYS,
|
||||
DISABLED_K2_STRING_NUMBER_CONVERSIONS,
|
||||
DISABLED_K2_UNSIGNED_ARRAYS,
|
||||
DISABLED_K2_RANGE_ITERATION,
|
||||
],
|
||||
ignoredTests = [DISABLED_STDLIB_TEST]
|
||||
)
|
||||
)
|
||||
@K2Pipeline
|
||||
class StdlibK2Test : AbstractNativeBlackBoxTest() {
|
||||
@TestFactory
|
||||
fun default() = dynamicTestCase(TestCaseId.Named("default"))
|
||||
|
||||
@TestFactory
|
||||
fun worker() = dynamicTestCase(TestCaseId.Named("worker"))
|
||||
}
|
||||
|
||||
private const val ENABLE_MPP = "-Xmulti-platform"
|
||||
internal const val STDLIB_IS_A_FRIEND = "-friend-modules=$KOTLIN_NATIVE_DISTRIBUTION/klib/common/stdlib"
|
||||
private const val ENABLE_X_STDLIB_API = "-opt-in=kotlin.ExperimentalStdlibApi"
|
||||
private const val ENABLE_X_ENCODING_API = "-opt-in=kotlin.io.encoding.ExperimentalEncodingApi"
|
||||
private const val ENABLE_RANGE_UNTIL = "-XXLanguage:+RangeUntilOperator" // keep until 1.8
|
||||
private const val DISABLED_STDLIB_TEST = "test.collections.CollectionTest.abstractCollectionToArray"
|
||||
private const val DISABLED_STDLIB_TEST = "test.collections.CollectionTest.abstractCollectionToArray"
|
||||
|
||||
private const val DISABLED_K2_NUMBERS = "libraries/stdlib/test/numbers/NumbersTest.kt" // KT-56023
|
||||
private const val DISABLED_K2_MATH = "libraries/stdlib/test/numbers/MathTest.kt" // KT-56023
|
||||
private const val DISABLED_K2_DURATION = "libraries/stdlib/test/time/DurationTest.kt" // uses symbols from disabled MathTest.kt (see above)
|
||||
private const val DISABLED_K2_ARRAYS = "libraries/stdlib/test/collections/ArraysTest.kt" // KT-55902
|
||||
private const val DISABLED_K2_STRING_NUMBER_CONVERSIONS = "libraries/stdlib/test/text/StringNumberConversionTest.kt" // KT-55902
|
||||
private const val DISABLED_K2_UNSIGNED_ARRAYS = "libraries/stdlib/test/collections/UnsignedArraysTest.kt" // KT-55902
|
||||
private const val DISABLED_K2_RANGE_ITERATION = "libraries/stdlib/test/ranges/RangeIterationTest.kt" // KT-56483
|
||||
|
||||
+5
@@ -52,8 +52,10 @@ internal class PredefinedTestCaseGroupProvider(annotation: PredefinedTestCases)
|
||||
directFriendSymbols = emptySet()
|
||||
)
|
||||
|
||||
val ignoredFiles = predefinedTestCase.ignoredFiles.map { it.absoluteNormalizedFile() }
|
||||
predefinedTestCase.sourceLocations
|
||||
.expandGlobs(settings) { "No files found for test case $testCaseId" }
|
||||
.filterNot { ignoredFiles.contains(it.absoluteNormalizedFile()) }
|
||||
.forEach { file -> module.files += TestFile.createCommitted(file, module) }
|
||||
|
||||
val testCase = TestCase(
|
||||
@@ -75,6 +77,9 @@ internal class PredefinedTestCaseGroupProvider(annotation: PredefinedTestCases)
|
||||
}
|
||||
}
|
||||
|
||||
private fun File.absoluteNormalizedFile() = absoluteFile.normalize()
|
||||
private fun String.absoluteNormalizedFile() = File(this).absoluteNormalizedFile()
|
||||
|
||||
private fun Array<String>.expandGlobs(settings: Settings, noExpandedFilesErrorMessage: () -> String): Set<File> {
|
||||
val files = buildSet {
|
||||
this@expandGlobs.forEach { pathPattern ->
|
||||
|
||||
+1
@@ -18,6 +18,7 @@ internal annotation class PredefinedTestCase(
|
||||
val runnerType: TestRunnerType,
|
||||
val freeCompilerArgs: Array<String>,
|
||||
val sourceLocations: Array<String>,
|
||||
val ignoredFiles: Array<String> = [], // TODO Remove it after fix of KT-55902, KT-56023, KT-56483
|
||||
val ignoredTests: Array<String> = []
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user