CppUnit::Test* findTest(std::vector<TestPtr> vTests, std::string name) { for (size_t i = 0; i < vTests.size(); i++) { if (name == vTests[i]->getName()) { return vTests[i].get(); } // Check to see if it's a suite of tests... CppUnit::TestSuite* suite = dynamic_cast<CppUnit::TestSuite*>(vTests[i].get()); if (suite != 0) { vector<CppUnit::Test*> children = suite->getTests(); for (size_t j = 0; j < children.size(); ++j) { CppUnit::Test* result = findTest(children[j], name); if (result != 0) { return result; } } } } return NULL; }
/* Dump the test suite */ int CdashDump(CppUnit::Test *tests, char* myname) { int count = 0; CppUnit::TestSuite* testSuite = dynamic_cast<CppUnit::TestSuite *>(tests); if (testSuite != NULL) { std::vector<CppUnit::Test*> allTests = testSuite->getTests(); std::vector<CppUnit::Test*>::iterator testi; for (testi = allTests.begin(); testi != allTests.end(); testi++) { count += CdashDump(*testi, myname); } } else { CdashDumpTest(tests, myname); } return count; // A verifier };
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; }
/*! Recursion used to fill the CMake/ctest compatible list of tests. */ int GenerateCTestFile(CppUnit::Test * tests, const std::string & programName, unsigned int iterations, unsigned int instances) { unsigned int count = 0; // try to see if this is a TestSuite CppUnit::TestSuite* testSuite = dynamic_cast<CppUnit::TestSuite *>(tests); // it's a suite, check all components if (testSuite != NULL) { std::vector<CppUnit::Test*> allTestsVector = testSuite->getTests(); std::vector<CppUnit::Test*>::iterator testIterator; for (testIterator = allTestsVector.begin(); testIterator != allTestsVector.end(); testIterator++) { count += GenerateCTestFile(*testIterator, programName, iterations, instances); } } else { // it's a test, add it to the list count++; std::cout << "ADD_TEST(\"C++: " << tests->getName() << "-i" << iterations << "-o" << instances << "\" " << programName << " -r -i " << iterations << " -o " << instances << " -t " << tests->getName() << ")" << std::endl; } return count; }
void getNames(vector<string>& names, CppUnit::Test* t) { CppUnit::TestSuite* suite = dynamic_cast<CppUnit::TestSuite*>(t); if (suite != 0) { vector<CppUnit::Test*> children = suite->getTests(); for (size_t i = 0; i < children.size(); ++i) { getNames(names, children[i]); } } else { names.push_back(t->getName()); } }
void getNames(vector<string>& names, const std::vector<TestPtr> &vTests) { for (size_t i = 0; i < vTests.size(); i++) { // See if our test is really a suite CppUnit::TestSuite* suite = dynamic_cast<CppUnit::TestSuite*>(vTests[i].get()); if (suite != 0) { vector<CppUnit::Test*> children = suite->getTests(); for (size_t j = 0; j < children.size(); ++j) { getNames(names, children[j]); } } else { names.push_back(vTests[i]->getName()); } } }
/*! List all available tests in a given test suite. */ int ListAllTestsInTestSuite(CppUnit::Test* tests) { int count = 0; // try to see if this is a TestSuite CppUnit::TestSuite* testSuite = dynamic_cast<CppUnit::TestSuite *>(tests); // it's a suite, check all components if (testSuite != NULL) { std::vector<CppUnit::Test*> allTestsVector = testSuite->getTests(); std::vector<CppUnit::Test*>::iterator testIterator; for (testIterator = allTestsVector.begin(); testIterator != allTestsVector.end(); testIterator++) { count += ListAllTestsInTestSuite(*testIterator); } } else { // it's a test, get the name count++; std::cout << tests->getName() << std::endl; } return count; }
CppUnit::Test* findTest(CppUnit::Test* t, std::string name) { if (name == t->getName()) { return t; } CppUnit::TestSuite* suite = dynamic_cast<CppUnit::TestSuite*>(t); if (suite != 0) { vector<CppUnit::Test*> children = suite->getTests(); for (size_t i = 0; i < children.size(); ++i) { CppUnit::Test* result = findTest(children[i], name); if (result != 0) { return result; } } } 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; };