AutoTest: Use ITestFramework * instead of its id in some cases

Change-Id: Ic327e31185247b6479c78af8bf8156f44bb4bdfb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2020-03-13 13:54:33 +01:00
parent c1f210dd69
commit d3f79fcc68
40 changed files with 198 additions and 252 deletions

View File

@@ -60,9 +60,7 @@ void TestProjectSettings::setUseGlobalSettings(bool useGlobal)
void TestProjectSettings::activateFramework(const Core::Id &id, bool activate)
{
if (m_activeTestFrameworks.value(id) != activate) {
m_activeTestFrameworks[id] = activate;
}
m_activeTestFrameworks[TestFrameworkManager::instance()->frameworkForId(id)] = activate;
}
void TestProjectSettings::load()
@@ -71,20 +69,20 @@ void TestProjectSettings::load()
m_useGlobalSettings = useGlobal.isValid() ? useGlobal.toBool() : true;
TestFrameworkManager *frameworkManager = TestFrameworkManager::instance();
const QList<Core::Id> registered = frameworkManager->sortedRegisteredFrameworkIds();
const TestFrameworks registered = frameworkManager->sortedRegisteredFrameworks();
const QVariant activeFrameworks = m_project->namedSettings(SK_ACTIVE_FRAMEWORKS);
m_activeTestFrameworks.clear();
if (activeFrameworks.isValid()) {
const QMap<QString, QVariant> frameworksMap = activeFrameworks.toMap();
for (const Core::Id &id : registered) {
const QString idStr = id.toString();
bool active = frameworksMap.value(idStr, frameworkManager->isActive(id)).toBool();
m_activeTestFrameworks.insert(id, active);
for (ITestFramework *framework : registered) {
const Core::Id id = framework->id();
bool active = frameworksMap.value(id.toString(), framework->active()).toBool();
m_activeTestFrameworks.insert(framework, active);
}
} else {
for (const Core::Id &id : registered)
m_activeTestFrameworks.insert(id, frameworkManager->isActive(id));
for (ITestFramework *framework : registered)
m_activeTestFrameworks.insert(framework, framework->active());
}
const QVariant runAfterBuild = m_project->namedSettings(SK_RUN_AFTER_BUILD);
@@ -98,7 +96,7 @@ void TestProjectSettings::save()
QVariantMap activeFrameworks;
auto end = m_activeTestFrameworks.cend();
for (auto it = m_activeTestFrameworks.cbegin(); it != end; ++it)
activeFrameworks.insert(it.key().toString(), it.value());
activeFrameworks.insert(it.key()->id().toString(), it.value());
m_project->setNamedSettings(SK_ACTIVE_FRAMEWORKS, activeFrameworks);
m_project->setNamedSettings(SK_RUN_AFTER_BUILD, int(m_runAfterBuild));
}