KT-63592 Add testGenerateLLDBInitFile test

This commit is contained in:
Andrey Yastrebov
2023-12-14 18:15:38 +01:00
committed by Space Team
parent 4176c50107
commit c6bf5b8ef1
@@ -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<ExportApiTestData>) = with(project) {