[Tests] Don't add additional files to every splitted module
^KT-79665
diff --git a/compiler/testData/codegen/box/coroutines/await.kt b/compiler/testData/codegen/box/coroutines/await.kt
index c9f4096..22992f6 100644
--- a/compiler/testData/codegen/box/coroutines/await.kt
+++ b/compiler/testData/codegen/box/coroutines/await.kt
@@ -1,7 +1,5 @@
// WITH_STDLIB
// WITH_COROUTINES
-// IGNORE_BACKEND_K2_MULTI_MODULE: JS_IR
-// ^^^ KT-79664: Error loading module 'kotlin_lib'. Its dependency 'kotlin_main' was not found. Please, check whether 'kotlin_main' is loaded prior to 'kotlin_lib'.
// FILE: promise.kt
import helpers.*
import kotlin.coroutines.*
diff --git a/compiler/tests-common-new/testFixtures/org/jetbrains/kotlin/test/services/SplittingModuleTransformerForBoxTests.kt b/compiler/tests-common-new/testFixtures/org/jetbrains/kotlin/test/services/SplittingModuleTransformerForBoxTests.kt
index 1b99186..c4dde8d 100644
--- a/compiler/tests-common-new/testFixtures/org/jetbrains/kotlin/test/services/SplittingModuleTransformerForBoxTests.kt
+++ b/compiler/tests-common-new/testFixtures/org/jetbrains/kotlin/test/services/SplittingModuleTransformerForBoxTests.kt
@@ -57,7 +57,10 @@
val firstModuleFiles = realFiles.filter { it != secondModuleFile }
val firstModule = TestModule(
name = "lib",
- files = firstModuleFiles + additionalFiles,
+ files = firstModuleFiles + additionalFiles.filterNot {
+ // Avoid adding same global symbols, so deserializer
+ it.name == "jsCommonTestHelpers.kt" || it.name == "jsMinimalTestHelpers.kt"
+ },
allDependencies = emptyList(),
module.directives,
module.languageVersionSettings
@@ -65,7 +68,10 @@
val secondModule = TestModule(
name = "main",
- files = listOf(secondModuleFile) + additionalFiles.map { it.copy() },
+ files = listOf(secondModuleFile) + additionalFiles.filterNot {
+ // Avoid adding same global symbols, so deserializer
+ it.name == "CoroutineHelpers.kt" || it.name == "StateMachineChecker.kt" || it.name == "CoroutineUtil.kt"
+ }.map { it.copy() },
allDependencies = listOf(DependencyDescription(firstModule, DependencyKind.Binary, DependencyRelation.FriendDependency)),
RegisteredDirectivesBuilder(module.directives).apply {
-CodegenTestDirectives.IGNORE_FIR_DIAGNOSTICS
@@ -105,17 +111,6 @@
}
) return true
}
- } else { // Klib backends
- if (WITH_COROUTINES in moduleLib.directives) {
- // KT-79665: WITH_COROUTINES works incorrectly for non-jvm multi-module tests, should EmptyContinuation object be referenced from moduleLib,
- // or CHECK_STATE_MACHINE would add `val StateMachineChecker` to both modules
- // Same helper sources `CoroutineHelpers.kt` and `CoroutineUtil.kt` are added to each module, which causes symbols clash in deserialization phase for moduleMain like:
- // IrClassSymbolImpl is already bound. Signature: helpers/EmptyContinuation|null[0]
- if (CHECK_STATE_MACHINE in moduleLib.directives)
- return true
- if (moduleLib.files[0].originalContent.contains("EmptyContinuation"))
- return true
- }
}
return false // Don't skip its execution, since the test has been split, and no counter-patterns found
}