📄 testrun.c
字号:
TEST(pRunSummary->nAssertsFailed == CU_get_number_of_failures());
TEST(pRunSummary->nFailureRecords == CU_get_number_of_failure_records());
/* set handlers to local functions */
CU_set_test_start_handler(test_start_handler);
CU_set_test_complete_handler(test_complete_handler);
CU_set_all_test_complete_handler(test_all_complete_handler);
CU_set_suite_init_failure_handler(suite_init_failure_handler);
CU_set_suite_cleanup_failure_handler(suite_cleanup_failure_handler);
/* confirm handlers set properly */
TEST(test_start_handler == CU_get_test_start_handler());
TEST(test_complete_handler == CU_get_test_complete_handler());
TEST(test_all_complete_handler == CU_get_all_test_complete_handler());
TEST(suite_init_failure_handler == CU_get_suite_init_failure_handler());
TEST(suite_cleanup_failure_handler == CU_get_suite_cleanup_failure_handler());
/* run tests again with handlers set */
clear_test_events();
CU_run_all_tests();
TEST(11 == f_nTestEvents);
if (11 == f_nTestEvents) {
pEvent = f_pFirstEvent;
TEST(TEST_START == pEvent->type);
TEST(pSuite1 == pEvent->pSuite);
TEST(pTest1 == pEvent->pTest);
TEST(NULL == pEvent->pFailure);
pEvent = pEvent->pNext;
TEST(TEST_COMPLETE == pEvent->type);
TEST(pSuite1 == pEvent->pSuite);
TEST(pTest1 == pEvent->pTest);
TEST(NULL == pEvent->pFailure);
pEvent = pEvent->pNext;
TEST(TEST_START == pEvent->type);
TEST(pSuite1 == pEvent->pSuite);
TEST(pTest2 == pEvent->pTest);
TEST(NULL == pEvent->pFailure);
pEvent = pEvent->pNext;
TEST(TEST_COMPLETE == pEvent->type);
TEST(pSuite1 == pEvent->pSuite);
TEST(pTest2 == pEvent->pTest);
TEST(NULL != pEvent->pFailure);
pEvent = pEvent->pNext;
TEST(TEST_START == pEvent->type);
TEST(pSuite1 == pEvent->pSuite);
TEST(pTest3 == pEvent->pTest);
TEST(NULL == pEvent->pFailure);
pEvent = pEvent->pNext;
TEST(TEST_COMPLETE == pEvent->type);
TEST(pSuite1 == pEvent->pSuite);
TEST(pTest3 == pEvent->pTest);
TEST(NULL == pEvent->pFailure);
pEvent = pEvent->pNext;
TEST(SUITE_INIT_FAILED == pEvent->type);
TEST(pSuite2 == pEvent->pSuite);
TEST(NULL == pEvent->pTest);
TEST(NULL == pEvent->pFailure);
pEvent = pEvent->pNext;
TEST(TEST_START == pEvent->type);
TEST(pSuite3 == pEvent->pSuite);
TEST(pTest5 == pEvent->pTest);
TEST(NULL == pEvent->pFailure);
pEvent = pEvent->pNext;
TEST(TEST_COMPLETE == pEvent->type);
TEST(pSuite3 == pEvent->pSuite);
TEST(pTest5 == pEvent->pTest);
TEST(NULL != pEvent->pFailure);
pEvent = pEvent->pNext;
TEST(SUITE_CLEANUP_FAILED == pEvent->type);
TEST(pSuite3 == pEvent->pSuite);
TEST(NULL == pEvent->pTest);
TEST(NULL == pEvent->pFailure);
pEvent = pEvent->pNext;
TEST(ALL_TESTS_COMPLETE == pEvent->type);
TEST(NULL == pEvent->pSuite);
TEST(NULL == pEvent->pTest);
TEST(NULL != pEvent->pFailure);
if (4 == CU_get_number_of_failure_records()) {
TEST(NULL != pEvent->pFailure->pNext);
TEST(NULL != pEvent->pFailure->pNext->pNext);
TEST(NULL != pEvent->pFailure->pNext->pNext->pNext);
TEST(NULL == pEvent->pFailure->pNext->pNext->pNext->pNext);
}
TEST(pEvent->pFailure == CU_get_failure_list());
}
TEST(2 == CU_get_number_of_suites_run());
TEST(2 == CU_get_number_of_suites_failed());
TEST(4 == CU_get_number_of_tests_run());
TEST(2 == CU_get_number_of_tests_failed());
TEST(4 == CU_get_number_of_asserts());
TEST(2 == CU_get_number_of_successes());
TEST(2 == CU_get_number_of_failures());
TEST(4 == CU_get_number_of_failure_records());
pRunSummary = CU_get_run_summary();
TEST(pRunSummary->nSuitesRun == CU_get_number_of_suites_run());
TEST(pRunSummary->nSuitesFailed == CU_get_number_of_suites_failed());
TEST(pRunSummary->nTestsRun == CU_get_number_of_tests_run());
TEST(pRunSummary->nTestsFailed == CU_get_number_of_tests_failed());
TEST(pRunSummary->nAsserts == CU_get_number_of_asserts());
TEST(pRunSummary->nAssertsFailed == CU_get_number_of_failures());
TEST(pRunSummary->nFailureRecords == CU_get_number_of_failure_records());
/* clear handlers and run again */
CU_set_test_start_handler(NULL);
CU_set_test_complete_handler(NULL);
CU_set_all_test_complete_handler(NULL);
CU_set_suite_init_failure_handler(NULL);
CU_set_suite_cleanup_failure_handler(NULL);
TEST(NULL == CU_get_test_start_handler());
TEST(NULL == CU_get_test_complete_handler());
TEST(NULL == CU_get_all_test_complete_handler());
TEST(NULL == CU_get_suite_init_failure_handler());
TEST(NULL == CU_get_suite_cleanup_failure_handler());
clear_test_events();
CU_run_all_tests();
TEST(0 == f_nTestEvents);
TEST(NULL == f_pFirstEvent);
TEST(2 == CU_get_number_of_suites_run());
TEST(2 == CU_get_number_of_suites_failed());
TEST(4 == CU_get_number_of_tests_run());
TEST(2 == CU_get_number_of_tests_failed());
TEST(4 == CU_get_number_of_asserts());
TEST(2 == CU_get_number_of_successes());
TEST(2 == CU_get_number_of_failures());
TEST(4 == CU_get_number_of_failure_records());
pRunSummary = CU_get_run_summary();
TEST(pRunSummary->nSuitesRun == CU_get_number_of_suites_run());
TEST(pRunSummary->nSuitesFailed == CU_get_number_of_suites_failed());
TEST(pRunSummary->nTestsRun == CU_get_number_of_tests_run());
TEST(pRunSummary->nTestsFailed == CU_get_number_of_tests_failed());
TEST(pRunSummary->nAsserts == CU_get_number_of_asserts());
TEST(pRunSummary->nAssertsFailed == CU_get_number_of_failures());
TEST(pRunSummary->nFailureRecords == CU_get_number_of_failure_records());
CU_cleanup_registry();
clear_test_events();
}
static CU_BOOL f_exit_called = CU_FALSE;
/* intercept exit for testing of CUEA_ABORT action */
void test_exit(int status)
{
CU_UNREFERENCED_PARAMETER(status); /* not used */
f_exit_called = CU_TRUE;
}
/*-------------------------------------------------*/
static void test_CU_run_all_tests(void)
{
CU_pSuite pSuite1 = NULL;
CU_pSuite pSuite2 = NULL;
CU_pSuite pSuite3 = NULL;
CU_pSuite pSuite4 = NULL;
CU_pRunSummary pRunSummary = NULL;
/* error - uninitialized registry (CUEA_IGNORE) */
CU_cleanup_registry();
CU_set_error_action(CUEA_IGNORE);
TEST(CUE_NOREGISTRY == CU_run_all_tests());
TEST(CUE_NOREGISTRY == CU_get_error());
/* error - uninitialized registry (CUEA_FAIL) */
CU_cleanup_registry();
CU_set_error_action(CUEA_FAIL);
TEST(CUE_NOREGISTRY == CU_run_all_tests());
TEST(CUE_NOREGISTRY == CU_get_error());
/* error - uninitialized registry (CUEA_ABORT) */
CU_cleanup_registry();
CU_set_error_action(CUEA_ABORT);
f_exit_called = CU_FALSE;
CU_run_all_tests();
TEST(CU_TRUE == f_exit_called);
f_exit_called = CU_FALSE;
/* run with no tests registered */
CU_set_error_action(CUEA_IGNORE);
CU_initialize_registry();
clear_test_events();
TEST(CUE_SUCCESS == CU_run_all_tests());
TEST(0 == f_nTestEvents);
TEST(NULL == f_pFirstEvent);
TEST(0 == CU_get_number_of_suites_run());
TEST(0 == CU_get_number_of_suites_failed());
TEST(0 == CU_get_number_of_tests_run());
TEST(0 == CU_get_number_of_tests_failed());
TEST(0 == CU_get_number_of_asserts());
TEST(0 == CU_get_number_of_successes());
TEST(0 == CU_get_number_of_failures());
TEST(0 == CU_get_number_of_failure_records());
TEST(NULL == CU_get_failure_list());
pRunSummary = CU_get_run_summary();
TEST(pRunSummary->nSuitesRun == CU_get_number_of_suites_run());
TEST(pRunSummary->nSuitesFailed == CU_get_number_of_suites_failed());
TEST(pRunSummary->nTestsRun == CU_get_number_of_tests_run());
TEST(pRunSummary->nTestsFailed == CU_get_number_of_tests_failed());
TEST(pRunSummary->nAsserts == CU_get_number_of_asserts());
TEST(pRunSummary->nAssertsFailed == CU_get_number_of_failures());
TEST(pRunSummary->nFailureRecords == CU_get_number_of_failure_records());
/* register some suites and tests */
CU_initialize_registry();
pSuite1 = CU_add_suite("suite1", NULL, NULL);
CU_add_test(pSuite1, "test1", test_succeed);
CU_add_test(pSuite1, "test2", test_fail);
CU_add_test(pSuite1, "test3", test_succeed);
CU_add_test(pSuite1, "test4", test_fail);
CU_add_test(pSuite1, "test5", test_succeed);
pSuite2 = CU_add_suite("suite2", suite_fail, NULL);
CU_add_test(pSuite2, "test6", test_succeed);
CU_add_test(pSuite2, "test7", test_succeed);
pSuite3 = CU_add_suite("suite3", NULL, NULL);
CU_add_test(pSuite3, "test8", test_fail);
CU_add_test(pSuite3, "test9", test_succeed);
pSuite4 = CU_add_suite("suite4", NULL, suite_fail);
CU_add_test(pSuite4, "test10", test_succeed);
TEST_FATAL(CUE_SUCCESS == CU_get_error());
/* run all tests (CUEA_IGNORE) */
clear_test_events();
CU_set_error_action(CUEA_IGNORE);
TEST(CUE_SINIT_FAILED == CU_run_all_tests());
TEST(0 == f_nTestEvents);
TEST(NULL == f_pFirstEvent);
TEST(3 == CU_get_number_of_suites_run());
TEST(2 == CU_get_number_of_suites_failed());
TEST(8 == CU_get_number_of_tests_run());
TEST(3 == CU_get_number_of_tests_failed());
TEST(8 == CU_get_number_of_asserts());
TEST(5 == CU_get_number_of_successes());
TEST(3 == CU_get_number_of_failures());
TEST(5 == CU_get_number_of_failure_records());
pRunSummary = CU_get_run_summary();
TEST(pRunSummary->nSuitesRun == CU_get_number_of_suites_run());
TEST(pRunSummary->nSuitesFailed == CU_get_number_of_suites_failed());
TEST(pRunSummary->nTestsRun == CU_get_number_of_tests_run());
TEST(pRunSummary->nTestsFailed == CU_get_number_of_tests_failed());
TEST(pRunSummary->nAsserts == CU_get_number_of_asserts());
TEST(pRunSummary->nAssertsFailed == CU_get_number_of_failures());
TEST(pRunSummary->nFailureRecords == CU_get_number_of_failure_records());
/* run all tests (CUEA_FAIL) */
clear_test_events();
CU_set_error_action(CUEA_FAIL);
TEST(CUE_SINIT_FAILED == CU_run_all_tests());
TEST(0 == f_nTestEvents);
TEST(NULL == f_pFirstEvent);
TEST(1 == CU_get_number_of_suites_run());
TEST(1 == CU_get_number_of_suites_failed());
TEST(5 == CU_get_number_of_tests_run());
TEST(2 == CU_get_number_of_tests_failed());
TEST(5 == CU_get_number_of_asserts());
TEST(3 == CU_get_number_of_successes());
TEST(2 == CU_get_number_of_failures());
TEST(3 == CU_get_number_of_failure_records());
pRunSummary = CU_get_run_summary();
TEST(pRunSummary->nSuitesRun == CU_get_number_of_suites_run());
TEST(pRunSummary->nSuitesFailed == CU_get_number_of_suites_failed());
TEST(pRunSummary->nTestsRun == CU_get_number_of_tests_run());
TEST(pRunSummary->nTestsFailed == CU_get_number_of_tests_failed());
TEST(pRunSummary->nAsserts == CU_get_number_of_asserts());
TEST(pRunSummary->nAssertsFailed == CU_get_number_of_failures());
TEST(pRunSummary->nFailureRecords == CU_get_number_of_failure_records());
/* run all tests (CUEA_ABORT) */
clear_test_events();
CU_set_error_action(CUEA_ABORT);
f_exit_called = CU_FALSE;
TEST(CUE_SINIT_FAILED == CU_run_all_tests());
TEST(CU_TRUE == f_exit_called);
f_exit_called = CU_FALSE;
TEST(0 == f_nTestEvents);
TEST(NULL == f_pFirstEvent);
TEST(1 == CU_get_number_of_suites_run());
TEST(1 == CU_get_number_of_suites_failed());
TEST(5 == CU_get_number_of_tests_run());
TEST(2 == CU_get_number_of_tests_failed());
TEST(5 == CU_get_number_of_asserts());
TEST(3 == CU_get_number_of_successes());
TEST(2 == CU_get_number_of_failures());
TEST(3 == CU_get_number_of_failure_records());
pRunSummary = CU_get_run_summary();
TEST(pRunSummary->nSuitesRun == CU_get_number_of_suites_run());
TEST(pRunSummary->nSuitesFailed == CU_get_number_of_suites_failed());
TEST(pRunSummary->nTestsRun == CU_get_number_of_tests_run());
TEST(pRunSummary->nTestsFailed == CU_get_number_of_tests_failed());
TEST(pRunSummary->nAsserts == CU_get_number_of_asserts());
TEST(pRunSummary->nAssertsFailed == CU_get_number_of_failures());
TEST(pRunSummary->nFailureRecords == CU_get_number_of_failure_records());
/* clean up after testing */
CU_set_error_action(CUEA_IGNORE);
CU_cleanup_registry();
clear_test_events();
}
/*-------------------------------------------------*/
static void test_CU_run_suite(void)
{
CU_pSuite pSuite1 = NULL;
CU_pSuite pSuite2 = NULL;
CU_pSuite pSuite3 = NULL;
CU_pSuite pSuite4 = NULL;
CU_pRunSummary pRunSummary = NULL;
/* error - NULL suite (CUEA_IGNORE) */
CU_set_error_action(CUEA_IGNORE);
TEST(CUE_NOSUITE == CU_run_suite(NULL));
TEST(CUE_NOSUITE == CU_get_error());
/* error - NULL suite (CUEA_FAIL) */
CU_set_error_action(CUEA_FAIL);
TEST(CUE_NOSUITE == CU_run_suite(NULL));
TEST(CUE_NOSUITE == CU_get_error());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -