Merge branch '2020-05-08-assorted-fixes'
[oweals/u-boot.git] / test / unicode_ut.c
index 8e1efe6f697635030f4fe6384e3e9ee6dea43b68..4d99c20bc04779a5228956bc6a6d2cfdba903f4b 100644 (file)
@@ -9,6 +9,7 @@
 #include <charset.h>
 #include <command.h>
 #include <errno.h>
+#include <malloc.h>
 #include <test/test.h>
 #include <test/suites.h>
 #include <test/ut.h>
@@ -50,6 +51,16 @@ static const char j1[] = {0x6a, 0x31, 0xa1, 0x6c, 0x00};
 static const char j2[] = {0x6a, 0x32, 0xc3, 0xc3, 0x6c, 0x00};
 static const char j3[] = {0x6a, 0x33, 0xf0, 0x90, 0xf0, 0x00};
 
+static int unicode_test_u16_strlen(struct unit_test_state *uts)
+{
+       ut_asserteq(6, u16_strlen(c1));
+       ut_asserteq(8, u16_strlen(c2));
+       ut_asserteq(3, u16_strlen(c3));
+       ut_asserteq(6, u16_strlen(c4));
+       return 0;
+}
+UNICODE_TEST(unicode_test_u16_strlen);
+
 static int unicode_test_u16_strdup(struct unit_test_state *uts)
 {
        u16 *copy = u16_strdup(c4);
@@ -557,10 +568,24 @@ static int unicode_test_utf_to_upper(struct unit_test_state *uts)
 }
 UNICODE_TEST(unicode_test_utf_to_upper);
 
+static int unicode_test_u16_strncmp(struct unit_test_state *uts)
+{
+       ut_assert(u16_strncmp(L"abc", L"abc", 3) == 0);
+       ut_assert(u16_strncmp(L"abcdef", L"abcghi", 3) == 0);
+       ut_assert(u16_strncmp(L"abcdef", L"abcghi", 6) < 0);
+       ut_assert(u16_strncmp(L"abcghi", L"abcdef", 6) > 0);
+       ut_assert(u16_strcmp(L"abc", L"abc") == 0);
+       ut_assert(u16_strcmp(L"abcdef", L"deghi") < 0);
+       ut_assert(u16_strcmp(L"deghi", L"abcdef") > 0);
+       return 0;
+}
+UNICODE_TEST(unicode_test_u16_strncmp);
+
 int do_ut_unicode(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        struct unit_test *tests = ll_entry_start(struct unit_test, unicode_test);
        const int n_ents = ll_entry_count(struct unit_test, unicode_test);
 
-       return cmd_ut_category("Unicode", tests, n_ents, argc, argv);
+       return cmd_ut_category("Unicode", "unicode_test_",
+                              tests, n_ents, argc, argv);
 }