From 749a150e37fbfdaf33a8d6738e95306e6d95e8b5 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Thu, 4 Aug 2022 23:23:50 +0200 Subject: move the kernel util tests to userland --- src/user/app/tests/shared/printf.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/user/app/tests/shared/printf.c (limited to 'src/user/app/tests/shared/printf.c') diff --git a/src/user/app/tests/shared/printf.c b/src/user/app/tests/shared/printf.c new file mode 100644 index 0000000..04175db --- /dev/null +++ b/src/user/app/tests/shared/printf.c @@ -0,0 +1,35 @@ +#include "../tests.h" +#include +#include + +static void test_printf(void) { + char buf[64]; + memset(buf, '?', 64); + + /* test proper overflow handling in snprintf */ + test(13 == snprintf(buf, 15, "That's 0x%x", 0x1337)); + test(!memcmp(buf, "That's 0x1337\0??", 16)); + test(17 == snprintf(buf, 15, "%05x %05x %05x", 0, 0, 0)); + test(!memcmp(buf, "00000 00000 00\0?", 16)); + + /* all the other stuff */ + snprintf(buf, sizeof buf, "%010x", 0x1BABE); + test(!strcmp(buf, "000001babe")); + snprintf(buf, sizeof buf, "%10x", 0x1BABE); + test(!strcmp(buf, " 1babe")); + snprintf(buf, sizeof buf, "%10s", "hello"); + test(!strcmp(buf, " hello")); + + snprintf(buf, sizeof buf, "%s%%%s", "ab", "cd"); + test(!strcmp(buf, "ab%cd")); + + snprintf(buf, sizeof buf, "%05u %05u", 1234, 56789); + test(!strcmp(buf, "01234 56789")); + + snprintf(buf, sizeof buf, "%u %x", 0, 0); + test(!strcmp(buf, "0 0")); +} + +void r_s_printf(void) { + run_test(test_printf); +} -- cgit v1.2.3