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