From c1f210dd69a3fc99851544bd78c82c624a02bc20 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 13 Mar 2020 12:16:26 +0100 Subject: [PATCH] AutoTest: Provide easy Id<->ITestFramework * mapping They are 1:1, idea is to replace (most of the) Id uses with the framework itself, overall simplifying e.g. TestFrameworkManager. For a salami-tactics transition, easy convervion between the two helps. Change-Id: Ib6d166ae34a3189d900353be7a181a1e45467a7c Reviewed-by: Christian Stenger --- src/plugins/autotest/itestframework.h | 2 ++ src/plugins/autotest/testframeworkmanager.cpp | 7 ++++++- src/plugins/autotest/testframeworkmanager.h | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/plugins/autotest/itestframework.h b/src/plugins/autotest/itestframework.h index 5b23aab9147..78ad2ae1e85 100644 --- a/src/plugins/autotest/itestframework.h +++ b/src/plugins/autotest/itestframework.h @@ -62,6 +62,8 @@ public: Core::Id settingsId() const; + Core::Id id() const { return Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix(name()); } + bool active() const { return m_active; } void setActive(bool active) { m_active = active; } bool grouping() const { return m_grouping; } diff --git a/src/plugins/autotest/testframeworkmanager.cpp b/src/plugins/autotest/testframeworkmanager.cpp index 2356baf20df..63c1c62d845 100644 --- a/src/plugins/autotest/testframeworkmanager.cpp +++ b/src/plugins/autotest/testframeworkmanager.cpp @@ -74,7 +74,7 @@ TestFrameworkManager::~TestFrameworkManager() bool TestFrameworkManager::registerTestFramework(ITestFramework *framework) { QTC_ASSERT(framework, return false); - Id id = Id(Constants::FRAMEWORK_PREFIX).withSuffix(framework->name()); + Id id = framework->id(); QTC_ASSERT(!m_registeredFrameworks.contains(id), delete framework; return false); // TODO check for unique priority before registering qCDebug(LOG) << "Registering" << id; @@ -156,6 +156,11 @@ ITestParser *TestFrameworkManager::testParserForTestFramework(const Id &framewor return testParser; } +ITestFramework *TestFrameworkManager::frameworkForId(Id frameworkId) +{ + return instance()->m_registeredFrameworks.value(frameworkId, nullptr); +} + IFrameworkSettings *TestFrameworkManager::settingsForTestFramework( const Id &frameworkId) const { diff --git a/src/plugins/autotest/testframeworkmanager.h b/src/plugins/autotest/testframeworkmanager.h index 0ad1c170669..d2af4d46843 100644 --- a/src/plugins/autotest/testframeworkmanager.h +++ b/src/plugins/autotest/testframeworkmanager.h @@ -54,6 +54,9 @@ class TestFrameworkManager public: static TestFrameworkManager *instance(); virtual ~TestFrameworkManager(); + + static ITestFramework *frameworkForId(Core::Id frameworkId); + bool registerTestFramework(ITestFramework *framework); void activateFrameworksFromSettings(const Internal::TestSettings *settings);