<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to 190: Valgrind complains about memory leak in CppUnit::TextTest::r</title><link>https://sourceforge.net/p/cppunit/bugs/190/</link><description>Recent changes to 190: Valgrind complains about memory leak in CppUnit::TextTest::r</description><atom:link href="https://sourceforge.net/p/cppunit/bugs/190/feed.rss" rel="self"/><language>en</language><lastBuildDate>Tue, 10 Jun 2008 18:25:02 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/cppunit/bugs/190/feed.rss" rel="self" type="application/rss+xml"/><item><title>Valgrind complains about memory leak in CppUnit::TextTest::r</title><link>https://sourceforge.net/p/cppunit/bugs/190/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Here is the usage:&lt;/p&gt;
&lt;p&gt;#include &amp;lt;cppunit/CompilerOutputter.h&amp;gt;&lt;br /&gt;
#include &amp;lt;cppunit/extensions/TestFactoryRegistry.h&amp;gt;&lt;br /&gt;
#include &amp;lt;cppunit/ui/text/TestRunner.h&amp;gt;&lt;/p&gt;
&lt;p&gt;int main( )&lt;br /&gt;
{&lt;br /&gt;
// Get the top level suite from the registry&lt;br /&gt;
CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();&lt;/p&gt;
&lt;p&gt;// Adds the test to the list of test to run&lt;br /&gt;
CppUnit::TextUi::TestRunner runner;&lt;br /&gt;
runner.addTest( suite );&lt;/p&gt;
&lt;p&gt;// Change the default outputter to a compiler error format outputter&lt;br /&gt;
runner.setOutputter( new CppUnit::CompilerOutputter( &amp;amp;runner.result(),&lt;br /&gt;
std::cerr ) );&lt;/p&gt;
&lt;p&gt;// Run the tests.&lt;br /&gt;
bool wasSucessful = runner.run();&lt;/p&gt;
&lt;p&gt;// Return error code 1 if the one of test failed.&lt;br /&gt;
return wasSucessful ? 0 : 1;&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;Here is the valgrind output (running on Linux):&lt;br /&gt;
==15643== &lt;br /&gt;
==15643== 1,562 (32 direct, 1,530 indirect) bytes in 2 blocks are definitely lost in loss record 2 of 6&lt;br /&gt;
==15643==    at 0x4004BF9: operator new(unsigned) (vg_replace_malloc.c:224)&lt;br /&gt;
==15643==    by 0x8FB44E: CppUnit::TestFailure::clone() const (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x909AA6: CppUnit::TestResultCollector::addFailure(CppUnit::TestFailure const&amp;amp;) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x907071: CppUnit::TestResult::addFailure(CppUnit::TestFailure const&amp;amp;) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x907113: CppUnit::TestResult::addFailure(CppUnit::Test*, CppUnit::Exception*) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x8F3B7B: CppUnit::Protector::reportFailure(CppUnit::ProtectorContext const&amp;amp;, CppUnit::Exception const&amp;amp;) const (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x8E6BEE: CppUnit::DefaultProtector::protect(CppUnit::Functor const&amp;amp;, CppUnit::ProtectorContext const&amp;amp;) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x8F536E: CppUnit::ProtectorChain::ProtectFunctor::operator()() const (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x8F4F2B: CppUnit::ProtectorChain::protect(CppUnit::Functor const&amp;amp;, CppUnit::ProtectorContext const&amp;amp;) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x906A5B: CppUnit::TestResult::protect(CppUnit::Functor const&amp;amp;, CppUnit::Test*, std::string const&amp;amp;) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x8F9397: CppUnit::TestCase::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x8F9CB7: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x8F9BED: CppUnit::TestComposite::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x8F9CB7: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x8F9BED: CppUnit::TestComposite::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x90A0AF: CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x9069A5: CppUnit::TestResult::runTest(CppUnit::Test*) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x90A20C: CppUnit::TestRunner::run(CppUnit::TestResult&amp;amp;, std::string const&amp;amp;) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x90DC3D: CppUnit::TextTestRunner::run(std::string, bool, bool, bool) (in /usr/lib/libcppunit-1.11.so.0.0.0)&lt;br /&gt;
==15643==    by 0x806600C: main (ThreadPoolTestMain.cpp:31)&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Feng Chen</dc:creator><pubDate>Tue, 10 Jun 2008 18:25:02 -0000</pubDate><guid>https://sourceforge.net15b3c33caae346d9f71962d4d2f5f9982c1c6d44</guid></item></channel></rss>