[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.configuration.WarningMode
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.tooling.BuildKotlinToolingMetadataTask
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil
|
||||
import org.junit.Assume
|
||||
import org.junit.Test
|
||||
import java.io.File
|
||||
import java.util.zip.ZipFile
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertNotNull
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
open class KotlinAndroid36GradleIT : KotlinAndroid34GradleIT() {
|
||||
@@ -427,6 +430,23 @@ open class KotlinAndroid36GradleIT : KotlinAndroid34GradleIT() {
|
||||
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() {
|
||||
@@ -559,7 +579,7 @@ open class KotlinAndroid34GradleIT : KotlinAndroid3GradleIT() {
|
||||
"kotlin-stdlib:\$kotlin_version",
|
||||
"kotlin-stdlib"
|
||||
) + "\n" +
|
||||
"""
|
||||
"""
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
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