AutoTest: Tie framework settings explicitly to ITestFramework instance

This leaves no doubts regarding lifetime and type.

Change-Id: I1fdd60427a469f32236ea0fa923ec9fa308c338e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2020-03-12 13:58:09 +01:00
parent ea8efe58c6
commit 2c79196ab5
19 changed files with 83 additions and 150 deletions

View File

@@ -67,8 +67,6 @@ TestFrameworkManager::~TestFrameworkManager()
{
delete m_testRunner;
delete m_testTreeModel;
qDeleteAll(m_frameworkSettingsPages);
m_frameworkSettingsPages.clear();
for (ITestFramework *framework : m_registeredFrameworks.values())
delete framework;
}
@@ -82,12 +80,9 @@ bool TestFrameworkManager::registerTestFramework(ITestFramework *framework)
qCDebug(LOG) << "Registering" << id;
m_registeredFrameworks.insert(id, framework);
if (framework->hasFrameworkSettings()) {
QSharedPointer<IFrameworkSettings> frameworkSettings(framework->createFrameworkSettings());
if (IFrameworkSettings *frameworkSettings = framework->frameworkSettings())
m_frameworkSettings.insert(id, frameworkSettings);
if (auto page = framework->createSettingsPage(frameworkSettings))
m_frameworkSettingsPages.append(page);
}
return true;
}
@@ -161,19 +156,17 @@ ITestParser *TestFrameworkManager::testParserForTestFramework(const Id &framewor
return testParser;
}
QSharedPointer<IFrameworkSettings> TestFrameworkManager::settingsForTestFramework(
IFrameworkSettings *TestFrameworkManager::settingsForTestFramework(
const Id &frameworkId) const
{
return m_frameworkSettings.contains(frameworkId) ? m_frameworkSettings.value(frameworkId)
: QSharedPointer<IFrameworkSettings>();
return m_frameworkSettings.value(frameworkId, nullptr);
}
void TestFrameworkManager::synchronizeSettings(QSettings *s)
{
Internal::AutotestPlugin::settings()->fromSettings(s);
for (const Id &id : m_frameworkSettings.keys()) {
QSharedPointer<IFrameworkSettings> fSettings = settingsForTestFramework(id);
if (!fSettings.isNull())
if (IFrameworkSettings *fSettings = settingsForTestFramework(id))
fSettings->fromSettings(s);
}
}