Fix Gradle MPP integration tests
#KT-30056 Fixed
This commit is contained in:
+8
-8
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
* that can be found in the license/LICENSE.txt file.
|
* that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
package org.jetbrains.kotlin.gradle
|
package org.jetbrains.kotlin.gradle
|
||||||
@@ -1171,28 +1171,28 @@ class NewMultiplatformIT : BaseGradleIT() {
|
|||||||
fun testPublishMultimoduleProjectWithMetadata() = doTestPublishMultimoduleProject(withMetadata = true)
|
fun testPublishMultimoduleProjectWithMetadata() = doTestPublishMultimoduleProject(withMetadata = true)
|
||||||
|
|
||||||
private fun doTestPublishMultimoduleProject(withMetadata: Boolean) {
|
private fun doTestPublishMultimoduleProject(withMetadata: Boolean) {
|
||||||
val libProject = Project("sample-lib", gradleVersion, "new-mpp-lib-and-app").apply {
|
val libProject = Project("sample-lib", gradleVersion, "new-mpp-lib-and-app")
|
||||||
|
libProject.setupWorkingDir()
|
||||||
|
|
||||||
|
val externalLibProject = Project("sample-external-lib", gradleVersion, "new-mpp-lib-and-app").apply {
|
||||||
if (withMetadata) {
|
if (withMetadata) {
|
||||||
setupWorkingDir()
|
setupWorkingDir()
|
||||||
// Make another publication that will be consumed as a module with metadata, see a similar conditional block below:
|
// Publish it into local repository of adjacent lib:
|
||||||
projectDir.resolve("settings.gradle").writeText("rootProject.name = 'external'; enableFeaturePreview 'GRADLE_METADATA'")
|
|
||||||
gradleBuildScript().appendText(
|
gradleBuildScript().appendText(
|
||||||
"\n" + """
|
"\n" + """
|
||||||
group = "com.external.dependency"
|
|
||||||
version = "1.2.3"
|
|
||||||
publishing {
|
publishing {
|
||||||
repositories {
|
repositories {
|
||||||
maven { url "file://${'$'}{rootProject.projectDir.absolutePath.replace('\\', '/')}/repo" }
|
maven { url "file://${'$'}{rootProject.projectDir.absolutePath.replace('\\', '/')}/../sample-lib/repo" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
)
|
)
|
||||||
build("publish") {
|
build("publish") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
gradleBuildScript().appendText("\ngroup = 'com.example'; version = '1.0'")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val appProject = Project("sample-app", gradleVersion, "new-mpp-lib-and-app")
|
val appProject = Project("sample-app", gradleVersion, "new-mpp-lib-and-app")
|
||||||
|
|
||||||
with(libProject) {
|
with(libProject) {
|
||||||
|
|||||||
+90
@@ -0,0 +1,90 @@
|
|||||||
|
group = "com.external.dependency"
|
||||||
|
version = "1.2.3"
|
||||||
|
|
||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
jcenter()
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
apply plugin: 'kotlin-multiplatform'
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
jcenter()
|
||||||
|
maven { url "https://dl.bintray.com/kotlin/kotlinx.html/" }
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
// Check the new preset functions:
|
||||||
|
jvm('jvm6') { }
|
||||||
|
js('nodeJs')
|
||||||
|
targetFromPreset(presets.wasm32) { println targetName }
|
||||||
|
targetFromPreset(presets.jvm, 'jvm6') { println targetName } // access existing target
|
||||||
|
|
||||||
|
targets {
|
||||||
|
// Also check that the old DSL (fromPreset) works:
|
||||||
|
fromPreset(presets.linuxX64, 'linux64')
|
||||||
|
fromPreset(presets.mingwX64, 'mingw64')
|
||||||
|
fromPreset(presets.macosX64, 'macos64')
|
||||||
|
|
||||||
|
// Check the DSL constructs in the Groovy DSL:
|
||||||
|
fromPreset(presets.jvm, 'jvm6') {
|
||||||
|
println "Configuring $targetName"
|
||||||
|
compilations.main {
|
||||||
|
kotlinOptions {
|
||||||
|
println "jvmTarget = " + jvmTarget
|
||||||
|
}
|
||||||
|
defaultSourceSet {
|
||||||
|
println "Kotlin srcDirs: " + kotlin.srcDirs
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
all {
|
||||||
|
mavenPublication {
|
||||||
|
pom.withXml {
|
||||||
|
asNode().appendNode('name', 'Sample MPP library')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
commonMain {
|
||||||
|
dependencies {
|
||||||
|
api 'org.jetbrains.kotlin:kotlin-stdlib-common'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
jvm6Main {
|
||||||
|
dependencies {
|
||||||
|
api 'org.jetbrains.kotlin:kotlin-stdlib'
|
||||||
|
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.23.4'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nodeJsMain {
|
||||||
|
dependencies {
|
||||||
|
api 'org.jetbrains.kotlin:kotlin-stdlib-js'
|
||||||
|
implementation 'org.jetbrains.kotlinx:kotlinx-html-js:0.6.11'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin.sourceSets.each { println it.kotlin.srcDirs }
|
||||||
|
|
||||||
|
apply plugin: 'maven-publish'
|
||||||
|
|
||||||
|
// Check that a compilation may be created after project evaluation, KT-28896:
|
||||||
|
afterEvaluate {
|
||||||
|
kotlin {
|
||||||
|
jvm('jvm6').compilations.create('benchmark') {
|
||||||
|
defaultSourceSet.dependsOn(sourceSets.jvm6Main)
|
||||||
|
assemble.dependsOn compileKotlinTask
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
enableFeaturePreview('GRADLE_METADATA')
|
||||||
|
rootProject.name = 'external'
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package com.example.externalLib
|
||||||
|
|
||||||
|
fun <T> id(t: T): T = t
|
||||||
|
|
||||||
|
expect fun expectedFun(): Unit
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
resource
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package com.example.externalLib
|
||||||
|
|
||||||
|
fun x(): String = "x"
|
||||||
|
|
||||||
|
actual fun expectedFun() {
|
||||||
|
println(id(x()))
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
resource
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package com.example.externalLib
|
||||||
|
|
||||||
|
actual fun expectedFun(): Unit {
|
||||||
|
id(123)
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
resource
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package com.example.externalLib
|
||||||
|
|
||||||
|
actual fun expectedFun(): Unit {
|
||||||
|
id(123)
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
resource
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package com.example.externalLib
|
||||||
|
|
||||||
|
actual fun expectedFun(): Unit {
|
||||||
|
id(123)
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
resource
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
package com.example.externalLib
|
||||||
|
|
||||||
|
import com.example.externalLib.id
|
||||||
|
import com.example.externalLib.expectedFun
|
||||||
|
|
||||||
|
fun idUsage() = id("123")
|
||||||
|
|
||||||
|
actual fun expectedFun() = Unit
|
||||||
|
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
expectedFun()
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
resource
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package com.example.externalLib
|
||||||
|
|
||||||
|
actual fun expectedFun(): Unit {
|
||||||
|
id(123)
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
resource
|
||||||
+1
-6
@@ -20,15 +20,10 @@ kotlin {
|
|||||||
commonMain {
|
commonMain {
|
||||||
dependencies {
|
dependencies {
|
||||||
api "org.jetbrains.kotlin:kotlin-stdlib-common"
|
api "org.jetbrains.kotlin:kotlin-stdlib-common"
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
iosMain {
|
|
||||||
dependencies {
|
|
||||||
api(project(":exported"))
|
api(project(":exported"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
commonTest {
|
commonTest {
|
||||||
dependencies {
|
dependencies {
|
||||||
api "org.jetbrains.kotlin:kotlin-test-annotations-common"
|
api "org.jetbrains.kotlin:kotlin-test-annotations-common"
|
||||||
|
|||||||
+4
@@ -16,4 +16,8 @@ kotlin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
iosArm64("ios")
|
iosArm64("ios")
|
||||||
|
macosX64("macos64")
|
||||||
|
linuxX64("linux64")
|
||||||
|
mingwX64("mingw64")
|
||||||
|
iosX64("iosSim")
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -1 +1,3 @@
|
|||||||
|
package com.example
|
||||||
|
|
||||||
fun exported() = 42
|
fun exported() = 42
|
||||||
+5
-2
@@ -1,5 +1,8 @@
|
|||||||
package foo
|
package foo
|
||||||
|
|
||||||
|
import com.example.exported
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
println("foo.main")
|
val exp = exported()
|
||||||
}
|
println("foo.main: exp = $exp")
|
||||||
|
}
|
||||||
+4
-6
@@ -1,11 +1,9 @@
|
|||||||
/*
|
import com.example.exported
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
|
||||||
* that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun foo() {
|
fun foo() {
|
||||||
println("tests.foo")
|
val exp = exported()
|
||||||
|
assertTrue(exp % 7 == 0, "Not divisible by 7")
|
||||||
|
println("tests.foo: exp = $exp")
|
||||||
}
|
}
|
||||||
-5
@@ -12,11 +12,6 @@ kotlin {
|
|||||||
sourceSets["commonMain"].apply {
|
sourceSets["commonMain"].apply {
|
||||||
dependencies {
|
dependencies {
|
||||||
api("org.jetbrains.kotlin:kotlin-stdlib-common")
|
api("org.jetbrains.kotlin:kotlin-stdlib-common")
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets.create("iosMain").apply {
|
|
||||||
dependencies {
|
|
||||||
api(project(":exported"))
|
api(project(":exported"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-1
@@ -15,5 +15,9 @@ kotlin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
iosArm64("ios")
|
iosArm64("ios")
|
||||||
|
macosX64("macos64")
|
||||||
|
linuxX64("linux64")
|
||||||
|
mingwX64("mingw64")
|
||||||
|
iosX64("iosSim")
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -1 +1,3 @@
|
|||||||
|
package com.example
|
||||||
|
|
||||||
fun exported() = 42
|
fun exported() = 42
|
||||||
+4
-1
@@ -1,5 +1,8 @@
|
|||||||
package foo
|
package foo
|
||||||
|
|
||||||
|
import com.example.exported
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
println("foo.main")
|
val exp = exported()
|
||||||
|
println("foo.main: exp = $exp")
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-1
@@ -1,6 +1,10 @@
|
|||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|
||||||
|
import com.example.exported
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun foo() {
|
fun foo() {
|
||||||
println("tests.foo")
|
val exp = exported()
|
||||||
|
assertTrue(exp % 7 == 0, "Not divisible by 7")
|
||||||
|
println("tests.foo: exp = $exp")
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user