From c3ec94ff8229c905bcfd4b83827844fc7256a7a1 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Mon, 22 Mar 2021 14:21:46 +0100 Subject: [PATCH] FIR: copied 2 more gradle incremental IT for FIR temporary, we need a proper test infrastructure to run all gradle IT with FIR --- .../kotlin/gradle/KotlinGradlePluginIT.kt | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) 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")