summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRasmus Villemoes <[email protected]>2026-04-21 09:54:39 +0200
committerTom Rini <[email protected]>2026-05-12 15:38:00 -0600
commit8d209186a1e4aca4ec44745d05d51de7e80f7e3e (patch)
tree0bb112eec2e958580c26101a0e480543a4be4447 /test
parent4ef201e607ebed2432ee929446e3fb9b57c53a54 (diff)
test: lib: add test of memdup_nul()
Add a very basic test of the new memdup_nul() helper. Signed-off-by: Rasmus Villemoes <[email protected]> Reviewed-by: Simon Glass <[email protected]>
Diffstat (limited to 'test')
-rw-r--r--test/lib/string.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/lib/string.c b/test/lib/string.c
index f56c2e4c946..db6f28dbfdf 100644
--- a/test/lib/string.c
+++ b/test/lib/string.c
@@ -223,6 +223,40 @@ static int lib_memdup(struct unit_test_state *uts)
}
LIB_TEST(lib_memdup, 0);
+/** lib_memdup_nul() - unit test for memdup_nul() */
+static int lib_memdup_nul(struct unit_test_state *uts)
+{
+ char buf[BUFLEN];
+ size_t len;
+ char *p, *q;
+
+ /* Zero size should return a buffer containing a single nul byte */
+ p = memdup_nul(NULL, 0);
+ ut_assertnonnull(p);
+ ut_assert(p[0] == '\0');
+ free(p);
+
+ p = memdup_nul(buf, 0);
+ ut_assertnonnull(p);
+ ut_assert(p[0] == '\0');
+ free(p);
+
+ strcpy(buf, TEST_STR);
+ len = sizeof(TEST_STR);
+ p = memdup_nul(buf, len);
+ ut_asserteq_mem(p, buf, len);
+ ut_assert(p[len] == '\0');
+
+ q = memdup_nul(p, len);
+ ut_asserteq_mem(q, buf, len);
+ ut_assert(q[len] == '\0');
+ free(q);
+ free(p);
+
+ return 0;
+}
+LIB_TEST(lib_memdup_nul, 0);
+
/** lib_strnstr() - unit test for strnstr() */
static int lib_strnstr(struct unit_test_state *uts)
{