[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
|
package org.jetbrains.kotlin.gradle.idea.testFixtures.tcs
|
||||||
|
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency
|
||||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceDependency
|
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceDependency
|
||||||
|
|
||||||
fun buildIdeaKotlinDependencyMatchers(notation: Any?): List<IdeaKotlinDependencyMatcher> {
|
fun buildIdeaKotlinDependencyMatchers(notation: Any?): List<IdeaKotlinDependencyMatcher> {
|
||||||
@@ -30,4 +31,9 @@ fun binaryCoordinates(regex: Regex): IdeaKotlinDependencyMatcher {
|
|||||||
|
|
||||||
fun binaryCoordinates(literal: String): IdeaKotlinDependencyMatcher {
|
fun binaryCoordinates(literal: String): IdeaKotlinDependencyMatcher {
|
||||||
return binaryCoordinates(Regex.fromLiteral(literal))
|
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.PublishingExtension
|
||||||
import org.gradle.api.publish.maven.MavenPublication
|
import org.gradle.api.publish.maven.MavenPublication
|
||||||
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
|
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.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.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.kpm.idea.mavenCentralCacheRedirector
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.ide.kotlinIdeMultiplatformImport
|
||||||
import org.jetbrains.kotlin.gradle.utils.getByType
|
import org.jetbrains.kotlin.gradle.utils.getByType
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import kotlin.test.BeforeTest
|
import kotlin.test.BeforeTest
|
||||||
@@ -72,4 +74,25 @@ class ExternalAndroidTargetPrototypeSmokeTest {
|
|||||||
val aarArtifact = androidPublication.artifacts.first()
|
val aarArtifact = androidPublication.artifacts.first()
|
||||||
assertEquals("aar", aarArtifact.extension)
|
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