#include "../unittest.h" #ifndef CONFIG_HAVE_STRNDUP #include "../../oslib/strndup.h" #else #include #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); }