From e4ff33e622bc17561cc5669ffd8c25a50892e0f3 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 7 Jun 2016 13:26:08 +0200 Subject: [PATCH] AutoTest: Move function into framework related class TestTreeModel::testCaseNamesForFiles() is a helper that is currently needed only for handling the Qt test framework. Move it down into Qt framework's helper class and make it static. Change-Id: I03c377a76402593584870cbbdaa4621d19278443 Reviewed-by: David Schulz --- src/plugins/autotest/qtest/qttest_utils.h | 25 +++++++++++++++++++++ src/plugins/autotest/qtest/qttestparser.cpp | 2 +- src/plugins/autotest/testtreemodel.cpp | 22 ------------------ src/plugins/autotest/testtreemodel.h | 1 - 4 files changed, 26 insertions(+), 24 deletions(-) diff --git a/src/plugins/autotest/qtest/qttest_utils.h b/src/plugins/autotest/qtest/qttest_utils.h index df80a10e4d5..75024b9bc9f 100644 --- a/src/plugins/autotest/qtest/qttest_utils.h +++ b/src/plugins/autotest/qtest/qttest_utils.h @@ -25,6 +25,10 @@ #pragma once +#include "../testframeworkmanager.h" + +#include + #include namespace Autotest { @@ -38,6 +42,27 @@ public: static QByteArrayList valid = {"QTEST_MAIN", "QTEST_APPLESS_MAIN", "QTEST_GUILESS_MAIN"}; return valid.contains(macro); } + + static QHash testCaseNamesForFiles(const Core::Id &id, + const QStringList &files) + { + QHash result; + TestTreeItem *rootNode = TestFrameworkManager::instance()->rootNodeForTestFramework(id); + QTC_ASSERT(rootNode, return result); + + for (int row = 0, rootCount = rootNode->childCount(); row < rootCount; ++row) { + const TestTreeItem *child = rootNode->childItem(row); + if (files.contains(child->filePath())) { + result.insert(child->filePath(), child->name()); + } + for (int childRow = 0, count = child->childCount(); childRow < count; ++childRow) { + const TestTreeItem *grandChild = child->childItem(childRow); + if (files.contains(grandChild->filePath())) + result.insert(grandChild->filePath(), child->name()); + } + } + return result; + } }; } // namespace Internal diff --git a/src/plugins/autotest/qtest/qttestparser.cpp b/src/plugins/autotest/qtest/qttestparser.cpp index ca53ab994b2..157a7fc2ab6 100644 --- a/src/plugins/autotest/qtest/qttestparser.cpp +++ b/src/plugins/autotest/qtest/qttestparser.cpp @@ -234,7 +234,7 @@ static bool handleQtTest(QFutureInterface futureInterface, void QtTestParser::init(const QStringList &filesToParse) { - m_testCaseNames = TestTreeModel::instance()->testCaseNamesForFiles(id(), filesToParse); + m_testCaseNames = QTestUtils::testCaseNamesForFiles(id(), filesToParse); CppParser::init(filesToParse); } diff --git a/src/plugins/autotest/testtreemodel.cpp b/src/plugins/autotest/testtreemodel.cpp index b2c0ab10f04..6e0cda487c6 100644 --- a/src/plugins/autotest/testtreemodel.cpp +++ b/src/plugins/autotest/testtreemodel.cpp @@ -244,28 +244,6 @@ void TestTreeModel::sweep() #endif } -// TODO move this function to qtest framework folder as it's only necessary there -QHash TestTreeModel::testCaseNamesForFiles(const Core::Id &id, - const QStringList &files) -{ - QHash result; - TestTreeItem *rootNode = TestFrameworkManager::instance()->rootNodeForTestFramework(id); - QTC_ASSERT(rootNode, return result); - - for (int row = 0, count = rootNode->childCount(); row < count; ++row) { - const TestTreeItem *child = rootNode->childItem(row); - if (files.contains(child->filePath())) { - result.insert(child->filePath(), child->name()); - } - for (int childRow = 0, children = child->childCount(); childRow < children; ++childRow) { - const TestTreeItem *grandChild = child->childItem(childRow); - if (files.contains(grandChild->filePath())) - result.insert(grandChild->filePath(), child->name()); - } - } - return result; -} - /** * @note after calling this function emit testTreeModelChanged() if it returns true */ diff --git a/src/plugins/autotest/testtreemodel.h b/src/plugins/autotest/testtreemodel.h index 0236c8a7f00..1ae17a97778 100644 --- a/src/plugins/autotest/testtreemodel.h +++ b/src/plugins/autotest/testtreemodel.h @@ -76,7 +76,6 @@ public: void markAllForRemoval(); void markForRemoval(const QString &filePath); void sweep(); - QHash testCaseNamesForFiles(const Core::Id &id, const QStringList &files); signals: void testTreeModelChanged();