예제 #1
0
void runTestCase(void* item, void* extraData) {
  TestCase testCase = (TestCase)item;
  TestSuite testSuite = (TestSuite)extraData;
  int result;
  if(!testSuite->onlyPrintFailing) {
    printTestName(testCase->name);
  }

  if(testCase->testCaseFunc != NULL) {
    if(testSuite->setup != NULL) {
      testSuite->setup();
    }
    result = testCase->testCaseFunc();
    if(result == 0) {
      if(!testSuite->onlyPrintFailing) {
        printTestSuccess();
      }
      testSuite->numSuccess++;
    }
    else {
      printTestFail();
      testSuite->numFail++;
    }

    if(testSuite->teardown != NULL) {
      testSuite->teardown();
    }
  }
  else {
    if(!testSuite->onlyPrintFailing) {
      _printTestSkipped();
    }
    testSuite->numSkips++;
  }
}