From 5d2739e6f0e40618982d5798a64292464f528583 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Thu, 7 Oct 2021 14:54:57 +0200 Subject: [PATCH] Extract BuildOptions into separate file. ^KT-45745 In Progress --- .../kotlin/gradle/testbase/BuildOptions.kt | 99 +++++++++++++++++++ .../kotlin/gradle/testbase/KGPBaseTest.kt | 91 ----------------- .../kotlin/gradle/testbase/testDsl.kt | 10 +- 3 files changed, 104 insertions(+), 96 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt 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 new file mode 100644 index 00000000000..1333abcf3e7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt @@ -0,0 +1,99 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.testbase + +import org.gradle.api.logging.LogLevel +import org.gradle.api.logging.configuration.WarningMode +import org.gradle.util.GradleVersion +import org.jetbrains.kotlin.gradle.BaseGradleIT + +data class BuildOptions( + val logLevel: LogLevel = LogLevel.INFO, + val kotlinVersion: String = TestVersions.Kotlin.CURRENT, + val warningMode: WarningMode = WarningMode.Fail, + val configurationCache: Boolean = false, + val projectIsolation: Boolean = false, + val configurationCacheProblems: BaseGradleIT.ConfigurationCacheProblems = BaseGradleIT.ConfigurationCacheProblems.FAIL, + val parallel: Boolean = true, + val incremental: Boolean? = null, + val maxWorkers: Int = (Runtime.getRuntime().availableProcessors() / 4 - 1).coerceAtLeast(2), + val fileSystemWatchEnabled: Boolean = false, + val buildCacheEnabled: Boolean = false, + val kaptOptions: KaptOptions? = null, + val androidVersion: String? = null +) { + data class KaptOptions( + val verbose: Boolean = false, + val useWorkers: Boolean = false, + val incrementalKapt: Boolean = false, + val includeCompileClasspath: Boolean = false, + val classLoadersCacheSize: Int? = null + ) + + fun toArguments( + gradleVersion: GradleVersion + ): List { + val arguments = mutableListOf() + when (logLevel) { + LogLevel.DEBUG -> arguments.add("--debug") + LogLevel.INFO -> arguments.add("--info") + LogLevel.WARN -> arguments.add("--warn") + LogLevel.QUIET -> arguments.add("--quiet") + else -> Unit + } + arguments.add("-Pkotlin_version=$kotlinVersion") + when (warningMode) { + WarningMode.Fail -> arguments.add("--warning-mode=fail") + WarningMode.All -> arguments.add("--warning-mode=all") + WarningMode.Summary -> arguments.add("--warning-mode=summary") + WarningMode.None -> arguments.add("--warning-mode=none") + } + + if (gradleVersion >= GradleVersion.version("6.6.0")) { + arguments.add("-Dorg.gradle.unsafe.configuration-cache=$configurationCache") + arguments.add("-Dorg.gradle.unsafe.configuration-cache-problems=${configurationCacheProblems.name.toLowerCase()}") + } + if (gradleVersion >= GradleVersion.version("7.1")) { + arguments.add("-Dorg.gradle.unsafe.isolated-projects=$projectIsolation") + } + if (parallel) { + arguments.add("--parallel") + arguments.add("--max-workers=$maxWorkers") + } else { + arguments.add("--no-parallel") + } + + if (incremental != null) { + arguments.add("-Pkotlin.incremental=$incremental") + } + + if (gradleVersion >= GradleVersion.version("6.5")) { + if (fileSystemWatchEnabled) { + arguments.add("--watch-fs") + } else { + arguments.add("--no-watch-fs") + } + } + + arguments.add(if (buildCacheEnabled) "--build-cache" else "--no-build-cache") + + if (kaptOptions != null) { + arguments.add("-Pkapt.verbose=${kaptOptions.verbose}") + arguments.add("-Pkapt.use.worker.api=${kaptOptions.useWorkers}") + arguments.add("-Pkapt.incremental.apt=${kaptOptions.incrementalKapt}") + arguments.add("-Pkapt.include.compile.classpath=${kaptOptions.includeCompileClasspath}") + kaptOptions.classLoadersCacheSize?.let { cacheSize -> + arguments.add("-Pkapt.classloaders.cache.size=$cacheSize") + } + } + + if (androidVersion != null) { + arguments.add("-Pandroid_tools_version=${androidVersion}") + } + + return arguments.toList() + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt index 8077d1feede..8f573ae467e 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt @@ -5,11 +5,8 @@ package org.jetbrains.kotlin.gradle.testbase -import org.gradle.api.logging.LogLevel -import org.gradle.api.logging.configuration.WarningMode import org.gradle.internal.impldep.org.junit.platform.commons.support.AnnotationSupport.findAnnotation import org.gradle.util.GradleVersion -import org.jetbrains.kotlin.gradle.BaseGradleIT import org.jetbrains.kotlin.test.WithMuteInDatabase import org.junit.jupiter.api.Tag import org.junit.jupiter.api.TestInstance @@ -33,94 +30,6 @@ abstract class KGPBaseTest { @TempDir lateinit var workingDir: Path - data class BuildOptions( - val logLevel: LogLevel = LogLevel.INFO, - val kotlinVersion: String = TestVersions.Kotlin.CURRENT, - val warningMode: WarningMode = WarningMode.Fail, - val configurationCache: Boolean = false, - val projectIsolation: Boolean = false, - val configurationCacheProblems: BaseGradleIT.ConfigurationCacheProblems = BaseGradleIT.ConfigurationCacheProblems.FAIL, - val parallel: Boolean = true, - val incremental: Boolean? = null, - val maxWorkers: Int = (Runtime.getRuntime().availableProcessors() / 4 - 1).coerceAtLeast(2), - val fileSystemWatchEnabled: Boolean = false, - val buildCacheEnabled: Boolean = false, - val kaptOptions: KaptOptions? = null, - val androidVersion: String? = null - ) { - data class KaptOptions( - val verbose: Boolean = false, - val useWorkers: Boolean = false, - val incrementalKapt: Boolean = false, - val includeCompileClasspath: Boolean = false, - val classLoadersCacheSize: Int? = null - ) - - fun toArguments( - gradleVersion: GradleVersion - ): List { - val arguments = mutableListOf() - when (logLevel) { - LogLevel.DEBUG -> arguments.add("--debug") - LogLevel.INFO -> arguments.add("--info") - LogLevel.WARN -> arguments.add("--warn") - LogLevel.QUIET -> arguments.add("--quiet") - else -> Unit - } - arguments.add("-Pkotlin_version=$kotlinVersion") - when (warningMode) { - WarningMode.Fail -> arguments.add("--warning-mode=fail") - WarningMode.All -> arguments.add("--warning-mode=all") - WarningMode.Summary -> arguments.add("--warning-mode=summary") - WarningMode.None -> arguments.add("--warning-mode=none") - } - - if (gradleVersion >= GradleVersion.version("6.6.0")) { - arguments.add("-Dorg.gradle.unsafe.configuration-cache=$configurationCache") - arguments.add("-Dorg.gradle.unsafe.configuration-cache-problems=${configurationCacheProblems.name.toLowerCase()}") - } - if (gradleVersion >= GradleVersion.version("7.1")) { - arguments.add("-Dorg.gradle.unsafe.isolated-projects=$projectIsolation") - } - if (parallel) { - arguments.add("--parallel") - arguments.add("--max-workers=$maxWorkers") - } else { - arguments.add("--no-parallel") - } - - if (incremental != null) { - arguments.add("-Pkotlin.incremental=$incremental") - } - - if (gradleVersion >= GradleVersion.version("6.5")) { - if (fileSystemWatchEnabled) { - arguments.add("--watch-fs") - } else { - arguments.add("--no-watch-fs") - } - } - - arguments.add(if (buildCacheEnabled) "--build-cache" else "--no-build-cache") - - if (kaptOptions != null) { - arguments.add("-Pkapt.verbose=${kaptOptions.verbose}") - arguments.add("-Pkapt.use.worker.api=${kaptOptions.useWorkers}") - arguments.add("-Pkapt.incremental.apt=${kaptOptions.incrementalKapt}") - arguments.add("-Pkapt.include.compile.classpath=${kaptOptions.includeCompileClasspath}") - kaptOptions.classLoadersCacheSize?.let { cacheSize -> - arguments.add("-Pkapt.classloaders.cache.size=$cacheSize") - } - } - - if (androidVersion != null) { - arguments.add("-Pandroid_tools_version=${androidVersion}") - } - - return arguments.toList() - } - } - class GradleArgumentsProvider : ArgumentsProvider { override fun provideArguments( context: ExtensionContext 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 9a30f9de692..f2487c3c6f6 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 @@ -28,7 +28,7 @@ import kotlin.test.assertTrue fun KGPBaseTest.project( projectName: String, gradleVersion: GradleVersion, - buildOptions: KGPBaseTest.BuildOptions = defaultBuildOptions, + buildOptions: BuildOptions = defaultBuildOptions, forceOutput: Boolean = false, enableBuildScan: Boolean = false, addHeapDumpOptions: Boolean = true, @@ -80,7 +80,7 @@ fun TestProject.build( enableGradleDebug: Boolean = this.enableGradleDebug, enableBuildCacheDebug: Boolean = false, enableBuildScan: Boolean = this.enableBuildScan, - buildOptions: KGPBaseTest.BuildOptions = this.buildOptions, + buildOptions: BuildOptions = this.buildOptions, assertions: BuildResult.() -> Unit = {} ) { if (enableBuildScan) agreeToBuildScanService() @@ -112,7 +112,7 @@ fun TestProject.buildAndFail( enableGradleDebug: Boolean = this.enableGradleDebug, enableBuildCacheDebug: Boolean = false, enableBuildScan: Boolean = this.enableBuildScan, - buildOptions: KGPBaseTest.BuildOptions = this.buildOptions, + buildOptions: BuildOptions = this.buildOptions, assertions: BuildResult.() -> Unit = {} ) { if (enableBuildScan) agreeToBuildScanService() @@ -183,7 +183,7 @@ class TestProject( val gradleRunner: GradleRunner, projectName: String, projectPath: Path, - val buildOptions: KGPBaseTest.BuildOptions, + val buildOptions: BuildOptions, val gradleVersion: GradleVersion, val enableGradleDebug: Boolean, val forceOutput: Boolean, @@ -194,7 +194,7 @@ class TestProject( private fun commonBuildSetup( buildArguments: List, - buildOptions: KGPBaseTest.BuildOptions, + buildOptions: BuildOptions, enableBuildCacheDebug: Boolean, enableBuildScan: Boolean, gradleVersion: GradleVersion