Kaydet (Commit) 86931ade authored tarafından Michael Stahl's avatar Michael Stahl

sal: cppunittester: verify that CPPUNIT_TEST_NAME contains a test

Fail the test if CPPUNIT_TEST_NAME does not contain at least one
existing test, which is much better than silently reporting OK(0).

Change-Id: If2137764b24aa52dc35fe2368ee8fe38cb7dbece
üst 3eda8234
...@@ -197,15 +197,20 @@ struct test_name_compare ...@@ -197,15 +197,20 @@ struct test_name_compare
std::string maName; std::string maName;
}; };
void addRecursiveTests(const std::vector<std::string>& test_names, CppUnit::Test* pTest, CppUnit::TestRunner& rRunner) bool addRecursiveTests(const std::vector<std::string>& test_names, CppUnit::Test* pTest, CppUnit::TestRunner& rRunner)
{ {
bool ret(false);
for (int i = 0; i < pTest->getChildTestCount(); ++i) for (int i = 0; i < pTest->getChildTestCount(); ++i)
{ {
CppUnit::Test* pNewTest = pTest->getChildTestAt(i); CppUnit::Test* pNewTest = pTest->getChildTestAt(i);
addRecursiveTests(test_names, pNewTest, rRunner); ret |= addRecursiveTests(test_names, pNewTest, rRunner);
if (std::find_if(test_names.begin(), test_names.end(), test_name_compare(pNewTest->getName())) != test_names.end()) if (std::find_if(test_names.begin(), test_names.end(), test_name_compare(pNewTest->getName())) != test_names.end())
{
rRunner.addTest(pNewTest); rRunner.addTest(pNewTest);
ret = true;
}
} }
return ret;
} }
} }
...@@ -297,7 +302,12 @@ public: ...@@ -297,7 +302,12 @@ public:
std::vector<std::string> test_names; std::vector<std::string> test_names;
boost::split(test_names, pVal, boost::is_any_of("\t ")); boost::split(test_names, pVal, boost::is_any_of("\t "));
CppUnit::Test* pTest = CppUnit::TestFactoryRegistry::getRegistry().makeTest(); CppUnit::Test* pTest = CppUnit::TestFactoryRegistry::getRegistry().makeTest();
addRecursiveTests(test_names, pTest, runner); bool const added(addRecursiveTests(test_names, pTest, runner));
if (!added)
{
std::cerr << "\nFatal error: CPPUNIT_TEST_NAME contains no valid tests\n";
return false;
}
} }
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment