AutoTest: Add unit test for parsing boost tests

To execute them you need - beside the former prerequisites -
either have boost installed installed at system level (UNIX)
or you must specify BOOST_INCLUDE_DIR as environment variable
otherwise the respective test will be skipped.

Change-Id: I6bd8472e554132ab05e58b56e3ccbd5e9dffada9
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Stenger
2019-05-21 13:39:00 +02:00
parent 5c6eb0a2ba
commit b86c05b96a
22 changed files with 306 additions and 9 deletions

View File

@@ -481,24 +481,30 @@ void TestTreeModel::removeTestRootNodes()
#ifdef WITH_TESTS
// we're inside tests - so use some internal knowledge to make testing easier
TestTreeItem *qtRootNode()
static TestTreeItem *qtRootNode()
{
return TestFrameworkManager::instance()->rootNodeForTestFramework(
Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix("QtTest"));
}
TestTreeItem *quickRootNode()
static TestTreeItem *quickRootNode()
{
return TestFrameworkManager::instance()->rootNodeForTestFramework(
Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix("QtQuickTest"));
}
TestTreeItem *gtestRootNode()
static TestTreeItem *gtestRootNode()
{
return TestFrameworkManager::instance()->rootNodeForTestFramework(
Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix("GTest"));
}
static TestTreeItem *boostTestRootNode()
{
return TestFrameworkManager::instance()->rootNodeForTestFramework(
Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix("Boost"));
}
int TestTreeModel::autoTestsCount() const
{
TestTreeItem *rootNode = qtRootNode();
@@ -570,6 +576,25 @@ QMultiMap<QString, int> TestTreeModel::gtestNamesAndSets() const
}
return result;
}
int TestTreeModel::boostTestNamesCount() const
{
TestTreeItem *rootNode = boostTestRootNode();
return rootNode ? rootNode->childCount() : 0;
}
QMultiMap<QString, int> TestTreeModel::boostTestSuitesAndTests() const
{
QMultiMap<QString, int> result;
if (TestTreeItem *rootNode = boostTestRootNode()) {
rootNode->forFirstLevelChildren([&result](TestTreeItem *child) {
result.insert(child->name(), child->childCount());
});
}
return result;
}
#endif
/***************************** Sort/Filter Model **********************************/