test: test field truncation in snprint()
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sat, 29 Jan 2022 15:33:16 +0000 (16:33 +0100)
committerTom Rini <trini@konsulko.com>
Fri, 11 Feb 2022 16:29:23 +0000 (11:29 -0500)
The output size for snprint() should not only be respected for whole fields
but also with fields. Add more tests.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
test/print_ut.c

index a133907..247011f 100644 (file)
@@ -370,6 +370,18 @@ static int snprint(struct unit_test_state *uts)
        char buf[10] = "xxxxxxxxx";
        int ret;
 
+       ret = snprintf(buf, 5, "%d", 12345678);
+       ut_asserteq_str("1234", buf);
+       ut_asserteq(8, ret);
+       ret = snprintf(buf, 5, "0x%x", 0x1234);
+       ut_asserteq_str("0x12", buf);
+       ut_asserteq(6, ret);
+       ret = snprintf(buf, 5, "0x%08x", 0x1234);
+       ut_asserteq_str("0x00", buf);
+       ut_asserteq(10, ret);
+       ret = snprintf(buf, 3, "%s", "abc");
+       ut_asserteq_str("ab", buf);
+       ut_asserteq(3, ret);
        ret = snprintf(buf, 4, "%s:%s", "abc", "def");
        ut_asserteq(0, buf[3]);
        ut_asserteq(7, ret);