Rename xkey test to keysym
[platform/upstream/libxkbcommon.git] / test / keysym.c
1 #include <assert.h>
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <string.h>
5
6 #include "test.h"
7
8 static int
9 test_string(const char *string, xkb_keysym_t expected)
10 {
11     xkb_keysym_t keysym;
12
13     keysym = xkb_keysym_from_name(string);
14
15     fprintf(stderr, "Expected string %s -> %x\n", string, expected);
16     fprintf(stderr, "Received string %s -> %x\n\n", string, keysym);
17
18     return keysym == expected;
19 }
20
21 static int
22 test_keysym(xkb_keysym_t keysym, const char *expected)
23 {
24     char s[16];
25
26     xkb_keysym_get_name(keysym, s, sizeof(s));
27
28     fprintf(stderr, "Expected keysym %#x -> %s\n", keysym, expected);
29     fprintf(stderr, "Received keysym %#x -> %s\n\n", keysym, s);
30
31     return streq(s, expected);
32 }
33
34 static int
35 test_utf8(xkb_keysym_t keysym, const char *expected)
36 {
37     char s[8];
38     int ret;
39
40     ret = xkb_keysym_to_utf8(keysym, s, sizeof(s));
41     if (ret <= 0)
42         return ret;
43
44     fprintf(stderr, "Expected keysym %#x -> %s\n", keysym, expected);
45     fprintf(stderr, "Received keysym %#x -> %s\n\n", keysym, s);
46
47     return streq(s, expected);
48 }
49
50 int
51 main(void)
52 {
53     assert(test_string("Undo", 0xFF65));
54     assert(test_string("ThisKeyShouldNotExist", XKB_KEY_NoSymbol));
55     assert(test_string("XF86_Switch_VT_5", 0x1008FE05));
56     assert(test_string("VoidSymbol", 0xFFFFFF));
57     assert(test_string("U4567", 0x1004567));
58     assert(test_string("0x10203040", 0x10203040));
59
60     assert(test_keysym(0x1008FF56, "XF86Close"));
61     assert(test_keysym(0x0, "NoSymbol"));
62     assert(test_keysym(0x1008FE20, "XF86Ungrab"));
63     assert(test_keysym(0x01001234, "U1234"));
64
65     assert(test_utf8(XKB_KEY_y, "y"));
66     assert(test_utf8(XKB_KEY_u, "u"));
67     assert(test_utf8(XKB_KEY_m, "m"));
68     assert(test_utf8(XKB_KEY_Cyrillic_em, "м"));
69     assert(test_utf8(XKB_KEY_Cyrillic_u, "у"));
70     assert(test_utf8(XKB_KEY_exclam, "!"));
71     assert(test_utf8(XKB_KEY_oslash, "ø"));
72     assert(test_utf8(XKB_KEY_hebrew_aleph, "א"));
73     assert(test_utf8(XKB_KEY_Arabic_sheen, "ش"));
74
75     assert(test_utf8(XKB_KEY_space, " "));
76     assert(test_utf8(XKB_KEY_KP_Space, " "));
77     assert(test_utf8(XKB_KEY_9, "9"));
78     assert(test_utf8(XKB_KEY_KP_9, "9"));
79     assert(test_utf8(XKB_KEY_KP_Multiply, "*"));
80     assert(test_utf8(XKB_KEY_KP_Subtract, "-"));
81
82     return 0;
83 }