aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2022-01-29 16:33:16 +0100
committerTom Rini <trini@konsulko.com>2022-02-11 11:29:23 -0500
commit73cde90c8badbeba32524c2708d26fea805fba1e (patch)
tree5886f2d3c62f227f62cb4c67ac30a8f8ed9712f8
parent3970c82a60857b72afcb676697caf9c979dab946 (diff)
downloadu-boot-73cde90c8badbeba32524c2708d26fea805fba1e.zip
u-boot-73cde90c8badbeba32524c2708d26fea805fba1e.tar.gz
u-boot-73cde90c8badbeba32524c2708d26fea805fba1e.tar.bz2
test: test field truncation in snprint()
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>
-rw-r--r--test/print_ut.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/print_ut.c b/test/print_ut.c
index a133907..247011f 100644
--- a/test/print_ut.c
+++ b/test/print_ut.c
@@ -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);