From 6652a7072ce335403a6d89bbf0f5d5d96020ff8c Mon Sep 17 00:00:00 2001 From: Alexander Dudinsky Date: Tue, 4 Aug 2020 12:53:40 +0300 Subject: [PATCH] Fix testData due to KT-40551. Starting from version 1.3.60, unnecessary dependencies with runtime scopes have been added for modules jvmTest and jsTest. After updating the plugin version in tests from 1.3.50 to 1.3.72 and master, tests began to fail because of this. In order not to stop other checks in tests, they were redone for the current behavior with unnecessary dependencies. After fixing bug KT-40551, the old behavior in tests will be returned. --- ...chicalMultiplatformProjectImportingTest.kt | 10 +++++++--- .../NewMultiplatformProjectImportingTest.kt | 19 +++++++++++++++++++ .../kotlin/gradle/projectStructureDSL.kt | 5 +++-- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/HierarchicalMultiplatformProjectImportingTest.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/HierarchicalMultiplatformProjectImportingTest.kt index cf47aaaadff..35f7d3f14fb 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/HierarchicalMultiplatformProjectImportingTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/HierarchicalMultiplatformProjectImportingTest.kt @@ -11,6 +11,7 @@ import org.jetbrains.jps.model.java.JavaSourceRootType import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.idea.codeInsight.gradle.MultiplePluginVersionGradleImportingTestCase import org.jetbrains.kotlin.idea.codeInsight.gradle.mppImportTestMinVersionForMaster +import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.platform.js.JsPlatforms import org.jetbrains.kotlin.platform.jvm.JvmPlatforms import org.jetbrains.kotlin.platform.konan.NativePlatforms @@ -101,6 +102,7 @@ class HierarchicalMultiplatformProjectImportingTest : MultiplePluginVersionGradl moduleDependency("my-app.commonMain", DependencyScope.TEST) moduleDependency("my-app.commonTest", DependencyScope.TEST) moduleDependency("my-app.jsMain", DependencyScope.TEST) + moduleDependency("my-app.jsMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved moduleDependency("my-app.jvmAndJsMain", DependencyScope.TEST) moduleDependency("my-app.jvmAndJsTest", DependencyScope.TEST) moduleDependency("my-app.linuxAndJsMain", DependencyScope.TEST) @@ -160,6 +162,7 @@ class HierarchicalMultiplatformProjectImportingTest : MultiplePluginVersionGradl moduleDependency("my-app.jvmAndJsMain", DependencyScope.TEST) moduleDependency("my-app.jvmAndJsTest", DependencyScope.TEST) moduleDependency("my-app.jvmMain", DependencyScope.TEST) + moduleDependency("my-app.jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved sourceFolder("src/jvmTest/kotlin", JavaSourceRootType.TEST_SOURCE) sourceFolder("src/jvmTest/resources", JavaResourceRootType.TEST_RESOURCE) } @@ -188,7 +191,7 @@ class HierarchicalMultiplatformProjectImportingTest : MultiplePluginVersionGradl module("my-app.linuxX64Main") { isHMPP(true) - targetPlatform(NativePlatforms.unspecifiedNativePlatform) + targetPlatform(NativePlatforms.nativePlatformBySingleTarget(KonanTarget.LINUX_X64)) libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${gradleKotlinPluginVersion}", DependencyScope.COMPILE) libraryDependency("Kotlin/Native ${gradleKotlinPluginVersion} - builtin [linux_x64]", DependencyScope.PROVIDED) libraryDependency("Kotlin/Native ${gradleKotlinPluginVersion} - iconv [linux_x64]", DependencyScope.PROVIDED) @@ -204,7 +207,7 @@ class HierarchicalMultiplatformProjectImportingTest : MultiplePluginVersionGradl module("my-app.linuxX64Test") { isHMPP(true) - targetPlatform(NativePlatforms.unspecifiedNativePlatform) + targetPlatform(NativePlatforms.nativePlatformBySingleTarget(KonanTarget.LINUX_X64)) libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${gradleKotlinPluginVersion}", DependencyScope.TEST) libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-test-annotations-common:${gradleKotlinPluginVersion}", DependencyScope.TEST) libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-test-common:${gradleKotlinPluginVersion}", DependencyScope.TEST) @@ -268,6 +271,7 @@ class HierarchicalMultiplatformProjectImportingTest : MultiplePluginVersionGradl moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.TEST) moduleDependency("jvm-on-mpp.hmpp-mod-a.commonTest", DependencyScope.TEST) moduleDependency("jvm-on-mpp.hmpp-mod-a.jsMain", DependencyScope.TEST) + moduleDependency("jvm-on-mpp.hmpp-mod-a.jsMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsMain", DependencyScope.TEST) moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsTest", DependencyScope.TEST) moduleDependency("jvm-on-mpp.hmpp-mod-a.linuxAndJsMain", DependencyScope.TEST) @@ -295,7 +299,7 @@ class HierarchicalMultiplatformProjectImportingTest : MultiplePluginVersionGradl moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsMain", DependencyScope.TEST) moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsTest", DependencyScope.TEST) moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmMain", DependencyScope.TEST) - + moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved } module("jvm-on-mpp.hmpp-mod-a.linuxAndJsMain") { moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.COMPILE) diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/NewMultiplatformProjectImportingTest.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/NewMultiplatformProjectImportingTest.kt index 5958c7f67ab..7347ebc7257 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/NewMultiplatformProjectImportingTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/NewMultiplatformProjectImportingTest.kt @@ -22,6 +22,7 @@ import org.junit.After import org.junit.Before import org.junit.Test +//ToDo: Need to remove RUNTIME dependencies when KT-40551 is resolved class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportingTestCase() { @Before @@ -101,6 +102,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("app_commonMain", DependencyScope.TEST) moduleDependency("app_commonTest", DependencyScope.TEST) moduleDependency("app_jsMain", DependencyScope.TEST) + moduleDependency("app_jsMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved sourceFolder("app/src/jsTest/kotlin", TestSourceKotlinRootType) sourceFolder("app/src/jsTest/resources", TestResourceKotlinRootType) outputPath("app/build/classes/kotlin/js/test", false) @@ -188,6 +190,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("lib_commonMain", DependencyScope.TEST) moduleDependency("lib_commonTest", DependencyScope.TEST) moduleDependency("lib_jsMain", DependencyScope.TEST) + moduleDependency("lib_jsMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved sourceFolder("lib/src/jsTest/kotlin", TestSourceKotlinRootType) sourceFolder("lib/src/jsTest/resources", TestResourceKotlinRootType) outputPath("lib/build/classes/kotlin/js/test", false) @@ -210,6 +213,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("lib_commonTest", DependencyScope.TEST) moduleDependency("lib_commonMain", DependencyScope.TEST) moduleDependency("lib_jvmMain", DependencyScope.TEST) + moduleDependency("lib_jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved sourceFolder("lib/src/jvmTest/kotlin", JavaSourceRootType.TEST_SOURCE) sourceFolder("lib/src/jvmTest/resources", JavaResourceRootType.TEST_RESOURCE) outputPath("lib/build/classes/kotlin/jvm/test", false) @@ -385,6 +389,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("project_commonMain", DependencyScope.TEST) moduleDependency("project_commonTest", DependencyScope.TEST) moduleDependency("project_jvmMain", DependencyScope.TEST) + moduleDependency("project_jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved } } @@ -505,6 +510,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("project_commonMain", DependencyScope.TEST) moduleDependency("project_commonTest", DependencyScope.TEST) moduleDependency("project_jvmMain", DependencyScope.TEST) + moduleDependency("project_jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved } module("subproject") @@ -522,10 +528,13 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } module("subproject_jvmTest") { moduleDependency("project_commonMain", DependencyScope.TEST) + moduleDependency("project_commonMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved moduleDependency("subproject_commonMain", DependencyScope.TEST) moduleDependency("subproject_commonTest", DependencyScope.TEST) moduleDependency("project_jvmMain", DependencyScope.TEST) + moduleDependency("project_jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved moduleDependency("subproject_jvmMain", DependencyScope.TEST) + moduleDependency("subproject_jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved } } @@ -715,8 +724,11 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("project.mpp.commonMain", DependencyScope.TEST) moduleDependency("project.mpp.commonTest", DependencyScope.TEST, true) moduleDependency("project.mpp-base.commonMain", DependencyScope.TEST) + moduleDependency("project.mpp-base.commonMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved moduleDependency("project.mpp-base.jvmMain", DependencyScope.TEST) + moduleDependency("project.mpp-base.jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved moduleDependency("project.mpp.jvmMain", DependencyScope.TEST) + moduleDependency("project.mpp.jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved } module("project.mpp-base") {} @@ -730,6 +742,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin module("project.mpp-base.jvmTest") { moduleDependency("project.mpp-base.commonMain", DependencyScope.TEST) moduleDependency("project.mpp-base.jvmMain", DependencyScope.TEST) + moduleDependency("project.mpp-base.jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved moduleDependency("project.mpp-base.commonTest", DependencyScope.TEST, true) } } @@ -776,6 +789,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("mpp-jardep.library1.commonMain", DependencyScope.TEST) moduleDependency("mpp-jardep.library1.commonTest", DependencyScope.TEST, true) moduleDependency("mpp-jardep.library1.jvmMain", DependencyScope.TEST) + moduleDependency("mpp-jardep.library1.jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved } module("mpp-jardep.library2") {} @@ -792,10 +806,13 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } module("mpp-jardep.library2.jvmTest") { moduleDependency("mpp-jardep.library1.commonMain", DependencyScope.TEST) + moduleDependency("mpp-jardep.library1.commonMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved moduleDependency("mpp-jardep.library1.jvmMain", DependencyScope.TEST) + moduleDependency("mpp-jardep.library1.jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved moduleDependency("mpp-jardep.library2.commonMain", DependencyScope.TEST) moduleDependency("mpp-jardep.library2.commonTest", DependencyScope.TEST, true) moduleDependency("mpp-jardep.library2.jvmMain", DependencyScope.TEST) + moduleDependency("mpp-jardep.library2.jvmMain", DependencyScope.RUNTIME) // Temporary dependency, need to remove after KT-40551 is solved } } } @@ -847,6 +864,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } module("jvm-on-mpp.mpp-mod-a.jsTest") { moduleDependency("jvm-on-mpp.mpp-mod-a.jsMain", DependencyScope.TEST, false) + moduleDependency("jvm-on-mpp.mpp-mod-a.jsMain", DependencyScope.RUNTIME, false) // Temporary dependency, need to remove after KT-40551 is solved moduleDependency("jvm-on-mpp.mpp-mod-a.commonMain", DependencyScope.TEST, false) moduleDependency("jvm-on-mpp.mpp-mod-a.commonTest", DependencyScope.TEST, true) } @@ -857,6 +875,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("jvm-on-mpp.mpp-mod-a.commonMain", DependencyScope.TEST, false) moduleDependency("jvm-on-mpp.mpp-mod-a.commonTest", DependencyScope.TEST, true) moduleDependency("jvm-on-mpp.mpp-mod-a.jvmMain", DependencyScope.TEST, false) + moduleDependency("jvm-on-mpp.mpp-mod-a.jvmMain", DependencyScope.RUNTIME, false) // Temporary dependency, need to remove after KT-40551 is solved } //At the moment this is 'fake' source roots and they have no explicit dependencies. diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/projectStructureDSL.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/projectStructureDSL.kt index 3f0965e0ad5..c813198d91e 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/projectStructureDSL.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/projectStructureDSL.kt @@ -87,7 +87,7 @@ class ModuleInfo( val projectInfo: ProjectInfo ) { private val rootModel = module.rootManager - private val expectedDependencyNames = HashSet() + private val expectedDependencyNames = ArrayList() private val expectedSourceRoots = HashSet() private val expectedExternalSystemTestTasks = ArrayList() @@ -200,7 +200,8 @@ class ModuleInfo( } fun moduleDependency(moduleName: String, scope: DependencyScope, productionOnTest: Boolean? = null) { - val moduleEntries = rootModel.orderEntries.filterIsInstance().filter { it.moduleName == moduleName } + val moduleEntries = + rootModel.orderEntries.filterIsInstance().filter { it.moduleName == moduleName && it.scope == scope} if (moduleEntries.size > 1) { projectInfo.messageCollector.report( "Found multiple order entries for module $moduleName: ${rootModel.orderEntries.filterIsInstance()}"