efi-string: add new xstr16_to_ascii() helper

This commit is contained in:
Lennart Poettering
2025-02-21 10:04:15 +01:00
parent e577d7d94a
commit d9d3e9d6c1
3 changed files with 82 additions and 11 deletions
+47 -7
View File
@@ -332,30 +332,70 @@ TEST(xstrdup16) {
TEST(xstrn8_to_16) {
char16_t *s = NULL;
assert_se(xstrn8_to_16(NULL, 1) == NULL);
assert_se(xstrn8_to_16("a", 0) == NULL);
assert_se(s = xstrn8_to_16(NULL, 0));
ASSERT_TRUE(streq16(s, u""));
free(s);
assert_se(s = xstrn8_to_16("", 0));
ASSERT_TRUE(streq16(s, u""));
free(s);
assert_se(s = xstrn8_to_16("a", 0));
ASSERT_TRUE(streq16(s, u""));
free(s);
assert_se(s = xstrn8_to_16("", 1));
assert_se(streq16(s, u""));
ASSERT_TRUE(streq16(s, u""));
free(s);
assert_se(s = xstrn8_to_16("1", 1));
assert_se(streq16(s, u"1"));
ASSERT_TRUE(streq16(s, u"1"));
free(s);
assert_se(s = xstr8_to_16("abcxyzABCXYZ09 .,-_#*!\"§$%&/()=?`~"));
assert_se(streq16(s, u"abcxyzABCXYZ09 .,-_#*!\"§$%&/()=?`~"));
ASSERT_TRUE(streq16(s, u"abcxyzABCXYZ09 .,-_#*!\"§$%&/()=?`~"));
free(s);
assert_se(s = xstr8_to_16("ÿⱿ𝇉 😺"));
assert_se(streq16(s, u"ÿⱿ "));
ASSERT_TRUE(streq16(s, u"ÿⱿ "));
free(s);
assert_se(s = xstrn8_to_16("¶¶", 3));
assert_se(streq16(s, u""));
ASSERT_TRUE(streq16(s, u""));
free(s);
}
TEST(xstrn16_to_ascii) {
char *s;
assert_se(s = xstrn16_to_ascii(NULL, 0));
ASSERT_TRUE(streq8(s, ""));
free(s);
assert_se(s = xstrn16_to_ascii(u"", 0));
ASSERT_TRUE(streq8(s, ""));
free(s);
assert_se(s = xstrn16_to_ascii(u"a", 0));
ASSERT_TRUE(streq8(s, ""));
free(s);
assert_se(s = xstrn16_to_ascii(u"", 1));
ASSERT_TRUE(streq8(s, ""));
free(s);
assert_se(s = xstrn16_to_ascii(u"1", 1));
ASSERT_TRUE(streq8(s, "1"));
free(s);
assert_se(s = xstr16_to_ascii(u"abcxyzABCXYZ09 .,-_#*!\"$%&/()=?`~"));
ASSERT_TRUE(streq8(s, "abcxyzABCXYZ09 .,-_#*!\"$%&/()=?`~"));
free(s);
assert_se(!xstr16_to_ascii(u"ÿⱿ𝇉 😺"));
assert_se(!xstr16_to_ascii(u"¶¶"));
}
TEST(startswith8) {
assert_se(streq8(startswith8("", ""), ""));
assert_se(streq8(startswith8("x", ""), "x"));