summaryrefslogtreecommitdiff
path: root/src/cppunit/TestRegistry.cpp
blob: f4eaf74b4ce9c2cd4d32f75dc2dbd5d8cee68c3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "cppunit/TestRegistry.h"
#include "cppunit/Test.h"

namespace CppUnit {

TestRegistry* 
TestRegistry::s_registry = NULL;

TestRegistry&
TestRegistry::getRegistry ()
{
  if (NULL == s_registry) {
    s_registry = new TestRegistry();
  }
  return *s_registry;
}

void 
TestRegistry::addTest(std::string name, Test *test)
{ 
  getRegistry().m_registry_names.push_back (name);
  getRegistry().m_registry_tests.push_back (test); 
}

const std::vector<std::string>&
TestRegistry::getAllTestNames () const
{
  return getRegistry().m_registry_names;
}

const std::vector<Test*>& 
TestRegistry::getAllTests() const
{
  return getRegistry().m_registry_tests;
}

std::vector<Test*> 
TestRegistry::getTest (const std::string& testCase) const
{
  std::vector<Test*> res;
  std::vector<Test*>::iterator test_it;
  std::vector<std::string>::iterator name_it;
  for (test_it = getRegistry().m_registry_tests.begin (),
       name_it = getRegistry().m_registry_names.begin ();
       test_it != getRegistry().m_registry_tests.end ();
       ++test_it, ++name_it) {
    if ((*name_it) == testCase) {
      res.push_back((*test_it));
      break;
    }
  }
  return(res);
}

TestRegistry::~TestRegistry ()
{
    for (std::vector<Test*>::iterator it = m_registry_tests.begin ();
         it != m_registry_tests.end ();
         ++it) {
        delete *it;
    }
}

TestRegistry::TestRegistry ()
{
}

} // namespace CppUnit