#include "../unittest.h" #include "../../lib/strntol.h" static void test_strntol_1(void) { char s[] = "12345"; char *endp = NULL; long ret = strntol(s, strlen(s), &endp, 10); CU_ASSERT_EQUAL(ret, 12345); CU_ASSERT_NOT_EQUAL(endp, NULL); CU_ASSERT_EQUAL(*endp, '\0'); } static void test_strntol_2(void) { char s[] = " 12345"; char *endp = NULL; long ret = strntol(s, strlen(s), &endp, 10); CU_ASSERT_EQUAL(ret, 12345); CU_ASSERT_NOT_EQUAL(endp, NULL); CU_ASSERT_EQUAL(*endp, '\0'); } static void test_strntol_3(void) { char s[] = "0x12345"; char *endp = NULL; long ret = strntol(s, strlen(s), &endp, 16); CU_ASSERT_EQUAL(ret, 0x12345); CU_ASSERT_NOT_EQUAL(endp, NULL); CU_ASSERT_EQUAL(*endp, '\0'); } static struct fio_unittest_entry tests[] = { { .name = "strntol/1", .fn = test_strntol_1, }, { .name = "strntol/2", .fn = test_strntol_2, }, { .name = "strntol/3", .fn = test_strntol_3, }, { .name = NULL, }, }; CU_ErrorCode fio_unittest_lib_strntol(void) { return fio_unittest_add_suite("lib/strntol.c", NULL, NULL, tests); }