diff --git a/src/plugins/autotest/gtest/gtestresult.cpp b/src/plugins/autotest/gtest/gtestresult.cpp index 5945ebf5aa9..9c7210ffba5 100644 --- a/src/plugins/autotest/gtest/gtestresult.cpp +++ b/src/plugins/autotest/gtest/gtestresult.cpp @@ -24,9 +24,12 @@ ****************************************************************************/ #include "gtestresult.h" -#include "../testtreemodel.h" +#include "gtestconstants.h" +#include "../testframeworkmanager.h" #include "../testtreeitem.h" +#include + namespace Autotest { namespace Internal { @@ -90,17 +93,21 @@ static QString normalizeTestName(const QString &testname) const TestTreeItem *GTestResult::findTestTreeItem() const { - const auto item = TestTreeModel::instance()->findNonRootItem([this](const Utils::TreeItem *item) { - const TestTreeItem &treeItem = static_cast(*item); - return matches(treeItem); - }); + auto id = Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix(GTest::Constants::FRAMEWORK_NAME); + const TestTreeItem *rootNode = TestFrameworkManager::instance()->rootNodeForTestFramework(id); + if (!rootNode) + return nullptr; + const auto item = rootNode->findAnyChild([this](const Utils::TreeItem *item) { + const auto treeItem = static_cast(item); + return treeItem && matches(treeItem); + }); return static_cast(item); } -bool GTestResult::matches(const TestTreeItem &treeItem) const +bool GTestResult::matches(const TestTreeItem *treeItem) const { - if (treeItem.proFile() != m_projectFile) + if (treeItem->proFile() != m_projectFile) return false; if (isTest()) @@ -109,21 +116,21 @@ bool GTestResult::matches(const TestTreeItem &treeItem) const return matchesTestFunctionOrSet(treeItem); } -bool GTestResult::matchesTestFunctionOrSet(const TestTreeItem &treeItem) const +bool GTestResult::matchesTestFunctionOrSet(const TestTreeItem *treeItem) const { - if (treeItem.type() != TestTreeItem::TestFunctionOrSet) + if (treeItem->type() != TestTreeItem::TestFunctionOrSet) return false; - const QString testItemTestSet = treeItem.parentItem()->name() + '.' + treeItem.name(); + const QString testItemTestSet = treeItem->parentItem()->name() + '.' + treeItem->name(); return testItemTestSet == normalizeName(m_testSetName); } -bool GTestResult::matchesTestCase(const TestTreeItem &treeItem) const +bool GTestResult::matchesTestCase(const TestTreeItem *treeItem) const { - if (treeItem.type() != TestTreeItem::TestCase) + if (treeItem->type() != TestTreeItem::TestCase) return false; - return treeItem.name() == normalizeTestName(name()); + return treeItem->name() == normalizeTestName(name()); } } // namespace Internal diff --git a/src/plugins/autotest/gtest/gtestresult.h b/src/plugins/autotest/gtest/gtestresult.h index 88e5476085c..a498184d364 100644 --- a/src/plugins/autotest/gtest/gtestresult.h +++ b/src/plugins/autotest/gtest/gtestresult.h @@ -46,9 +46,9 @@ private: bool isTest() const { return m_testSetName.isEmpty(); } bool isTestSet() const { return !m_testSetName.isEmpty(); } - bool matches(const TestTreeItem &item) const; - bool matchesTestFunctionOrSet(const TestTreeItem &treeItem) const; - bool matchesTestCase(const TestTreeItem &treeItem) const; + bool matches(const TestTreeItem *item) const; + bool matchesTestFunctionOrSet(const TestTreeItem *treeItem) const; + bool matchesTestCase(const TestTreeItem *treeItem) const; QString m_testSetName; QString m_projectFile;