[Gradle] Add test checking '.attribute(key, attr)' method is not used
We want to prevent usages of 'AttributeContainer.attribute(key, attr)' method in our codebase. ^KT-60664 Verification Pending
This commit is contained in:
committed by
Space Team
parent
dbd77fc785
commit
0e98eb5bb4
@@ -167,6 +167,7 @@ class CodeConformanceTest : TestCase() {
|
||||
}
|
||||
|
||||
val atAuthorPattern = Pattern.compile("/\\*.+@author.+\\*/", Pattern.DOTALL)
|
||||
val gradleEagerAttributeMethodRegex = "\\.attribute\\(.+,.+\\)".toRegex()
|
||||
|
||||
@Suppress("SpellCheckingInspection") val tests = listOf(
|
||||
FileTestCase(
|
||||
@@ -218,6 +219,29 @@ class CodeConformanceTest : TestCase() {
|
||||
"These files are affected:\n%s",
|
||||
) { _, source ->
|
||||
"gnu.trove" in source
|
||||
},
|
||||
FileTestCase(
|
||||
message = """
|
||||
|KT-60644: Using Gradle 'AttributeContainer.attribute(key, value)' method leads to eager tasks creation in Kotlin
|
||||
|Gradle plugin. Please use instead for KGP code 'HasAttributes.setAttributeProvider' or 'HasAttributes.setAttribute'
|
||||
|(for simple values) extension methods and for other code 'AttributeContainer.attributeProvider(key, provider { value })'.
|
||||
|
|
||||
|%d files are affected. Please update these files or exclude them in this test:
|
||||
|%s
|
||||
""".trimMargin(),
|
||||
allowedFiles = listOf(
|
||||
"libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/gradleAttributesContainerUtils.kt",
|
||||
"libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/internal/AttributesConfigurationHelperG6.kt",
|
||||
"libraries/tools/kotlin-gradle-plugin/src/gradle71/kotlin/org/jetbrains/kotlin/gradle/plugin/internal/AttributesConfigurationHelperG71.kt",
|
||||
"libraries/tools/kotlin-gradle-plugin/src/gradle70/kotlin/org/jetbrains/kotlin/gradle/plugin/internal/AttributesConfigurationHelperG70.kt",
|
||||
"libraries/tools/kotlin-gradle-plugin/src/gradle74/kotlin/org/jetbrains/kotlin/gradle/plugin/internal/AttributesConfigurationHelperG74.kt",
|
||||
"libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt",
|
||||
"libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt",
|
||||
"libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/AndroidAndJavaConsumeMppLibIT.kt",
|
||||
"repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/plugins/CustomVariantPublishingDsl.kt",
|
||||
)
|
||||
) { _, source ->
|
||||
gradleEagerAttributeMethodRegex.containsMatchIn(source)
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user