????3.5 ?????????????????

CU_pTestRegistry CU_get_registry(void)
CU_pTestRegistry CU_set_registry(CU_pTestRegistry pTestRegistry)
CU_pTestRegistry CU_create_new_registry(void)
void CU_destroy_existing_registry(CU_pTestRegistry* ppRegistry)

????4. ????????????????????

????4.1 ??????????

#include <CUnit/TestDB.h>
typedef struct CU_Suite
typedef CU_Suite* CU_pSuite
typedef struct CU_Test
typedef CU_Test* CU_pTest
typedef void (*CU_TestFunc)(void)
typedef int (*CU_InitializeFunc)(void)
typedef int (*CU_CleanupFunc)(void)
CU_pSuite CU_add_suite(const char* strName??CU_InitializeFunc pInit??CU_CleanupFunc pClean);
CU_pTest   CU_add_test(CU_pSuite pSuite??const char* strName??CU_TestFunc pTestFunc);
typedef struct CU_TestInfo
typedef struct CU_SuiteInfo
CU_ErrorCode CU_register_suites(CU_SuiteInfo suite_info[]);
CU_ErrorCode CU_register_nsuites(int suite_count?? ...);
CU_ErrorCode CU_set_suite_active(CU_pSuite pSuite?? CU_BOOL fNewActive)
CU_ErrorCode CU_set_test_active(CU_pTest?? CU_BOOL fNewActive)
CU_ErrorCode CU_set_suite_name(CU_pSuite pSuite?? const char *strNewName)
CU_ErrorCode CU_set_suite_initfunc(CU_pSuite pSuite?? CU_InitializeFunc pNewInit)
CU_ErrorCode CU_set_suite_cleanupfunc(CU_pSuite pSuite?? CU_CleanupFunc pNewClean)
CU_ErrorCode CU_set_test_name(CU_pTest pTest?? const char *strNewName)
CU_ErrorCode CU_set_test_func(CU_pTest pTest?? CU_TestFunc pNewFunc)
CU_pSuite CU_get_suite(const char* strName)
CU_pSuite CU_get_suite_at_pos(unsigned int pos)
unsigned int CU_get_suite_pos(CU_pSuite pSuite)
unsigned int CU_get_suite_pos_by_name(const char* strName)
CU_pTest CU_get_test(CU_pSuite pSuite?? const char *strName)
CU_pTest CU_get_test_at_pos(CU_pSuite pSuite?? unsigned int pos)
unsigned int CU_get_test_pos(CU_pSuite pSuite?? CU_pTest pTest)
unsigned int CU_get_test_pos_by_name(CU_pSuite pSuite?? const char *strName)

????4.2 ???????

????CU_pSuite CU_add_suite(const char* strName?? CU_InitializeFunc pInit?? CU_CleanupFunc pClean)

???????????????????ò?????????????????????????????????????????ò?????????????????????????????????????????????????????汾?????????????????????????????ú??????????????????????á?

??????????У?????????????е?????????????????????????????????????????У??????????????????????????????????????????Щ?????????????NULL??

?????ú????????????????

????CUE_SUCCESS suite creation was successful.

????CUE_NOREGISTRY Error the registry has not been initialized.

????CUE_NO_SUITENAME ErrorstrName was

????NULL.CUE_DUP_SUITE Warning the suite's name was not unique.

????CUE_NOMEMORY Error memory allocation failed.

????4.3 ?????????????????

????CU_pTest CU_add_test(CU_pSuite pSuite?? const char* strName?? CU_TestFunc pTestFunc)

??????????????????????ò?????????????????????????????????????????ò????????????????????????????汾????????????????????????ú??????????????????????á?

???????????????У????????????????е?????????????????????????????????????????????????????????????????????????в???????ú??????????á??????????в??????з??????

?????ú???????????7???

????CUE_SUCCESS suite creation was successful.

????CUE_NOREGISTRY Error: the registry has not been initialized.

????CUE_NOSUITE Error: the specified suite was NULL or invalid.

????CUE_NO_TESTNAME Error: strName was NULL.

????CUE_NO_TEST Error: pTestFunc was NULL or invalid.

????CUE_DUP_TEST Warning: the test's name was not unique.

????CUE_NOMEMORY Error: memory allocation failed.

????4.4 ?????????????????????????

????CUnit????????????????μ??

????#define CU_ADD_TEST(suite?? test) (CU_add_test(suite?? #test?? (CU_TestFunc)test))

??????Щ?????????????????????????????Ω????????????????????ò????????????????????????????????????????????????

????CU_ErrorCode CU_register_suites(CU_SuiteInfo suite_info[])

????CU_ErrorCode CU_register_nsuites(int suite_count?? ...)

??????????к???????????????????????????????????????????????????????????ζ?????????CUnit???????????????????????????????????????????????????????????????????????????????????????????????????????

????CU_TestInfo?????????????????????з????????飬????????????????????????????????????Ω???????????????????????????CU_TEST_INFO_NULL??β??

CU_TestInfo test_array1[] = {
{ "testname1"?? test_func1 }??
{ "testname2"?? test_func2 }??
{ "testname3"?? test_func3 }??
CU_TEST_INFO_NULL??
};

??????????CU_SuiteInfo?????????????????????????????????????????????????????????????????????????????

CU_SuiteInfo suites[] = {
{ "suitename1"?? suite1_init-func?? suite1_cleanup_func?? test_array1 }??
{ "suitename2"?? suite2_init-func?? suite2_cleanup_func?? test_array2 }??
CU_SUITE_INFO_NULL??
};

??????????????????????????????

????CU_ErrorCode error = CU_register_suites(suites);

????????

????CU_ErrorCode error = CU_register_nsuites(2?? suites1?? suites2);

??????Щ???????????????????????????????????????