From a6436adc17b21fb11925b6949a686b987230b40f Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Wed, 3 Nov 2021 10:56:47 +0100 Subject: [PATCH] Add KGPDaemonsBaseTest class as test base for daemons test. This class will stop Gradle and Kotlin daemons after each test execution. ^KT-45745 In Progress --- .../kotlin/gradle/GradleDaemonMemoryIT.kt | 9 +-------- .../kotlin/gradle/Kapt3AndGradleDaemon.kt | 8 +------- .../kotlin/gradle/KotlinDaemonJvmArgsTest.kt | 9 +-------- .../gradle/testbase/KGPDaemonsBaseTest.kt | 19 +++++++++++++++++++ 4 files changed, 22 insertions(+), 23 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPDaemonsBaseTest.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/GradleDaemonMemoryIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/GradleDaemonMemoryIT.kt index 4d9eee480bb..1e99fc255e6 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/GradleDaemonMemoryIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/GradleDaemonMemoryIT.kt @@ -14,17 +14,10 @@ import org.junit.jupiter.api.DisplayName import kotlin.test.assertTrue @DisplayName("Gradle daemon memory leak") -@DaemonsGradlePluginTests -class GradleDaemonMemoryIT : KGPBaseTest() { +class GradleDaemonMemoryIT : KGPDaemonsBaseTest() { override val defaultBuildOptions: BuildOptions get() = super.defaultBuildOptions.copy(logLevel = LogLevel.DEBUG) - @AfterEach - fun tearDown() { - // Stops Gradle and Kotlin daemons, so new run will start them again - ConnectorServices.reset() - } - // For corresponding documentation, see https://docs.gradle.org/current/userguide/gradle_daemon.html // Setting user.variant to different value implies a new daemon process will be created. // In order to stop daemon process, special exit task is used ( System.exit(0) ). diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt index d4f4d5b84b4..afb2f79750e 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt @@ -14,7 +14,7 @@ import org.junit.jupiter.api.DisplayName @DisplayName("Kapt caching inside Gradle daemon") @DaemonsGradlePluginTests -class Kapt3AndGradleDaemon : KGPBaseTest() { +class Kapt3AndGradleDaemon : KGPDaemonsBaseTest() { override val defaultBuildOptions: BuildOptions = super.defaultBuildOptions .copy( @@ -25,12 +25,6 @@ class Kapt3AndGradleDaemon : KGPBaseTest() { ) ) - @AfterEach - internal fun tearDown() { - // Stops Gradle and Kotlin daemon, so new run will pick up new jvm arguments - ConnectorServices.reset() - } - @DisplayName("Javac should be loaded only once") @GradleTest fun testJavacIsLoadedOnce(gradleVersion: GradleVersion) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinDaemonJvmArgsTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinDaemonJvmArgsTest.kt index a10974c3bc2..f20b49487a2 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinDaemonJvmArgsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinDaemonJvmArgsTest.kt @@ -13,18 +13,11 @@ import org.jetbrains.kotlin.gradle.testbase.* import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.DisplayName -@DaemonsGradlePluginTests @DisplayName("Kotlin daemon JVM args") -class KotlinDaemonJvmArgsTest : KGPBaseTest() { +class KotlinDaemonJvmArgsTest : KGPDaemonsBaseTest() { override val defaultBuildOptions: BuildOptions get() = super.defaultBuildOptions.copy(logLevel = LogLevel.DEBUG) - @AfterEach - internal fun tearDown() { - // Stops Gradle and Kotlin daemon, so new run will pick up new jvm arguments - ConnectorServices.reset() - } - @GradleTest @DisplayName("Kotlin daemon by default should inherit Gradle daemon max jvm heap size") internal fun shouldInheritGradleDaemonArgsByDefault(gradleVersion: GradleVersion) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPDaemonsBaseTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPDaemonsBaseTest.kt new file mode 100644 index 00000000000..0b41b82ff62 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPDaemonsBaseTest.kt @@ -0,0 +1,19 @@ +/* + * 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.tooling.internal.consumer.ConnectorServices +import org.junit.jupiter.api.AfterEach + +@DaemonsGradlePluginTests +abstract class KGPDaemonsBaseTest : KGPBaseTest() { + + @AfterEach + internal open fun tearDown() { + // Stops Gradle and Kotlin daemon, so new run will pick up new jvm arguments + ConnectorServices.reset() + } +} \ No newline at end of file