OSDN Git Service

modify comments
[ccunit/ccunit.git] / src / ccunit / CCUnitTestSuite.h
index 7d72d31..925429e 100755 (executable)
@@ -1,4 +1,4 @@
-/* -*- mode: C; -*- */
+/* -*- C -*- */
 /* Copyright (C) 2003 TSUTSUMI Kikuo.
    This file is part of the CCUnit Library.
 
@@ -21,9 +21,8 @@
 /*
  * $Id$
  */
-/**
- * @file
- * Test suite class.
+/** @file
+ * TestSuite module.
  */
 #ifndef CCUNITTESTSUITE_H
 #define CCUNITTESTSUITE_H
 #include <ccunit/CCUnitConfig.h>
 #include <ccunit/CCUnitList.h>
 #include <ccunit/CCUnitTest.h>
-#include <ccunit/CCUnitTestCase.h>
+#include <ccunit/CCUnitTestFixture.h>
+#include <ccunit/CCUnitTestResult.h>
+
+/**
+ * @ingroup CCUnitTest
+ * @defgroup CCUnitTestSuite TestSuite
+ *
+ * A <code>Composite</code> class of Tests.
+ * It runs a collection of test cases.
+ * @{
+ */
 
 /**
  * A <code>Composite</code> class of Tests.
- * It runs a collection of test cases. Here is an example.
- * <pre>
- *     CCUnitTestSuite* suite = ccunit_newTestSuite ();
- *     ccunit_addTestCase (suite, CREATE_TESTCASE_1 ());
- *     ccunit_addTestCase (suite, CREATE_TESTCASE_2 ());
- * </pre>
+ * It runs a collection of test fixture or suite. Here is an example.
  *
- * @see CCUnitTest
- * @see CCUnitTestCase
+ * @code
+ * CCUnitTestSuite* suite = ccunit_newTestSuite ();
+ * ccunit_addTestFixture (suite, TESTFIXTURE);
+ * ccunit_addTestSuite (suite, TESTSUITE);
+ * @endcode
+ *
+ * @see CCUnitTest, CCUnitTestFixture.
+ * @ingroup CreatingTestSuite
  */
 typedef struct CCUnitTestSuite
 {
@@ -52,17 +62,40 @@ typedef struct CCUnitTestSuite
   CCUnitList tests;                /**< added test case/suite list */
 } CCUnitTestSuite;
 
+typedef struct CCUnitTestSuiteDfn
+{
+  CCUnitTestDfn test;              /**< super class */
+  const char* name;                /**< test suite name */
+  CCUnitTestDfn** tests;           /**< added test case/suite list */
+} CCUnitTestSuiteDfn;
+
 /**
  * Constructs an empty TestSuite.
  * @param name test suite name.
  * @return new test suite.
+ * @ingroup CreatingTestSuite
  */
 extern inline CCUnitTestSuite* ccunit_newTestSuite(const char* name);
 
 /**
+ * Constructs a TestSuite from definition struct.
+ * @param sdp test suite definition.
+ * @return new test suite.
+ */
+extern CCUnitTestSuite* ccunit_newTestSuiteFromDfn (const CCUnitTestSuiteDfn* sdp);
+
+/**
+ * Destructs test suite.
+ * @param suite deleting suite.
+ * @ingroup CreatingTestSuite
+ */
+extern inline void ccunit_deleteTestSuite (CCUnitTestSuite* suite);
+
+/**
  * Adds a test to the suite.
  * @param suite test suite.
  * @param test test to add.
+ * @ingroup CreatingTestSuite
  */
 extern inline void ccunit_addTest (CCUnitTestSuite* suite, CCUnitTest* test);
 
@@ -70,23 +103,37 @@ extern inline void ccunit_addTest (CCUnitTestSuite* suite, CCUnitTest* test);
  * Adds a test suite to the suite.
  * @param suite test suite.
  * @param testSuite test to add.
+ * @ingroup CreatingTestSuite
  */
 extern inline void ccunit_addTestSuite (CCUnitTestSuite* suite,
                                        CCUnitTestSuite* testSuite);
 
 /**
- * Adds a test case to the suite.
+ * Adds a test fixture to the suite.
+ * @param suite test suite.
+ * @param fixture test to add.
+ * @ingroup CreatingTestSuite
+ */
+extern inline void ccunit_addTestFixture (CCUnitTestSuite* suite,
+                                         CCUnitTestFixture* fixture);
+
+/**
+ * run test suite and collect its results.
  * @param suite test suite.
- * @param testCase test to add.
+ * @param result test result. if NULL, create a new result object and return it.
+ * @return test result.
+ * @ingroup ExecutingTest
  */
-extern inline void ccunit_addTestCase (CCUnitTestSuite* suite,
-                                      CCUnitTestCase* testCase);
+extern inline CCUnitTestResult* ccunit_runTestSuite (CCUnitTestSuite* suite,
+                                                    CCUnitTestResult* result);
 
 /**
  * Create a test suite from test source file.
  * @param name test suite name.
  * @return new test suite.
+ * @ingroup CreatingTestSuite
  */
 extern CCUnitTestSuite* ccunit_suite (const char* name);
 
+/** @} */
 #endif