diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt index 5cd2ddd6616..4b3510e3e7d 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt @@ -174,6 +174,32 @@ class KotlinGradleIT : BaseGradleIT() { } } + @Test + fun testIncrementalFir() { + val project = Project("kotlinProject") + val options = defaultBuildOptions().copy(incremental = true, useFir = true) + + project.build("build", options = options) { + assertSuccessful() + assertNoWarnings() + } + + val greeterKt = project.projectDir.getFileByName("Greeter.kt") + greeterKt.modify { + it.replace("greeting: String", "greeting: CharSequence") + } + + project.build("build", options = options) { + assertSuccessful() + assertNoWarnings() + val affectedSources = project.projectDir.getFilesByNames( + "Greeter.kt", "KotlinGreetingJoiner.kt", + "TestGreeter.kt", "TestKotlinGreetingJoiner.kt" + ) + assertCompiledKotlinSources(project.relativize(affectedSources)) + } + } + @Test fun testManyClassesIC() { val project = Project("manyClasses") @@ -452,6 +478,27 @@ class KotlinGradleIT : BaseGradleIT() { } } + @Test + fun testIncrementalFirTestCompile() { + val project = Project("kotlinProject") + val options = defaultBuildOptions().copy(incremental = true, useFir = true) + + project.build("build", options = options) { + assertSuccessful() + } + + val joinerKt = project.projectDir.getFileByName("KotlinGreetingJoiner.kt") + joinerKt.modify { + it.replace("class KotlinGreetingJoiner", "internal class KotlinGreetingJoiner") + } + + project.build("build", options = options) { + assertSuccessful() + val testJoinerKt = project.projectDir.getFileByName("TestKotlinGreetingJoiner.kt") + assertCompiledKotlinSources(project.relativize(joinerKt, testJoinerKt)) + } + } + @Test fun testLanguageVersionApiVersionExplicit() { val project = Project("kotlinProject")