📄 testdb.c
字号:
if ((NULL != pCur->pName) && (0 == CU_compare_strings(pCur->pName, szSuiteName))) { pSuite = pCur; break; } pCur = pCur->pNext; } return pSuite;}/*------------------------------------------------------------------------*//** Retrieve a pointer to the test case having the specified name. * Scans the pSuite and returns a pointer to the first * test case located having the specified name. * @param szTestName The name of the test case to locate. * @param pSuite The suite to scan. * @return Pointer to the first test case having the specified name, * NULL if not found. */CU_pTest CU_get_test_by_name(const char* szTestName, CU_pSuite pSuite){ CU_pTest pTest = NULL; CU_pTest pCur = NULL; assert(NULL != pSuite); assert(NULL != szTestName); pCur = pSuite->pTest; while (NULL != pCur) { if ((NULL != pCur->pName) && (0 == CU_compare_strings(pCur->pName, szTestName))) { pTest = pCur; break; } pCur = pCur->pNext; } return pTest;}/** @} *//*------------------------------------------------------------------------*//*------------------------------------------------------------------------*/#ifdef CUNIT_BUILD_TESTS#include "test_cunit.h"static int sfunc1(void){ return 0;}static void test1(void){}/*--------------------------------------------------*/static void test_CU_initialize_registry(void){ CU_pTestRegistry pReg = NULL; unsigned int ndeallocs_before; /* initial state */ TEST(NULL == CU_get_registry()); TEST(CU_FALSE == CU_registry_initialized()); /* after normal initialization */ TEST(CUE_SUCCESS == CU_initialize_registry()); pReg = CU_get_registry(); TEST_FATAL(NULL != pReg); TEST(CU_TRUE == CU_registry_initialized()); TEST(0 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); TEST(NULL == pReg->pSuite); /* after reinitialization */ TEST(0 < test_cunit_get_n_memevents(pReg)); ndeallocs_before = test_cunit_get_n_deallocations(pReg); TEST(CUE_SUCCESS == CU_initialize_registry()); TEST((ndeallocs_before + 1) == test_cunit_get_n_deallocations(pReg)); pReg = CU_get_registry(); TEST_FATAL(NULL != pReg); TEST(0 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); TEST(NULL == pReg->pSuite); /* after cleanup */ CU_cleanup_registry(); TEST(NULL == CU_get_registry()); TEST(CU_FALSE == CU_registry_initialized()); /* if malloc fails */ test_cunit_deactivate_malloc(); TEST(CUE_NOMEMORY == CU_initialize_registry()); TEST(NULL == CU_get_registry()); TEST(CU_FALSE == CU_registry_initialized()); test_cunit_activate_malloc();}/*--------------------------------------------------*/static void test_CU_cleanup_registry(void){ /* make sure calling with uninitialized registry does not crash */ CU_cleanup_registry(); CU_cleanup_registry(); CU_cleanup_registry(); CU_cleanup_registry(); CU_cleanup_registry(); /* nothing more to do over test_CU_initialize_registry() */}/*--------------------------------------------------*/static void test_CU_add_suite(void){ CU_pSuite pSuite = NULL; CU_pSuite pSuite2 = NULL; CU_pSuite pSuite3 = NULL; CU_pSuite pSuite4 = NULL; CU_pTestRegistry pReg = NULL; CU_cleanup_registry(); /* make sure registry not initialized */ /* error condition - registry not initialized */ pSuite = CU_add_suite("suite1", NULL, NULL); TEST(CUE_NOREGISTRY == CU_get_error()); TEST(NULL == pSuite); /* error condition - no name */ CU_initialize_registry(); pReg = CU_get_registry(); pSuite = CU_add_suite(NULL, NULL, NULL); TEST(CUE_NO_SUITENAME == CU_get_error()); TEST(NULL == pSuite); TEST(0 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); /* error condition - duplicate name */ CU_initialize_registry(); pReg = CU_get_registry(); pSuite = CU_add_suite("suite1", NULL, NULL); TEST(CUE_SUCCESS == CU_get_error()); TEST(NULL != pSuite); TEST(1 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); pSuite = CU_add_suite("suite1", NULL, NULL); TEST(CUE_DUP_SUITE == CU_get_error()); TEST(NULL == pSuite); TEST(1 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); /* error condition - memory allocation failure */ CU_initialize_registry(); pReg = CU_get_registry(); test_cunit_deactivate_malloc(); pSuite = CU_add_suite("suite1", NULL, NULL); TEST(CUE_NOMEMORY == CU_get_error()); TEST(NULL == pSuite); TEST(0 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); test_cunit_activate_malloc(); /* normal creation & cleanup */ CU_initialize_registry(); pReg = CU_get_registry(); pSuite = CU_add_suite("suite1", NULL, NULL); TEST(CUE_SUCCESS == CU_get_error()); TEST(NULL != pSuite); TEST(1 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); TEST(CU_get_suite_by_name("suite1", pReg) == pSuite); TEST(pReg->pSuite == pSuite); TEST(!strcmp("suite1", pSuite->pName)); TEST(pSuite->pTest == NULL); /* no tests added yet */ TEST(pSuite->uiNumberOfTests == 0); /* no tests added yet */ TEST(pSuite->pInitializeFunc == NULL); /* no init function */ TEST(pSuite->pCleanupFunc == NULL); /* no cleanup function */ TEST(pSuite->pNext == NULL); /* no more suites added yet */ pSuite2 = CU_add_suite("suite2", sfunc1, NULL); TEST(CUE_SUCCESS == CU_get_error()); TEST(NULL != pSuite2); TEST(2 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); TEST(CU_get_suite_by_name("suite2", pReg) == pSuite2); pSuite3 = CU_add_suite("suite3", NULL, sfunc1); TEST(CUE_SUCCESS == CU_get_error()); TEST(NULL != pSuite3); TEST(3 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); TEST(CU_get_suite_by_name("suite3", pReg) == pSuite3); pSuite4 = CU_add_suite("suite4", sfunc1, sfunc1); TEST(CUE_SUCCESS == CU_get_error()); TEST(NULL != pSuite4); TEST(4 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); TEST(CU_get_suite_by_name("suite4", pReg) == pSuite4); TEST(pReg->pSuite == pSuite); TEST(!strcmp("suite1", pSuite->pName)); TEST(pSuite->pTest == NULL); /* no tests added yet */ TEST(pSuite->uiNumberOfTests == 0); /* no tests added yet */ TEST(pSuite->pInitializeFunc == NULL); /* no init function */ TEST(pSuite->pCleanupFunc == NULL); /* no cleanup function */ TEST(pSuite->pNext == pSuite2); /* now have another suite */ TEST(!strcmp("suite2", pSuite2->pName)); TEST(pSuite2->pTest == NULL); /* no tests added yet */ TEST(pSuite2->uiNumberOfTests == 0); /* no tests added yet */ TEST(pSuite2->pInitializeFunc == sfunc1); /* no init function */ TEST(pSuite2->pCleanupFunc == NULL); /* no cleanup function */ TEST(pSuite2->pNext == pSuite3); /* next suite in list */ TEST(!strcmp("suite3", pSuite3->pName)); TEST(pSuite3->pTest == NULL); /* no tests added yet */ TEST(pSuite3->uiNumberOfTests == 0); /* no tests added yet */ TEST(pSuite3->pInitializeFunc == NULL); /* no init function */ TEST(pSuite3->pCleanupFunc == sfunc1); /* no cleanup function */ TEST(pSuite3->pNext == pSuite4); /* next suite in list */ TEST(!strcmp("suite4", pSuite4->pName)); TEST(pSuite4->pTest == NULL); /* no tests added yet */ TEST(pSuite4->uiNumberOfTests == 0); /* no tests added yet */ TEST(pSuite4->pInitializeFunc == sfunc1); /* no init function */ TEST(pSuite4->pCleanupFunc == sfunc1); /* no cleanup function */ TEST(pSuite4->pNext == NULL); /* end of suite list */ TEST(0 != test_cunit_get_n_memevents(pSuite)); TEST(0 != test_cunit_get_n_memevents(pSuite2)); TEST(0 != test_cunit_get_n_memevents(pSuite3)); TEST(0 != test_cunit_get_n_memevents(pSuite4)); TEST(test_cunit_get_n_allocations(pSuite) != test_cunit_get_n_deallocations(pSuite)); TEST(test_cunit_get_n_allocations(pSuite2) != test_cunit_get_n_deallocations(pSuite2)); TEST(test_cunit_get_n_allocations(pSuite3) != test_cunit_get_n_deallocations(pSuite3)); TEST(test_cunit_get_n_allocations(pSuite4) != test_cunit_get_n_deallocations(pSuite4)); CU_cleanup_registry(); TEST(test_cunit_get_n_allocations(pSuite) == test_cunit_get_n_deallocations(pSuite)); TEST(test_cunit_get_n_allocations(pSuite2) == test_cunit_get_n_deallocations(pSuite2)); TEST(test_cunit_get_n_allocations(pSuite3) == test_cunit_get_n_deallocations(pSuite3)); TEST(test_cunit_get_n_allocations(pSuite4) == test_cunit_get_n_deallocations(pSuite4));}/*--------------------------------------------------*/static void test_CU_add_test(void){ CU_pSuite pSuite1 = NULL; CU_pSuite pSuite2 = NULL; CU_pTest pTest1 = NULL; CU_pTest pTest2 = NULL; CU_pTest pTest3 = NULL; CU_pTest pTest4 = NULL; CU_pTestRegistry pReg = NULL; CU_cleanup_registry(); /* error condition - registry not initialized */ pTest1 = CU_add_test(pSuite1, "test1", test1); TEST(CUE_NOREGISTRY == CU_get_error()); TEST(NULL == pTest1); CU_initialize_registry(); pReg = CU_get_registry(); /* error condition - no suite */ pTest1 = CU_add_test(pSuite1, "test1", test1); TEST(CUE_NOSUITE == CU_get_error()); TEST(NULL == pTest1); /* error condition - no name */ pSuite1 = CU_add_suite("suite1", NULL, NULL); TEST(CUE_SUCCESS == CU_get_error()); pTest1 = CU_add_test(pSuite1, NULL, test1); TEST(CUE_NO_TESTNAME == CU_get_error()); TEST(NULL == pTest1); TEST(1 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); TEST(0 == pSuite1->uiNumberOfTests); /* error condition - no test function */ pTest1 = CU_add_test(pSuite1, "test1", NULL); TEST(CUE_NOTEST == CU_get_error()); TEST(NULL == pTest1); TEST(1 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); TEST(0 == pSuite1->uiNumberOfTests); /* error condition - duplicate name */ CU_initialize_registry(); pReg = CU_get_registry(); pSuite1 = CU_add_suite("suite1", NULL, NULL); TEST(CUE_SUCCESS == CU_get_error()); pTest1 = CU_add_test(pSuite1, "test1", test1); TEST(CUE_SUCCESS == CU_get_error()); TEST(NULL != pTest1); TEST(1 == pReg->uiNumberOfSuites); TEST(1 == pReg->uiNumberOfTests); TEST(1 == pSuite1->uiNumberOfTests); pTest2 = CU_add_test(pSuite1, "test1", test1); TEST(CUE_DUP_TEST == CU_get_error()); TEST(NULL == pTest2); TEST(1 == pReg->uiNumberOfSuites); TEST(1 == pReg->uiNumberOfTests); TEST(1 == pSuite1->uiNumberOfTests); /* error condition - memory allocation failure */ CU_initialize_registry(); pReg = CU_get_registry(); pSuite1 = CU_add_suite("suite1", NULL, NULL); TEST(CUE_SUCCESS == CU_get_error()); test_cunit_deactivate_malloc(); pTest1 = CU_add_test(pSuite1, "test1", test1); test_cunit_activate_malloc(); TEST(CUE_NOMEMORY == CU_get_error()); TEST(NULL == pTest1); TEST(1 == pReg->uiNumberOfSuites); TEST(0 == pReg->uiNumberOfTests); TEST(0 == pSuite1->uiNumberOfTests); /* normal creation & cleanup */ CU_initialize_registry(); pReg = CU_get_registry(); pSuite1 = CU_add_suite("suite1", NULL, NULL); TEST(CUE_SUCCESS == CU_get_error()); pSuite2 = CU_add_suite("suite2", sfunc1, sfunc1); TEST(CUE_SUCCESS == CU_get_error()); pTest1 = CU_add_test(pSuite1, "test1", test1); TEST(CUE_SUCCESS == CU_get_error()); TEST(NULL != pTest1); TEST(2 == pReg->uiNumberOfSuites); TEST(1 == pReg->uiNumberOfTests); TEST(1 == pSuite1->uiNumberOfTests); TEST(0 == pSuite2->uiNumberOfTests); TEST(pSuite1->pTest == pTest1); TEST(pSuite2->pTest == NULL); pTest2 = CU_add_test(pSuite2, "test2", test1); TEST(CUE_SUCCESS == CU_get_error()); TEST(NULL != pTest2); TEST(2 == pReg->uiNumberOfSuites); TEST(2 == pReg->uiNumberOfTests); TEST(1 == pSuite1->uiNumberOfTests); TEST(1 == pSuite2->uiNumberOfTests); TEST(pSuite1->pTest == pTest1); TEST(pSuite2->pTest == pTest2); pTest3 = CU_add_test(pSuite1, "test3", test1); TEST(CUE_SUCCESS == CU_get_error()); TEST(NULL != pTest3); TEST(2 == pReg->uiNumberOfSuites); TEST(3 == pReg->uiNumberOfTests); TEST(2 == pSuite1->uiNumberOfTests); TEST(1 == pSuite2->uiNumberOfTests); TEST(pSuite1->pTest == pTest1); TEST(pSuite2->pTest == pTest2); pTest4 = CU_add_test(pSuite1, "test4", test1); TEST(CUE_SUCCESS == CU_get_error()); TEST(NULL != pTest4); TEST(2 == pReg->uiNumberOfSuites);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -