if (ret <= 0)
return ret;
+ assert(expected != NULL);
+
fprintf(stderr, "Expected keysym %#x -> %s (%u bytes)\n", keysym, expected,
(unsigned) strlen(expected));
fprintf(stderr, "Received keysym %#x -> %s (%u bytes)\n\n", keysym, s,
(unsigned) strlen(s));
- assert(expected != NULL);
return streq(s, expected);
}
assert(test_string("XF86_Switch_VT_5", 0x1008FE05));
assert(test_string("VoidSymbol", 0xFFFFFF));
assert(test_string("U4567", 0x1004567));
+ assert(test_string("U+4567", XKB_KEY_NoSymbol));
+ assert(test_string("U+4567ffff", XKB_KEY_NoSymbol));
+ assert(test_string("U+4567ffffff", XKB_KEY_NoSymbol));
+ assert(test_string("U 4567", XKB_KEY_NoSymbol));
+ assert(test_string("U +4567", XKB_KEY_NoSymbol));
assert(test_string("0x10203040", 0x10203040));
+ assert(test_string("0x102030400", XKB_KEY_NoSymbol));
+ assert(test_string("0x010203040", XKB_KEY_NoSymbol));
+ assert(test_string("0x+10203040", XKB_KEY_NoSymbol));
+ assert(test_string("0x 10203040", XKB_KEY_NoSymbol));
+ assert(test_string("0x +10203040", XKB_KEY_NoSymbol));
+ assert(test_string("0x-10203040", XKB_KEY_NoSymbol));
assert(test_string("a", 0x61));
assert(test_string("A", 0x41));
assert(test_string("ch", 0xfea0));
assert(test_string("THORN", 0x00de));
assert(test_string("Thorn", 0x00de));
assert(test_string("thorn", 0x00fe));
+ /* Max keysym. */
+ assert(test_string("0xffffffff", 0xffffffff));
+ /* Outside range. */
+ assert(test_string("0x100000000", XKB_KEY_NoSymbol));
assert(test_keysym(0x1008FF56, "XF86Close"));
assert(test_keysym(0x0, "NoSymbol"));
assert(test_casestring("Thorn", 0x00fe));
assert(test_casestring("thorn", 0x00fe));
+ assert(test_string("", XKB_KEY_NoSymbol));
+ assert(test_casestring("", XKB_KEY_NoSymbol));
+
assert(test_utf8(XKB_KEY_y, "y"));
assert(test_utf8(XKB_KEY_u, "u"));
assert(test_utf8(XKB_KEY_m, "m"));
assert(test_utf8(0x10005d0, "א"));
assert(test_utf8(0x110ffff, "\xf4\x8f\xbf\xbf"));
+ assert(test_utf8(0x0100d800, NULL) == 0); // Unicode surrogates
+ assert(test_utf8(0x0100dfff, NULL) == 0); // Unicode surrogates
assert(test_utf8(0x1110000, NULL) == 0);
assert(test_utf32_to_keysym('y', XKB_KEY_y));
assert(test_utf32_to_keysym(0xd7, XKB_KEY_multiply));
assert(test_utf32_to_keysym('-', XKB_KEY_minus));
assert(test_utf32_to_keysym(0x10fffd, 0x110fffd));
+ assert(test_utf32_to_keysym(0x20ac, XKB_KEY_EuroSign));
// Unicode non-characters
+ assert(test_utf32_to_keysym(0xd800, XKB_KEY_NoSymbol)); // Unicode surrogates
+ assert(test_utf32_to_keysym(0xdfff, XKB_KEY_NoSymbol)); // Unicode surrogates
assert(test_utf32_to_keysym(0xfdd0, XKB_KEY_NoSymbol));
assert(test_utf32_to_keysym(0xfdef, XKB_KEY_NoSymbol));
assert(test_utf32_to_keysym(0xfffe, XKB_KEY_NoSymbol));