From 0ad8407b5783f0a1f9898ecd9aec8b6b01e95d36 Mon Sep 17 00:00:00 2001 From: Timofey Solonin Date: Thu, 20 Jul 2023 20:56:31 +0200 Subject: [PATCH] [MPP] Add TargetPreset APIs deprecation tests ^KT-59321 --- .../gradle/testbase/diagnosticsAssertions.kt | 1 + .../TargetPresetDeprecationTest.kt | 66 +++++++++++++++++++ .../PresetDeprecation-createTarget.txt | 1 + .../PresetDeprecation-fromPreset.txt | 1 + .../PresetDeprecation-targetFromPreset.txt | 1 + 5 files changed, 70 insertions(+) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/diagnosticsTests/TargetPresetDeprecationTest.kt create mode 100644 libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-createTarget.txt create mode 100644 libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-fromPreset.txt create mode 100644 libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-targetFromPreset.txt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/diagnosticsAssertions.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/diagnosticsAssertions.kt index b8723c410d4..3bd61bee4d9 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/diagnosticsAssertions.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/diagnosticsAssertions.kt @@ -9,6 +9,7 @@ import org.gradle.testkit.runner.BuildResult import org.jetbrains.kotlin.gradle.BaseGradleIT import org.jetbrains.kotlin.gradle.internals.VERBOSE_DIAGNOSTIC_SEPARATOR import org.jetbrains.kotlin.gradle.plugin.diagnostics.ToolingDiagnosticFactory +import kotlin.test.assertEquals import kotlin.test.assertNull import kotlin.test.assertTrue diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/diagnosticsTests/TargetPresetDeprecationTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/diagnosticsTests/TargetPresetDeprecationTest.kt new file mode 100644 index 00000000000..d4a6b600299 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/diagnosticsTests/TargetPresetDeprecationTest.kt @@ -0,0 +1,66 @@ +/* + * Copyright 2010-2023 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. + */ + +@file:Suppress("DEPRECATION", "FunctionName") + +package org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests + +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jetbrains.kotlin.gradle.util.assertNoDiagnostics +import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP +import org.jetbrains.kotlin.gradle.util.checkDiagnostics +import org.jetbrains.kotlin.gradle.util.kotlin +import kotlin.test.* + +class TargetPresetDeprecationTest { + + @Test + fun `targetFromPreset usage - emits TargetFromPreset diagnostic`() = checkDiagnostics( + "PresetDeprecation-targetFromPreset" + ) { + targetFromPreset(presets.getByName("jvm")) + } + + @Test + fun `targets fromPreset usage - emits FromPreset diagnostic`() = checkDiagnostics( + "PresetDeprecation-fromPreset" + ) { + targets { + fromPreset(presets.getByName("jvm"), "jvm") + } + } + + @Test + fun `presets createTarget usage - emits CreateTarget diagnostic`() = checkDiagnostics( + "PresetDeprecation-createTarget" + ) { + targets.add(presets.getByName("jvm").createTarget("jvm")) + } + + @Test + fun `creating target properly - doesn't emit any diagnostics`() = checkDiagnostics( + null + ) { + jvm() + } + + private fun checkDiagnostics( + diagnostic: String?, + configure: KotlinMultiplatformExtension.() -> Unit, + ) { + val project = buildProjectWithMPP { + kotlin { + configure() + } + } + project.evaluate() + if (diagnostic != null) { + project.checkDiagnostics(diagnostic) + } else { + project.assertNoDiagnostics() + } + } + +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-createTarget.txt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-createTarget.txt new file mode 100644 index 00000000000..c5766f2fd56 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-createTarget.txt @@ -0,0 +1 @@ +[CreateTarget | WARNING] The KotlinTargetPreset.createTarget() API is deprecated and will be removed in future releases. Learn how to configure targets at: https://kotl.in/target-configuration diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-fromPreset.txt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-fromPreset.txt new file mode 100644 index 00000000000..c7394f71a15 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-fromPreset.txt @@ -0,0 +1 @@ +[FromPreset | WARNING] The fromPreset() API is deprecated and will be removed in future releases. Learn how to configure targets at: https://kotl.in/target-configuration diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-targetFromPreset.txt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-targetFromPreset.txt new file mode 100644 index 00000000000..902c1d8116e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/resources/expectedDiagnostics/PresetDeprecation-targetFromPreset.txt @@ -0,0 +1 @@ +[TargetFromPreset | WARNING] The targetFromPreset() API is deprecated and will be removed in future releases. Learn how to configure targets at: https://kotl.in/target-configuration