[MPP] [Android] implement testKT49798AgpVersionAttrNotPublished

This test covers ^KT-49798 by publishing an Android library and
checking that 'AgpVersionAttr' is not mentioned in any .module files
of those publications.
This commit is contained in:
sebastian.sellmair
2021-11-19 13:56:06 +01:00
committed by Space
parent f864e19d95
commit 8c5f980c16
@@ -513,6 +513,29 @@ open class KotlinAndroid71GradleIT : KotlinAndroid70GradleIT() {
override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.AtLeast("7.2")
/**
* Starting from AGP version 7.1.0-alpha13, a new attribute com.android.build.api.attributes.AgpVersionAttr was added.
* This attribute is *not intended* to be published.
*/
@Test
fun testKT49798AgpVersionAttrNotPublished() = with(Project("new-mpp-android")) {
build("publish") {
val debugPublicationDirectory = projectDir.resolve("lib/build/repo/com/example/lib-androidlib-debug")
val releasePublicationDirectory = projectDir.resolve("lib/build/repo/com/example/lib-androidlib")
listOf(debugPublicationDirectory, releasePublicationDirectory).forEach { publicationDirectory ->
assertTrue(publicationDirectory.exists(), "Missing publication directory: $publicationDirectory")
val moduleFiles = publicationDirectory.walkTopDown().filter { file -> file.extension == "module" }.toList()
assertTrue(moduleFiles.isNotEmpty(), "Missing .module file in $publicationDirectory")
assertTrue(moduleFiles.size <= 1, "Multiple .module files in $publicationDirectory: $moduleFiles")
val moduleFile = moduleFiles.single()
val moduleFileText = moduleFile.readText()
assertTrue("AgpVersionAttr" !in moduleFileText, ".module file $moduleFile leaks AgpVersionAttr")
}
}
}
}
open class KotlinAndroid34GradleIT : KotlinAndroid3GradleIT() {