From 834c52f48318caa9875c87914bcab9ab47e4eb2c Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 30 Jan 2015 12:19:01 +0100 Subject: [PATCH] Avoid crash when using wrongly created test tree Change-Id: I686f0cf285daeb3889161109964efd6e9ac47a40 Reviewed-by: Tim Jenssen --- plugins/autotest/testtreemodel.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/autotest/testtreemodel.cpp b/plugins/autotest/testtreemodel.cpp index 560820c5865..81e4d4bfc92 100644 --- a/plugins/autotest/testtreemodel.cpp +++ b/plugins/autotest/testtreemodel.cpp @@ -420,7 +420,7 @@ QList TestTreeModel::getAllTestCases() const QList TestTreeModel::getSelectedTests() const { QList result; - TestConfiguration *tc; + TestConfiguration *testConfiguration = 0; for (int row = 0, count = m_autoTestRootItem->childCount(); row < count; ++row) { TestTreeItem *child = m_autoTestRootItem->child(row); @@ -429,9 +429,9 @@ QList TestTreeModel::getSelectedTests() const case Qt::Unchecked: continue; case Qt::Checked: - tc = new TestConfiguration(child->name(), QStringList(), child->childCount()); - addProjectInformation(tc, child->filePath()); - result << tc; + testConfiguration = new TestConfiguration(child->name(), QStringList(), child->childCount()); + addProjectInformation(testConfiguration, child->filePath()); + result << testConfiguration; continue; case Qt::PartiallyChecked: default: @@ -444,9 +444,9 @@ QList TestTreeModel::getSelectedTests() const testCases << grandChild->name(); } - tc = new TestConfiguration(childName, testCases); - addProjectInformation(tc, child->filePath()); - result << tc; + testConfiguration = new TestConfiguration(childName, testCases); + addProjectInformation(testConfiguration, child->filePath()); + result << testConfiguration; } } // Quick Tests must be handled differently - need the calling cpp file to use this in @@ -461,7 +461,10 @@ QList TestTreeModel::getSelectedTests() const const TestTreeItem *grandChild = unnamed->child(childRow); const QString mainFile = grandChild->mainFile(); if (foundMains.contains(mainFile)) { - foundMains[mainFile]->setTestCaseCount(tc->testCaseCount() + 1); + QTC_ASSERT(testConfiguration, + qWarning() << "Illegal state (unnamed Quick Test listed as named)"; + return QList()); + foundMains[mainFile]->setTestCaseCount(testConfiguration->testCaseCount()); } else { TestConfiguration *tc = new TestConfiguration(QString(), QStringList()); tc->setTestCaseCount(1);