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 53fc2efd95f..fdadf7dc1f6 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 @@ -208,6 +208,28 @@ class KotlinGradleIT : BaseGradleIT() { } } + @Test + fun testManyClassesIC() { + val project = Project("manyClasses") + val options = defaultBuildOptions().copy(incremental = true) + + project.setupWorkingDir() + val classesKt = project.projectFile("classes.kt") + classesKt.writeText((0..1024).joinToString("\n") { "class Class$it { fun f() = $it }" }) + + project.build("build", options = options) { + assertSuccessful() + assertNoWarnings() + } + + val dummyKt = project.projectFile("dummy.kt") + dummyKt.modify { "$it " } + project.build("build", options = options) { + assertSuccessful() + assertCompiledKotlinSources(project.relativize(dummyKt)) + } + } + @Test fun testSimpleMultiprojectIncremental() { val incremental = defaultBuildOptions().copy(incremental = true) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/build.gradle new file mode 100644 index 00000000000..45130da1cf1 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/build.gradle @@ -0,0 +1,20 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +apply plugin: "kotlin" + +repositories { + mavenLocal() + mavenCentral() +} + +dependencies { + compile "org.jetbrains.kotlin:kotlin-runtime:$kotlin_version" +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/gradle.properties new file mode 100644 index 00000000000..93ce6a94e63 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/gradle.properties @@ -0,0 +1 @@ +org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=512m \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/src/main/kotlin/classes.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/src/main/kotlin/classes.kt new file mode 100644 index 00000000000..d8ee4579e97 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/src/main/kotlin/classes.kt @@ -0,0 +1,7 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +// Actual classes are generated in KotlinGradleIT.testManyClasses + \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/src/main/kotlin/dummy.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/src/main/kotlin/dummy.kt new file mode 100644 index 00000000000..5e12b20a9fd --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/manyClasses/src/main/kotlin/dummy.kt @@ -0,0 +1,10 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package foo + +fun dummy() { +} +