выполнение моих регрессионных тестов с помощью valgrind У меня такой отчет:
==20341== 256 bytes in 1 blocks are indirectly lost in loss record 915 of 919
==20341== at 0x4A0661C: operator new(unsigned long) (vg_replace_malloc.c:220)
==20341== by 0x7F366FA: std::vector<CppUnit::Test*, std::allocator<CppUnit::Test*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<CppUnit::Test**, std::vector<CppUnit::Test*, std::allocator<CppUnit::Test*> > >, CppUnit::Test* const&) (new_allocator.h:88)
==20341== by 0x7F36496: CppUnit::TestSuite::addTest(CppUnit::Test*) (stl_vector.h:610)
==20341== by 0x585B80: TestVectorAlgebra::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&) (testvectoralgebra.h:30)
==20341== by 0x586719: TestVectorAlgebra::suite() (testvectoralgebra.h:42)
==20341== by 0x5948C4: CppUnit::TestSuiteFactory<TestVectorAlgebra>::makeTest() (TestSuiteFactory.h:20)
==20341== by 0x7F2C6B0: CppUnit::TestFactoryRegistry::addTestToSuite(CppUnit::TestSuite*) (TestFactoryRegistry.cpp:149)
==20341== by 0x7F2CAD5: CppUnit::TestFactoryRegistry::makeTest() (TestFactoryRegistry.cpp:136)
==20341== by 0x580760: main (testunit.cpp:88)
Полагаю, это связано с тем, что тесты, добавленные в Suite, не удаляются до завершения основного.
Это способ регистрации теста:
CppUnit::TextTestRunner::TestRunner runner;
// Get the top level suite from the registry
CppUnit::Test* myTest =
CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest();
runner.addTest( myTest->findTest("TestVectorAlgebra") );
Как мне отменить регистрацию этих тестов?