From c3bfe723942f9317c8b916d92297e86b676f9727 Mon Sep 17 00:00:00 2001 From: Dmitrii Krasnov Date: Thu, 20 Apr 2023 09:48:20 +0000 Subject: [PATCH] migrated CInteropIdeaSyncIT to junit5 and gradle TestKit #KT-51553 Co-authored-by: Alexander Likhachev Merge-request: KT-MR-9599 Merged-by: Dmitrii Krasnov --- .../gradle/native/CInteropIdeaSyncIT.kt | 53 +++++++++---------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CInteropIdeaSyncIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CInteropIdeaSyncIT.kt index 60a985463f5..6343e4f1a15 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CInteropIdeaSyncIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CInteropIdeaSyncIT.kt @@ -1,35 +1,38 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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. */ package org.jetbrains.kotlin.gradle.native -import org.jetbrains.kotlin.gradle.BaseGradleIT -import kotlin.test.Test +import org.gradle.util.GradleVersion +import org.jetbrains.kotlin.gradle.testbase.* +import org.jetbrains.kotlin.konan.file.File +import org.junit.jupiter.api.DisplayName +import kotlin.io.path.writeText -class CInteropIdeaSyncIT : BaseGradleIT() { +@DisplayName("Tests for the K/N CInterop tool during IDEA project import") +@NativeGradlePluginTests +class CInteropIdeaSyncIT : KGPBaseTest() { - private val ideaSyncBuildOptions = defaultBuildOptions().copy( - freeCommandLineArgs = listOf("-Didea.sync.active=true") - ) + private val ideaSyncBuildOptions = defaultBuildOptions.copy(freeArgs = listOf("-Didea.sync.active=true")) - @Test - fun `test failing cinterop warning`() { + @DisplayName("Idea sync warning failing cinterop warning") + @GradleTest + fun shouldPrintWarningForCInteroperability(gradleVersion: GradleVersion) { val ideaSyncWarningMessage = "Warning: Failed to generate cinterop for :cinteropSampleInteropNative" val interopTaskName = ":cinteropSampleInteropNative" - with(Project("cinterop-failing")) { + nativeProject("cinterop-failing", gradleVersion) { /* Task still fails on 'normal' builds */ - build("commonize") { + buildAndFail("commonize") { assertTasksFailed(interopTaskName) } /* Task failure is just a warning during import */ - build("commonize", options = ideaSyncBuildOptions) { - assertSuccessful() + build("commonize", buildOptions = ideaSyncBuildOptions) { assertTasksExecuted(interopTaskName) - assertContains(ideaSyncWarningMessage) + assertOutputContains(ideaSyncWarningMessage) } /* @@ -46,35 +49,31 @@ class CInteropIdeaSyncIT : BaseGradleIT() { */ runCatching { /* Task is not considered up-to-date after lenient failure */ - build("commonize", options = ideaSyncBuildOptions) { - assertSuccessful() + build("commonize", buildOptions = ideaSyncBuildOptions) { assertTasksExecuted(interopTaskName) - assertContains(ideaSyncWarningMessage) + assertOutputContains(ideaSyncWarningMessage) } } /* Remove noise that causes failure */ - projectDir.resolve("src/nativeInterop/cinterop/sampleInteropNoise.h").writeText("") + projectPath.resolve("src/nativeInterop/cinterop/sampleInteropNoise.h").writeText("") - build("commonize", options = ideaSyncBuildOptions) { - assertSuccessful() + build("commonize", buildOptions = ideaSyncBuildOptions) { assertTasksExecuted(interopTaskName) - assertNotContains(ideaSyncWarningMessage) + assertOutputDoesNotContain(ideaSyncWarningMessage) } /* Task is considered up-to-date after first successful run */ - build("commonize", options = ideaSyncBuildOptions) { - assertSuccessful() + build("commonize", buildOptions = ideaSyncBuildOptions) { assertTasksUpToDate(interopTaskName) - assertNotContains(ideaSyncWarningMessage) + assertOutputDoesNotContain(ideaSyncWarningMessage) } /* Task is still considered up-to-date after successful run in idea sync */ build("commonize") { - assertSuccessful() assertTasksUpToDate(interopTaskName) - assertNotContains(ideaSyncWarningMessage) + assertOutputDoesNotContain(ideaSyncWarningMessage) } } } -} +} \ No newline at end of file