forked from qt-creator/qt-creator
AutoTest: Simplify TestFrameworkManager
With only four items the hash is not really needed. Change-Id: Ifc858bc6517e4e0ff46b515a74568742897ddb11 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -65,43 +65,34 @@ TestFrameworkManager *TestFrameworkManager::instance()
|
|||||||
TestFrameworkManager::~TestFrameworkManager()
|
TestFrameworkManager::~TestFrameworkManager()
|
||||||
{
|
{
|
||||||
delete m_testRunner;
|
delete m_testRunner;
|
||||||
for (ITestFramework *framework : m_registeredFrameworks.values())
|
qDeleteAll(m_registeredFrameworks);
|
||||||
delete framework;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TestFrameworkManager::registerTestFramework(ITestFramework *framework)
|
bool TestFrameworkManager::registerTestFramework(ITestFramework *framework)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(framework, return false);
|
QTC_ASSERT(framework, return false);
|
||||||
Id id = framework->id();
|
QTC_ASSERT(!m_registeredFrameworks.contains(framework), return false);
|
||||||
QTC_ASSERT(!m_registeredFrameworks.contains(id), delete framework; return false);
|
|
||||||
// TODO check for unique priority before registering
|
// TODO check for unique priority before registering
|
||||||
qCDebug(LOG) << "Registering" << id;
|
m_registeredFrameworks.append(framework);
|
||||||
m_registeredFrameworks.insert(id, framework);
|
|
||||||
|
|
||||||
if (IFrameworkSettings *frameworkSettings = framework->frameworkSettings())
|
|
||||||
m_frameworkSettings.insert(id, frameworkSettings);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestFrameworkManager::activateFrameworksFromSettings(const Internal::TestSettings *settings)
|
void TestFrameworkManager::activateFrameworksFromSettings(const Internal::TestSettings *settings)
|
||||||
{
|
{
|
||||||
FrameworkIterator it = m_registeredFrameworks.begin();
|
for (ITestFramework *framework : qAsConst(m_registeredFrameworks)) {
|
||||||
FrameworkIterator end = m_registeredFrameworks.end();
|
framework->setActive(settings->frameworks.value(framework->id(), false));
|
||||||
for ( ; it != end; ++it) {
|
framework->setGrouping(settings->frameworksGrouping.value(framework->id(), false));
|
||||||
it.value()->setActive(settings->frameworks.value(it.key(), false));
|
|
||||||
it.value()->setGrouping(settings->frameworksGrouping.value(it.key(), false));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TestFrameworks TestFrameworkManager::registeredFrameworks() const
|
TestFrameworks TestFrameworkManager::registeredFrameworks() const
|
||||||
{
|
{
|
||||||
return m_registeredFrameworks.values();
|
return m_registeredFrameworks;
|
||||||
}
|
}
|
||||||
|
|
||||||
TestFrameworks TestFrameworkManager::sortedRegisteredFrameworks() const
|
TestFrameworks TestFrameworkManager::sortedRegisteredFrameworks() const
|
||||||
{
|
{
|
||||||
TestFrameworks registered = m_registeredFrameworks.values();
|
TestFrameworks registered = m_registeredFrameworks;
|
||||||
Utils::sort(registered, &ITestFramework::priority);
|
Utils::sort(registered, &ITestFramework::priority);
|
||||||
qCDebug(LOG) << "Registered frameworks sorted by priority" << registered;
|
qCDebug(LOG) << "Registered frameworks sorted by priority" << registered;
|
||||||
return registered;
|
return registered;
|
||||||
@@ -110,7 +101,7 @@ TestFrameworks TestFrameworkManager::sortedRegisteredFrameworks() const
|
|||||||
TestFrameworks TestFrameworkManager::activeFrameworks() const
|
TestFrameworks TestFrameworkManager::activeFrameworks() const
|
||||||
{
|
{
|
||||||
TestFrameworks active;
|
TestFrameworks active;
|
||||||
for (ITestFramework *framework : m_registeredFrameworks) {
|
for (ITestFramework *framework : qAsConst(m_registeredFrameworks)) {
|
||||||
if (framework->active())
|
if (framework->active())
|
||||||
active.append(framework);
|
active.append(framework);
|
||||||
}
|
}
|
||||||
@@ -127,31 +118,32 @@ TestFrameworks TestFrameworkManager::sortedActiveFrameworks() const
|
|||||||
|
|
||||||
ITestFramework *TestFrameworkManager::frameworkForId(Id frameworkId)
|
ITestFramework *TestFrameworkManager::frameworkForId(Id frameworkId)
|
||||||
{
|
{
|
||||||
return instance()->m_registeredFrameworks.value(frameworkId, nullptr);
|
return Utils::findOrDefault(s_instance->m_registeredFrameworks,
|
||||||
|
[frameworkId](ITestFramework *framework) {
|
||||||
|
return framework->id() == frameworkId;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
IFrameworkSettings *TestFrameworkManager::settingsForTestFramework(
|
IFrameworkSettings *TestFrameworkManager::settingsForTestFramework(
|
||||||
const Id &frameworkId) const
|
const Id &frameworkId) const
|
||||||
{
|
{
|
||||||
return m_frameworkSettings.value(frameworkId, nullptr);
|
ITestFramework *framework = frameworkForId(frameworkId);
|
||||||
|
QTC_ASSERT(framework, return nullptr);
|
||||||
|
return framework->frameworkSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestFrameworkManager::synchronizeSettings(QSettings *s)
|
void TestFrameworkManager::synchronizeSettings(QSettings *s)
|
||||||
{
|
{
|
||||||
Internal::AutotestPlugin::settings()->fromSettings(s);
|
Internal::AutotestPlugin::settings()->fromSettings(s);
|
||||||
for (const Id &id : m_frameworkSettings.keys()) {
|
for (ITestFramework *framework : qAsConst(m_registeredFrameworks)) {
|
||||||
if (IFrameworkSettings *fSettings = settingsForTestFramework(id))
|
if (IFrameworkSettings *fSettings = framework->frameworkSettings())
|
||||||
fSettings->fromSettings(s);
|
fSettings->fromSettings(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TestFrameworkManager::hasActiveFrameworks() const
|
bool TestFrameworkManager::hasActiveFrameworks() const
|
||||||
{
|
{
|
||||||
for (ITestFramework *framework : m_registeredFrameworks.values()) {
|
return Utils::anyOf(m_registeredFrameworks, &ITestFramework::active);
|
||||||
if (framework->active())
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Id ITestFramework::settingsId() const
|
Id ITestFramework::settingsId() const
|
||||||
|
@@ -66,11 +66,9 @@ public:
|
|||||||
private:
|
private:
|
||||||
TestFrameworks activeFrameworks() const;
|
TestFrameworks activeFrameworks() const;
|
||||||
explicit TestFrameworkManager();
|
explicit TestFrameworkManager();
|
||||||
QHash<Core::Id, ITestFramework *> m_registeredFrameworks;
|
|
||||||
QHash<Core::Id, IFrameworkSettings *> m_frameworkSettings;
|
|
||||||
Internal::TestRunner *m_testRunner;
|
|
||||||
|
|
||||||
typedef QHash<Core::Id, ITestFramework *>::ConstIterator FrameworkIterator;
|
TestFrameworks m_registeredFrameworks;
|
||||||
|
Internal::TestRunner *m_testRunner;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Autotest
|
} // namespace Autotest
|
||||||
|
Reference in New Issue
Block a user