migrated CInteropIdeaSyncIT to junit5 and gradle TestKit
#KT-51553 Co-authored-by: Alexander Likhachev <me@alikhachev.com> Merge-request: KT-MR-9599 Merged-by: Dmitrii Krasnov <Dmitrii.Krasnov@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
58143a2006
commit
c3bfe72394
+26
-27
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user