[Gradle] Don't show false positive warning about old hmpp flags

When HMPP is enabled by default it is still printing warnings about
enableDependencyPropagation and enableGranularSourceSetsMetadata flags

#KT-48818 Fixed
This commit is contained in:
Anton Lakotka
2021-10-19 14:12:14 +02:00
committed by Space
parent a22c8c8f2f
commit cb103dae75
3 changed files with 23 additions and 4 deletions
@@ -493,6 +493,13 @@ abstract class BaseGradleIT {
return this
}
fun CompiledProject.assertDoesNotContain(vararg notExpected: String, ignoreCase: Boolean = false): CompiledProject {
for (str in notExpected) {
assertFalse(output.contains(str.normalize(), ignoreCase), "Output should not contain '$str'")
}
return this
}
fun CompiledProject.assertContainsRegex(expected: Regex): CompiledProject {
assertTrue(expected.containsMatchIn(output), "Output should contain pattern '$expected'")
return this
@@ -20,6 +20,7 @@ internal class MppFlagsMigrationIT : BaseGradleIT() {
var dependencyPropagationFlag: Boolean? = null,
var expectedToPass: Boolean = true,
var expectedPhraseInOutput: String? = null,
var notExpectedPhraseInOutput: String? = null,
) {
constructor(configure: TestCase.() -> Unit) : this() {
configure()
@@ -32,6 +33,13 @@ internal class MppFlagsMigrationIT : BaseGradleIT() {
companion object {
@OptIn(ExperimentalStdlibApi::class)
private val testCases = buildList {
add(TestCase {
hierarchiesByDefault = true
granularMetadataFlag = null
dependencyPropagationFlag = null
expectedToPass = true
notExpectedPhraseInOutput = "It is safe to remove the property."
})
add(TestCase {
hierarchiesByDefault = true
granularMetadataFlag = true
@@ -100,6 +108,7 @@ internal class MppFlagsMigrationIT : BaseGradleIT() {
Project("new-mpp-published").apply {
setupWorkingDir()
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
gradleProperties().delete()
}
}
@@ -128,6 +137,7 @@ internal class MppFlagsMigrationIT : BaseGradleIT() {
assertFailed()
testCase.expectedPhraseInOutput?.let { assertContains(it, ignoreCase = true) }
testCase.notExpectedPhraseInOutput?.let { assertDoesNotContain(it, ignoreCase = true) }
}
}
}
@@ -14,11 +14,13 @@ import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild
import org.jetbrains.kotlin.gradle.utils.getOrPut
internal fun handleHierarchicalStructureFlagsMigration(project: Project) {
SingleActionPerProject.run(project.rootProject, "handleHierarchicalStructureFlagsMigration - rootProject") {
doHandleHierarchicalStructureFlagsMigration(project.rootProject)
if (project.rootProject === project) {
SingleActionPerProject.run(project.rootProject, "handleHierarchicalStructureFlagsMigration - rootProject") {
doHandleHierarchicalStructureFlagsMigration(project.rootProject)
}
} else {
doHandleHierarchicalStructureFlagsMigration(project)
}
doHandleHierarchicalStructureFlagsMigration(project)
}
private fun doHandleHierarchicalStructureFlagsMigration(project: Project) {