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()
|
||||
{
|
||||
delete m_testRunner;
|
||||
for (ITestFramework *framework : m_registeredFrameworks.values())
|
||||
delete framework;
|
||||
qDeleteAll(m_registeredFrameworks);
|
||||
}
|
||||
|
||||
bool TestFrameworkManager::registerTestFramework(ITestFramework *framework)
|
||||
{
|
||||
QTC_ASSERT(framework, return false);
|
||||
Id id = framework->id();
|
||||
QTC_ASSERT(!m_registeredFrameworks.contains(id), delete framework; return false);
|
||||
QTC_ASSERT(!m_registeredFrameworks.contains(framework), return false);
|
||||
// TODO check for unique priority before registering
|
||||
qCDebug(LOG) << "Registering" << id;
|
||||
m_registeredFrameworks.insert(id, framework);
|
||||
|
||||
if (IFrameworkSettings *frameworkSettings = framework->frameworkSettings())
|
||||
m_frameworkSettings.insert(id, frameworkSettings);
|
||||
|
||||
m_registeredFrameworks.append(framework);
|
||||
return true;
|
||||
}
|
||||
|
||||
void TestFrameworkManager::activateFrameworksFromSettings(const Internal::TestSettings *settings)
|
||||
{
|
||||
FrameworkIterator it = m_registeredFrameworks.begin();
|
||||
FrameworkIterator end = m_registeredFrameworks.end();
|
||||
for ( ; it != end; ++it) {
|
||||
it.value()->setActive(settings->frameworks.value(it.key(), false));
|
||||
it.value()->setGrouping(settings->frameworksGrouping.value(it.key(), false));
|
||||
for (ITestFramework *framework : qAsConst(m_registeredFrameworks)) {
|
||||
framework->setActive(settings->frameworks.value(framework->id(), false));
|
||||
framework->setGrouping(settings->frameworksGrouping.value(framework->id(), false));
|
||||
}
|
||||
}
|
||||
|
||||
TestFrameworks TestFrameworkManager::registeredFrameworks() const
|
||||
{
|
||||
return m_registeredFrameworks.values();
|
||||
return m_registeredFrameworks;
|
||||
}
|
||||
|
||||
TestFrameworks TestFrameworkManager::sortedRegisteredFrameworks() const
|
||||
{
|
||||
TestFrameworks registered = m_registeredFrameworks.values();
|
||||
TestFrameworks registered = m_registeredFrameworks;
|
||||
Utils::sort(registered, &ITestFramework::priority);
|
||||
qCDebug(LOG) << "Registered frameworks sorted by priority" << registered;
|
||||
return registered;
|
||||
@@ -110,7 +101,7 @@ TestFrameworks TestFrameworkManager::sortedRegisteredFrameworks() const
|
||||
TestFrameworks TestFrameworkManager::activeFrameworks() const
|
||||
{
|
||||
TestFrameworks active;
|
||||
for (ITestFramework *framework : m_registeredFrameworks) {
|
||||
for (ITestFramework *framework : qAsConst(m_registeredFrameworks)) {
|
||||
if (framework->active())
|
||||
active.append(framework);
|
||||
}
|
||||
@@ -127,31 +118,32 @@ TestFrameworks TestFrameworkManager::sortedActiveFrameworks() const
|
||||
|
||||
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(
|
||||
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)
|
||||
{
|
||||
Internal::AutotestPlugin::settings()->fromSettings(s);
|
||||
for (const Id &id : m_frameworkSettings.keys()) {
|
||||
if (IFrameworkSettings *fSettings = settingsForTestFramework(id))
|
||||
for (ITestFramework *framework : qAsConst(m_registeredFrameworks)) {
|
||||
if (IFrameworkSettings *fSettings = framework->frameworkSettings())
|
||||
fSettings->fromSettings(s);
|
||||
}
|
||||
}
|
||||
|
||||
bool TestFrameworkManager::hasActiveFrameworks() const
|
||||
{
|
||||
for (ITestFramework *framework : m_registeredFrameworks.values()) {
|
||||
if (framework->active())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return Utils::anyOf(m_registeredFrameworks, &ITestFramework::active);
|
||||
}
|
||||
|
||||
Id ITestFramework::settingsId() const
|
||||
|
@@ -66,11 +66,9 @@ public:
|
||||
private:
|
||||
TestFrameworks activeFrameworks() const;
|
||||
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
|
||||
|
Reference in New Issue
Block a user