forked from qt-creator/qt-creator
Add capability to execute selected gtests
Change-Id: Ib7354d6e86176852b2e3bb01aed091db8036bfdf Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
This commit is contained in:
@@ -177,6 +177,14 @@ void performTestRun(QFutureInterface<void> &futureInterface,
|
||||
if (testConfiguration->testCases().count())
|
||||
argumentList << testConfiguration->testCases();
|
||||
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());
|
||||
|
@@ -376,6 +376,34 @@ QList<TestConfiguration *> TestTreeModel::getSelectedTests() const
|
||||
if (!config->unnamedOnly())
|
||||
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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user