AutoTest: Unify container usage in TestFrameworkManager

And provide an accessor for the framework's priority which
will be needed later on.

Change-Id: I5a2480699d9467ee50e2cc44b9d4ff58f9e8da88
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Stenger
2019-08-07 10:25:43 +02:00
parent 297410ba4e
commit 0d11d880ca
5 changed files with 17 additions and 10 deletions

View File

@@ -115,7 +115,7 @@ void TestCodeParser::setState(State state)
} }
} }
void TestCodeParser::syncTestFrameworks(const QVector<Core::Id> &frameworkIds) void TestCodeParser::syncTestFrameworks(const QList<Core::Id> &frameworkIds)
{ {
if (m_parserState != Idle) { if (m_parserState != Idle) {
// there's a running parse // there's a running parse

View File

@@ -62,7 +62,7 @@ public:
State state() const { return m_parserState; } State state() const { return m_parserState; }
bool isParsing() const { return m_parserState == PartialParse || m_parserState == FullParse; } bool isParsing() const { return m_parserState == PartialParse || m_parserState == FullParse; }
void setDirty() { m_dirty = true; } void setDirty() { m_dirty = true; }
void syncTestFrameworks(const QVector<Core::Id> &frameworkIds); void syncTestFrameworks(const QList<Core::Id> &frameworkIds);
#ifdef WITH_TESTS #ifdef WITH_TESTS
bool furtherParsingExpected() const bool furtherParsingExpected() const
{ return m_singleShotScheduled || m_fullUpdatePostponed || m_partialUpdatePostponed; } { return m_singleShotScheduled || m_fullUpdatePostponed || m_partialUpdatePostponed; }

View File

@@ -120,9 +120,9 @@ QList<Core::Id> TestFrameworkManager::sortedRegisteredFrameworkIds() const
return registered; return registered;
} }
QVector<Core::Id> TestFrameworkManager::activeFrameworkIds() const QList<Core::Id> TestFrameworkManager::activeFrameworkIds() const
{ {
QVector<Core::Id> active; QList<Core::Id> active;
FrameworkIterator it = m_registeredFrameworks.begin(); FrameworkIterator it = m_registeredFrameworks.begin();
FrameworkIterator end = m_registeredFrameworks.end(); FrameworkIterator end = m_registeredFrameworks.end();
for ( ; it != end; ++it) { for ( ; it != end; ++it) {
@@ -132,9 +132,9 @@ QVector<Core::Id> TestFrameworkManager::activeFrameworkIds() const
return active; return active;
} }
QVector<Core::Id> TestFrameworkManager::sortedActiveFrameworkIds() const QList<Core::Id> TestFrameworkManager::sortedActiveFrameworkIds() const
{ {
QVector<Core::Id> active = activeFrameworkIds(); QList<Core::Id> active = activeFrameworkIds();
Utils::sort(active, [this] (const Core::Id &lhs, const Core::Id &rhs) { Utils::sort(active, [this] (const Core::Id &lhs, const Core::Id &rhs) {
return m_registeredFrameworks[lhs]->priority() < m_registeredFrameworks[rhs]->priority(); return m_registeredFrameworks[lhs]->priority() < m_registeredFrameworks[rhs]->priority();
}); });
@@ -210,5 +210,12 @@ bool TestFrameworkManager::hasActiveFrameworks() const
return false; return false;
} }
unsigned TestFrameworkManager::priority(const Core::Id &frameworkId) const
{
if (ITestFramework *framework = m_registeredFrameworks.value(frameworkId))
return framework->priority();
return unsigned(-1);
}
} // namespace Internal } // namespace Internal
} // namespace Autotest } // namespace Autotest

View File

@@ -58,7 +58,7 @@ public:
QString frameworkNameForId(const Core::Id &id) const; QString frameworkNameForId(const Core::Id &id) const;
QList<Core::Id> registeredFrameworkIds() const; QList<Core::Id> registeredFrameworkIds() const;
QList<Core::Id> sortedRegisteredFrameworkIds() const; QList<Core::Id> sortedRegisteredFrameworkIds() const;
QVector<Core::Id> sortedActiveFrameworkIds() const; QList<Core::Id> sortedActiveFrameworkIds() const;
TestTreeItem *rootNodeForTestFramework(const Core::Id &frameworkId) const; TestTreeItem *rootNodeForTestFramework(const Core::Id &frameworkId) const;
ITestParser *testParserForTestFramework(const Core::Id &frameworkId) const; ITestParser *testParserForTestFramework(const Core::Id &frameworkId) const;
@@ -69,9 +69,9 @@ public:
void setGroupingEnabledFor(const Core::Id &frameworkId, bool enabled); void setGroupingEnabledFor(const Core::Id &frameworkId, bool enabled);
QString groupingToolTip(const Core::Id &frameworkId) const; QString groupingToolTip(const Core::Id &frameworkId) const;
bool hasActiveFrameworks() const; bool hasActiveFrameworks() const;
unsigned priority(const Core::Id &frameworkId) const;
private: private:
QVector<Core::Id> activeFrameworkIds() const; QList<Core::Id> activeFrameworkIds() const;
explicit TestFrameworkManager(); explicit TestFrameworkManager();
QHash<Core::Id, ITestFramework *> m_registeredFrameworks; QHash<Core::Id, ITestFramework *> m_registeredFrameworks;
QHash<Core::Id, QSharedPointer<IFrameworkSettings> > m_frameworkSettings; QHash<Core::Id, QSharedPointer<IFrameworkSettings> > m_frameworkSettings;

View File

@@ -204,7 +204,7 @@ void TestTreeModel::syncTestFrameworks()
removeTestRootNodes(); removeTestRootNodes();
TestFrameworkManager *frameworkManager = TestFrameworkManager::instance(); TestFrameworkManager *frameworkManager = TestFrameworkManager::instance();
QVector<Core::Id> sortedIds = frameworkManager->sortedActiveFrameworkIds(); QList<Core::Id> sortedIds = frameworkManager->sortedActiveFrameworkIds();
for (const Core::Id &id : sortedIds) for (const Core::Id &id : sortedIds)
rootItem()->appendChild(frameworkManager->rootNodeForTestFramework(id)); rootItem()->appendChild(frameworkManager->rootNodeForTestFramework(id));