diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ProjectIsolationIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ProjectIsolationIT.kt index 8d06fa2bcf1..beedf962907 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ProjectIsolationIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ProjectIsolationIT.kt @@ -28,4 +28,20 @@ class ProjectIsolationIT : KGPBaseTest() { build(":main-project:compileKotlin") } } + + @DisplayName("project with buildSrc should be compatible with project isolation") + @GradleTestVersions( + minVersion = TestVersions.Gradle.G_7_4 + ) + @JvmGradlePluginTests + @GradleTest + fun testProjectIsolationWithBuildSrc(gradleVersion: GradleVersion) { + project( + projectName = "kt-63990-buildSrcWithKotlinJvmPlugin", + gradleVersion = gradleVersion, + buildOptions = defaultBuildOptions.copy(configurationCache = null) + ) { + build("tasks") + } + } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt index 60ffdc04b50..8770086ebad 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt @@ -24,7 +24,7 @@ data class BuildOptions( val stacktraceMode: String? = StacktraceOption.FULL_STACKTRACE_LONG_OPTION, val kotlinVersion: String = TestVersions.Kotlin.CURRENT, val warningMode: WarningMode = WarningMode.Fail, - val configurationCache: Boolean = false, + val configurationCache: Boolean? = false, //null value is only for cases, when project isolation is used without configuration cache. Otherwise Gradle runner will throw exception "The configuration cache cannot be disabled when isolated projects is enabled." val projectIsolation: Boolean = false, val configurationCacheProblems: BaseGradleIT.ConfigurationCacheProblems = BaseGradleIT.ConfigurationCacheProblems.FAIL, val parallel: Boolean = true, @@ -117,8 +117,10 @@ data class BuildOptions( WarningMode.None -> arguments.add("--warning-mode=none") } - arguments.add("-Dorg.gradle.unsafe.configuration-cache=$configurationCache") - arguments.add("-Dorg.gradle.unsafe.configuration-cache-problems=${configurationCacheProblems.name.lowercase(Locale.getDefault())}") + if (configurationCache != null) { + arguments.add("-Dorg.gradle.unsafe.configuration-cache=$configurationCache") + arguments.add("-Dorg.gradle.unsafe.configuration-cache-problems=${configurationCacheProblems.name.lowercase(Locale.getDefault())}") + } if (gradleVersion >= GradleVersion.version("7.1")) { arguments.add("-Dorg.gradle.unsafe.isolated-projects=$projectIsolation") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/build.gradle.kts new file mode 100644 index 00000000000..d18c3d33a15 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/build.gradle.kts @@ -0,0 +1,2 @@ +plugins { +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/buildSrc/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/buildSrc/build.gradle.kts new file mode 100644 index 00000000000..4912c7d9bee --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/buildSrc/build.gradle.kts @@ -0,0 +1,9 @@ +plugins { + kotlin("jvm") +} + +repositories { + mavenLocal() + mavenCentral() + gradlePluginPortal() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/buildSrc/src/main/kotlin/my-conventions.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/buildSrc/src/main/kotlin/my-conventions.gradle.kts new file mode 100644 index 00000000000..e69de29bb2d