/* -*- C -*- */
-/* Copyright (C) 2003 TSUTSUMI Kikuo.
+/* Copyright (C) 2003, 2010 TSUTSUMI Kikuo.
This file is part of the CCUnit Library.
The CCUnit Library is free software; you can redistribute it and/or
_CCUnitTestDef testdef; /**< super class */
_CCUnitFuncDef* ctor; /**< constructor */
_CCUnitFuncDef* dtor; /**< destructor */
+ _CCUnitFuncDef* setup_setUp; /**< fixture setup function */
+ _CCUnitFuncDef* setup_tearDown; /**< fixture tearDown function */
_CCUnitFuncDef* setUp; /**< test setup function */
_CCUnitFuncDef* tearDown; /**< test tearDown function */
CCUnitList testCases; /**< test case list */
-/* Copyright (C) 2003 TSUTSUMI Kikuo.
+/* Copyright (C) 2003, 2010 TSUTSUMI Kikuo.
This file is part of the CCUnit Library.
The CCUnit Library is free software; you can redistribute it and/or
ccunit_log ("fixturdef: %s", fdef->testdef.name);
if (fdef->testdef.name)
fprintf (ofp, "/* test fixture: %s */\n", fdef->testdef.name);
+ if (fdef->setup_setUp)
+ printPrototype (ofp, "setup_setUp", fdef->setup_setUp);
+ if (fdef->setup_tearDown)
+ printPrototype (ofp, "setup_tearDown", fdef->setup_tearDown);
if (fdef->setUp)
printPrototype (ofp, "setUp", fdef->setUp);
if (fdef->tearDown)
fxdef->testdef.idname,
ccunitTypeNames[fxdef->testdef.type],
!fxdef->testdef.name ? "NULL" : fxdef->testdef.name);
+ printTestFunc (ofp, fxdef->setup_setUp);
+ printTestFunc (ofp, fxdef->setup_tearDown);
printTestFunc (ofp, fxdef->setUp);
printTestFunc (ofp, fxdef->tearDown);
fprintf (ofp, " %s_cases,\n", fxdef->testdef.idname);
setFixtureFunc (&fixture->tearDown, f);
safe_free (desc);
}
+ /* setup_setUp function def */
+ else if ((f = readTestCase ("void", "setup_setUp", desc)) != NULL)
+ {
+ setFixtureFunc (&fixture->setup_setUp, f);
+ safe_free (desc);
+ }
+ /* setup_tearDown function def */
+ else if ((f = readTestCase ("void", "setup_tearDown", desc)) != NULL)
+ {
+ setFixtureFunc (&fixture->setup_tearDown, f);
+ safe_free (desc);
+ }
/* if test case function def, then read as test case. */
else if ((f = readTestCase ("void", "test", desc)) != NULL)
{
/* -*- mode: C; -*- */
-/* Copyright (C) 2003 TSUTSUMI Kikuo.
+/* Copyright (C) 2003, 2010 TSUTSUMI Kikuo.
This file is part of the CCUnit Library.
The CCUnit Library is free software; you can redistribute it and/or
{
CCUnitTest test; /**< super class */
const char* name; /**< test fixture name */
- CCUnitTestFunc* setUp; /**< setUp function */
- CCUnitTestFunc* tearDown; /**< tearDown function */
+ CCUnitTestFunc* setup_setUp; /**< setUp for a fixture */
+ CCUnitTestFunc* setup_tearDown; /**< tearDown for a fixture */
+ CCUnitTestFunc* setUp; /**< setUp for each cases */
+ CCUnitTestFunc* tearDown; /**< tearDown for each cases */
CCUnitList testCases; /**< test cases */
} CCUnitTestFixture;
{
CCUnitTestDfn test; /**< super class */
const char* name; /**< test fixture name */
- CCUnitTestFunc setUp; /**< setUp function */
- CCUnitTestFunc tearDown; /**< tearDown function */
+ CCUnitTestFunc setup_setUp; /**< setUp for a fixture */
+ CCUnitTestFunc setup_tearDown; /**< tearDown for a fixture */
+ CCUnitTestFunc setUp; /**< setUp for each cases */
+ CCUnitTestFunc tearDown; /**< tearDown for each cases */
CCUnitTestFunc* testCases; /**< test cases */
} CCUnitTestFixtureDfn;
* create new test fixture.
*
* @param name test fixture name.
- * @param setUp test fixture setUp function.
- * @param tearDown test fixture tearDown function.
+ * @param setUp test case setUp function.
+ * @param tearDown test case tearDown function.
* @return new test fixture.
* @ingroup WritingTestFixture
*/
CCUnitTestFunc* tearDown);
/**
+ * set test fixture setup functions.
+ *
+ * @param name test fixture.
+ * @param setup_setUp test fixture setUp function.
+ * @param setup_tearDown test fixture tearDown function.
+ * @ingroup WritingTestFixture
+ */
+extern inline void ccunit_setTestFixtureSetup (CCUnitTestFixture* fixture,
+ CCUnitTestFunc* setup_setUp,
+ CCUnitTestFunc* setup_tearDown);
+
+/**
* add test case to test fixture.
*
* @param fixture test fixture.
fdp->tearDown.runTest));
if (fp)
{
+ CCUnitTestFunc* ssu = ccunit_newTestFunc (fdp->setup_setUp.name,
+ fdp->setup_setUp.desc,
+ fdp->setup_setUp.runTest);
+ CCUnitTestFunc* std = ccunit_newTestFunc (fdp->setup_tearDown.name,
+ fdp->setup_tearDown.desc,
+ fdp->setup_tearDown.runTest);
+ ccunit_setTestFixtureSetup (fp, ssu, std);
ccunit_addTestFixture (suite, fp);
for (cd = (CCUnitTestCase*)fdp->testCases; cd->name; cd ++)
{