[Cppunit-cvs] cppunit2/src/cpputtest main.cpp,1.24,1.25 registrytest.cpp,1.4,1.5 registrytest.h,1.4,
Brought to you by:
blep
From: Baptiste L. <bl...@us...> - 2005-11-08 23:25:44
|
Update of /cvsroot/cppunit/cppunit2/src/cpputtest In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31558/src/cpputtest Modified Files: main.cpp registrytest.cpp registrytest.h testfixturetest.cpp testfixturetest.h Log Message: - fixed static registration macro for Registry - static registration macros must no longer be followed by a semi-colon (therefore we get compiler error if registry.h was not included) - allow registration macros to work with class implenting suite() or suite( const std::string &). Index: testfixturetest.h =================================================================== RCS file: /cvsroot/cppunit/cppunit2/src/cpputtest/testfixturetest.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** testfixturetest.h 6 Aug 2005 22:24:54 -0000 1.6 --- testfixturetest.h 8 Nov 2005 23:25:31 -0000 1.7 *************** *** 16,20 **** void testExtendAbstractTestSuite(); void testDefaultIsNoSharedFixture(); - void testSharedFixture(); void testFixtureWithSpecifics(); --- 16,19 ---- Index: testfixturetest.cpp =================================================================== RCS file: /cvsroot/cppunit/cppunit2/src/cpputtest/testfixturetest.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** testfixturetest.cpp 6 Sep 2005 07:31:42 -0000 1.7 --- testfixturetest.cpp 8 Nov 2005 23:25:31 -0000 1.8 *************** *** 102,117 **** }; - - class SharedFixtureTest : public SharedFixtureTestBase - { - public: - CPPUT_TESTSUITE_BEGIN( SharedFixtureTest ); - CPPUT_TESTSUITE_SHARE_FIXTURE(); - CPPUT_TEST( test1 ); - CPPUT_TEST( test2 ); - CPPUT_TEST( test3 ); - CPPUT_TESTSUITE_END(); - }; - class TestFixtureWithSpecific : public CppUT::TestFixture { --- 102,105 ---- *************** *** 149,154 **** addTest( fixture, &TestFixtureTest::testDefaultIsNoSharedFixture, "testDefaultIsNoSharedFixture", suite ); - addTest( fixture, &TestFixtureTest::testSharedFixture, - "testSharedFixture", suite ); addTest( fixture, &TestFixtureTest::testFixtureWithSpecifics, "testFixtureWithSpecifics", suite ); --- 137,140 ---- *************** *** 226,242 **** void - TestFixtureTest::testSharedFixture() - { - CppUT::TestPtr suite = SharedFixtureTest::suite(); - MiniTestRunner runner; - SharedFixtureTestBase::instances_.clear(); - runner.run( suite ); - CPPUT_ASSERT_EQUAL( 3, runner.tested_ ); - CPPUT_ASSERT_EQUAL( 0, runner.failed_ ); - CPPUT_ASSERT_EQUAL( 1, int(SharedFixtureTestBase::instances_.size() ) ); - } - - - void TestFixtureTest::testFixtureWithSpecifics() { --- 212,215 ---- Index: main.cpp =================================================================== RCS file: /cvsroot/cppunit/cppunit2/src/cpputtest/main.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** main.cpp 8 Nov 2005 19:54:38 -0000 1.24 --- main.cpp 8 Nov 2005 23:25:31 -0000 1.25 *************** *** 98,101 **** --- 98,104 ---- printf( "All bootstrap tests passed successfuly...\n" ); + // Notes: the Registry must not be used. Some tests are + // registered statically in the Registry to unit test the registration + // macros (see RegistryTest). CppUT::TestSuitePtr allSuite = CppUT::makeTestSuite( "All tests" ); allSuite->add( RegistryTest::suite() ); Index: registrytest.cpp =================================================================== RCS file: /cvsroot/cppunit/cppunit2/src/cpputtest/registrytest.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** registrytest.cpp 27 Feb 2005 15:47:38 -0000 1.4 --- registrytest.cpp 8 Nov 2005 23:25:31 -0000 1.5 *************** *** 2,5 **** --- 2,38 ---- #include "minitestrunner.h" + namespace { + class MockFixture + { + public: + static CppUT::TestPtr suite() + { + return CppUT::makeFailingTestCase( "MockFixture", + "MockFixture::suite" ); + } + }; + + class MockNamableFixture + { + public: + static CppUT::TestPtr suite( const std::string &name = "" ) + { + std::string testName = name; + if ( testName.empty() ) + testName = "MockNamableFixture"; + return CppUT::makeFailingTestCase( testName, + "MockFixture::suite" ); + } + }; + + CPPUT_REGISTER_SUITE_TO_DEFAULT( MockFixture ) + CPPUT_REGISTER_SUITE_TO_DEFAULT( MockNamableFixture ) + CPPUT_REGISTER_NAMED_SUITE_TO_DEFAULT( MockNamableFixture, "NamedMockNamableFixture" ) + CPPUT_REGISTER_SUITE_IN( MockFixture, "DummyParentSuite" ) + CPPUT_REGISTER_SUITE_IN( MockNamableFixture, "DummyParentSuite" ) + CPPUT_REGISTER_NAMED_SUITE_IN( MockNamableFixture, "DummyParentSuite", + "NamedMockNamableFixture" ) + } // end anonymous namespace + void *************** *** 81,84 **** --- 114,145 ---- + void + RegistryTest::testStaticRegistration() + { + CppUT::TestSuitePtr defaultSuite = CppUT::Registry::instance().createDefaultTests(); + CPPUT_CHECK_EXPR( containsTestNamed( defaultSuite, "MockFixture" ) ); + CPPUT_CHECK_EXPR( containsTestNamed( defaultSuite, "MockNamableFixture" ) ); + CPPUT_CHECK_EXPR( containsTestNamed( defaultSuite, "NamedMockNamableFixture" ) ); + + CppUT::TestSuitePtr parentSuite = CppUT::Registry::instance().createTests("DummyParentSuite"); + CPPUT_CHECK_EXPR( containsTestNamed( parentSuite, "MockFixture" ) ); + CPPUT_CHECK_EXPR( containsTestNamed( parentSuite, "MockNamableFixture" ) ); + CPPUT_CHECK_EXPR( containsTestNamed( parentSuite, "NamedMockNamableFixture" ) ); + } + + + bool + RegistryTest::containsTestNamed( const CppUT::TestSuitePtr &suite, + const std::string &name ) + { + for ( int index = 0; index < suite->testCount(); ++index ) + { + if ( suite->testAt(index)->name() == name ) + return true; + } + return false; + } + + CppUT::TestPtr RegistryTest::makeTest( const std::string &testName ) Index: registrytest.h =================================================================== RCS file: /cvsroot/cppunit/cppunit2/src/cpputtest/registrytest.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** registrytest.h 27 Feb 2005 15:27:09 -0000 1.4 --- registrytest.h 8 Nov 2005 23:25:31 -0000 1.5 *************** *** 17,20 **** --- 17,21 ---- CPPUT_TEST( testAddTestToNamed ); CPPUT_TEST( testAddChild ); + CPPUT_TEST( testStaticRegistration ); CPPUT_TESTSUITE_END(); *************** *** 31,34 **** --- 32,37 ---- void testAddChild(); + void testStaticRegistration(); + private: CppUT::TestPtr makeTest( const std::string &testName ); *************** *** 40,43 **** --- 43,49 ---- CppUT::TestFactory makeTestFactory( const std::string &testName ); + static bool containsTestNamed( const CppUT::TestSuitePtr &suite, + const std::string &name ); + std::set<std::string> testNames_; |