From b87075c3449cdc74dc7ddfce25d3112e3f2b5081 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Fri, 11 Feb 2022 11:56:20 +0100 Subject: [PATCH] Add separate test project for warn on different classloaders test After this update to have different classpath hash in subprojects, they should have different sets of plugins applied. But KGP could be in all of them. ^KT-49227 In Progress --- .../kotlin/gradle/KotlinGradlePluginIT.kt | 2 +- .../differentClassloaders/build.gradle | 10 +++++ .../differentClassloaders/gradle.properties | 1 + .../differentClassloaders/js-app/build.gradle | 41 ++++++++++++++++++ .../js-app/src/main/kotlin/A.kt | 5 +++ .../jvm-app/build.gradle | 41 ++++++++++++++++++ .../jvm-app/src/main/kotlin/A.kt | 5 +++ .../mpp-lib/build.gradle | 42 +++++++++++++++++++ .../mpp-lib/src/commonMain/kotlin/Hello.kt | 3 ++ .../differentClassloaders/settings.gradle | 1 + 10 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/build.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/js-app/build.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/js-app/src/main/kotlin/A.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/jvm-app/build.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/jvm-app/src/main/kotlin/A.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/mpp-lib/build.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/mpp-lib/src/commonMain/kotlin/Hello.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/settings.gradle diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt index da989e65afa..101cb79b84b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt @@ -998,7 +998,7 @@ class KotlinGradleIT : BaseGradleIT() { } @Test - fun testDetectingDifferentClassLoaders() = with(Project("kt-27059-pom-rewriting", GradleVersionRequired.FOR_MPP_SUPPORT)) { + fun testDetectingDifferentClassLoaders() = with(Project("differentClassloaders", GradleVersionRequired.FOR_MPP_SUPPORT)) { setupWorkingDir() val originalRootBuildScript = gradleBuildScript().readText() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/build.gradle new file mode 100644 index 00000000000..d2b1003ab16 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/build.gradle @@ -0,0 +1,10 @@ +plugins { + id "org.jetbrains.kotlin.multiplatform" version "" apply false +} + +allprojects { + repositories { + mavenLocal() + mavenCentral() + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/gradle.properties new file mode 100644 index 00000000000..a0b65881e1b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/gradle.properties @@ -0,0 +1 @@ +kotlin.js.compiler=legacy \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/js-app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/js-app/build.gradle new file mode 100644 index 00000000000..668f0a8b88f --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/js-app/build.gradle @@ -0,0 +1,41 @@ +plugins { + id "kotlin2js" + id "maven-publish" + id "org.jetbrains.kotlin.plugin.serialization" +} + +group = "com.example" +version = "1.0" + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-js" +} + +if (project.findProperty("mppProjectDependency") == "true") { + + dependencies { + api project(":mpp-lib") + } + +} else { + + repositories { + maven { setUrl "${rootProject.buildDir}/repo" } + } + + dependencies { + api "com.example:mpp-lib:1.0" + } + +} + +publishing { + publications { + main(MavenPublication) { + from components.java + } + } + repositories { + maven { setUrl("${rootProject.buildDir}/repo") } + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/js-app/src/main/kotlin/A.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/js-app/src/main/kotlin/A.kt new file mode 100644 index 00000000000..13180bda65b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/js-app/src/main/kotlin/A.kt @@ -0,0 +1,5 @@ +import com.example.mpp.lib.* + +fun main() { + println(hello()) +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/jvm-app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/jvm-app/build.gradle new file mode 100644 index 00000000000..054b37e7d05 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/jvm-app/build.gradle @@ -0,0 +1,41 @@ +plugins { + id "org.jetbrains.kotlin.jvm" + id "maven-publish" + id "org.jetbrains.kotlin.plugin.allopen" +} + +group = "com.example" +version = "1.0" + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib" +} + +if (project.findProperty("mppProjectDependency") == "true") { + + dependencies { + api project(":mpp-lib") + } + +} else { + + repositories { + maven { setUrl "${rootProject.buildDir}/repo" } + } + + dependencies { + api "com.example:mpp-lib:1.0" + } + +} + +publishing { + publications { + main(MavenPublication) { + from components.java + } + } + repositories { + maven { setUrl("${rootProject.buildDir}/repo") } + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/jvm-app/src/main/kotlin/A.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/jvm-app/src/main/kotlin/A.kt new file mode 100644 index 00000000000..13180bda65b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/jvm-app/src/main/kotlin/A.kt @@ -0,0 +1,5 @@ +import com.example.mpp.lib.* + +fun main() { + println(hello()) +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/mpp-lib/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/mpp-lib/build.gradle new file mode 100644 index 00000000000..686876fbf8f --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/mpp-lib/build.gradle @@ -0,0 +1,42 @@ +plugins { + id "org.jetbrains.kotlin.multiplatform" + id "maven-publish" +} + +group = "com.example" +version = "1.0" + +kotlin { + jvm() + js() + + sourceSets { + commonMain { + dependencies { + implementation 'org.jetbrains.kotlin:kotlin-stdlib-common' + } + } + jvmMain { + dependencies { + implementation 'org.jetbrains.kotlin:kotlin-stdlib' + } + } + jsMain { + dependencies { + implementation 'org.jetbrains.kotlin:kotlin-stdlib-js' + } + } + } +} + +publishing { + publications { + jvm { + artifactId = "mpp-lib-myjvm" + } + } + + repositories { + maven { setUrl("${rootProject.buildDir}/repo") } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/mpp-lib/src/commonMain/kotlin/Hello.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/mpp-lib/src/commonMain/kotlin/Hello.kt new file mode 100644 index 00000000000..003c59d9d22 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/mpp-lib/src/commonMain/kotlin/Hello.kt @@ -0,0 +1,3 @@ +package com.example.mpp.lib + +fun hello(): String = "hello" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/settings.gradle new file mode 100644 index 00000000000..71d6bf80a4b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/differentClassloaders/settings.gradle @@ -0,0 +1 @@ +include(":mpp-lib", ":jvm-app", ":js-app")