summaryrefslogtreecommitdiff
path: root/sal/cppunittester/cppunittester.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sal/cppunittester/cppunittester.cxx')
-rw-r--r--sal/cppunittester/cppunittester.cxx18
1 files changed, 17 insertions, 1 deletions
diff --git a/sal/cppunittester/cppunittester.cxx b/sal/cppunittester/cppunittester.cxx
index 34911e27e62c..fb9f85f06e00 100644
--- a/sal/cppunittester/cppunittester.cxx
+++ b/sal/cppunittester/cppunittester.cxx
@@ -171,13 +171,29 @@ private:
namespace {
+struct test_name_compare
+{
+ test_name_compare(const std::string& rName):
+ maName(rName)
+ {
+ }
+
+ bool operator()(const std::string& rCmp)
+ {
+ size_t nEndPos = maName.find(rCmp) + rCmp.size();
+ return nEndPos == maName.size();
+ }
+
+ std::string maName;
+};
+
void addRecursiveTests(const std::vector<std::string>& test_names, CppUnit::Test* pTest, CppUnit::TestRunner& rRunner)
{
for (int i = 0; i < pTest->getChildTestCount(); ++i)
{
CppUnit::Test* pNewTest = pTest->getChildTestAt(i);
addRecursiveTests(test_names, pNewTest, rRunner);
- if (std::find(test_names.begin(), test_names.end(), 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);
}
}