diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index 0fc081d0c38..256b4960f2b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -1124,6 +1124,31 @@ abstract class AbstractKotlinAndroidGradleTests : BaseGradleIT() { } } + @Test + fun testAndroidExtensionsIncremental() { + val project = Project("AndroidExtensionsProject") + val options = defaultBuildOptions().copy(incremental = true, useClasspathSnapshot = true) + + project.build("assembleDebug", options = options) { + assertSuccessful() + val affectedSources = project.projectDir.getFilesByNames( + "MyActivity.kt", "noLayoutUsages.kt" + ) + val relativePaths = project.relativize(affectedSources) + assertCompiledKotlinSources(relativePaths) + } + + val activityLayout = File(project.projectDir, "app/src/main/res/layout/activity_main.xml") + activityLayout.modify { it.replace("textView", "newTextView") } + + project.build("assembleDebug", options = options) { + assertFailed() + val affectedSources = project.projectDir.getFilesByNames("MyActivity.kt") + val relativePaths = project.relativize(affectedSources) + assertCompiledKotlinSources(relativePaths) + } + } + @Test fun testAndroidExtensionsManyVariants() { val project = Project("AndroidExtensionsManyVariants")