Add test for compileOnly dependencies in Android
KT-55697
This commit is contained in:
committed by
Space Team
parent
2dca2b4827
commit
7fbd6b6452
+34
-4
@@ -14,6 +14,7 @@ import org.gradle.api.artifacts.ProjectDependency
|
||||
import org.gradle.api.attributes.AttributeContainer
|
||||
import org.gradle.api.attributes.Category
|
||||
import org.gradle.api.attributes.Usage
|
||||
import org.gradle.kotlin.dsl.dependencies
|
||||
import org.gradle.kotlin.dsl.withType
|
||||
import org.jetbrains.kotlin.gradle.*
|
||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
@@ -27,10 +28,7 @@ import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import java.util.*
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertNotNull
|
||||
import kotlin.test.assertTrue
|
||||
import kotlin.test.*
|
||||
|
||||
class ConfigurationsTest : MultiplatformExtensionTest() {
|
||||
|
||||
@@ -523,4 +521,36 @@ class ConfigurationsTest : MultiplatformExtensionTest() {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// See KT-55697
|
||||
@Test
|
||||
fun testCompileOnlyDependenciesDontGetToAndroidTests() {
|
||||
val project = buildProject {
|
||||
applyKotlinAndroidPlugin()
|
||||
androidLibrary {
|
||||
compileSdk = 31
|
||||
}
|
||||
}
|
||||
|
||||
project.dependencies {
|
||||
add("compileOnly", "org:example:1.0")
|
||||
}
|
||||
|
||||
project.evaluate()
|
||||
|
||||
fun isTestDependencyPresent(configName: String): Boolean =
|
||||
project.configurations.getByName(configName).incoming.dependencies.any { it.name == "example" }
|
||||
|
||||
assertTrue(isTestDependencyPresent("debugCompileClasspath"))
|
||||
assertTrue(isTestDependencyPresent("releaseCompileClasspath"))
|
||||
|
||||
assertFalse(isTestDependencyPresent("debugRuntimeClasspath"))
|
||||
assertFalse(isTestDependencyPresent("debugAndroidTestCompileClasspath"))
|
||||
assertFalse(isTestDependencyPresent("debugAndroidTestRuntimeClasspath"))
|
||||
assertFalse(isTestDependencyPresent("debugUnitTestCompileClasspath"))
|
||||
assertFalse(isTestDependencyPresent("debugUnitTestRuntimeClasspath"))
|
||||
assertFalse(isTestDependencyPresent("releaseRuntimeClasspath"))
|
||||
assertFalse(isTestDependencyPresent("releaseUnitTestCompileClasspath"))
|
||||
assertFalse(isTestDependencyPresent("releaseUnitTestRuntimeClasspath"))
|
||||
}
|
||||
}
|
||||
+5
@@ -15,6 +15,7 @@ import org.gradle.testfixtures.ProjectBuilder
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
import org.jetbrains.kotlin.gradle.unitTests.kpm.applyKpmPlugin
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformAndroidPlugin
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformJvmPlugin
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension
|
||||
@@ -51,6 +52,10 @@ fun Project.applyKotlinJvmPlugin() {
|
||||
project.plugins.apply(KotlinPlatformJvmPlugin::class.java)
|
||||
}
|
||||
|
||||
fun Project.applyKotlinAndroidPlugin() {
|
||||
project.plugins.apply(KotlinPlatformAndroidPlugin::class.java)
|
||||
}
|
||||
|
||||
fun Project.kotlin(code: KotlinMultiplatformExtension.() -> Unit) {
|
||||
val kotlin = project.kotlinExtension as KotlinMultiplatformExtension
|
||||
kotlin.code()
|
||||
|
||||
Reference in New Issue
Block a user