/** Print a list of tests contained in a specified suite * in the detail window. * @param pSuite The suite to query (non-NULL). */ static void list_tests(CU_pSuite pSuite) { CU_pTest pCurTest = NULL; int i; assert(pSuite); if (!create_pad(&details_pad, application_windows.pDetailsWin, pSuite->uiNumberOfTests == 0 ? 1 : pSuite->uiNumberOfTests + 4, 256)) { return; } if (0 == pSuite->uiNumberOfTests) { mvwprintw(details_pad.pPad, 0, 0, "Suite %s contains no tests.", pSuite->pName); refresh_details_window(); return; } assert(pSuite->pTest); mvwprintw(details_pad.pPad, 0, 0, " Tests in suite %s", pSuite->pName); for (i = 0, pCurTest = pSuite->pTest; pCurTest; pCurTest = pCurTest->pNext, i++) { char szTemp[256]; snprintf(szTemp, sizeof(szTemp), "%3d. %s", i + 1, pCurTest->pName); mvwprintw(details_pad.pPad, i + 2, 0, "%s", szTemp); } mvwprintw(details_pad.pPad, i + 2, 0, "%s", "---------------------------------------------"); mvwprintw(details_pad.pPad, i + 3, 0, "Total Number of Tests : %-d", pSuite->uiNumberOfTests); refresh_details_window(); }
/** Handler function called at completion of all tests in a suite. * @param pFailure Pointer to the test failure record list. */ static void curses_all_tests_complete_message_handler(const CU_pFailureRecord pFailure) { /* Not used in curses implementation - quiet compiler warning */ CU_UNREFERENCED_PARAMETER(pFailure); f_pCurrentTest = NULL; f_pCurrentSuite = NULL; if (!create_pad(&details_pad, application_windows.pDetailsWin, 16 , 256)) { return; } mvwprintw(details_pad.pPad, 0, 0, "%s", "====== Suite Run Summary ======"); mvwprintw(details_pad.pPad, 1, 0, " TOTAL SUITES: %4u", f_uiTotalSuites); mvwprintw(details_pad.pPad, 2, 0, " Run: %4u", f_uiTotalSuites - f_uiSuitesSkipped); mvwprintw(details_pad.pPad, 3, 0, " Skipped: %4u", f_uiSuitesSkipped); mvwprintw(details_pad.pPad, 5, 0, "%s", "====== Test Run Summary ======="); mvwprintw(details_pad.pPad, 6, 0, " TOTAL TESTS: %4u", f_uiTotalTests); mvwprintw(details_pad.pPad, 7, 0, " Run: %4u", f_uiTestsRun); mvwprintw(details_pad.pPad, 8, 0, " Skipped: %4u", f_uiTestsSkipped); mvwprintw(details_pad.pPad, 9, 0, " Successful: %4u", f_uiTestsRunSuccessful); mvwprintw(details_pad.pPad, 10, 0, " Failed: %4u", f_uiTestsFailed); mvwprintw(details_pad.pPad, 12, 0, "%s", "====== Assertion Summary ======"); mvwprintw(details_pad.pPad, 13, 0, " TOTAL ASSERTS: %4u", CU_get_number_of_asserts()); mvwprintw(details_pad.pPad, 14, 0, " Passed: %4u", CU_get_number_of_successes()); mvwprintw(details_pad.pPad, 15, 0, " Failed: %4u", CU_get_number_of_failures()); refresh_details_window(); refresh_run_summary_window(); }
/** Print a list of registered suites in the detail window. * @param pRegistry The CU_pTestRegistry to query (non-NULL). */ static void list_suites(CU_pTestRegistry pRegistry) { CU_pSuite pCurSuite = NULL; int i; if (NULL == pRegistry) { pRegistry = CU_get_registry(); } assert(pRegistry); if (!create_pad(&details_pad, application_windows.pDetailsWin, pRegistry->uiNumberOfSuites == 0 ? 1 : pRegistry->uiNumberOfSuites + 4, 256)) { return; } if (0 == pRegistry->uiNumberOfSuites) { mvwprintw(details_pad.pPad, 0, 0, "%s", "No test suites defined."); refresh_details_window(); return; } assert(pRegistry->pSuite); mvwprintw(details_pad.pPad, 0, 0, "%s", " Suite Name Init? Cleanup? # Tests"); for (i = 0, pCurSuite = pRegistry->pSuite; pCurSuite; pCurSuite = pCurSuite->pNext, i++) { char szTemp[256]; snprintf(szTemp, sizeof(szTemp), "%3d. %-34.33s %3s %3s %3d", i + 1, pCurSuite->pName, pCurSuite->pInitializeFunc ? "YES" : "NO", pCurSuite->pCleanupFunc ? "YES" : "NO", pCurSuite->uiNumberOfTests); mvwprintw(details_pad.pPad, i + 2, 0, "%s", szTemp); } mvwprintw(details_pad.pPad, i + 2, 0, "%s", "------------------------------------------------------------------"); mvwprintw(details_pad.pPad, i + 3, 0, "Total Number of Test Suites : %-d", pRegistry->uiNumberOfSuites); refresh_details_window(); }
int LIB_init(const struct driver *drv, int argc, char **argv) { const char *p; driver = drv; ftcap = parse_freetypecap(); /* initialize graphics */ p = getenv("GRASS_WIDTH"); screen_left = 0; screen_right = (p && atoi(p)) ? atoi(p) : DEF_WIDTH; p = getenv("GRASS_HEIGHT"); screen_top = 0; screen_bottom = (p && atoi(p)) ? atoi(p) : DEF_HEIGHT; /* read mouse button setting */ if ((p = getenv("GRASS_MOUSE_BUTTON"))) { int i; for (i = 0; i < 3 && p[i]; i++) { if (p[i] < '1' || p[i] > '3') break; } if (i == 3 && p[0] != p[1] && p[1] != p[2] && p[0] != p[2]) { for (i = 0; i < 3; i++) mouse_button[i] = p[i] - '0'; } } if (COM_Graph_set(argc, argv) < 0) exit(1); /* initialize the pads */ create_pad(""); /* scratch pad */ return 0; }
/** Display the record of test failures in the detail window. */ static void show_failures(void) { int i; CU_pFailureRecord pFailure = CU_get_failure_list(); unsigned int nFailures = CU_get_number_of_failures(); if (!create_pad(&details_pad, application_windows.pDetailsWin, nFailures == 0 ? 1 : nFailures + 5, 256)) { return; } if (0 == nFailures) { mvwprintw(details_pad.pPad, 0, 0, "%s", "No Failures."); refresh_details_window(); return; } assert(pFailure); mvwprintw(details_pad.pPad, 1, 0, "%s", " src_file:line# : (suite:test) : failure_condition"); for (i = 0 ; pFailure ; pFailure = pFailure->pNext, i++) { char szTemp[256]; snprintf(szTemp, 256, "%d. %s:%d : (%s : %s) : %s", i + 1, pFailure->strFileName ? pFailure->strFileName : "", pFailure->uiLineNumber, pFailure->pSuite ? pFailure->pSuite->pName : "", pFailure->pTest ? pFailure->pTest->pName : "", pFailure->strCondition ? pFailure->strCondition : ""); mvwprintw(details_pad.pPad, i + 3, 0, "%s", szTemp); } mvwprintw(details_pad.pPad, i + 3, 0, "%s", "============================================="); mvwprintw(details_pad.pPad, i + 4, 0, "Total Number of Failures : %-d", nFailures); refresh_details_window(); }