From 005314ce064910062c83fa39f1d35915dfdf3707 Mon Sep 17 00:00:00 2001 From: Andrey Uskov Date: Fri, 3 Apr 2020 21:49:28 +0300 Subject: [PATCH] Support running import tests on bootstrap version of gradle plugin --- buildSrc/src/main/kotlin/tasks.kt | 38 +++++++++++++ idea/idea-gradle/build.gradle.kts | 1 + ...chicalMultiplatformProjectImportingTest.kt | 6 +-- .../gradle/ImportAndCheckHighlighting.kt | 4 +- .../kotlin/gradle/ImportAndCheckNavigation.kt | 2 +- .../NewMultiplatformProjectImportingTest.kt | 36 +++++++------ ...plePluginVersionGradleImportingTestCase.kt | 54 +++---------------- .../gradle/PluginTargetVersionsRule.java | 10 +++- .../annotation/PluginTargetVersions.java | 6 ++- .../importHMPPFlag/build.gradle.kts | 3 -- .../importHMPPFlag/settings.gradle.kts | 1 - .../build.gradle.kts | 3 -- .../settings.gradle.kts | 1 - .../jvmWithJavaOnHMPP/build.gradle | 1 - .../jvmWithJavaOnHMPP/hmpp-mod-a/build.gradle | 3 -- .../androidDependencyOnMPP/build.gradle | 1 - .../commonTestTargetPlatform/build.gradle | 1 - .../dependencyOnRoot/build.gradle | 1 - .../detectAndroidSources/build.gradle | 1 - .../fileCollectionDependency/build.gradle | 1 - .../build.gradle | 1 - .../importBeforeBuild/build.gradle | 1 - .../importTestsAndTargets/build.gradle | 1 - .../javaTransitiveOnMPP/build.gradle | 1 - .../jvmWithJava/build.gradle | 1 - .../mutableArtifactLists/build.gradle | 1 - .../nestedDependencies/build.gradle | 1 - .../build.gradle | 1 - .../toInclude/build.gradle | 1 - .../productionOnTestFlag/build.gradle | 1 - .../projectDependency/build.gradle | 1 - .../runtimeClasspath/build.gradle | 1 - .../singleAndroidTarget/app/build.gradle | 1 - .../testTasks/build.gradle | 1 - .../unresolvedDependency/build.gradle | 1 - .../build.gradle.kts | 36 +------------ 36 files changed, 85 insertions(+), 140 deletions(-) diff --git a/buildSrc/src/main/kotlin/tasks.kt b/buildSrc/src/main/kotlin/tasks.kt index 8fc64df6c8a..a4a016ab4a2 100644 --- a/buildSrc/src/main/kotlin/tasks.kt +++ b/buildSrc/src/main/kotlin/tasks.kt @@ -31,6 +31,44 @@ import java.lang.Character.isUpperCase import java.nio.file.Files import java.nio.file.Path +fun Task.dependsOnKotlinPluginInstall() { + dependsOn( + ":kotlin-allopen:install", + ":kotlin-noarg:install", + ":kotlin-sam-with-receiver:install", + ":kotlin-android-extensions:install", + ":kotlin-build-common:install", + ":kotlin-compiler-embeddable:install", + ":native:kotlin-native-utils:install", + ":kotlin-util-klib:install", + ":kotlin-util-io:install", + ":kotlin-compiler-runner:install", + ":kotlin-daemon-embeddable:install", + ":kotlin-daemon-client:install", + ":kotlin-gradle-plugin-api:install", + ":kotlin-gradle-plugin:install", + ":kotlin-gradle-plugin-model:install", + ":kotlin-reflect:install", + ":kotlin-annotation-processing-gradle:install", + ":kotlin-test:kotlin-test-common:install", + ":kotlin-test:kotlin-test-annotations-common:install", + ":kotlin-test:kotlin-test-jvm:install", + ":kotlin-test:kotlin-test-js:install", + ":kotlin-gradle-subplugin-example:install", + ":kotlin-stdlib-common:install", + ":kotlin-stdlib:install", + ":kotlin-stdlib-jdk8:install", + ":kotlin-stdlib-js:install", + ":examples:annotation-processor-example:install", + ":kotlin-script-runtime:install", + ":kotlin-scripting-common:install", + ":kotlin-scripting-jvm:install", + ":kotlin-scripting-compiler-embeddable:install", + ":kotlin-scripting-compiler-impl-embeddable:install", + ":kotlin-test-js-runner:install" + ) +} + fun Project.projectTest( taskName: String = "test", parallel: Boolean = false, diff --git a/idea/idea-gradle/build.gradle.kts b/idea/idea-gradle/build.gradle.kts index c77ba4034a0..fe4778783d1 100644 --- a/idea/idea-gradle/build.gradle.kts +++ b/idea/idea-gradle/build.gradle.kts @@ -105,6 +105,7 @@ sourceSets { testsJar() projectTest(parallel = false) { + dependsOnKotlinPluginInstall() workingDir = rootDir useAndroidSdk() 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 25cf1d602e4..6614e96e320 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/HierarchicalMultiplatformProjectImportingTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/HierarchicalMultiplatformProjectImportingTest.kt @@ -36,7 +36,7 @@ class HierarchicalMultiplatformProjectImportingTest : MultiplePluginVersionGradl } @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.50+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.50+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testImportHMPPFlag() { configureByFiles() importProject() @@ -51,7 +51,7 @@ class HierarchicalMultiplatformProjectImportingTest : MultiplePluginVersionGradl } @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.50+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.50+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testImportIntermediateModules() { configureByFiles() importProject() @@ -225,7 +225,7 @@ class HierarchicalMultiplatformProjectImportingTest : MultiplePluginVersionGradl } @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.50+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.50+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testJvmWithJavaOnHMPP() { configureByFiles() importProject() diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/ImportAndCheckHighlighting.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/ImportAndCheckHighlighting.kt index 770599fdcf6..3ae4f46a7dc 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/ImportAndCheckHighlighting.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/ImportAndCheckHighlighting.kt @@ -13,13 +13,13 @@ import org.junit.Test class ImportAndCheckHighlighting : MultiplePluginVersionGradleImportingTestCase() { @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.40+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.40+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testMultiplatformLibrary() { importAndCheckHighlighting() } @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.40+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.40+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testUnresolvedInMultiplatformLibrary() { importAndCheckHighlighting(false, false) } diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/ImportAndCheckNavigation.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/ImportAndCheckNavigation.kt index c9a0a15cf6f..68a8de3277c 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/ImportAndCheckNavigation.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/ImportAndCheckNavigation.kt @@ -23,7 +23,7 @@ import org.junit.Test class ImportAndCheckNavigation : MultiplePluginVersionGradleImportingTestCase() { @Test - @PluginTargetVersions(gradleVersion = "5.0+", pluginVersion = "1.3.50+") + @PluginTargetVersions(gradleVersion = "5.0+", pluginVersion = "1.3.50+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testNavigationToCommonizedLibrary() { val files = configureAndImportProject() 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 36b30e987a1..8e0fffa3fc6 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/NewMultiplatformProjectImportingTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/NewMultiplatformProjectImportingTest.kt @@ -21,6 +21,8 @@ import org.junit.After import org.junit.Before import org.junit.Test +const val mppImportTestMinVersionForMaster = "6.0+" + class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportingTestCase() { @Before @@ -39,7 +41,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.10+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.10+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testProjectDependency() { configureByFiles() importProject() @@ -217,6 +219,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } @Test + @PluginTargetVersions(gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testFileCollectionDependency() { configureByFiles() importProject() @@ -235,7 +238,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.30+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.30+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testUnresolvedDependency() { configureByFiles() importProject() @@ -255,7 +258,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } @Test - @PluginTargetVersions(gradleVersion = "5.0+", pluginVersion = "1.3.30+") + @PluginTargetVersions(gradleVersion = "5.0+", pluginVersion = "1.3.30+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testAndroidDependencyOnMPP() { configureByFiles() createProjectSubFile( @@ -359,6 +362,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } @Test + @PluginTargetVersions(gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testTestTasks() { val files = configureByFiles() importProject() @@ -400,7 +404,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.50+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.50+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testImportTestsAndTargets() { configureByFiles() importProject() @@ -427,7 +431,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin @Test - @PluginTargetVersions(gradleVersion = "5.0+", pluginVersion = "1.3.50+") + @PluginTargetVersions(gradleVersion = "5.0+", pluginVersion = "1.3.50+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testSingleAndroidTarget() { configureByFiles() importProject() @@ -484,7 +488,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.10+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.10+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testDependencyOnRoot() { configureByFiles() importProject() @@ -529,7 +533,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.10+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.10+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testNestedDependencies() { configureByFiles() importProject() @@ -612,7 +616,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } @Test - @PluginTargetVersions(gradleVersion = "5.0+", pluginVersion = "1.3.20+") + @PluginTargetVersions(gradleVersion = "5.0+", pluginVersion = "1.3.20+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testDetectAndroidSources() { configureByFiles() createProjectSubFile( @@ -634,7 +638,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin * dependencies in multiplatform project included in composite build */ @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.20+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.20+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testPlatformToCommonExpByInComposite() { configureByFiles() importProject(true) @@ -674,7 +678,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin * Test case for issue https://youtrack.jetbrains.com/issue/KT-29757 */ @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.40+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.40+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testJavaTransitiveOnMPP() { configureByFiles() importProject(true) @@ -736,7 +740,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin * Test case for issue https://youtrack.jetbrains.com/issue/KT-28822 */ @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.41+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.41+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testImportBeforeBuild() { configureByFiles() importProject(true) @@ -799,7 +803,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.20+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.20+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testProductionOnTestFlag() { configureByFiles() importProject(true) @@ -812,7 +816,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.30+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.30+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testJvmWithJava() { configureByFiles() importProject(true) @@ -865,7 +869,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.30+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.30+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testCommonTestTargetPlatform() { configureByFiles() importProject(true) @@ -887,7 +891,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin } @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.60+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.60+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testIgnoreIncompatibleNativeTestTasks() { configureByFiles() importProject() @@ -942,7 +946,7 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin @Test - @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.30+") + @PluginTargetVersions(gradleVersion = "4.0+", pluginVersion = "1.3.30+", gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) fun testMutableArtifactLists() { configureByFiles() importProject(true) diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt index 9022aabd747..ae0910c5cc3 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt @@ -45,7 +45,7 @@ abstract class MultiplePluginVersionGradleImportingTestCase : GradleImportingTes const val LATEST_SUPPORTED_VERSION = "master"// gradle plugin from current build //should be extended with LATEST_SUPPORTED_VERSION - private val KOTLIN_GRADLE_PLUGIN_VERSIONS = listOf(MINIMAL_SUPPORTED_VERSION, LATEST_STABLE_VERSUON) + private val KOTLIN_GRADLE_PLUGIN_VERSIONS = listOf(MINIMAL_SUPPORTED_VERSION, LATEST_STABLE_VERSUON, LATEST_SUPPORTED_VERSION) private val KOTLIN_GRADLE_PLUGIN_VERSION_DESCRIPTION_TO_VERSION = mapOf( MINIMAL_SUPPORTED_VERSION to MINIMAL_SUPPORTED_GRADLE_PLUGIN_VERSION, LATEST_STABLE_VERSUON to LATEST_STABLE_GRADLE_PLUGIN_VERSION, @@ -61,7 +61,8 @@ abstract class MultiplePluginVersionGradleImportingTestCase : GradleImportingTes @JvmStatic @Parameterized.Parameters(name = "{index}: Gradle-{0}, KotlinGradlePlugin-{1}") fun data(): Collection> { - return AbstractModelBuilderTest.SUPPORTED_GRADLE_VERSIONS.flatMap { gradleVersion -> + //TODO(auskov): remove extending list of gradle versions when tested version are advanced + return (AbstractModelBuilderTest.SUPPORTED_GRADLE_VERSIONS + arrayOf("6.5")).flatMap { gradleVersion -> KOTLIN_GRADLE_PLUGIN_VERSIONS.map { kotlinVersion -> arrayOf( gradleVersion[0], @@ -72,33 +73,14 @@ abstract class MultiplePluginVersionGradleImportingTestCase : GradleImportingTes } } - fun repositories(useKts: Boolean, useMaster: Boolean): String { - val flatDirs = arrayOf( - "libraries/tools/kotlin-gradle-plugin/build/libs", - "prepare/compiler-client-embeddable/build/libs", - "prepare/compiler-embeddable/build/libs", - "libraries/tools/kotlin-gradle-plugin-api/build/libs", - "compiler/compiler-runner/build/libs", - "libraries/tools/kotlin-gradle-plugin-model/build/libs", - "plugins/scripting/scripting-compiler-embeddable/build/libs" - ) + fun repositories(useKts: Boolean): String { val customRepositories = arrayOf("https://dl.bintray.com/kotlin/kotlin-dev", "http://dl.bintray.com/kotlin/kotlin-eap") val customMavenRepositories = customRepositories.map { if (useKts) "maven(\"$it\")" else "maven { url '$it' } " }.joinToString("\n") - val baseFolder = File(".").absolutePath.replace("\\", "/") - val quote = if (useKts) '"' else '\'' - val flatDirRepositories = if (useMaster) - flatDirs.map { "$quote$baseFolder/$it$quote" }.joinToString( - ",\n", - if (useKts) "flatDir { dirs(" else "flatDir { dirs ", - if (useKts) ")}" else "}" - ) - else - "" return """ + mavenLocal() google() jcenter() $customMavenRepositories - $flatDirRepositories """.trimIndent() } @@ -106,30 +88,8 @@ abstract class MultiplePluginVersionGradleImportingTestCase : GradleImportingTes val unitedProperties = HashMap(properties ?: emptyMap()) unitedProperties["kotlin_plugin_version"] = gradleKotlinPluginVersion - unitedProperties["kotlin_plugin_repositories"] = repositories(false, gradleKotlinPluginVersionType == LATEST_SUPPORTED_VERSION) - unitedProperties["kts_kotlin_plugin_repositories"] = repositories(true, gradleKotlinPluginVersionType == LATEST_SUPPORTED_VERSION) - - unitedProperties["extraPluginDependencies"] = if (gradleKotlinPluginVersionType == LATEST_SUPPORTED_VERSION) - """ - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$gradleKotlinPluginVersion") - classpath("org.jetbrains.kotlin:kotlin-compiler-embeddable:$gradleKotlinPluginVersion") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin-api:$gradleKotlinPluginVersion") - classpath("org.jetbrains.kotlin:kotlin-compiler-runner:$gradleKotlinPluginVersion") - classpath("org.jetbrains.kotlin:kotlin-compiler-client-embeddable:$gradleKotlinPluginVersion") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin-model:$gradleKotlinPluginVersion") - """.trimIndent() - else - "" - - unitedProperties["kts_resolution_strategy"] = if (gradleKotlinPluginVersionType == LATEST_SUPPORTED_VERSION) - """resolutionStrategy { - eachPlugin { - if(requested.id.id == "org.jetbrains.kotlin.multiplatform") { - useModule("org.jetbrains.kotlin:kotlin-gradle-plugin:$gradleKotlinPluginVersion") - } - } - }""".trimIndent() - else "" + unitedProperties["kotlin_plugin_repositories"] = repositories(false) + unitedProperties["kts_kotlin_plugin_repositories"] = repositories(true) return super.configureByFiles(unitedProperties) } } diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/PluginTargetVersionsRule.java b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/PluginTargetVersionsRule.java index aab70e9e64b..7fcf0dd53a6 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/PluginTargetVersionsRule.java +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/PluginTargetVersionsRule.java @@ -48,11 +48,16 @@ public class PluginTargetVersionsRule extends TestWatcher { @Nullable private CustomMatcher pluginVersionMatcher; + @Nullable + private CustomMatcher gradleVersionMatcherForLatestPlugin; @NotNull public boolean matches(String gradleVersion, String pluginVersion, boolean isLatestPluginVersion) { boolean matchGradleVersion = gradleVersionMatcher == null || gradleVersionMatcher.matches(gradleVersion); if (isLatestPluginVersion) { + if (gradleVersionMatcherForLatestPlugin != null) { + return gradleVersionMatcherForLatestPlugin.matches(gradleVersion); + } return matchGradleVersion; } boolean pluginVersionMatches = pluginVersionMatcher == null || pluginVersionMatcher.matches(pluginVersion); @@ -68,7 +73,8 @@ public class PluginTargetVersionsRule extends TestWatcher { } if (pluginTargetVersions == null) return; - gradleVersionMatcher = VersionMatcherRule.produceMatcher("Gradle", new TargetVersionsImpl(pluginTargetVersions.gradleVersion())); - pluginVersionMatcher = VersionMatcherRule.produceMatcher("Plugin", new TargetVersionsImpl(pluginTargetVersions.pluginVersion())); + gradleVersionMatcher = pluginTargetVersions.gradleVersion().isEmpty() ? null : VersionMatcherRule.produceMatcher("Gradle", new TargetVersionsImpl(pluginTargetVersions.gradleVersion())); + pluginVersionMatcher = pluginTargetVersions.pluginVersion().isEmpty() ? null : VersionMatcherRule.produceMatcher("Plugin", new TargetVersionsImpl(pluginTargetVersions.pluginVersion())); + gradleVersionMatcherForLatestPlugin = pluginTargetVersions.gradleVersionForLatestPlugin().isEmpty() ? null : VersionMatcherRule.produceMatcher("Gradle for latest plugin", new TargetVersionsImpl(pluginTargetVersions.gradleVersionForLatestPlugin())); } } diff --git a/idea/idea-gradle/tests/org/jetbrains/plugins/gradle/tooling/annotation/PluginTargetVersions.java b/idea/idea-gradle/tests/org/jetbrains/plugins/gradle/tooling/annotation/PluginTargetVersions.java index 940b883d355..1411b8c6c7d 100644 --- a/idea/idea-gradle/tests/org/jetbrains/plugins/gradle/tooling/annotation/PluginTargetVersions.java +++ b/idea/idea-gradle/tests/org/jetbrains/plugins/gradle/tooling/annotation/PluginTargetVersions.java @@ -12,7 +12,9 @@ import java.lang.annotation.*; @Target({ElementType.TYPE, ElementType.METHOD}) public @interface PluginTargetVersions { - String gradleVersion(); + String gradleVersion() default ""; - String pluginVersion(); + String pluginVersion() default ""; + + String gradleVersionForLatestPlugin() default ""; } \ No newline at end of file diff --git a/idea/testData/gradle/hierarchicalMultiplatformImport/importHMPPFlag/build.gradle.kts b/idea/testData/gradle/hierarchicalMultiplatformImport/importHMPPFlag/build.gradle.kts index 8e934d54e47..1b18c1cc4f4 100644 --- a/idea/testData/gradle/hierarchicalMultiplatformImport/importHMPPFlag/build.gradle.kts +++ b/idea/testData/gradle/hierarchicalMultiplatformImport/importHMPPFlag/build.gradle.kts @@ -2,9 +2,6 @@ buildscript { repositories { {{kts_kotlin_plugin_repositories}} } - dependencies { - {{extraPluginDependencies}} - } } repositories { diff --git a/idea/testData/gradle/hierarchicalMultiplatformImport/importHMPPFlag/settings.gradle.kts b/idea/testData/gradle/hierarchicalMultiplatformImport/importHMPPFlag/settings.gradle.kts index f0c8d39c470..176c45caae2 100644 --- a/idea/testData/gradle/hierarchicalMultiplatformImport/importHMPPFlag/settings.gradle.kts +++ b/idea/testData/gradle/hierarchicalMultiplatformImport/importHMPPFlag/settings.gradle.kts @@ -2,7 +2,6 @@ pluginManagement { repositories { {{kts_kotlin_plugin_repositories}} } - {{kts_resolution_strategy}} } rootProject.name = "my-app" diff --git a/idea/testData/gradle/hierarchicalMultiplatformImport/importIntermediateModules/build.gradle.kts b/idea/testData/gradle/hierarchicalMultiplatformImport/importIntermediateModules/build.gradle.kts index e6f59f11f67..67da7a8704c 100644 --- a/idea/testData/gradle/hierarchicalMultiplatformImport/importIntermediateModules/build.gradle.kts +++ b/idea/testData/gradle/hierarchicalMultiplatformImport/importIntermediateModules/build.gradle.kts @@ -2,9 +2,6 @@ buildscript { repositories { {{kts_kotlin_plugin_repositories}} } - dependencies { - {{extraPluginDependencies}} - } } repositories { diff --git a/idea/testData/gradle/hierarchicalMultiplatformImport/importIntermediateModules/settings.gradle.kts b/idea/testData/gradle/hierarchicalMultiplatformImport/importIntermediateModules/settings.gradle.kts index f0c8d39c470..176c45caae2 100644 --- a/idea/testData/gradle/hierarchicalMultiplatformImport/importIntermediateModules/settings.gradle.kts +++ b/idea/testData/gradle/hierarchicalMultiplatformImport/importIntermediateModules/settings.gradle.kts @@ -2,7 +2,6 @@ pluginManagement { repositories { {{kts_kotlin_plugin_repositories}} } - {{kts_resolution_strategy}} } rootProject.name = "my-app" diff --git a/idea/testData/gradle/hierarchicalMultiplatformImport/jvmWithJavaOnHMPP/build.gradle b/idea/testData/gradle/hierarchicalMultiplatformImport/jvmWithJavaOnHMPP/build.gradle index 99cc87b3563..49a70d3f9af 100644 --- a/idea/testData/gradle/hierarchicalMultiplatformImport/jvmWithJavaOnHMPP/build.gradle +++ b/idea/testData/gradle/hierarchicalMultiplatformImport/jvmWithJavaOnHMPP/build.gradle @@ -5,7 +5,6 @@ buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}" - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/hierarchicalMultiplatformImport/jvmWithJavaOnHMPP/hmpp-mod-a/build.gradle b/idea/testData/gradle/hierarchicalMultiplatformImport/jvmWithJavaOnHMPP/hmpp-mod-a/build.gradle index 3c0a984181c..fb8cc3ac768 100644 --- a/idea/testData/gradle/hierarchicalMultiplatformImport/jvmWithJavaOnHMPP/hmpp-mod-a/build.gradle +++ b/idea/testData/gradle/hierarchicalMultiplatformImport/jvmWithJavaOnHMPP/hmpp-mod-a/build.gradle @@ -3,9 +3,6 @@ version '1.0.0' apply plugin: 'kotlin-multiplatform' buildscript { - dependencies { - {{extraPluginDependencies}} - } repositories { {{kotlin_plugin_repositories}} } diff --git a/idea/testData/gradle/newMultiplatformImport/androidDependencyOnMPP/build.gradle b/idea/testData/gradle/newMultiplatformImport/androidDependencyOnMPP/build.gradle index 5eb542b03fa..f83e61f6b90 100644 --- a/idea/testData/gradle/newMultiplatformImport/androidDependencyOnMPP/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/androidDependencyOnMPP/build.gradle @@ -6,7 +6,6 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.5.2' classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/commonTestTargetPlatform/build.gradle b/idea/testData/gradle/newMultiplatformImport/commonTestTargetPlatform/build.gradle index 2700fceff20..1d93a1c6fb2 100644 --- a/idea/testData/gradle/newMultiplatformImport/commonTestTargetPlatform/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/commonTestTargetPlatform/build.gradle @@ -4,7 +4,6 @@ buildscript { } dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } apply plugin: 'kotlin-multiplatform' diff --git a/idea/testData/gradle/newMultiplatformImport/dependencyOnRoot/build.gradle b/idea/testData/gradle/newMultiplatformImport/dependencyOnRoot/build.gradle index 154da39037f..d4255e10a4a 100644 --- a/idea/testData/gradle/newMultiplatformImport/dependencyOnRoot/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/dependencyOnRoot/build.gradle @@ -4,7 +4,6 @@ buildscript { } dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/detectAndroidSources/build.gradle b/idea/testData/gradle/newMultiplatformImport/detectAndroidSources/build.gradle index 91174ade8da..dd881917214 100644 --- a/idea/testData/gradle/newMultiplatformImport/detectAndroidSources/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/detectAndroidSources/build.gradle @@ -10,7 +10,6 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.5.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/fileCollectionDependency/build.gradle b/idea/testData/gradle/newMultiplatformImport/fileCollectionDependency/build.gradle index 00a358bbdb5..67e50c2fa89 100644 --- a/idea/testData/gradle/newMultiplatformImport/fileCollectionDependency/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/fileCollectionDependency/build.gradle @@ -4,7 +4,6 @@ buildscript { } dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/ignoreIncompatibleNativeTestTasks/build.gradle b/idea/testData/gradle/newMultiplatformImport/ignoreIncompatibleNativeTestTasks/build.gradle index 309ec60a745..80ee6c43ce3 100644 --- a/idea/testData/gradle/newMultiplatformImport/ignoreIncompatibleNativeTestTasks/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/ignoreIncompatibleNativeTestTasks/build.gradle @@ -4,7 +4,6 @@ buildscript { } dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/importBeforeBuild/build.gradle b/idea/testData/gradle/newMultiplatformImport/importBeforeBuild/build.gradle index e6f5dda0d23..287799e0ad3 100644 --- a/idea/testData/gradle/newMultiplatformImport/importBeforeBuild/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/importBeforeBuild/build.gradle @@ -4,7 +4,6 @@ buildscript { } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}" - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/importTestsAndTargets/build.gradle b/idea/testData/gradle/newMultiplatformImport/importTestsAndTargets/build.gradle index 43efa813c07..49d336690e5 100644 --- a/idea/testData/gradle/newMultiplatformImport/importTestsAndTargets/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/importTestsAndTargets/build.gradle @@ -4,7 +4,6 @@ buildscript { } dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/javaTransitiveOnMPP/build.gradle b/idea/testData/gradle/newMultiplatformImport/javaTransitiveOnMPP/build.gradle index 7220206f8f1..85ba1508557 100644 --- a/idea/testData/gradle/newMultiplatformImport/javaTransitiveOnMPP/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/javaTransitiveOnMPP/build.gradle @@ -6,7 +6,6 @@ buildscript { } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/jvmWithJava/build.gradle b/idea/testData/gradle/newMultiplatformImport/jvmWithJava/build.gradle index 941563ba494..489557d20eb 100644 --- a/idea/testData/gradle/newMultiplatformImport/jvmWithJava/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/jvmWithJava/build.gradle @@ -5,7 +5,6 @@ buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/mutableArtifactLists/build.gradle b/idea/testData/gradle/newMultiplatformImport/mutableArtifactLists/build.gradle index b9f8c153262..067d2248a90 100644 --- a/idea/testData/gradle/newMultiplatformImport/mutableArtifactLists/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/mutableArtifactLists/build.gradle @@ -5,7 +5,6 @@ buildscript { dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/nestedDependencies/build.gradle b/idea/testData/gradle/newMultiplatformImport/nestedDependencies/build.gradle index dbf66e47c80..c6f48f69871 100644 --- a/idea/testData/gradle/newMultiplatformImport/nestedDependencies/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/nestedDependencies/build.gradle @@ -4,7 +4,6 @@ buildscript { } dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/platformToCommonExpByInComposite/build.gradle b/idea/testData/gradle/newMultiplatformImport/platformToCommonExpByInComposite/build.gradle index 76108bf77c0..ec5c0bc38aa 100644 --- a/idea/testData/gradle/newMultiplatformImport/platformToCommonExpByInComposite/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/platformToCommonExpByInComposite/build.gradle @@ -5,7 +5,6 @@ buildscript { dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/platformToCommonExpByInComposite/toInclude/build.gradle b/idea/testData/gradle/newMultiplatformImport/platformToCommonExpByInComposite/toInclude/build.gradle index 92511bc0145..e900314898d 100644 --- a/idea/testData/gradle/newMultiplatformImport/platformToCommonExpByInComposite/toInclude/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/platformToCommonExpByInComposite/toInclude/build.gradle @@ -5,7 +5,6 @@ buildscript { dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/productionOnTestFlag/build.gradle b/idea/testData/gradle/newMultiplatformImport/productionOnTestFlag/build.gradle index fb6a49d5299..da98dbcff35 100644 --- a/idea/testData/gradle/newMultiplatformImport/productionOnTestFlag/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/productionOnTestFlag/build.gradle @@ -5,7 +5,6 @@ subprojects { } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}" - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/projectDependency/build.gradle b/idea/testData/gradle/newMultiplatformImport/projectDependency/build.gradle index 3c7aff5d68c..2c434e2b04a 100644 --- a/idea/testData/gradle/newMultiplatformImport/projectDependency/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/projectDependency/build.gradle @@ -4,7 +4,6 @@ buildscript { } dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/runtimeClasspath/build.gradle b/idea/testData/gradle/newMultiplatformImport/runtimeClasspath/build.gradle index 62ab30883a0..85dcf0f43ac 100644 --- a/idea/testData/gradle/newMultiplatformImport/runtimeClasspath/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/runtimeClasspath/build.gradle @@ -5,7 +5,6 @@ buildscript { dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/singleAndroidTarget/app/build.gradle b/idea/testData/gradle/newMultiplatformImport/singleAndroidTarget/app/build.gradle index 5ec8f280332..16298776ec4 100644 --- a/idea/testData/gradle/newMultiplatformImport/singleAndroidTarget/app/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/singleAndroidTarget/app/build.gradle @@ -5,7 +5,6 @@ buildscript { dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/testTasks/build.gradle b/idea/testData/gradle/newMultiplatformImport/testTasks/build.gradle index b00ddb2bc98..14338a8ce8e 100644 --- a/idea/testData/gradle/newMultiplatformImport/testTasks/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/testTasks/build.gradle @@ -5,7 +5,6 @@ buildscript { dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/idea/testData/gradle/newMultiplatformImport/unresolvedDependency/build.gradle b/idea/testData/gradle/newMultiplatformImport/unresolvedDependency/build.gradle index 833d23c96e1..7898c64066d 100644 --- a/idea/testData/gradle/newMultiplatformImport/unresolvedDependency/build.gradle +++ b/idea/testData/gradle/newMultiplatformImport/unresolvedDependency/build.gradle @@ -4,7 +4,6 @@ buildscript { } dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:{{kotlin_plugin_version}}") - {{extraPluginDependencies}} } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts index 4b1cc730a4b..6ef3c2e2a09 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts @@ -92,41 +92,7 @@ tasks.withType { onlyIf { !project.hasProperty("noTest") } dependsOn(":kotlin-gradle-plugin:validateTaskProperties") - dependsOn( - ":kotlin-allopen:install", - ":kotlin-noarg:install", - ":kotlin-sam-with-receiver:install", - ":kotlin-android-extensions:install", - ":kotlin-build-common:install", - ":kotlin-compiler-embeddable:install", - ":native:kotlin-native-utils:install", - ":kotlin-util-klib:install", - ":kotlin-util-io:install", - ":kotlin-compiler-runner:install", - ":kotlin-daemon-embeddable:install", - ":kotlin-daemon-client:install", - ":kotlin-gradle-plugin-api:install", - ":kotlin-gradle-plugin:install", - ":kotlin-gradle-plugin-model:install", - ":kotlin-reflect:install", - ":kotlin-annotation-processing-gradle:install", - ":kotlin-test:kotlin-test-common:install", - ":kotlin-test:kotlin-test-annotations-common:install", - ":kotlin-test:kotlin-test-jvm:install", - ":kotlin-test:kotlin-test-js:install", - ":kotlin-gradle-subplugin-example:install", - ":kotlin-stdlib-common:install", - ":kotlin-stdlib:install", - ":kotlin-stdlib-jdk8:install", - ":kotlin-stdlib-js:install", - ":examples:annotation-processor-example:install", - ":kotlin-script-runtime:install", - ":kotlin-scripting-common:install", - ":kotlin-scripting-jvm:install", - ":kotlin-scripting-compiler-embeddable:install", - ":kotlin-scripting-compiler-impl-embeddable:install", - ":kotlin-test-js-runner:install" - ) + dependsOnKotlinPluginInstall() executable = "${rootProject.extra["JDK_18"]!!}/bin/java"