From c6bf5b8ef1a96503dfd5dd2f49eaa6d2165c9e70 Mon Sep 17 00:00:00 2001 From: Andrey Yastrebov Date: Thu, 14 Dec 2023 18:15:38 +0100 Subject: [PATCH] KT-63592 Add testGenerateLLDBInitFile test --- .../kotlin/gradle/native/GeneralNativeIT.kt | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt index 6b5b76efa94..bd2820bc1a5 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/GeneralNativeIT.kt @@ -18,20 +18,17 @@ import org.jetbrains.kotlin.gradle.util.capitalize import org.jetbrains.kotlin.gradle.util.replaceText import org.jetbrains.kotlin.gradle.util.runProcess import org.jetbrains.kotlin.konan.target.* -import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.condition.OS import org.junit.jupiter.api.io.TempDir import java.nio.file.Path -import java.util.* import kotlin.io.path.absolutePathString import kotlin.io.path.appendText import kotlin.io.path.deleteIfExists -import kotlin.io.path.readText +import kotlin.io.path.readLines import kotlin.test.assertEquals import kotlin.test.assertTrue -import kotlin.test.fail @DisplayName("Tests for general K/N builds") @NativeGradlePluginTests @@ -365,6 +362,32 @@ class GeneralNativeIT : KGPBaseTest() { ) } + @DisplayName("Checks generating lldbinit file") + @GradleTest + fun testGenerateLLDBInitFile(gradleVersion: GradleVersion) { + nativeProject("native-binaries/frameworks", gradleVersion = gradleVersion) { + val lldbPath = projectPath.resolve("build").resolve("lldbinit") + + build(":setupLldbScript") { + assertFileInProjectExists(lldbPath.absolutePathString()) + assertFileContains(lldbPath, "command script import") + assertFileContains(lldbPath, "konan_lldb.py") + + val scriptContent = lldbPath.readLines() + assert(scriptContent.size == 1) { + "lldbinit file contains more than 1 line or doesn't contains lines at all" + } + + val scriptPath = scriptContent + .first() + .replace("command script import", "") + .trimIndent() + + assertFileInProjectExists(scriptPath) + } + } + } + private data class ExportApiTestData(val taskName: String, val binaryName: String) private fun testExportApi(project: TestProject, testData: List) = with(project) {