From e8a7c53dde423b1c27973b785f672d586caf862d Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Mon, 14 Aug 2023 23:30:46 +0200 Subject: [PATCH] [Gradle] Use for Gradle IT tests custom location for kotlin.user.home Such way, we could easily clean all persistent storage produced by test runs. ^KT-58223 In Progress --- .../test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt | 4 ++-- .../org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt | 6 ++++++ .../kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt index 94c1f402b04..292876ad74a 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt @@ -172,7 +172,7 @@ open class CommonizerIT : KGPBaseTest() { gradleVersion: GradleVersion, @TempDir tempDir: Path, ) { - nativeProject("commonizeCurlInterop", gradleVersion) { + nativeProject("commonizeCurlInterop", gradleVersion, buildOptions = defaultBuildOptions.copy(kotlinUserHome = null)) { configureCommonizerTargets() @@ -546,7 +546,7 @@ open class CommonizerIT : KGPBaseTest() { gradleVersion: GradleVersion, @TempDir tempDir: Path, ) { - nativeProject("commonizeCurlInterop", gradleVersion) { + nativeProject("commonizeCurlInterop", gradleVersion, buildOptions = defaultBuildOptions.copy(kotlinUserHome = null)) { gradleProperties.append("kotlin.user.home=${tempDir.absolutePathString()}") configureCommonizerTargets() 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 a6fe8bf3501..955558fbdc5 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 @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.gradle.report.BuildReportType import org.junit.jupiter.api.condition.OS import java.nio.file.Path import java.util.* +import kotlin.io.path.absolutePathString data class BuildOptions( val logLevel: LogLevel = LogLevel.INFO, @@ -53,6 +54,7 @@ data class BuildOptions( val compilerExecutionStrategy: KotlinCompilerExecutionStrategy? = null, val runViaBuildToolsApi: Boolean? = null, val konanDataDir: Path? = konanDir, // null can be used only if you are using custom 'kotlin.native.home' or 'org.jetbrains.kotlin.native.home' property instead of konanDir + val kotlinUserHome: Path? = testKitDir.resolve(".kotlin"), ) { val isK2ByDefault get() = KotlinVersion.DEFAULT >= KotlinVersion.KOTLIN_2_0 @@ -217,6 +219,10 @@ data class BuildOptions( arguments.add("-Pkonan.data.dir=${konanDataDir.toAbsolutePath().normalize()}") } + if (kotlinUserHome != null) { + arguments.add("-Pkotlin.user.home=${kotlinUserHome.absolutePathString()}") + } + arguments.addAll(freeArgs) return arguments.toList() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt index 51f9d6deb8b..ac2a30dc31c 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt @@ -489,7 +489,7 @@ val konanDir /** * On changing test kit dir location update related location in 'cleanTestKitCache' task. */ -private val testKitDir get() = Paths.get(".").resolve("build").resolve("testKitCache") +internal val testKitDir get() = Paths.get(".").resolve("build").resolve("testKitCache") private val hashAlphabet: List = ('a'..'z') + ('A'..'Z') + ('0'..'9') private fun randomHash(length: Int = 15): String {