From 0506d39d8a95305c23cf970f420016ce1f78718f Mon Sep 17 00:00:00 2001 From: Pavel Kunyavskiy Date: Mon, 6 Mar 2023 11:32:04 +0100 Subject: [PATCH] [K/N] Support ignoring test with legacy mm --- .../org/jetbrains/kotlin/test/TargetBackend.kt | 1 + kotlin-native/backend.native/tests/build.gradle | 2 +- .../support/group/ExtTestCaseGroupProvider.kt | 15 +++++++++------ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/TargetBackend.kt b/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/TargetBackend.kt index 1989b3c6206..427ea6d4510 100644 --- a/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/TargetBackend.kt +++ b/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/TargetBackend.kt @@ -23,6 +23,7 @@ enum class TargetBackend( ANDROID(false, JVM), ANDROID_IR(true, JVM_IR), NATIVE(true), + NATIVE_WITH_LEGACY_MM(true, NATIVE), JVM_WITH_OLD_EVALUATOR(false), JVM_IR_WITH_OLD_EVALUATOR(true), JVM_WITH_IR_EVALUATOR(false), diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index 38fd397a4d2..c5724a4515a 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -2839,7 +2839,7 @@ standaloneTest("exception_in_global_init") { enabled = (project.testTarget != 'wasm32') // Uses exceptions. source = "runtime/exceptions/exception_in_global_init.kt" expectedExitStatusChecker = { it != 0 } - outputChecker = { s -> s.contains("Uncaught Kotlin exception: kotlin.IllegalStateException: FAIL") && !s.contains("in kotlin main") } + outputChecker = { s -> s.contains("Uncaught Kotlin exception:") && s.coinains("FAIL") && !s.contains("in kotlin main") } } task rethrow_exception(type: KonanLocalTest) { diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/ExtTestCaseGroupProvider.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/ExtTestCaseGroupProvider.kt index cce07c704fc..c3f2af389d3 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/ExtTestCaseGroupProvider.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/ExtTestCaseGroupProvider.kt @@ -74,7 +74,8 @@ internal class ExtTestCaseGroupProvider : TestCaseGroupProvider, TestDisposable( generatedSources = settings.get(), customKlibs = settings.get(), pipelineType = settings.get(), - timeouts = settings.get() + timeouts = settings.get(), + memoryModel = settings.get(), ) if (extTestDataFile.isRelevant) @@ -99,7 +100,8 @@ private class ExtTestDataFile( private val generatedSources: GeneratedSources, private val customKlibs: CustomKlibs, private val pipelineType: PipelineType, - private val timeouts: Timeouts + private val timeouts: Timeouts, + private val memoryModel: MemoryModel ) { private val structure by lazy { val allSourceTransformers: ExternalSourceTransformers = if (customSourceTransformers.isNullOrEmpty()) @@ -138,17 +140,18 @@ private class ExtTestDataFile( val isRelevant: Boolean = isCompatibleTarget(TargetBackend.NATIVE, testDataFile) // Checks TARGET_BACKEND/DONT_TARGET_EXACT_BACKEND directives. - && !isIgnoredNativeTarget(pipelineType, testDataFile) // Checks IGNORE_BACKEND directives. + && !isIgnoredTarget(pipelineType, testDataFile, TargetBackend.NATIVE) // Checks IGNORE_BACKEND directives. + && (memoryModel != MemoryModel.LEGACY || !isIgnoredTarget(pipelineType, testDataFile, TargetBackend.NATIVE_WITH_LEGACY_MM)) // Checks IGNORE_BACKEND directives. && testDataFileSettings.languageSettings.none { it in INCOMPATIBLE_LANGUAGE_SETTINGS } && INCOMPATIBLE_DIRECTIVES.none { it in structure.directives } && structure.directives[API_VERSION_DIRECTIVE] !in INCOMPATIBLE_API_VERSIONS && structure.directives[LANGUAGE_VERSION_DIRECTIVE] !in INCOMPATIBLE_LANGUAGE_VERSIONS - private fun isIgnoredNativeTarget(pipelineType: PipelineType, testDataFile: File): Boolean { + private fun isIgnoredTarget(pipelineType: PipelineType, testDataFile: File, backend: TargetBackend): Boolean { return when (pipelineType) { PipelineType.K1 -> isIgnoredTarget( - TargetBackend.NATIVE, + backend, testDataFile, /*includeAny = */true, IGNORE_BACKEND_DIRECTIVE_PREFIX, @@ -156,7 +159,7 @@ private class ExtTestDataFile( ) PipelineType.K2 -> isIgnoredTarget( - TargetBackend.NATIVE, + backend, testDataFile, /*includeAny = */true, IGNORE_BACKEND_DIRECTIVE_PREFIX,