Add some tests for CPointer.toKStringFromUtf8

This commit is contained in:
Svyatoslav Scherbina
2021-02-17 17:35:30 +03:00
committed by Vasily Levchenko
parent bea8edb10c
commit dc2d014504
3 changed files with 28 additions and 0 deletions
@@ -3805,6 +3805,10 @@ createInterop("cunsupported") {
it.defFile 'interop/basics/cunsupported.def'
}
createInterop("ctoKString") {
it.defFile 'interop/basics/ctoKString.def'
}
createInterop("ctypes") {
it.defFile 'interop/basics/ctypes.def'
}
@@ -4119,6 +4123,12 @@ interopTest("interop_unsupported") {
interop = 'cunsupported'
}
interopTest("interop_toKString") {
disabled = (project.testTarget == 'wasm32') // No interop for wasm yet.
source = "interop/basics/toKString.kt"
interop = 'ctoKString'
}
interopTest("interop_types") {
disabled = (project.testTarget == 'wasm32') // No interop for wasm yet.
source = "interop/basics/types.kt"
@@ -0,0 +1,6 @@
---
const char* empty() { return ""; }
const char* foo() { return "foo"; }
const char* kuku() { return "куку"; }
const char* invalid_utf8() { return "\x85\xAF"; }
const char* zero_in_the_middle() { return "before zero\0after zero"; }
@@ -0,0 +1,12 @@
import ctoKString.*
import kotlinx.cinterop.*
import kotlin.native.*
import kotlin.test.*
fun main() {
assertEquals("", empty()!!.toKStringFromUtf8())
assertEquals("foo", foo()!!.toKStringFromUtf8())
assertEquals("куку", kuku()!!.toKStringFromUtf8())
assertEquals("\uFFFD\uFFFD", invalid_utf8()!!.toKStringFromUtf8())
assertEquals("before zero", zero_in_the_middle()!!.toKStringFromUtf8())
}