亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? testrun.c

?? CUNIT
?? C
?? 第 1 頁 / 共 5 頁
字號:
    /* Clear results from the previous run */    clear_previous_results(&f_run_summary, &f_failure_list);    pSuite = pRegistry->pSuite;    while (pSuite && (!result || (CU_get_error_action() == CUEA_IGNORE))) {      /* if the suite has tests, run it */      if (pSuite->uiNumberOfTests) {        result2 = run_single_suite(pSuite, &f_run_summary);        result = (CUE_SUCCESS == result) ? result2 : result;  /* result = 1st error encountered */      }      pSuite = pSuite->pNext;    }    /* test run is complete - clear flag */    f_bTestIsRunning = FALSE;    if (f_pAllTestsCompleteMessageHandler)     (*f_pAllTestsCompleteMessageHandler)(f_failure_list);  }  return result;}/*------------------------------------------------------------------------*//** Run all tests in a specified suite. * The suite need not be registered in the test registry to be run. * Any initialization function for the suite is first called, * then the suite is run using run_single_suite(), and any * suite cleanup function is called.  Note that the * run statistics (counts of tests, successes, failures) * are initialized each time this function is called. * If an error condition occurs during the run, the action * depends on the current error action (see CU_set_error_action()). * @param pSuite The suite containing the test (non-NULL) * @return A CU_ErrorCode indicating the first error condition *         encountered while running the suite.  CU_run_suite() *         sets and returns CUE_NOSUITE if pSuite is NULL.  Other *         error codes can be set during suite initialization or *         cleanup or during test runs. * @see CU_run_all_tests() to run all suites. * @see CU_run_test() to run a single test in a specific suite. */CU_ErrorCode CU_run_suite(CU_pSuite pSuite){  CU_ErrorCode result;  CU_set_error(result = CUE_SUCCESS);  if (!pSuite) {    CU_set_error(result = CUE_NOSUITE);  }  else {    /* test run is starting - set flag */    f_bTestIsRunning = TRUE;    /* Clear results from the previous run */    clear_previous_results(&f_run_summary, &f_failure_list);    if (pSuite->uiNumberOfTests)      result = run_single_suite(pSuite, &f_run_summary);    /* test run is complete - clear flag */    f_bTestIsRunning = FALSE;    if (f_pAllTestsCompleteMessageHandler)      (*f_pAllTestsCompleteMessageHandler)(f_failure_list);  }  return result;}/*------------------------------------------------------------------------*//** Run a specific test in a specified suite. * The suite need not be registered in the test registry to be run, * although the test must be registered in the specified suite. * Any initialization function for the suite is first * called, then the test is run using run_single_test(), and * any suite cleanup function is called.  Note that the * run statistics (counts of tests, successes, failures) * are initialized each time this function is called. * @param pSuite The suite containing the test (non-NULL) * @param pTest  The test to run (non-NULL) * @return A CU_ErrorCode indicating the first error condition *         encountered while running the suite.  CU_run_test() *         sets and returns CUE_NOSUITE if pSuite is NULL, *         CUE_NOTEST if pTest is NULL, and CUE_TEST_NOT_IN_SUITE *         if pTest is not registered in pSuite.  Other *         error codes can be set during suite initialization or *         cleanup or during the test run. * @see CU_run_all_tests() to run all tests/suites. * @see CU_run_suite() to run all tests in a specific suite. */CU_ErrorCode CU_run_test(CU_pSuite pSuite, CU_pTest pTest){  CU_ErrorCode result;  CU_ErrorCode result2;  CU_set_error(result = CUE_SUCCESS);  if (!pSuite) {    CU_set_error(result = CUE_NOSUITE);  }  else if (!pTest) {    CU_set_error(result = CUE_NOTEST);  }  else if (NULL == CU_get_test_by_name(pTest->pName, pSuite)) {    CU_set_error(result = CUE_TEST_NOT_IN_SUITE);  }  else {    /* test run is starting - set flag */    f_bTestIsRunning = TRUE;    /* Clear results from the previous run */    clear_previous_results(&f_run_summary, &f_failure_list);    f_pCurTest = NULL;    f_pCurSuite = pSuite;    if ((pSuite->pInitializeFunc) && (*pSuite->pInitializeFunc)()) {      if (f_pSuiteInitFailureMessageHandler) {        (*f_pSuiteInitFailureMessageHandler)(pSuite);      }      f_run_summary.nSuitesFailed++;      add_failure(&f_failure_list, &f_run_summary,                  0, "Suite Initialization failed - Test Skipped", "CUnit System", pSuite, pTest);      CU_set_error(result = CUE_SINIT_FAILED);      /* test run is complete - clear flag */      f_bTestIsRunning = FALSE;    }    /* reach here if no suite initialization, or if it succeeded */    else {      result2 = run_single_test(pTest, &f_run_summary);      result = (CUE_SUCCESS == result) ? result2 : result;      if ((pSuite->pCleanupFunc) && (*pSuite->pCleanupFunc)()) {        f_run_summary.nSuitesFailed++;        add_failure(&f_failure_list, &f_run_summary,                    0, "Suite cleanup failed.", "CUnit System", pSuite, pTest);        result = (CUE_SUCCESS == result) ? CUE_SCLEAN_FAILED : result;        CU_set_error(CUE_SCLEAN_FAILED);      }      /* test run is complete - clear flag */      f_bTestIsRunning = FALSE;      if (f_pAllTestsCompleteMessageHandler)        (*f_pAllTestsCompleteMessageHandler)(f_failure_list);      f_pCurSuite = NULL;    }  }  return result;}/*------------------------------------------------------------------------*//** Initialize the run summary information stored from * the previous test run.  Resets the run counts to zero, * and frees any memory associated with failure records. * Calling this function multiple times, while inefficient, * will not cause an error condition. * @see clear_previous_results() */void CU_clear_previous_results(void){  clear_previous_results(&f_run_summary, &f_failure_list);}/*------------------------------------------------------------------------*//** Retrieve a pointer to the currently-running suite (NULL if none). */CU_pSuite CU_get_current_suite(void){  return f_pCurSuite;}/*------------------------------------------------------------------------*//** Retrieve a pointer to the currently-running test (NULL if none). */CU_pTest CU_get_current_test(void){  return f_pCurTest;}/*------------------------------------------------------------------------*//** Returns <CODE>TRUE</CODE> if a test run is in progress, * <CODE>TRUE</CODE> otherwise. */BOOL CU_is_test_running(void){  return f_bTestIsRunning;}/*------------------------------------------------------------------------*//** Record a failed test. * This function is called whenever a test fails to record the * details of the failure.  This includes user assertion failures * and system errors such as failure to initialize a suite. * @param ppFailure    Pointer to head of linked list of failure *                     records to append with new failure record. *                     If NULL, it will be set to point to the new *                     failure record. * @param pRunSummary  Pointer to CU_RunSummary keeping track of failure records *                     (ignored if NULL). * @param uiLineNumber Line number of the failure, if applicable. * @param szCondition  Description of failure condition * @param szFileName   Name of file, if applicable * @param pSuite       The suite being run at time of failure * @param pTest        The test being run at time of failure */void add_failure(CU_pFailureRecord* ppFailure, CU_pRunSummary pRunSummary,                 unsigned int uiLineNumber, char szCondition[],                 char szFileName[], CU_pSuite pSuite, CU_pTest pTest){  CU_pFailureRecord pFailureNew = NULL;  CU_pFailureRecord pTemp = NULL;  pFailureNew = (CU_pFailureRecord)CU_MALLOC(sizeof(CU_FailureRecord));  if (!pFailureNew)    return;  pFailureNew->strFileName = NULL;  pFailureNew->strCondition = NULL;  if (szFileName) {    pFailureNew->strFileName = (char*)CU_MALLOC(strlen(szFileName) + 1);    if(!pFailureNew->strFileName) {      CU_FREE(pFailureNew);      return;    }    strcpy(pFailureNew->strFileName, szFileName);  }  if (szCondition) {    pFailureNew->strCondition = (char*)CU_MALLOC(strlen(szCondition) + 1);    if (!pFailureNew->strCondition) {      if(pFailureNew->strFileName) {        CU_FREE(pFailureNew->strFileName);      }      CU_FREE(pFailureNew);      return;    }    strcpy(pFailureNew->strCondition, szCondition);  }  pFailureNew->uiLineNumber = uiLineNumber;  pFailureNew->pTest = pTest;  pFailureNew->pSuite = pSuite;  pFailureNew->pNext = NULL;  pFailureNew->pPrev = NULL;  pTemp = *ppFailure;  if (pTemp) {    while (pTemp->pNext) {      pTemp = pTemp->pNext;    }    pTemp->pNext = pFailureNew;    pFailureNew->pPrev = pTemp;  }  else {    *ppFailure = pFailureNew;  }  if (NULL != pRunSummary)    ++(pRunSummary->nFailureRecords);  f_last_failure = pFailureNew;}/* *  Local function for result set initialization/cleanup. *//*------------------------------------------------------------------------*//** Initialize the run summary information in the * specified structure.  Resets the run counts to zero, * and calls cleanup_failure_list() if failures * were recorded by the last test run. * Calling this function multiple times, while inefficient, * will not cause an error condition. * @param pRunSummary CU_RunSummary to initialize. * @see CU_clear_previous_results() */static void clear_previous_results(CU_pRunSummary pRunSummary, CU_pFailureRecord* ppFailure){  pRunSummary->nSuitesRun = 0;  pRunSummary->nSuitesFailed = 0;  pRunSummary->nTestsRun = 0;  pRunSummary->nTestsFailed = 0;  pRunSummary->nAsserts = 0;  pRunSummary->nAssertsFailed = 0;  pRunSummary->nFailureRecords = 0;  if (NULL != *ppFailure)    cleanup_failure_list(ppFailure);  f_last_failure = NULL;}/*------------------------------------------------------------------------*//** Free all memory allocated for the linked list of * test failure records.  pFailure is reset to NULL * after its list is cleaned up. * @param ppFailure Pointer to head of linked list of *                  CU_pFailureRecords to clean. * @see CU_clear_previous_results() */static void cleanup_failure_list(CU_pFailureRecord* ppFailure){  CU_pFailureRecord pCurFailure = NULL;  CU_pFailureRecord pNextFailure = NULL;  pCurFailure = *ppFailure;  while (pCurFailure) {    if (pCurFailure->strCondition)      CU_FREE(pCurFailure->strCondition);    if (pCurFailure->strFileName)      CU_FREE(pCurFailure->strFileName);    pNextFailure = pCurFailure->pNext;    CU_FREE(pCurFailure);    pCurFailure = pNextFailure;  }  *ppFailure = NULL;}/*------------------------------------------------------------------------*//** Run all tests in a specified suite. * Internal function to run all tests in a suite.  The suite * need not be registered in the test registry to be run. * If the CUnit system is in an error condition after running * a test, no additional tests are run. * @param pSuite The suite containing the test (non-NULL). * @param pRunSummary The CU_RunSummary to receive the results (non-NULL). * @return A CU_ErrorCode indicating the status of the run. * @see CU_run_suite() for public interface function. * @see CU_run_all_tests() for running all suites. */static CU_ErrorCode run_single_suite(CU_pSuite pSuite, CU_pRunSummary pRunSummary){  CU_pTest pTest = NULL;  CU_ErrorCode result;  CU_ErrorCode result2;  assert(pSuite);  assert(pRunSummary);  f_pCurTest = NULL;  f_pCurSuite = pSuite;  CU_set_error(result = CUE_SUCCESS);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97se狠狠狠综合亚洲狠狠| 久久久五月婷婷| 久久久久97国产精华液好用吗| 久久久久97国产精华液好用吗| 久久精品视频在线免费观看| 国产精品久久福利| 天天色天天爱天天射综合| 美女视频黄久久| 国产91精品一区二区| 91激情五月电影| 国产欧美视频在线观看| 夜夜爽夜夜爽精品视频| 黑人精品欧美一区二区蜜桃| av中文字幕不卡| 欧美zozo另类异族| 亚洲精品视频在线| 精品一区二区三区在线观看| 欧美在线小视频| 中文字幕一区二区三区蜜月 | 国产一区二区美女诱惑| 色婷婷av一区二区三区软件| 精品久久久久久久久久久久包黑料| 国产精品久久久99| 国产精品亚洲一区二区三区妖精 | 亚洲大片精品永久免费| 国产精品1区2区| 日韩欧美一级二级三级久久久| 亚洲免费观看高清完整版在线观看 | 成人深夜视频在线观看| 日韩欧美你懂的| 视频一区国产视频| 欧美怡红院视频| 国产精品久久毛片| 国产精品一区二区不卡| 久久久久久电影| 麻豆精品国产91久久久久久| 欧美性猛交xxxxxxxx| 亚洲欧美另类在线| 色综合久久久久综合体| 亚洲欧美一区二区三区极速播放| 国产69精品久久久久777| 精品国产123| 国产一区日韩二区欧美三区| www久久久久| 岛国精品在线播放| 国产精品丝袜91| 成人app网站| 一区二区三区在线影院| 精品视频一区 二区 三区| 午夜免费欧美电影| 欧美一区二区三区视频免费| 久久99久久99小草精品免视看| 日韩视频一区二区三区| 激情欧美一区二区三区在线观看| 精品国产一区二区三区久久久蜜月 | www.综合网.com| 丝袜亚洲另类欧美| 日韩美一区二区三区| 高清国产午夜精品久久久久久| 久久新电视剧免费观看| 在线免费亚洲电影| 老司机免费视频一区二区| 日本一区二区在线不卡| 欧美色手机在线观看| 国产在线视视频有精品| 亚洲视频一区二区在线观看| 制服丝袜一区二区三区| 成人精品高清在线| 美女在线观看视频一区二区| 亚洲四区在线观看| 精品久久99ma| 欧美另类videos死尸| 国产成人av电影在线观看| 丝袜亚洲另类丝袜在线| 1000部国产精品成人观看| 精品国产第一区二区三区观看体验| 91国偷自产一区二区三区成为亚洲经典 | 成人一级视频在线观看| 奇米精品一区二区三区四区 | 在线免费亚洲电影| 成人小视频在线| 国产精品中文字幕欧美| 免费视频最近日韩| 午夜精品一区二区三区电影天堂| 国产色产综合产在线视频| 欧美一级日韩一级| 欧美美女一区二区三区| 欧美亚洲动漫精品| 色综合中文综合网| 亚洲免费av高清| 亚洲欧洲精品一区二区精品久久久| 欧美成人vps| 精品国产乱码久久久久久夜甘婷婷| 欧美日韩在线三区| 欧美精品色综合| 精品久久久久久最新网址| 26uuu精品一区二区在线观看| 日韩一级片在线播放| 精品久久久久久亚洲综合网| 欧美精品一区二区三区四区| 精品国精品国产尤物美女| 久久久久久久性| 最好看的中文字幕久久| 亚洲蜜桃精久久久久久久| 中文字幕中文乱码欧美一区二区| 中文字幕永久在线不卡| 一区二区三区不卡在线观看| 亚洲一区二区三区四区在线观看 | 波多野结衣中文字幕一区二区三区| 国产福利精品导航| 在线视频国内自拍亚洲视频| 欧美精品免费视频| 国产日韩欧美制服另类| 亚洲精品国产无套在线观| 日韩电影在线一区| av在线不卡观看免费观看| 日本电影欧美片| 久久综合视频网| 亚洲线精品一区二区三区| 裸体歌舞表演一区二区| 日本道色综合久久| 日韩免费观看2025年上映的电影| 日韩理论在线观看| 美女被吸乳得到大胸91| av一二三不卡影片| 欧美一区二区视频在线观看2020 | 国产精品亚洲午夜一区二区三区| 成人免费视频app| 日韩一区二区精品葵司在线 | 91精品国产综合久久婷婷香蕉 | 国产精品成人午夜| 久88久久88久久久| 欧美性一二三区| 成人欧美一区二区三区白人| 久久国内精品视频| 欧美日韩国产一级片| 亚洲天堂福利av| 东方欧美亚洲色图在线| 日韩免费视频线观看| 午夜精品国产更新| 欧美在线影院一区二区| 综合色中文字幕| 丁香激情综合五月| 亚洲国产成人自拍| 国产乱人伦偷精品视频免下载| 欧美变态口味重另类| 蜜桃一区二区三区四区| 911精品国产一区二区在线| 亚洲高清不卡在线观看| 欧美日韩不卡在线| 五月天激情综合网| 欧美一级在线观看| 久久国产综合精品| 国产婷婷色一区二区三区在线| 国产精品一区二区男女羞羞无遮挡| 精品少妇一区二区三区免费观看| 蜜臀精品一区二区三区在线观看 | 日日摸夜夜添夜夜添精品视频| 欧美性大战xxxxx久久久| 亚洲一区二区精品久久av| 在线免费观看一区| 三级久久三级久久| 亚洲精品一区二区精华| 成人看片黄a免费看在线| 国产精品视频一二| 欧美亚洲高清一区| 国产一区视频网站| 亚洲黄色av一区| 欧美丰满少妇xxxbbb| 国产黄色成人av| 一区二区高清在线| 精品第一国产综合精品aⅴ| av电影天堂一区二区在线| 性做久久久久久| 亚洲国产高清不卡| 777色狠狠一区二区三区| 国产a级毛片一区| 无吗不卡中文字幕| 国产精品网站在线| 欧美日韩国产免费| 成人精品视频一区二区三区| 日韩影视精彩在线| 亚洲色图欧洲色图| 337p日本欧洲亚洲大胆色噜噜| 日本韩国欧美一区二区三区| 久久99九九99精品| 亚洲国产精品影院| 亚洲欧洲精品成人久久奇米网| 91精品国产入口在线| 色又黄又爽网站www久久| 国产麻豆9l精品三级站| 五月开心婷婷久久| 亚洲一线二线三线视频| 中文字幕一区二区三区乱码在线| www欧美成人18+| 久久综合久久久久88| 日韩精品中文字幕在线一区| 欧美日韩视频在线一区二区| 91激情五月电影| 在线视频一区二区三|