]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
test: lib: add test of memdup_nul()
authorRasmus Villemoes <ravi@prevas.dk>
Tue, 21 Apr 2026 07:54:39 +0000 (09:54 +0200)
committerTom Rini <trini@konsulko.com>
Tue, 12 May 2026 21:38:00 +0000 (15:38 -0600)
Add a very basic test of the new memdup_nul() helper.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
test/lib/string.c

index f56c2e4c9468e5310d6d7c61d114bf75ef4a12b0..db6f28dbfdf69c0d3bdcf128946af4d7cabc3e71 100644 (file)
@@ -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)
 {