]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
tests/unit/test_zustr2stp.c: Test ZUSTR2STP()
authorAlejandro Colomar <alx@kernel.org>
Mon, 29 Jan 2024 23:22:33 +0000 (00:22 +0100)
committerSerge Hallyn <serge@hallyn.com>
Mon, 11 Mar 2024 00:55:39 +0000 (19:55 -0500)
Signed-off-by: Alejandro Colomar <alx@kernel.org>
tests/unit/Makefile.am
tests/unit/test_zustr2stp.c [new file with mode: 0644]

index ff882b8d48cfadbd33060f086b363faf56ac2692..228d879618bc686d4a1b2256dd1c2857c1c62219 100644 (file)
@@ -11,7 +11,8 @@ check_PROGRAMS = \
     test_sprintf \
     test_strncpy \
     test_strtcpy \
-    test_xasprintf
+    test_xasprintf \
+    test_zustr2stp
 
 if ENABLE_LOGIND
 check_PROGRAMS += \
@@ -143,4 +144,16 @@ test_xasprintf_LDADD = \
     $(CMOCKA_LIBS) \
     $(NULL)
 
+test_zustr2stp_SOURCES = \
+    test_zustr2stp.c \
+    $(NULL)
+test_zustr2stp_CFLAGS = \
+    $(AM_CFLAGS) \
+    $(NULL)
+test_zustr2stp_LDFLAGS = \
+    $(NULL)
+test_zustr2stp_LDADD = \
+    $(CMOCKA_LIBS) \
+    $(NULL)
+
 endif # HAVE_CMOCKA
diff --git a/tests/unit/test_zustr2stp.c b/tests/unit/test_zustr2stp.c
new file mode 100644 (file)
index 0000000..198d2eb
--- /dev/null
@@ -0,0 +1,53 @@
+// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
+// SPDX-License-Identifier: BSD-3-Clause
+
+
+#include <config.h>
+
+#include <stddef.h>
+#include <string.h>
+
+#include <stdarg.h>  // Required by <cmocka.h>
+#include <stddef.h>  // Required by <cmocka.h>
+#include <setjmp.h>  // Required by <cmocka.h>
+#include <stdint.h>  // Required by <cmocka.h>
+#include <cmocka.h>
+
+#include "string/zustr2stp.h"
+
+
+static void test_ZUSTR2STP(void **state);
+
+
+int
+main(void)
+{
+    const struct CMUnitTest  tests[] = {
+        cmocka_unit_test(test_ZUSTR2STP),
+    };
+
+    return cmocka_run_group_tests(tests, NULL, NULL);
+}
+
+
+static void
+test_ZUSTR2STP(void **state)
+{
+       char  src[3] = {'1', '2', '3'};
+       char  dst[4];
+
+       assert_true(ZUSTR2STP(&dst, src) == dst + strlen("123"));
+       assert_true(strcmp("123", dst) == 0);
+
+       src[2] = '\0';
+       assert_true(ZUSTR2STP(&dst, src) == dst + strlen("12"));
+       assert_true(strcmp("12", dst) == 0);
+
+       src[1] = '\0';
+       assert_true(ZUSTR2STP(&dst, src) == dst + strlen("1"));
+       assert_true(strcmp("1", dst) == 0);
+
+       src[0] = '\0';
+       assert_true(ZUSTR2STP(&dst, src) == dst + strlen(""));
+       assert_true(strcmp("", dst) == 0);
+}