[Gradle] [Android] Implement 'test KotlinToolingMetadataArtifact is bundled into apk'
Covers ^KT-48019
This commit is contained in:
committed by
Space
parent
82a70a205b
commit
79565da904
+21
-1
@@ -3,12 +3,15 @@ package org.jetbrains.kotlin.gradle
|
|||||||
import org.gradle.api.logging.LogLevel
|
import org.gradle.api.logging.LogLevel
|
||||||
import org.gradle.api.logging.configuration.WarningMode
|
import org.gradle.api.logging.configuration.WarningMode
|
||||||
import org.gradle.util.GradleVersion
|
import org.gradle.util.GradleVersion
|
||||||
|
import org.jetbrains.kotlin.gradle.tooling.BuildKotlinToolingMetadataTask
|
||||||
import org.jetbrains.kotlin.gradle.util.*
|
import org.jetbrains.kotlin.gradle.util.*
|
||||||
import org.jetbrains.kotlin.test.util.KtTestUtil
|
import org.jetbrains.kotlin.test.util.KtTestUtil
|
||||||
import org.junit.Assume
|
import org.junit.Assume
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.util.zip.ZipFile
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
import kotlin.test.assertNotNull
|
||||||
import kotlin.test.assertTrue
|
import kotlin.test.assertTrue
|
||||||
|
|
||||||
open class KotlinAndroid36GradleIT : KotlinAndroid34GradleIT() {
|
open class KotlinAndroid36GradleIT : KotlinAndroid34GradleIT() {
|
||||||
@@ -427,6 +430,23 @@ open class KotlinAndroid36GradleIT : KotlinAndroid34GradleIT() {
|
|||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `test KotlinToolingMetadataArtifact is bundled into apk`(): Unit = with(Project("kotlinToolingMetadataAndroid")) {
|
||||||
|
build("assemble") {
|
||||||
|
assertSuccessful()
|
||||||
|
assertTasksExecuted(":${BuildKotlinToolingMetadataTask.defaultTaskName}")
|
||||||
|
val debugApk = project.projectDir.resolve("build/outputs/apk/debug/project-debug.apk")
|
||||||
|
val releaseApk = project.projectDir.resolve("build/outputs/apk/release/project-release-unsigned.apk")
|
||||||
|
|
||||||
|
listOf(debugApk, releaseApk).forEach { apk ->
|
||||||
|
assertTrue(apk.exists(), "Missing apk ${apk.path}")
|
||||||
|
ZipFile(apk).use { zip ->
|
||||||
|
assertNotNull(zip.getEntry("kotlin-tooling-metadata.json"), "Expected metadata being packaged into apk")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
open class KotlinAndroid70GradleIT : KotlinAndroid36GradleIT() {
|
open class KotlinAndroid70GradleIT : KotlinAndroid36GradleIT() {
|
||||||
@@ -559,7 +579,7 @@ open class KotlinAndroid34GradleIT : KotlinAndroid3GradleIT() {
|
|||||||
"kotlin-stdlib:\$kotlin_version",
|
"kotlin-stdlib:\$kotlin_version",
|
||||||
"kotlin-stdlib"
|
"kotlin-stdlib"
|
||||||
) + "\n" +
|
) + "\n" +
|
||||||
"""
|
"""
|
||||||
apply plugin: 'maven-publish'
|
apply plugin: 'maven-publish'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
|||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
plugins {
|
||||||
|
id("com.android.application")
|
||||||
|
kotlin("multiplatform")
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
mavenLocal()
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion(23)
|
||||||
|
buildToolsVersion("25.0.2")
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
android()
|
||||||
|
}
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
google()
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
val kotlin_version: String by settings
|
||||||
|
val android_tools_version: String by settings
|
||||||
|
plugins {
|
||||||
|
kotlin("multiplatform").version(kotlin_version)
|
||||||
|
kotlin("android").version(kotlin_version)
|
||||||
|
}
|
||||||
|
|
||||||
|
resolutionStrategy {
|
||||||
|
eachPlugin {
|
||||||
|
if (requested.id.id.startsWith("com.android")) {
|
||||||
|
useModule("com.android.tools.build:gradle:$android_tools_version")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rootProject.name = "project"
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
<manifest package="kotlin.multiplatform.projects"/>
|
||||||
Reference in New Issue
Block a user