| /* |
| * 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" |
| } |