From 3d45bcf08da727c9a036f87ed3e771e4590afea3 Mon Sep 17 00:00:00 2001 From: Alexander Likhachev Date: Thu, 8 Sep 2022 06:48:53 +0200 Subject: [PATCH] [Gradle] Cover KT-50598 by tests --- .../kotlin/gradle/DifferentClassloadersIT.kt | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/DifferentClassloadersIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/DifferentClassloadersIT.kt index 9052056d2f6..2bf4cde05c3 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/DifferentClassloadersIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/DifferentClassloadersIT.kt @@ -38,24 +38,36 @@ class DifferentClassloadersIT : KGPBaseTest() { buildAndFail("publish", "-PmppProjectDependency=true") { assertOutputContains(MULTIPLE_KOTLIN_PLUGINS_LOADED_WARNING) } + + // check that the message is also printed on subsequent builds + buildAndFail("publish", "-PmppProjectDependency=true") { + assertOutputContains(MULTIPLE_KOTLIN_PLUGINS_LOADED_WARNING) + } } } - @DisplayName("KT-50598: Different classloaders message is only displayed on the first build") + @DisplayName("KT-50598: Different classloaders message can be disabled") @GradleTest - fun differentClassloadersOnlyFirstBuild(gradleVersion: GradleVersion) { + fun differentClassloadersWarningCanBeDisabled(gradleVersion: GradleVersion) { project("differentClassloaders", gradleVersion) { setupDifferentClassloadersProject() - build("-PmppProjectDependency=true") { - assertOutputContains(MULTIPLE_KOTLIN_PLUGINS_LOADED_WARNING) + fun checkThatWarningIsShown() { + build("-PmppProjectDependency=true") { + assertOutputContains(MULTIPLE_KOTLIN_PLUGINS_LOADED_WARNING) - val specificProjectsReported = Regex("$MULTIPLE_KOTLIN_PLUGINS_SPECIFIC_PROJECTS_WARNING((?:'.*'(?:, )?)+)") - .find(output)!!.groupValues[1].split(", ").map { it.removeSurrounding("'") }.toSet() + val specificProjectsReported = Regex("$MULTIPLE_KOTLIN_PLUGINS_SPECIFIC_PROJECTS_WARNING((?:'.*'(?:, )?)+)") + .find(output)!!.groupValues[1].split(", ").map { it.removeSurrounding("'") }.toSet() - assertEquals(setOf(":mpp-lib", ":jvm-app", ":js-app"), specificProjectsReported) + assertEquals(setOf(":mpp-lib", ":jvm-app", ":js-app"), specificProjectsReported) + } } + checkThatWarningIsShown() + + // check that the message is also printed on subsequent builds + checkThatWarningIsShown() + // Test the flag that turns off the warnings build("-PmppProjectDependency=true", "-Pkotlin.pluginLoadedInMultipleProjects.ignore=true") { assertOutputDoesNotContain(MULTIPLE_KOTLIN_PLUGINS_LOADED_WARNING)