void TestCuSuiteDetails_MultiplePasses(CuTest* tc) { CuSuite ts; CuTest tc1, tc2; CuString details; const char* expected; CuSuiteInit(&ts); CuTestInit(&tc1, "TestPasses", TestPasses); CuTestInit(&tc2, "TestPasses", TestPasses); CuStringInit(&details); CuSuiteAdd(&ts, &tc1); CuSuiteAdd(&ts, &tc2); CuSuiteRun(&ts); CuSuiteDetails(&ts, &details); CuAssertTrue(tc, ts.count == 2); CuAssertTrue(tc, ts.failCount == 0); expected = "OK (2 tests)\n"; CuAssertStrEquals(tc, expected, details.buffer); }
void TestCustomProgressCallback(CuTest* tc) { CuSuite ts; CuTest tc1, tc2, tc3, tc4; customProgressCallbackCounter = 0; cuPreferences.progressCallback = CustomProgressCallback; CuSuiteInit(&ts); CuTestInit(&tc1, "TestPasses", TestPasses); CuTestInit(&tc2, "TestPasses", TestPasses); CuTestInit(&tc3, "TestFails", zTestFails); CuTestInit(&tc4, "TestPasses", TestPasses); CuSuiteAdd(&ts, &tc1); CuSuiteAdd(&ts, &tc2); CuSuiteAdd(&ts, &tc3); CuSuiteAdd(&ts, &tc4); CuAssertTrue(tc, ts.count == 4); CuSuiteRun(&ts); CuAssertTrue(tc, ts.count - ts.failCount == 3); CuAssertTrue(tc, ts.failCount == 1); CuAssertTrue(tc, customProgressCallbackCounter == 4); cuPreferences.progressCallback = NULL; }
void TestCuSuiteDetails_SingleFail(CuTest* tc) { CuSuite ts; CuTest tc1, tc2; CuString details; const char* front; const char* back; CuSuiteInit(&ts); CuTestInit(&tc1, "TestPasses", TestPasses); CuTestInit(&tc2, "TestFails", zTestFails); CuStringInit(&details); CuSuiteAdd(&ts, &tc1); CuSuiteAdd(&ts, &tc2); CuSuiteRun(&ts); CuSuiteDetails(&ts, &details); CuAssertTrue(tc, ts.count == 2); CuAssertTrue(tc, ts.failCount == 1); front = "There was 1 failure:\n" "1) TestFails: "; back = "test should fail\n" "\n!!!FAILURES!!!\n" "Runs: 2 Passes: 1 Fails: 1\n"; CuAssertStrEquals(tc, back, details.buffer + strlen(details.buffer) - strlen(back)); details.buffer[strlen(front)] = 0; CuAssertStrEquals(tc, front, details.buffer); }
void CuSuiteAddSuite(CuSuite *testSuite, CuSuite *testSuite2) { int i; for (i = 0; i < testSuite2->count; ++i) { CuTest *testCase = testSuite2->list[i]; CuSuiteAdd(testSuite, testCase); } }
void CuSuiteSkip(CuSuite* testSuite, CuTest *testCase, const char *skippedBy, const char *msg) { testCase->skip = 1; testCase->skippedBy = skippedBy; \ testCase->skipMessage = msg; \ CuSuiteAdd(testSuite, testCase); \ }
void TestCuSuiteAddSuite(CuTest* tc) { CuSuite* ts1 = CuSuiteNew(); CuSuite* ts2 = CuSuiteNew(); CuSuiteAdd(ts1, CuTestNew("TestFails1", zTestFails)); CuSuiteAdd(ts1, CuTestNew("TestFails2", zTestFails)); CuSuiteAdd(ts2, CuTestNew("TestFails3", zTestFails)); CuSuiteAdd(ts2, CuTestNew("TestFails4", zTestFails)); CuSuiteAddSuite(ts1, ts2); CuAssertIntEquals(tc, 4, ts1->count); CuAssertStrEquals(tc, "TestFails1", ts1->list[0]->name); CuAssertStrEquals(tc, "TestFails2", ts1->list[1]->name); CuAssertStrEquals(tc, "TestFails3", ts1->list[2]->name); CuAssertStrEquals(tc, "TestFails4", ts1->list[3]->name); }
void CuSuiteAddSuite(CuSuite* testSuite, CuSuite* testSuite2) { int i; for (i = 0 ; i < testSuite2->count ; ++i) { CuTest* testCase = testSuite2->list[i]; CuTest* newTest = CU_ALLOC(CuTest); CuTestInit(newTest, testCase->name, testCase->function); CuSuiteAdd(testSuite, newTest); } }
void CuSuiteMoveSuite(CuSuite* testSuite, CuSuite* testSuite2) { int i; for (i = 0 ; i < testSuite2->count ; ++i) { CuTest* testCase = testSuite2->list[i]; CuSuiteAdd(testSuite, testCase); testSuite2->list[i] = NULL; } CuSuiteDelete(testSuite2); }
void TestCuSuiteSummary(CuTest* tc) { CuSuite ts; CuTest tc1, tc2; CuString summary; CuSuiteInit(&ts); CuTestInit(&tc1, "TestPasses", TestPasses); CuTestInit(&tc2, "TestFails", zTestFails); CuStringInit(&summary); CuSuiteAdd(&ts, &tc1); CuSuiteAdd(&ts, &tc2); CuSuiteRun(&ts); CuSuiteSummary(&ts, &summary); CuAssertTrue(tc, ts.count == 2); CuAssertTrue(tc, ts.failCount == 1); CuAssertStrEquals(tc, ".F\n\n", summary.buffer); }
void TestCuSuiteRun(CuTest* tc) { CuSuite ts; CuTest tc1, tc2, tc3, tc4; CuSuiteInit(&ts); CuTestInit(&tc1, "TestPasses", TestPasses); CuTestInit(&tc2, "TestPasses", TestPasses); CuTestInit(&tc3, "TestFails", zTestFails); CuTestInit(&tc4, "TestFails", zTestFails); CuSuiteAdd(&ts, &tc1); CuSuiteAdd(&ts, &tc2); CuSuiteAdd(&ts, &tc3); CuSuiteAdd(&ts, &tc4); CuAssertTrue(tc, ts.count == 4); CuSuiteRun(&ts); CuAssertTrue(tc, ts.count - ts.failCount == 2); CuAssertTrue(tc, ts.failCount == 2); }
void TestCuSuiteAddTest(CuTest* tc) { CuSuite ts; CuTest tc2; CuSuiteInit(&ts); CuTestInit(&tc2, "MyTest", zTestFails); CuSuiteAdd(&ts, &tc2); CuAssertTrue(tc, ts.count == 1); CuAssertStrEquals(tc, "MyTest", ts.list[0]->name); }
void TestCuSuiteDetails_MultipleFails_gcclike(CuTest* tc) { CuSuite ts; CuTest tc1, tc2; CuString details; const char* front; const char* mid; const char* back; cuPreferences.outputFormat = CuOutputFormat_gcclike; CuSuiteInit(&ts); CuTestInit(&tc1, "TestFails1", zTestFails); CuTestInit(&tc2, "TestFails2", zTestFails); CuStringInit(&details); CuSuiteAdd(&ts, &tc1); CuSuiteAdd(&ts, &tc2); CuSuiteRun(&ts); CuSuiteDetails(&ts, &details); CuAssertTrue(tc, ts.count == 2); CuAssertTrue(tc, ts.failCount == 2); front = "There were 2 failures:\n" __FILE__ ":"; mid = "test should fail\n" __FILE__ ":"; back = "test should fail\n" "\n!!!FAILURES!!!\n" "Runs: 2 Passes: 0 Fails: 2\n"; CuAssertStrEquals(tc, back, details.buffer + strlen(details.buffer) - strlen(back)); CuAssert(tc, "Couldn't find middle", strstr(details.buffer, mid) != NULL); details.buffer[strlen(front)] = 0; CuAssertStrEquals(tc, front, details.buffer); }