CppUnit::Test* FindTestInTestSuite(CppUnit::Test* tests, const std::string& name) { // try to see if this is a TestSuite CppUnit::TestSuite* testSuite = dynamic_cast<CppUnit::TestSuite *>(tests); CppUnit::Test* testFound = NULL; // it's a suite, check all components if (testSuite != NULL) { if (testSuite->getName() == name) { return testSuite; } else { std::vector<CppUnit::Test*> allTestsVector = testSuite->getTests(); std::vector<CppUnit::Test*>::iterator testIterator; for (testIterator = allTestsVector.begin(); testIterator != allTestsVector.end(); testIterator++) { testFound = FindTestInTestSuite(*testIterator, name); // abort the search if found if (testFound) { return testFound; } } } } else { // it's a test, get the name and test if (tests->getName() == name) { return tests; } } return NULL; }
CppUnit::Test* GetTest(CppUnit::Test* tests, const std::string& name) { CppUnit::TestSuite* testSuite = dynamic_cast<CppUnit::TestSuite *>(tests); CppUnit::Test* returnTest = NULL; if (testSuite) { if (testSuite->getName() == name) { return (testSuite); } else { std::vector<CppUnit::Test*> allTests = testSuite->getTests(); std::vector<CppUnit::Test*>::iterator testi; for (testi = allTests.begin(); testi != allTests.end(); testi++) { returnTest = GetTest(*testi, name); if (returnTest) return (returnTest); } } } else { if (tests->getName() == name) { return (tests); } } return NULL; };