/* * Copyright (C) 2012 Red Hat, Inc. All rights reserved. * * This file is part of LVM2. * * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions * of the GNU General Public License v.2. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "units.h" #include #include static struct dm_pool *mem = NULL; int string_init(void) { mem = dm_pool_create("string test", 1024); return (mem == NULL); } int string_fini(void) { dm_pool_destroy(mem); return 0; } /* TODO: Add more string unit tests here */ static void test_strncpy(void) { const char st[] = "1234567890"; char buf[sizeof(st)]; CU_ASSERT_EQUAL(dm_strncpy(buf, st, sizeof(buf)), 1); CU_ASSERT_EQUAL(strcmp(buf, st), 0); CU_ASSERT_EQUAL(dm_strncpy(buf, st, sizeof(buf) - 1), 0); CU_ASSERT_EQUAL(strlen(buf) + 1, sizeof(buf) - 1); } static void test_asprint(void) { const char st0[] = ""; const char st1[] = "12345678901"; const char st2[] = "1234567890123456789012345678901234567890123456789012345678901234567"; char *buf; int a; a = dm_asprintf(&buf, "%s", st0); CU_ASSERT_EQUAL(strcmp(buf, st0), 0); CU_ASSERT_EQUAL(a, sizeof(st0)); free(buf); a = dm_asprintf(&buf, "%s", st1); CU_ASSERT_EQUAL(strcmp(buf, st1), 0); CU_ASSERT_EQUAL(a, sizeof(st1)); free(buf); a = dm_asprintf(&buf, "%s", st2); CU_ASSERT_EQUAL(a, sizeof(st2)); CU_ASSERT_EQUAL(strcmp(buf, st2), 0); free(buf); } CU_TestInfo string_list[] = { { (char*)"asprint", test_asprint }, { (char*)"strncpy", test_strncpy }, CU_TEST_INFO_NULL };