2 /* Copyright (C) 2003 TSUTSUMI Kikuo.
3 This file is part of the CCUnit Library.
5 The CCUnit Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public License
7 as published by the Free Software Foundation; either version 2.1 of
8 the License, or (at your option) any later version.
10 The CCUnit Library is distributed in the hope that it will be
11 useful, but WITHOUT ANY WARRANTY; without even the implied warranty
12 of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the CCUnit Library; see the file COPYING.LESSER.
17 If not, write to the Free Software Foundation, Inc., 59 Temple
18 Place - Suite 330, Boston, MA 02111-1307, USA.
24 #ifndef CCUNITTESTRUNNER_H
25 #define CCUNITTESTRUNNER_H
28 #include <ccunit/CCUnitConfig.h>
29 #include <ccunit/CCUnitTestResult.h>
30 #include <ccunit/CCUnitTestSuite.h>
31 #include <ccunit/CCUnitTestListener.h>
33 typedef struct CCUnitTestRunner CCUnitTestRunner;
34 typedef int (*ccunit_runsuite_func_t)(CCUnitTestRunner*, CCUnitTestSuite*);
37 * A command line based tool to run tests. Runs a single test and
38 * collects its results. This method can be used to start a test run
41 * int main (int ac, char** av)
43 * CCUnitTestRunner* runner = ccunit_newTestRunner (NULL);
44 * CCUnitTestSuite* suite = create_testSuite ();
45 * return runner->run (runner, suite);
48 struct CCUnitTestRunner
50 CCUnitTestListener listener;
51 CCUnitTestResult* result;
52 ccunit_runsuite_func_t run;
58 * @param output prints test result into this stream.
59 * @return new CCUnitTestRunner object.
61 extern CCUnitTestRunner* ccunit_newTestRunner (FILE* output);
65 * @param runner TestRunner object to destruct.
67 extern void ccunit_deleteTestRunner (CCUnitTestRunner* runner);