Exemple #1
0
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;
}
Exemple #2
0
/* 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

};
Exemple #3
0
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;
}
Exemple #4
0
/*! 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;
}
Exemple #5
0
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());
  }
}
Exemple #6
0
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());
    }
  }
}
Exemple #7
0
/*! 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;
}
Exemple #8
0
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;
}
Exemple #9
0
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;
};