Fix a memory leak in our UPnP handler code
[amule.git] / unittests / muleunit / testregistry.cpp
blob1c4888f4498e8f81d25e72e143429dc452105351
1 //
2 // MuleUnit: A minimalistic C++ Unit testing framework based on EasyUnit.
3 //
4 // Copyright (c) 2005-2011 aMule Team ( admin@amule.org / http://www.amule.org )
5 // Copyright (c) 2004-2011 Barthelemy Dagenais ( barthelemy@prologique.com )
6 //
7 // This library is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU Lesser General Public
9 // License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
12 // This library is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 // Lesser General Public License for more details.
17 // You should have received a copy of the GNU Lesser General Public
18 // License along with this library; if not, write to the Free Software
19 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
23 #include "testregistry.h"
24 #include "testcase.h"
25 #include "test.h"
27 using namespace muleunit;
30 TestRegistry::TestRegistry()
35 TestRegistry::~TestRegistry()
37 TestCaseList::iterator it = m_testCases.begin();
38 for (; it != m_testCases.end(); ++it) {
39 delete *it;
44 void TestRegistry::addTest(Test *test)
46 instance().add(test);
50 bool TestRegistry::runAndPrint()
52 return instance().runTests();
56 TestRegistry& TestRegistry::instance()
58 static TestRegistry registry;
59 return registry;
63 void TestRegistry::add(Test *test)
65 const wxString tcName = test->getTestCaseName();
66 const wxString tName = test->getTestName();
69 if (m_testCases.empty() || m_testCases.back()->getName() != tcName) {
70 m_testCases.push_back(new TestCase(tcName));
73 m_testCases.back()->addTest(test);
77 bool TestRegistry::runTests()
79 bool success = true;
81 TestCaseList::iterator it = m_testCases.begin();
82 for (; it != m_testCases.end(); ++it) {
83 success &= (*it)->run();
86 return success;