From cdb04f9cd76e2978e8846c5dd0b5dc6a1e0689a3 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Thu, 27 May 2021 11:54:28 +0200 Subject: [PATCH] Add 'kgpSimpleTests' task. This task run all JUnit5 tests with annotated with '@SimpleKGPTests` annotation and also will be used in CI configuration. ^KT-45745 In Progress --- .../build.gradle.kts | 48 ++++++++++++++----- .../kotlin/gradle/KotlinJavaToolchainTest.kt | 2 + .../kotlin/gradle/SimpleKotlinGradleIT.kt | 2 +- .../kotlin/gradle/testbase/testTags.kt | 16 +++++++ 4 files changed, 54 insertions(+), 14 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testTags.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts index ac4014a021f..0d940e5e3fb 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts @@ -159,8 +159,22 @@ if (isTeamcityBuild) { } } +val KGP_TEST_TASKS_GROUP = "Kotlin Gradle Plugin Verification" + +val simpleTestsTask = tasks.register("kgpSimpleTests") { + group = KGP_TEST_TASKS_GROUP + description = "Run only simple tests for Kotlin Gradle Plugin" + maxParallelForks = (Runtime.getRuntime().availableProcessors() / 4).coerceAtLeast(1) + + useJUnitPlatform { + includeTags("SimpleKGP") + includeEngines("junit-jupiter") + } +} + tasks.named("check") { dependsOn("testAdvanceGradleVersion") + dependsOn(simpleTestsTask) if (isTeamcityBuild) { dependsOn("testAdvanceGradleVersionMppAndAndroid") dependsOn("testMppAndAndroid") @@ -170,6 +184,17 @@ tasks.named("check") { } } +val kgpJunit5Tests = tasks.register("kgpJunit5Tests") { + group = KGP_TEST_TASKS_GROUP + description = "Run only JUnit 5 tests for Kotlin Gradle Plugin" + maxParallelForks = (Runtime.getRuntime().availableProcessors() / 4).coerceAtLeast(1) + + useJUnitPlatform { + includeTags("JUnit5") + includeEngines("junit-jupiter") + } +} + tasks.withType { kotlinOptions.jdkHome = rootProject.extra["JDK_18"] as String kotlinOptions.jvmTarget = "1.8" @@ -197,8 +222,16 @@ tasks.withType { useAndroidSdk() - maxHeapSize = "512m" - useJUnitPlatform() + val shouldApplyJunitPlatform = name !in setOf( + simpleTestsTask.name, + kgpJunit5Tests.name + ) + if (shouldApplyJunitPlatform) { + maxHeapSize = "512m" + useJUnitPlatform { + includeEngines("junit-vintage") + } + } testLogging { // set options for log level LIFECYCLE @@ -233,14 +266,3 @@ tasks.withType { }) } } - -tasks.register("kgpJunit5Tests") { - group = "Verification" - description = "Run only JUnit 5 tests for Kotlin Gradle Plugin" - maxParallelForks = (Runtime.getRuntime().availableProcessors() / 4).coerceAtLeast(1) - - useJUnitPlatform { - includeTags("JUnit5") - includeEngines("junit-jupiter") - } -} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt index 813deb9378b..69cf00b866e 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt @@ -14,6 +14,8 @@ import org.jetbrains.kotlin.gradle.testbase.* import org.junit.jupiter.api.DisplayName import java.io.File +@SimpleGradlePluginPTests +@DisplayName("Kotlin Java Toolchain support") class KotlinJavaToolchainTest : KGPBaseTest() { @GradleTest diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt index a8b495dd57d..eef21074787 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt @@ -5,8 +5,8 @@ import org.gradle.api.logging.configuration.WarningMode import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.testbase.* import org.junit.jupiter.api.DisplayName -import org.junit.jupiter.api.Tag +@SimpleGradlePluginPTests @DisplayName("KGP simple tests") class SimpleKotlinGradleIT : KGPBaseTest() { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testTags.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testTags.kt new file mode 100644 index 00000000000..e8773547afd --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testTags.kt @@ -0,0 +1,16 @@ +/* + * 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.junit.jupiter.api.Tag + +/** + * Add it to test classes performing simple KGP checks. + */ +@Target(AnnotationTarget.CLASS, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.FUNCTION) +@Retention(AnnotationRetention.RUNTIME) +@Tag("SimpleKGP") +annotation class SimpleGradlePluginPTests