From 94c5e361fbb229b0cd6853e2102a7d95f1f358b3 Mon Sep 17 00:00:00 2001 From: Berke Güzel Date: Mon, 12 Oct 2026 22:12:02 +0300 Subject: better public interface and doxygen --- tests/common/test_keyboard.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/common/test_keyboard.c (limited to 'tests/common/test_keyboard.c') diff --git a/tests/common/test_keyboard.c b/tests/common/test_keyboard.c new file mode 100644 index 0000000..5a7f18e --- /dev/null +++ b/tests/common/test_keyboard.c @@ -0,0 +1,32 @@ +#include "common/keyboard.h" +#include "cocoa/keycodes.h" +#include + +int main(void) +{ + /* Same physical positions across native encodings, including keypad and + * left/right modifiers. macOS A is code zero, which is not UNKNOWN. */ + assert(yasl_key_from_evdev(30) == YASL_KEY_A); + assert(yasl_key_from_cocoa(kVK_ANSI_A) == YASL_KEY_A); + assert(yasl_key_from_xkb_name("AC01") == YASL_KEY_A); + assert(yasl_key_from_evdev(1) == YASL_KEY_ESCAPE); + assert(yasl_key_from_cocoa(kVK_Escape) == YASL_KEY_ESCAPE); + assert(yasl_key_from_xkb_name("ESC\0") == YASL_KEY_ESCAPE); + assert(yasl_key_from_evdev(96) == YASL_KEY_KP_ENTER); + assert(yasl_key_from_cocoa(kVK_ANSI_KeypadEnter) == YASL_KEY_KP_ENTER); + assert(yasl_key_from_cocoa(kVK_Return) == YASL_KEY_ENTER); + assert(yasl_key_from_evdev(100) == YASL_KEY_RIGHT_ALT); + assert(yasl_key_from_cocoa(kVK_RightOption) == YASL_KEY_RIGHT_ALT); + assert(yasl_key_from_evdev(42) == YASL_KEY_LEFT_SHIFT); + assert(yasl_key_from_cocoa(kVK_Shift) == YASL_KEY_LEFT_SHIFT); + assert(yasl_key_from_evdev(86) == YASL_KEY_ISO_BACKSLASH); + assert(yasl_key_from_cocoa(kVK_ISO_Section) == YASL_KEY_ISO_BACKSLASH); + assert(yasl_key_from_evdev(0) == YASL_KEY_UNKNOWN); + assert(yasl_key_from_evdev(UINT32_MAX) == YASL_KEY_UNKNOWN); + assert(yasl_key_from_cocoa(UINT32_MAX) == YASL_KEY_UNKNOWN); + assert(yasl_key_from_xkb_name("ZZZZ") == YASL_KEY_UNKNOWN); + assert(yasl_key_label(0x1f600) == 0x1f600); + assert(yasl_key_label(0xd800) == 0 && yasl_key_label(0x110000) == 0); + assert(yasl_key_label(0xf700) == 0 && yasl_key_label('\t') == 0); + return 0; +} -- cgit v1.2.3