[Gradle] KT-65528 Convert KGP IT - Consume Mpp From non-Kotlin
^KT-65528 In Progress
Merge-request: KT-MR-16066
Merged-by: Adam Semenenko <adam.semenenko@jetbrains.com>
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt
index 422610a..862384c 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt
@@ -7,20 +7,15 @@
import org.jetbrains.kotlin.cli.common.arguments.K2NativeCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.parseCommandLineArguments
import org.jetbrains.kotlin.gradle.plugin.ProjectLocalConfigurations
-import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
-import org.jetbrains.kotlin.gradle.testbase.MPPNativeTargets
-import org.jetbrains.kotlin.gradle.testbase.assertHasDiagnostic
-import org.jetbrains.kotlin.gradle.testbase.assertNoDiagnostic
import org.jetbrains.kotlin.gradle.util.isWindows
import org.jetbrains.kotlin.gradle.util.modify
-import org.jetbrains.kotlin.gradle.util.replaceText
-import org.jetbrains.kotlin.konan.target.HostManager
-import org.jetbrains.kotlin.konan.target.KonanTarget
import org.junit.Assert
import org.junit.Test
import java.util.*
import java.util.zip.ZipFile
-import kotlin.test.*
+import kotlin.test.assertEquals
+import kotlin.test.assertFalse
+import kotlin.test.assertTrue
open class NewMultiplatformIT : BaseGradleIT() {
private val gradleVersion = GradleVersionRequired.FOR_MPP_SUPPORT
@@ -203,33 +198,6 @@
}
}
- private val targetName = when (HostManager.host) {
- KonanTarget.LINUX_X64 -> "linux64"
- KonanTarget.MACOS_X64 -> "macos64"
- KonanTarget.MACOS_ARM64 -> "macosArm64"
- KonanTarget.MINGW_X64 -> "mingw64"
- else -> fail("Unsupported host")
- }
-
- @Test
- fun testConsumeMppLibraryFromNonKotlinProject() {
- val libRepo = with(transformNativeTestProject("sample-lib", gradleVersion, "new-mpp-lib-and-app")) {
- build("publish") { assertSuccessful() }
- projectDir.resolve("repo")
- }
-
- with(transformNativeTestProject("sample-app-without-kotlin", gradleVersion, "new-mpp-lib-and-app")) {
- setupWorkingDir()
- gradleBuildScript().appendText("\nrepositories { maven { url '${libRepo.toURI()}' } }")
-
- build("assemble") {
- assertSuccessful()
- assertTasksExecuted(":compileJava")
- assertFileExists("build/classes/java/main/A.class")
- }
- }
- }
-
@Test
fun testMppBuildWithCompilerPlugins() = with(transformNativeTestProject("sample-lib", gradleVersion, "new-mpp-lib-and-app")) {
val printOptionsTaskName = "printCompilerPluginOptions"
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/MppConsumeFromNonKotlinIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/MppConsumeFromNonKotlinIT.kt
new file mode 100644
index 0000000..e981308
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/MppConsumeFromNonKotlinIT.kt
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
+ */
+package org.jetbrains.kotlin.gradle.mpp
+
+import org.gradle.util.GradleVersion
+import org.jetbrains.kotlin.gradle.testbase.*
+import org.jetbrains.kotlin.test.TestMetadata
+import kotlin.io.path.appendText
+import kotlin.io.path.invariantSeparatorsPathString
+
+@MppGradlePluginTests
+class MppConsumeFromNonKotlinIT : KGPBaseTest() {
+
+ @GradleTest
+ @TestMetadata(value = "new-mpp-lib-and-app")
+ fun testConsumeMppLibraryFromNonKotlinProject(gradleVersion: GradleVersion) {
+
+ val localRepoDir = defaultLocalRepo(gradleVersion)
+
+ nativeProject(
+ projectName = "new-mpp-lib-and-app/sample-lib",
+ gradleVersion = gradleVersion,
+ localRepoDir = localRepoDir,
+ ) {
+ // TODO KT-67566 once all MppDslPublishedMetadataIT test are updated to new test DSL, update the projects to use `<localRepo>`
+ buildGradle.appendText(
+ """
+ publishing {
+ repositories {
+ maven {
+ name = "LocalRepo"
+ url = uri("${localRepoDir.invariantSeparatorsPathString}")
+ }
+ }
+ }
+ """.trimIndent()
+ )
+
+ build("publish")
+ }
+
+ project(
+ projectName = "new-mpp-lib-and-app/sample-app-without-kotlin",
+ gradleVersion = gradleVersion,
+ localRepoDir = localRepoDir,
+ ) {
+ build("assemble") {
+ assertTasksExecuted(":compileJava")
+ assertFileInProjectExists("build/classes/java/main/A.class")
+ }
+ }
+ }
+}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app-without-kotlin/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app-without-kotlin/build.gradle
index 43d647e..f4801fa 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app-without-kotlin/build.gradle
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app-without-kotlin/build.gradle
@@ -3,15 +3,10 @@
id 'application'
}
-repositories {
- mavenLocal()
- mavenCentral()
-}
-
dependencies {
implementation 'com.example:sample-lib:1.0'
}
application {
mainClass = 'A'
-}
\ No newline at end of file
+}