UT_OBJS += unittests/lib/memalign.o
UT_OBJS += unittests/lib/strntol.o
UT_OBJS += unittests/oslib/strlcat.o
+UT_OBJS += unittests/oslib/strndup.o
UT_TARGET_OBJS = lib/memalign.o
UT_TARGET_OBJS += lib/strntol.o
UT_TARGET_OBJS += oslib/strlcat.o
+UT_TARGET_OBJS += oslib/strndup.o
UT_PROGS = unittests/unittest
else
UT_OBJS =
--- /dev/null
+#include "../unittest.h"
+
+#ifndef CONFIG_HAVE_STRNDUP
+#include "../../oslib/strndup.h"
+#else
+#include <string.h>
+#endif
+
+static void test_strndup_1(void)
+{
+ char s[] = "test";
+ char *p = strndup(s, 3);
+
+ if (p) {
+ CU_ASSERT_EQUAL(strcmp(p, "tes"), 0);
+ CU_ASSERT_EQUAL(strlen(p), 3);
+ }
+}
+
+static void test_strndup_2(void)
+{
+ char s[] = "test";
+ char *p = strndup(s, 4);
+
+ if (p) {
+ CU_ASSERT_EQUAL(strcmp(p, s), 0);
+ CU_ASSERT_EQUAL(strlen(p), 4);
+ }
+}
+
+static void test_strndup_3(void)
+{
+ char s[] = "test";
+ char *p = strndup(s, 5);
+
+ if (p) {
+ CU_ASSERT_EQUAL(strcmp(p, s), 0);
+ CU_ASSERT_EQUAL(strlen(p), 4);
+ }
+}
+
+static struct fio_unittest_entry tests[] = {
+ {
+ .name = "strndup/1",
+ .fn = test_strndup_1,
+ },
+ {
+ .name = "strndup/2",
+ .fn = test_strndup_2,
+ },
+ {
+ .name = "strndup/3",
+ .fn = test_strndup_3,
+ },
+ {
+ .name = NULL,
+ },
+};
+
+CU_ErrorCode fio_unittest_oslib_strndup(void)
+{
+ return fio_unittest_add_suite("oslib/strndup.c", NULL, NULL, tests);
+}
fio_unittest_register(fio_unittest_lib_memalign);
fio_unittest_register(fio_unittest_lib_strntol);
fio_unittest_register(fio_unittest_oslib_strlcat);
+ fio_unittest_register(fio_unittest_oslib_strndup);
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests();
CU_ErrorCode fio_unittest_lib_memalign(void);
CU_ErrorCode fio_unittest_lib_strntol(void);
CU_ErrorCode fio_unittest_oslib_strlcat(void);
+CU_ErrorCode fio_unittest_oslib_strndup(void);
#endif