CCUnitTestSuite* ccunit_newTestSuiteFromDfn (const CCUnitTestSuiteDfn* sdp)
{
- CCUnitTestSuite* suite = ccunit_newTestSuite (sdp->name);
+ CCUnitTestSuite* suite;
CCUnitTestDfn** tdpp;
+ if (!sdp)
+ return NULL;
+ suite = ccunit_newTestSuite (sdp->name);
+ if (!suite)
+ return NULL;
for (tdpp = (CCUnitTestDfn**)sdp->tests; *tdpp; tdpp ++)
{
const CCUnitTestDfn* tdp = *tdpp;
{
CCUnitTestSuite* sp;
sp = ccunit_newTestSuiteFromDfn ((CCUnitTestSuiteDfn*)tdp);
+ if (sp)
+ ccunit_addTestSuite (suite, sp);
}
else if (tdp->type == ccunitTypeFixture)
{
- const CCUnitTestFixtureDfn* fdp = (CCUnitTestFixtureDfn*)tdp;
+ CCUnitTestFixtureDfn* fdp = (CCUnitTestFixtureDfn*)tdp;
CCUnitTestFixture* fp;
CCUnitTestCase* cd;
- fp = ccunit_newTestFixture (fdp->name, fdp->setUp, fdp->tearDown,
- fdp->ctor, fdp->dtor);
- ccunit_addTestFixture (suite, fp);
- for (cd = (CCUnitTestCase*)fdp->testCases; cd->name; cd ++)
+ fp = ccunit_newTestFixture (fdp->name,
+ ccunit_newTestFunc (fdp->setUp.name,
+ fdp->setUp.desc,
+ fdp->setUp.runTest),
+ ccunit_newTestFunc (fdp->tearDown.name,
+ fdp->tearDown.desc,
+ fdp->tearDown.runTest));
+ if (fp)
{
- CCUnitTestCase* cp;
- cp = ccunit_newTestCase (cd->name, cd->desc, cd->runTest);
- ccunit_addTestCase (fp, cp);
+ ccunit_addTestFixture (suite, fp);
+ for (cd = (CCUnitTestCase*)fdp->testCases; cd->name; cd ++)
+ {
+ CCUnitTestCase* cp;
+ cp = ccunit_newTestCase (cd->name, cd->desc, cd->runTest);
+ if (cp)
+ ccunit_addTestCase (fp, cp);
+ }
}
}
}
CCUnitTestResult* result)
{
if (!result)
- result = ccunit_newTestResult ();
+ {
+ result = ccunit_newTestResult ();
+ if (!result)
+ return NULL;
+ }
suite->test.run (&suite->test, result);
return result;
}