Add capability to execute selected gtests

Change-Id: Ib7354d6e86176852b2e3bb01aed091db8036bfdf
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
This commit is contained in:
Christian Stenger
2015-12-09 13:21:23 +01:00
parent 1cfe46df01
commit ebfc118c35
2 changed files with 36 additions and 0 deletions

View File

@@ -177,6 +177,14 @@ void performTestRun(QFutureInterface<void> &futureInterface,
if (testConfiguration->testCases().count()) if (testConfiguration->testCases().count())
argumentList << testConfiguration->testCases(); argumentList << testConfiguration->testCases();
testProcess.setArguments(argumentList); testProcess.setArguments(argumentList);
} else { // TestConfiguration::GTest
const QStringList &testSets = testConfiguration->testCases();
if (testSets.size()) {
QStringList argumentList;
argumentList << QLatin1String("--gtest_filter=")
+ testSets.join(QLatin1Char(':'));
testProcess.setArguments(argumentList);
}
} }
testProcess.setWorkingDirectory(testConfiguration->workingDirectory()); testProcess.setWorkingDirectory(testConfiguration->workingDirectory());

View File

@@ -376,6 +376,34 @@ QList<TestConfiguration *> TestTreeModel::getSelectedTests() const
if (!config->unnamedOnly()) if (!config->unnamedOnly())
result << config; result << config;
// get selected Google Tests
QMap<QString, QStringList> proFilesWithEnabledTestSets;
for (int row = 0, count = m_googleTestRootItem->childCount(); row < count; ++row) {
const TestTreeItem *child = m_googleTestRootItem->childItem(row);
if (child->checked() == Qt::Unchecked) // add this test name to disabled list ?
continue;
int grandChildCount = child->childCount();
for (int grandChildRow = 0; grandChildRow < grandChildCount; ++grandChildRow) {
const TestTreeItem *grandChild = child->childItem(grandChildRow);
const QString &proFile = grandChild->mainFile();
QStringList enabled = proFilesWithEnabledTestSets.value(proFile);
if (grandChild->checked() == Qt::Checked)
enabled << child->name() + QLatin1Char('.') + grandChild->name();
proFilesWithEnabledTestSets.insert(proFile, enabled);
}
}
foreach (const QString &proFile, proFilesWithEnabledTestSets.keys()) {
TestConfiguration *tc = new TestConfiguration(QString(),
proFilesWithEnabledTestSets.value(proFile));
tc->setTestType(TestConfiguration::GTest);
tc->setProFile(proFile);
tc->setProject(project);
result << tc;
}
return result; return result;
} }