[Cppunit-cvs] cppunit2/src/cpputtest registrytest.cpp, 1.5, 1.6 registrytest.h, 1.6, 1.7
Brought to you by:
blep
From: Baptiste L. <bl...@us...> - 2008-07-08 20:42:04
|
Update of /cvsroot/cppunit/cppunit2/src/cpputtest In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv11051/src/cpputtest Modified Files: registrytest.cpp registrytest.h Log Message: - Fixed bug in Registry::remove() when a suite had multiple child suites. - Added Registry suite removal tests Index: registrytest.h =================================================================== RCS file: /cvsroot/cppunit/cppunit2/src/cpputtest/registrytest.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** registrytest.h 13 Nov 2005 10:12:01 -0000 1.6 --- registrytest.h 8 Jul 2008 20:42:00 -0000 1.7 *************** *** 16,20 **** CPPUT_TEST( testAddTestToDefault ); CPPUT_TEST( testAddTestToNamed ); ! CPPUT_TEST( testAddChild ); CPPUT_TEST( testStaticRegistration ); CPPUT_TESTSUITE_END(); --- 16,21 ---- CPPUT_TEST( testAddTestToDefault ); CPPUT_TEST( testAddTestToNamed ); ! CPPUT_TEST( testAddAndRemoveChild ); ! CPPUT_TEST( testAutoRemoveByTestFactoryId ); CPPUT_TEST( testStaticRegistration ); CPPUT_TESTSUITE_END(); *************** *** 30,34 **** void testAddTestToNamed(); ! void testAddChild(); void testStaticRegistration(); --- 31,37 ---- void testAddTestToNamed(); ! void testAddAndRemoveChild(); ! ! void testAutoRemoveByTestFactoryId(); void testStaticRegistration(); Index: registrytest.cpp =================================================================== RCS file: /cvsroot/cppunit/cppunit2/src/cpputtest/registrytest.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** registrytest.cpp 8 Nov 2005 23:25:31 -0000 1.5 --- registrytest.cpp 8 Jul 2008 20:42:00 -0000 1.6 *************** *** 96,100 **** void ! RegistryTest::testAddChild() { registry_->add( "Name", makeTestFactory( "Test1" ) ); --- 96,100 ---- void ! RegistryTest::testAddAndRemoveChild() { registry_->add( "Name", makeTestFactory( "Test1" ) ); *************** *** 104,109 **** registry_->addChild( "Name", "Name2" ); registry_->addChild( "Name", "Name3" ); - CppUT::TestSuitePtr suite = registry_->createTests( "Name" ); runTestSuite( suite ); CPPUT_ASSERT_EQUAL( 1, testNames_.count( "Test1" ) ); --- 104,110 ---- registry_->addChild( "Name", "Name2" ); registry_->addChild( "Name", "Name3" ); + // Checks that all tests are correctly executed + CppUT::TestSuitePtr suite = registry_->createTests( "Name" ); runTestSuite( suite ); CPPUT_ASSERT_EQUAL( 1, testNames_.count( "Test1" ) ); *************** *** 111,114 **** --- 112,194 ---- CPPUT_ASSERT_EQUAL( 1, testNames_.count( "Test3" ) ); CPPUT_ASSERT_EQUAL( 1, testNames_.count( "Test4" ) ); + + // Checks that dynamic removal of child suite works + CPPUT_ASSERT_FALSE( registry_->removeChild( "Name", "ChildSuiteDoesNotExist" ) ); + CPPUT_ASSERT( registry_->removeChild( "Name", "Name3" ) ); + CPPUT_ASSERT( registry_->removeChild( "Name", "Name2" ) ); + CPPUT_ASSERT_FALSE( registry_->removeChild( "Name", "ChildSuiteDoesNotExist" ) ); + + // Checks that child suite were actual removed + testNames_.clear(); + CppUT::TestSuitePtr newSuite = registry_->createTests( "Name" ); + runTestSuite( newSuite ); + CPPUT_ASSERT_EQUAL( 1, testNames_.count( "Test1" ) ); + CPPUT_ASSERT_EQUAL( 1, testNames_.count( "Test2" ) ); + CPPUT_ASSERT_EQUAL( 0, testNames_.count( "Test3" ) ); + CPPUT_ASSERT_EQUAL( 0, testNames_.count( "Test4" ) ); + } + + + void + RegistryTest::testAutoRemoveByTestFactoryId() + { + // @todo + // Register test in the static registry and checks that they are correctly removed + typedef CppUT::SuiteRegisterer<MockNamableFixture> SuiteAutoRegisterer; + { + SuiteAutoRegisterer r1( "TestRegister1" ); + SuiteAutoRegisterer r2( "TestRegister2" ); + SuiteAutoRegisterer r3( CppUT::Impl::RegisterToNamedSuiteTag(), + "ParentTestRegister1", + "TestRegister2" ); + SuiteAutoRegisterer r4( CppUT::Impl::RegisterToNamedSuiteTag(), + "ParentTestRegister1", + "TestRegister3" ); + SuiteAutoRegisterer r5( CppUT::Impl::RegisterToNamedSuiteTag(), + "ParentTestRegister2", + "TestRegister4" ); + + CppUT::SuiteRelationshipRegisterer rs1( "ParentTestRegister1" ); + CppUT::SuiteRelationshipRegisterer rs2( "ParentTestRegister1", "ParentTestRegister2" ); + // We have the following tree: + // Default Suite + // |- TestRegister1 + // |- TestRegister2 + // |- ParentTestRegister1 + // | |- TestRegister2 + // | |- TestRegister3 + // | |- ParentTestRegister2 + // | |- TestRegister4 + // |- other statically registered test for testStaticRegistration() + + CppUT::TestSuitePtr defaultSuite = CppUT::Registry::instance().createDefaultTests(); + CPPUT_CHECK_EXPR( containsTestNamed( defaultSuite, "TestRegister1" ) ); + CPPUT_CHECK_EXPR( containsTestNamed( defaultSuite, "TestRegister2" ) ); + CPPUT_CHECK_EXPR( containsTestNamed( defaultSuite, "ParentTestRegister1" ) ); + + CppUT::TestSuitePtr parentSuite1 = CppUT::Registry::instance().createTests("ParentTestRegister1"); + CPPUT_CHECK_EXPR( containsTestNamed( parentSuite1, "TestRegister2" ) ); + CPPUT_CHECK_EXPR( containsTestNamed( parentSuite1, "TestRegister3" ) ); + CPPUT_CHECK_EXPR( containsTestNamed( parentSuite1, "ParentTestRegister2" ) ); + + CppUT::TestSuitePtr parentSuite2 = CppUT::Registry::instance().createTests("ParentTestRegister2"); + CPPUT_CHECK_EXPR( containsTestNamed( parentSuite2, "TestRegister4" ) ); + + } + // Checks that the registered suite have been removed + CppUT::TestSuitePtr defaultSuite = CppUT::Registry::instance().createDefaultTests(); + CPPUT_CHECK_EXPR_FALSE( containsTestNamed( defaultSuite, "TestRegister1" ) ); + CPPUT_CHECK_EXPR_FALSE( containsTestNamed( defaultSuite, "TestRegister2" ) ); + CPPUT_CHECK_EXPR_FALSE( containsTestNamed( defaultSuite, "ParentTestRegister1" ) ); + + // Notes: calling createTests will automatically create an unparented suite of the + // specified name if it does not exist. + CppUT::TestSuitePtr parentSuite1 = CppUT::Registry::instance().createTests("ParentTestRegister1"); + CPPUT_CHECK_EXPR_FALSE( containsTestNamed( parentSuite1, "TestRegister2" ) ); + CPPUT_CHECK_EXPR_FALSE( containsTestNamed( parentSuite1, "TestRegister3" ) ); + CPPUT_CHECK_EXPR_FALSE( containsTestNamed( parentSuite1, "ParentTestRegister2" ) ); + + CppUT::TestSuitePtr parentSuite2 = CppUT::Registry::instance().createTests("ParentTestRegister2"); + CPPUT_CHECK_EXPR_FALSE( containsTestNamed( parentSuite2, "TestRegister4" ) ); } |