blob: 0fa4767c5060e59aabfab81985c5afebee299778 [file]
/*
* 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.
*/
// TARGET_BACKEND: NATIVE
// LANGUAGE: +EnumEntries
// MODULE: cinterop
// FILE: cenums.def
---
enum E {
A, B, C
};
// MODULE: main(cinterop)
// FILE: main.kt
@file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class)
import cenums.*
import kotlinx.cinterop.*
import kotlin.test.*
@OptIn(kotlin.ExperimentalStdlibApi::class)
fun box(): String {
memScoped {
val e = alloc<E.Var>()
e.value = E.C
assertEquals(E.C, e.value)
assertFailsWith<NotImplementedError> {
e.value = TODO()
}
}
val values = E.values()
assertEquals(values[0], E.A)
assertEquals(values[1], E.B)
assertEquals(values[2], E.C)
val entries = E.entries
assertEquals(entries[0], E.A)
assertEquals(entries[1], E.B)
assertEquals(entries[2], E.C)
return "OK"
}