From 7aa882b921eeddcc9144f2c6de46fa2e91cdb4d3 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Wed, 16 Jun 2021 10:50:26 +0200 Subject: [PATCH] Add test for multiplatform plugin. ^KT-43095 In Progress --- .../kotlin/gradle/KotlinJavaToolchainTest.kt | 25 +++++++++++++------ .../mppJvmWithJava/build.gradle | 14 +++++++++++ .../mppJvmWithJava/settings.gradle | 10 ++++++++ .../jvmWithJavaData/SomeJVMWithJavaClass.kt | 4 +++ 4 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/build.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/settings.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/src/jvmWithJavaMain/kotlin/jvmWithJavaData/SomeJVMWithJavaClass.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt index 8e7f6f864fd..ce7008e700e 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt @@ -12,7 +12,6 @@ import org.gradle.testkit.runner.BuildResult import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.testbase.* import org.junit.jupiter.api.DisplayName -import org.junit.jupiter.api.Test import java.io.File @SimpleGradlePluginTests @@ -118,7 +117,6 @@ class KotlinJavaToolchainTest : KGPBaseTest() { projectName = "simple".fullProjectName, gradleVersion = gradleVersion, projectPathAdditionalSuffix = "1/cache-test", - forceOutput = true, buildOptions = defaultBuildOptions.copy(buildCacheEnabled = true) ) { enableLocalBuildCache(buildCache) @@ -135,7 +133,6 @@ class KotlinJavaToolchainTest : KGPBaseTest() { projectName = "simple".fullProjectName, gradleVersion = gradleVersion, projectPathAdditionalSuffix = "2/cache-test", - forceOutput = true, buildOptions = defaultBuildOptions.copy(buildCacheEnabled = true) ) { enableLocalBuildCache(buildCache) @@ -303,8 +300,7 @@ class KotlinJavaToolchainTest : KGPBaseTest() { internal fun setJdkUsingJavaToolchain(gradleVersion: GradleVersion) { project( projectName = "simple".fullProjectName, - gradleVersion = gradleVersion, - forceOutput = true + gradleVersion = gradleVersion ) { useToolchainToCompile(11) build("assemble") { @@ -319,8 +315,7 @@ class KotlinJavaToolchainTest : KGPBaseTest() { internal fun setJdkUsingJavaToolchainViaExtension(gradleVersion: GradleVersion) { project( projectName = "simple".fullProjectName, - gradleVersion = gradleVersion, - forceOutput = true + gradleVersion = gradleVersion ) { useToolchainExtension(11) build("assemble") { @@ -329,6 +324,22 @@ class KotlinJavaToolchainTest : KGPBaseTest() { } } + @DisplayName("Toolchain should be correctly supported in multiplatform plugin jvm targets") + @GradleTestVersions(minVersion = "6.7.1") + @GradleTest + internal fun toolchainCorrectlySupportedInMPPlugin(gradleVersion: GradleVersion) { + project( + projectName = "mppJvmWithJava".fullProjectName, + gradleVersion = gradleVersion + ) { + useToolchainToCompile(11) + + build("assemble") { + assertJdkHomeIsUsingJdk(getToolchainExecPathFromLogs()) + } + } + } + private fun BuildResult.assertJdkHomeIsUsingJdk( javaexecPath: String ) = assertOutputContains("[KOTLIN] Kotlin compilation 'jdkHome' argument: $javaexecPath") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/build.gradle new file mode 100644 index 00000000000..8a712a4a7ff --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/build.gradle @@ -0,0 +1,14 @@ +plugins { + id "org.jetbrains.kotlin.multiplatform" +} + +repositories { + mavenLocal() + mavenCentral() +} + +kotlin { + jvm("jvmWithJava") { + withJava() + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/settings.gradle new file mode 100644 index 00000000000..491d2d45aa2 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/settings.gradle @@ -0,0 +1,10 @@ +pluginManagement { + repositories { + mavenLocal() + mavenCentral() + } + + plugins { + id "org.jetbrains.kotlin.multiplatform" version "$kotlin_version" + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/src/jvmWithJavaMain/kotlin/jvmWithJavaData/SomeJVMWithJavaClass.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/src/jvmWithJavaMain/kotlin/jvmWithJavaData/SomeJVMWithJavaClass.kt new file mode 100644 index 00000000000..a5a500cb150 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/mppJvmWithJava/src/jvmWithJavaMain/kotlin/jvmWithJavaData/SomeJVMWithJavaClass.kt @@ -0,0 +1,4 @@ +package jvmWithJavaData + +class SomeJVMWithJavaClass { +} \ No newline at end of file