From 42cda2633d3b275cfcc5e8e10b8b2be0181254ab Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Wed, 12 Oct 2022 12:46:18 +0200 Subject: [PATCH] [Gradle] Add/update tests about Sources Publication in MPP ^KT-48839 --- .../kotlin/gradle/HierarchicalMppIT.kt | 104 +++++++++++++++++- .../mpp-sources-publication/build.gradle.kts | 67 +++++++++++ .../settings.gradle.kts | 14 +++ .../src/commonJvmMain/kotlin/commonJvmMain.kt | 3 + .../src/commonJvmTest/kotlin/commonJvmTest.kt | 3 + .../src/commonMain/kotlin/Common.kt | 3 + .../src/commonTest/kotlin/common.kt | 3 + .../src/iosArm64Main/kotlin/IosArm64.kt | 3 + .../src/iosArm64Test/kotlin/iosArm64Test.kt | 3 + .../src/iosMain/kotlin/Ios.kt | 3 + .../src/iosTest/kotlin/iosTest.kt | 3 + .../src/iosX64Main/kotlin/IosX64.kt | 3 + .../src/iosX64Test/kotlin/iosX64Test.kt | 3 + .../src/jvm2Main/kotlin/jvm2Main.kt | 3 + .../src/jvm2Test/kotlin/jvm2Test.kt | 3 + .../src/jvmMain/kotlin/Jvm.kt | 3 + .../src/jvmTest/kotlin/jvmTest.kt | 3 + .../linuxArm64Main/kotlin/linuxArm64Main.kt | 3 + .../linuxArm64Test/kotlin/linuxArm64Test.kt | 3 + .../src/linuxMain/kotlin/linuxMain.kt | 3 + .../src/linuxTest/kotlin/linuxTest.kt | 3 + .../src/linuxX64Main/kotlin/linuxX64Main.kt | 3 + .../src/linuxX64Test/kotlin/LinuxX64Text.kt | 11 ++ 23 files changed, 249 insertions(+), 4 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/build.gradle.kts create mode 100755 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/settings.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonJvmMain/kotlin/commonJvmMain.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonJvmTest/kotlin/commonJvmTest.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonMain/kotlin/Common.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonTest/kotlin/common.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosArm64Main/kotlin/IosArm64.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosArm64Test/kotlin/iosArm64Test.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosMain/kotlin/Ios.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosTest/kotlin/iosTest.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosX64Main/kotlin/IosX64.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosX64Test/kotlin/iosX64Test.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvm2Main/kotlin/jvm2Main.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvm2Test/kotlin/jvm2Test.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvmMain/kotlin/Jvm.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvmTest/kotlin/jvmTest.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxArm64Main/kotlin/linuxArm64Main.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxArm64Test/kotlin/linuxArm64Test.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxMain/kotlin/linuxMain.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxTest/kotlin/linuxTest.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxX64Main/kotlin/linuxX64Main.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxX64Test/kotlin/LinuxX64Text.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/HierarchicalMppIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/HierarchicalMppIT.kt index 738a0c7b54d..b9d3a05c6f9 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/HierarchicalMppIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/HierarchicalMppIT.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.gradle.testbase.* import org.jetbrains.kotlin.gradle.util.checkedReplace import org.jetbrains.kotlin.gradle.util.modify import org.junit.jupiter.api.DisplayName +import org.junit.jupiter.api.condition.OS import org.junit.jupiter.api.io.TempDir import java.io.File import java.nio.file.Path @@ -357,11 +358,11 @@ class HierarchicalMppIT : KGPBaseTest() { "com/example/foo/my-lib-foo/1.0/my-lib-foo-1.0-sources.jar" ) ).use { publishedSourcesJar -> - publishedSourcesJar.checkAllEntryNamesArePresent( + publishedSourcesJar.checkExactEntries( + "META-INF/MANIFEST.MF", "commonMain/Foo.kt", "jvmAndJsMain/FooJvmAndJs.kt", "linuxAndJsMain/FooLinuxAndJs.kt", - "linuxX64Main/FooLinux.kt" ) } } @@ -407,11 +408,11 @@ class HierarchicalMppIT : KGPBaseTest() { "com/example/bar/my-lib-bar/1.0/my-lib-bar-1.0-sources.jar" ) ).use { publishedSourcesJar -> - publishedSourcesJar.checkAllEntryNamesArePresent( + publishedSourcesJar.checkExactEntries( + "META-INF/MANIFEST.MF", "commonMain/Bar.kt", "jvmAndJsMain/BarJvmAndJs.kt", "linuxAndJsMain/BarLinuxAndJs.kt", - "linuxX64Main/BarLinux.kt" ) } @@ -583,6 +584,26 @@ class HierarchicalMppIT : KGPBaseTest() { } } + private fun ZipFile.checkExactEntries(vararg expectedEntryNames: String, ignoreDirectories: Boolean = true) { + val entryNamesSet = entries() + .asSequence() + .map { it.name } + .run { if (ignoreDirectories) filterNot { it.endsWith("/") } else this } + .sorted() + .joinToString("\n") + val expectedEntryNamesSet = expectedEntryNames.toList().sorted().joinToString("\n") + assertEquals(expectedEntryNamesSet, entryNamesSet) + } + + private fun ZipFile.sourceSetDirectories(): List { + return entries() + .asSequence() + .map { it.name.split("/").first() } + .toSet() + .minus("META-INF") + .toList() + } + private fun ZipFile.getProjectStructureMetadata(): KotlinProjectStructureMetadata { val json = getInputStream(getEntry("META-INF/$MULTIPLATFORM_PROJECT_METADATA_JSON_FILE_NAME")).reader().readText() return checkNotNull(parseKotlinSourceSetMetadataFromJson(json)) @@ -689,6 +710,81 @@ class HierarchicalMppIT : KGPBaseTest() { } } + @GradleTest + @OsCondition(enabledOnCI = [OS.LINUX, OS.MAC, OS.WINDOWS]) + @DisplayName("Test sources publication of a multiplatform library") + fun testSourcesPublication(gradleVersion: GradleVersion, @TempDir tempDir: Path) { + project( + "mpp-sources-publication", + gradleVersion = gradleVersion, + localRepoDir = tempDir + ).run { + build("publish") + + fun macOnly(code: () -> List): List = if (OS.MAC.isCurrentOs) code() else emptyList() + + val rootModuleSources = listOf("test/lib/1.0/lib-1.0-sources.jar") + val jvmModuleSources = listOf("test/lib-jvm/1.0/lib-jvm-1.0-sources.jar") + val jvm2ModuleSources = listOf("test/lib-jvm2/1.0/lib-jvm2-1.0-sources.jar") + val linuxX64ModuleSources = listOf("test/lib-linuxx64/1.0/lib-linuxx64-1.0-sources.jar") + val linuxArm64ModuleSources = listOf("test/lib-linuxarm64/1.0/lib-linuxarm64-1.0-sources.jar") + val iosX64ModuleSources = macOnly { listOf("test/lib-iosx64/1.0/lib-iosx64-1.0-sources.jar") } + val iosArm64ModuleSources = macOnly { listOf("test/lib-iosarm64/1.0/lib-iosarm64-1.0-sources.jar") } + val allPublishedSources = rootModuleSources + + jvmModuleSources + jvm2ModuleSources + + linuxX64ModuleSources + linuxArm64ModuleSources + + iosX64ModuleSources + iosArm64ModuleSources + + infix fun Pair>.and(that: List) = first to (second + that) + + // Here mentioned only source sets that should be published + val expectedSourcePublicationLayout = listOf( + "commonMain" to rootModuleSources + and jvmModuleSources and jvm2ModuleSources + and iosX64ModuleSources and iosArm64ModuleSources + and linuxArm64ModuleSources and linuxX64ModuleSources, + "linuxMain" to rootModuleSources and linuxArm64ModuleSources and linuxX64ModuleSources, + "jvmMain" to jvmModuleSources, + "jvm2Main" to jvm2ModuleSources, + // since commonJvmMain is compiled to JVM only, it doesn't appear it metadata variant, + // it should be published only to jvm variants + "commonJvmMain" to jvmModuleSources and jvm2ModuleSources, + // iosMain is a host-specific sourceset and even though it isn't present in common metadata artifact + // it should be published in common sources. more details: KT-54413 + "iosMain" to rootModuleSources and iosX64ModuleSources and iosArm64ModuleSources, + "iosX64Main" to iosX64ModuleSources, + "iosArm64Main" to iosArm64ModuleSources, + "linuxX64Main" to linuxX64ModuleSources, + "linuxArm64Main" to linuxArm64ModuleSources, + ) + + val expectedSourcePublicationLayoutBySourcesFile: Map> = expectedSourcePublicationLayout + .flatMap { (sourceSet, sources) -> sources.map { sourceSet to it } } + .groupBy( + keySelector = { it.second }, + valueTransform = { it.first } + ) + + val actualSourcePublicationLayoutBySourcesFile: Map> = allPublishedSources + .associateWith { jarPath -> + tempDir + .resolve(jarPath) + .toFile() + .let(::ZipFile) + .use { it.sourceSetDirectories() } + } + + fun Map>.stringifyForBeautifulDiff() = entries + .sortedBy { it.key } + .joinToString("\n") { "${it.key} => ${it.value.sorted()}" } + + assertEquals( + expectedSourcePublicationLayoutBySourcesFile.stringifyForBeautifulDiff(), + actualSourcePublicationLayoutBySourcesFile.stringifyForBeautifulDiff() + ) + } + } + @GradleTest @DisplayName("KT-44845: all external dependencies is unresolved in IDE with kotlin.mpp.enableGranularSourceSetsMetadata=true") fun testMixedScopesFilesExistKt44845(gradleVersion: GradleVersion, @TempDir tempDir: Path) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/build.gradle.kts new file mode 100644 index 00000000000..51d6e8575b0 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/build.gradle.kts @@ -0,0 +1,67 @@ +plugins { + kotlin("multiplatform") + `maven-publish` +} + +repositories { + mavenLocal() + mavenCentral() +} + +group = "test" +version = "1.0" + +kotlin { + val disambiguationAttribute = Attribute.of("disambiguationAttribute", String::class.java) + targets.all { attributes { attribute(disambiguationAttribute, targetName) } } + + jvm {} + jvm("jvm2") {} + linuxX64 {} + linuxArm64 {} + ios() + + sourceSets { + val commonMain by getting + val jvmMain by getting + val jvm2Main by getting + val linuxX64Main by getting + val linuxArm64Main by getting + + val commonTest by getting + val jvmTest by getting + val jvm2Test by getting + val linuxX64Test by getting + val linuxArm64Test by getting + + val linuxMain by creating { + dependsOn(commonMain) + linuxX64Main.dependsOn(this) + linuxArm64Main.dependsOn(this) + } + + val linuxTest by creating { + dependsOn(commonTest) + linuxX64Test.dependsOn(this) + linuxArm64Test.dependsOn(this) + } + + val commonJvmMain by creating { + dependsOn(commonMain) + jvmMain.dependsOn(this) + jvm2Main.dependsOn(this) + } + + val commonJvmTest by creating { + dependsOn(commonTest) + jvmTest.dependsOn(this) + jvm2Test.dependsOn(this) + } + } +} + +publishing { + repositories { + maven("") + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/settings.gradle.kts new file mode 100755 index 00000000000..d6c2165e907 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/settings.gradle.kts @@ -0,0 +1,14 @@ +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + } + plugins { + val kotlin_version: String by settings + val test_fixes_version: String by settings + kotlin("multiplatform").version(kotlin_version) + id("org.jetbrains.kotlin.test.fixes.android") version test_fixes_version + } +} + +rootProject.name = "lib" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonJvmMain/kotlin/commonJvmMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonJvmMain/kotlin/commonJvmMain.kt new file mode 100644 index 00000000000..9b8d6e1dde6 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonJvmMain/kotlin/commonJvmMain.kt @@ -0,0 +1,3 @@ +package app + +fun commonJvmMain() {} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonJvmTest/kotlin/commonJvmTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonJvmTest/kotlin/commonJvmTest.kt new file mode 100644 index 00000000000..c73861a287b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonJvmTest/kotlin/commonJvmTest.kt @@ -0,0 +1,3 @@ +package app + +fun commonJvmTest() = "test" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonMain/kotlin/Common.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonMain/kotlin/Common.kt new file mode 100644 index 00000000000..03d6a50bcba --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonMain/kotlin/Common.kt @@ -0,0 +1,3 @@ +package app + +fun common() {} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonTest/kotlin/common.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonTest/kotlin/common.kt new file mode 100644 index 00000000000..01573af5ab2 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/commonTest/kotlin/common.kt @@ -0,0 +1,3 @@ +package app + +fun commonTest() {} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosArm64Main/kotlin/IosArm64.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosArm64Main/kotlin/IosArm64.kt new file mode 100644 index 00000000000..988dc1629f6 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosArm64Main/kotlin/IosArm64.kt @@ -0,0 +1,3 @@ +package app + +fun iosArm64() {} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosArm64Test/kotlin/iosArm64Test.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosArm64Test/kotlin/iosArm64Test.kt new file mode 100644 index 00000000000..ca2f693ebfc --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosArm64Test/kotlin/iosArm64Test.kt @@ -0,0 +1,3 @@ +package app + +fun iosArm64Test() = "test" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosMain/kotlin/Ios.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosMain/kotlin/Ios.kt new file mode 100644 index 00000000000..0dbff568165 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosMain/kotlin/Ios.kt @@ -0,0 +1,3 @@ +package app + +fun ios() {} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosTest/kotlin/iosTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosTest/kotlin/iosTest.kt new file mode 100644 index 00000000000..bb8a95bf1b2 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosTest/kotlin/iosTest.kt @@ -0,0 +1,3 @@ +package app + +fun iosTest() = "test" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosX64Main/kotlin/IosX64.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosX64Main/kotlin/IosX64.kt new file mode 100644 index 00000000000..101ffd81a8a --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosX64Main/kotlin/IosX64.kt @@ -0,0 +1,3 @@ +package app + +fun iosX64() {} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosX64Test/kotlin/iosX64Test.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosX64Test/kotlin/iosX64Test.kt new file mode 100644 index 00000000000..75d73c2891a --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/iosX64Test/kotlin/iosX64Test.kt @@ -0,0 +1,3 @@ +package app + +fun iosX64Test() = "test" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvm2Main/kotlin/jvm2Main.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvm2Main/kotlin/jvm2Main.kt new file mode 100644 index 00000000000..f6bcff12622 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvm2Main/kotlin/jvm2Main.kt @@ -0,0 +1,3 @@ +package app + +fun jvm2Main() {} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvm2Test/kotlin/jvm2Test.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvm2Test/kotlin/jvm2Test.kt new file mode 100644 index 00000000000..3cf316accbd --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvm2Test/kotlin/jvm2Test.kt @@ -0,0 +1,3 @@ +package app + +fun jvm2Test() = "test" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvmMain/kotlin/Jvm.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvmMain/kotlin/Jvm.kt new file mode 100644 index 00000000000..f870e466679 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvmMain/kotlin/Jvm.kt @@ -0,0 +1,3 @@ +package app + +fun jvmMain() {} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvmTest/kotlin/jvmTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvmTest/kotlin/jvmTest.kt new file mode 100644 index 00000000000..6b12f76168d --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/jvmTest/kotlin/jvmTest.kt @@ -0,0 +1,3 @@ +package app + +fun jvmTest() = "test" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxArm64Main/kotlin/linuxArm64Main.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxArm64Main/kotlin/linuxArm64Main.kt new file mode 100644 index 00000000000..0ceace915ba --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxArm64Main/kotlin/linuxArm64Main.kt @@ -0,0 +1,3 @@ +package app + +fun linuxArm64Main() {} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxArm64Test/kotlin/linuxArm64Test.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxArm64Test/kotlin/linuxArm64Test.kt new file mode 100644 index 00000000000..64e59b871f9 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxArm64Test/kotlin/linuxArm64Test.kt @@ -0,0 +1,3 @@ +package app + +fun linuxArm64Test() = "test" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxMain/kotlin/linuxMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxMain/kotlin/linuxMain.kt new file mode 100644 index 00000000000..16189b93d72 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxMain/kotlin/linuxMain.kt @@ -0,0 +1,3 @@ +package app + +fun linuxMain() {} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxTest/kotlin/linuxTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxTest/kotlin/linuxTest.kt new file mode 100644 index 00000000000..76acf46e2ac --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxTest/kotlin/linuxTest.kt @@ -0,0 +1,3 @@ +package app + +fun linuxTest() = "test" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxX64Main/kotlin/linuxX64Main.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxX64Main/kotlin/linuxX64Main.kt new file mode 100644 index 00000000000..0c2bc19d8b1 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxX64Main/kotlin/linuxX64Main.kt @@ -0,0 +1,3 @@ +package app + +fun linuxX64Main() {} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxX64Test/kotlin/LinuxX64Text.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxX64Test/kotlin/LinuxX64Text.kt new file mode 100644 index 00000000000..160e0626f8e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-sources-publication/src/linuxX64Test/kotlin/LinuxX64Text.kt @@ -0,0 +1,11 @@ +package app + +import kotlin.test.Test +import kotlin.test.assertEquals + +class LinuxX64Text { + @Test + fun test1() { + assertEquals(cinterop.dummy.foo_linux(), 42) + } +} \ No newline at end of file