[Gradle] Implement smoke test for external android target prototype resolving sdk
KT-54981
This commit is contained in:
committed by
Space Team
parent
83af85706d
commit
f02fd2e04e
+6
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.gradle.idea.testFixtures.tcs
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceDependency
|
||||
|
||||
fun buildIdeaKotlinDependencyMatchers(notation: Any?): List<IdeaKotlinDependencyMatcher> {
|
||||
@@ -30,4 +31,9 @@ fun binaryCoordinates(regex: Regex): IdeaKotlinDependencyMatcher {
|
||||
|
||||
fun binaryCoordinates(literal: String): IdeaKotlinDependencyMatcher {
|
||||
return binaryCoordinates(Regex.fromLiteral(literal))
|
||||
}
|
||||
|
||||
fun anyDependency(): IdeaKotlinDependencyMatcher = object : IdeaKotlinDependencyMatcher {
|
||||
override val description: String get() = "any"
|
||||
override fun matches(dependency: IdeaKotlinDependency): Boolean = true
|
||||
}
|
||||
+27
-4
@@ -10,12 +10,14 @@ package org.jetbrains.kotlin.gradle.externalTargetApi
|
||||
import org.gradle.api.publish.PublishingExtension
|
||||
import org.gradle.api.publish.maven.MavenPublication
|
||||
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
|
||||
import org.jetbrains.kotlin.gradle.*
|
||||
import org.jetbrains.kotlin.gradle.android.androidTargetPrototype
|
||||
import org.jetbrains.kotlin.gradle.androidLibrary
|
||||
import org.jetbrains.kotlin.gradle.assumeAndroidSdkAvailable
|
||||
import org.jetbrains.kotlin.gradle.buildProjectWithMPP
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.anyDependency
|
||||
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.assertMatches
|
||||
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.binaryCoordinates
|
||||
import org.jetbrains.kotlin.gradle.kpm.idea.mavenCentralCacheRedirector
|
||||
import org.jetbrains.kotlin.gradle.plugin.ide.kotlinIdeMultiplatformImport
|
||||
import org.jetbrains.kotlin.gradle.utils.getByType
|
||||
import org.junit.Test
|
||||
import kotlin.test.BeforeTest
|
||||
@@ -72,4 +74,25 @@ class ExternalAndroidTargetPrototypeSmokeTest {
|
||||
val aarArtifact = androidPublication.artifacts.first()
|
||||
assertEquals("aar", aarArtifact.extension)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `apply prototype - resolve androidPrototypeMain dependencies - contains android bootstrap classpath`() {
|
||||
val project = buildProject {
|
||||
enableDefaultStdlibDependency(false)
|
||||
enableDependencyVerification(false)
|
||||
applyMultiplatformPlugin()
|
||||
repositories.mavenCentralCacheRedirector()
|
||||
}
|
||||
|
||||
project.androidLibrary { compileSdk = 31 }
|
||||
project.multiplatformExtension.androidTargetPrototype()
|
||||
project.evaluate()
|
||||
|
||||
val androidPrototypeMain = project.multiplatformExtension.sourceSets.getByName("prototypeAndroidMain")
|
||||
|
||||
project.kotlinIdeMultiplatformImport.resolveDependencies(androidPrototypeMain).assertMatches(
|
||||
binaryCoordinates(Regex("com\\.android:sdk:.*")),
|
||||
anyDependency()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user