OSDN Git Service

add new function
authortsntsumi <tsntsumi@users.sourceforge.jp>
Sun, 28 Sep 2003 13:47:56 +0000 (13:47 +0000)
committertsntsumi <tsntsumi@users.sourceforge.jp>
Sun, 28 Sep 2003 13:47:56 +0000 (13:47 +0000)
src/ccunit/CCUnitTestSuite.c

index 7a6dbee..08c0104 100755 (executable)
@@ -74,6 +74,37 @@ inline CCUnitTestSuite* ccunit_newTestSuite (const char* name)
   return suite;
 }
 
+CCUnitTestSuite* ccunit_newTestSuiteFromDfn (const CCUnitTestSuiteDfn* sdp)
+{
+  CCUnitTestSuite* suite = ccunit_newTestSuite (sdp->name);
+  CCUnitTestDfn** tdpp;
+  for (tdpp = (CCUnitTestDfn**)sdp->tests; *tdpp; tdpp ++)
+    {
+      const CCUnitTestDfn* tdp = *tdpp;
+      if (tdp->type == ccunitTypeSuite)
+       {
+         CCUnitTestSuite* sp;
+         sp = ccunit_newTestSuiteFromDfn ((CCUnitTestSuiteDfn*)tdp);
+       }
+      else if (tdp->type == ccunitTypeFixture)
+       {
+         const 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 ++)
+           {
+             CCUnitTestCase* cp;
+             cp = ccunit_newTestCase (cd->name, cd->desc, cd->runTest);
+             ccunit_addTestCase (fp, cp);
+           }
+       }
+    }
+  return suite;
+}
+
 inline void ccunit_deleteTestSuite (CCUnitTestSuite* suite)
 {
   ccunit_deleteTest (&suite->test);