forked from qt-creator/qt-creator
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:
@@ -35,12 +35,12 @@
|
|||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
static QSharedPointer<BoostTestSettings> getBoostSettings()
|
static BoostTestSettings *getBoostSettings()
|
||||||
{
|
{
|
||||||
const Core::Id id = Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix(
|
const Core::Id id = Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix(
|
||||||
BoostTest::Constants::FRAMEWORK_NAME);
|
BoostTest::Constants::FRAMEWORK_NAME);
|
||||||
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
||||||
return qSharedPointerCast<BoostTestSettings>(manager->settingsForTestFramework(id));
|
return dynamic_cast<BoostTestSettings *>(manager->settingsForTestFramework(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
TestOutputReader *BoostTestConfiguration::outputReader(const QFutureInterface<TestResultPtr> &fi,
|
TestOutputReader *BoostTestConfiguration::outputReader(const QFutureInterface<TestResultPtr> &fi,
|
||||||
|
@@ -25,8 +25,6 @@
|
|||||||
|
|
||||||
#include "boosttestframework.h"
|
#include "boosttestframework.h"
|
||||||
#include "boosttestconstants.h"
|
#include "boosttestconstants.h"
|
||||||
#include "boosttestsettings.h"
|
|
||||||
#include "boosttestsettingspage.h"
|
|
||||||
#include "boosttesttreeitem.h"
|
#include "boosttesttreeitem.h"
|
||||||
#include "boosttestparser.h"
|
#include "boosttestparser.h"
|
||||||
#include "../testframeworkmanager.h"
|
#include "../testframeworkmanager.h"
|
||||||
@@ -57,20 +55,5 @@ unsigned BoostTestFramework::priority() const
|
|||||||
return BoostTest::Constants::FRAMEWORK_PRIORITY;
|
return BoostTest::Constants::FRAMEWORK_PRIORITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
IFrameworkSettings *BoostTestFramework::createFrameworkSettings() const
|
|
||||||
{
|
|
||||||
return new BoostTestSettings;
|
|
||||||
}
|
|
||||||
|
|
||||||
Core::IOptionsPage *BoostTestFramework::createSettingsPage(QSharedPointer<IFrameworkSettings> settings) const
|
|
||||||
{
|
|
||||||
return new BoostTestSettingsPage(settings, settingsId());
|
|
||||||
}
|
|
||||||
|
|
||||||
bool BoostTestFramework::hasFrameworkSettings() const
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
} // namespace Autotest
|
} // namespace Autotest
|
||||||
|
@@ -27,6 +27,9 @@
|
|||||||
|
|
||||||
#include "../itestframework.h"
|
#include "../itestframework.h"
|
||||||
|
|
||||||
|
#include "boosttestsettings.h"
|
||||||
|
#include "boosttestsettingspage.h"
|
||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
@@ -34,14 +37,16 @@ class BoostTestFramework : public ITestFramework
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BoostTestFramework() : ITestFramework(true) {}
|
BoostTestFramework() : ITestFramework(true) {}
|
||||||
|
|
||||||
|
private:
|
||||||
const char *name() const override;
|
const char *name() const override;
|
||||||
unsigned priority() const override;
|
unsigned priority() const override;
|
||||||
IFrameworkSettings *createFrameworkSettings() const override;
|
IFrameworkSettings *frameworkSettings() override { return &m_settings; }
|
||||||
Core::IOptionsPage *createSettingsPage(QSharedPointer<IFrameworkSettings> settings) const override;
|
|
||||||
bool hasFrameworkSettings() const override;
|
|
||||||
protected:
|
|
||||||
ITestParser *createTestParser() const override;
|
ITestParser *createTestParser() const override;
|
||||||
TestTreeItem *createRootNode() const override;
|
TestTreeItem *createRootNode() const override;
|
||||||
|
|
||||||
|
BoostTestSettings m_settings;
|
||||||
|
BoostTestSettingsPage m_settingsPage{&m_settings, settingsId()};
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -39,7 +39,7 @@ class BoostTestSettingsWidget : public Core::IOptionsPageWidget
|
|||||||
Q_DECLARE_TR_FUNCTIONS(Autotest::Internal::BoostTestSettingsWidget)
|
Q_DECLARE_TR_FUNCTIONS(Autotest::Internal::BoostTestSettingsWidget)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit BoostTestSettingsWidget(QSharedPointer<BoostTestSettings> settings);
|
explicit BoostTestSettingsWidget(BoostTestSettings *settings);
|
||||||
|
|
||||||
void apply() final;
|
void apply() final;
|
||||||
|
|
||||||
@@ -49,10 +49,10 @@ public:
|
|||||||
private:
|
private:
|
||||||
void fillComboBoxes();
|
void fillComboBoxes();
|
||||||
Ui::BoostSettingsPage m_ui;
|
Ui::BoostSettingsPage m_ui;
|
||||||
QSharedPointer<BoostTestSettings> m_settings;
|
BoostTestSettings *m_settings;
|
||||||
};
|
};
|
||||||
|
|
||||||
BoostTestSettingsWidget::BoostTestSettingsWidget(QSharedPointer<BoostTestSettings> settings)
|
BoostTestSettingsWidget::BoostTestSettingsWidget(BoostTestSettings *settings)
|
||||||
: m_settings(settings)
|
: m_settings(settings)
|
||||||
{
|
{
|
||||||
m_ui.setupUi(this);
|
m_ui.setupUi(this);
|
||||||
@@ -101,16 +101,13 @@ void BoostTestSettingsWidget::fillComboBoxes()
|
|||||||
m_ui.reportLevelCB->addItem("No", QVariant::fromValue(ReportLevel::No));
|
m_ui.reportLevelCB->addItem("No", QVariant::fromValue(ReportLevel::No));
|
||||||
}
|
}
|
||||||
|
|
||||||
BoostTestSettingsPage::BoostTestSettingsPage(QSharedPointer<IFrameworkSettings> settings,
|
BoostTestSettingsPage::BoostTestSettingsPage(BoostTestSettings *settings, Core::Id settingsId)
|
||||||
Core::Id settingsId)
|
|
||||||
{
|
{
|
||||||
setId(settingsId);
|
setId(settingsId);
|
||||||
setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY);
|
setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY);
|
||||||
setDisplayName(QCoreApplication::translate("BoostTestFramework",
|
setDisplayName(QCoreApplication::translate("BoostTestFramework",
|
||||||
BoostTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
|
BoostTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
|
||||||
setWidgetCreator([settings] {
|
setWidgetCreator([settings] { return new BoostTestSettingsWidget(settings); });
|
||||||
return new BoostTestSettingsWidget(qSharedPointerCast<BoostTestSettings>(settings));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // Internal
|
} // Internal
|
||||||
|
@@ -28,15 +28,14 @@
|
|||||||
#include <coreplugin/dialogs/ioptionspage.h>
|
#include <coreplugin/dialogs/ioptionspage.h>
|
||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
|
|
||||||
class IFrameworkSettings;
|
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
|
class BoostTestSettings;
|
||||||
|
|
||||||
class BoostTestSettingsPage final : public Core::IOptionsPage
|
class BoostTestSettingsPage final : public Core::IOptionsPage
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BoostTestSettingsPage(QSharedPointer<IFrameworkSettings> settings, Core::Id settingsId);
|
BoostTestSettingsPage(BoostTestSettings *settings, Core::Id settingsId);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // Internal
|
} // Internal
|
||||||
|
@@ -87,8 +87,8 @@ QStringList GTestConfiguration::argumentsForTestRunner(QStringList *omitted) con
|
|||||||
arguments << "--gtest_filter=" + testSets.join(':');
|
arguments << "--gtest_filter=" + testSets.join(':');
|
||||||
|
|
||||||
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
||||||
auto gSettings = qSharedPointerCast<GTestSettings>(manager->settingsForTestFramework(id));
|
auto gSettings = dynamic_cast<GTestSettings *>(manager->settingsForTestFramework(id));
|
||||||
if (gSettings.isNull())
|
if (!gSettings)
|
||||||
return arguments;
|
return arguments;
|
||||||
|
|
||||||
if (gSettings->runDisabled)
|
if (gSettings->runDisabled)
|
||||||
|
@@ -24,8 +24,6 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "gtestframework.h"
|
#include "gtestframework.h"
|
||||||
#include "gtestsettings.h"
|
|
||||||
#include "gtestsettingspage.h"
|
|
||||||
#include "gtesttreeitem.h"
|
#include "gtesttreeitem.h"
|
||||||
#include "gtestparser.h"
|
#include "gtestparser.h"
|
||||||
#include "../testframeworkmanager.h"
|
#include "../testframeworkmanager.h"
|
||||||
@@ -33,6 +31,14 @@
|
|||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
|
static GTestSettings *g_settings;
|
||||||
|
|
||||||
|
GTestFramework::GTestFramework()
|
||||||
|
: ITestFramework(true)
|
||||||
|
{
|
||||||
|
g_settings = &m_settings;
|
||||||
|
}
|
||||||
|
|
||||||
ITestParser *GTestFramework::createTestParser() const
|
ITestParser *GTestFramework::createTestParser() const
|
||||||
{
|
{
|
||||||
return new GTestParser;
|
return new GTestParser;
|
||||||
@@ -56,29 +62,9 @@ unsigned GTestFramework::priority() const
|
|||||||
return GTest::Constants::FRAMEWORK_PRIORITY;
|
return GTest::Constants::FRAMEWORK_PRIORITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
IFrameworkSettings *GTestFramework::createFrameworkSettings() const
|
|
||||||
{
|
|
||||||
return new GTestSettings;
|
|
||||||
}
|
|
||||||
|
|
||||||
Core::IOptionsPage *GTestFramework::createSettingsPage(QSharedPointer<IFrameworkSettings> settings) const
|
|
||||||
{
|
|
||||||
return new GTestSettingsPage(settings, settingsId());
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GTestFramework::hasFrameworkSettings() const
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString GTestFramework::currentGTestFilter()
|
QString GTestFramework::currentGTestFilter()
|
||||||
{
|
{
|
||||||
static const Core::Id id
|
return g_settings->gtestFilter;
|
||||||
= Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix(GTest::Constants::FRAMEWORK_NAME);
|
|
||||||
const auto manager = TestFrameworkManager::instance();
|
|
||||||
|
|
||||||
auto gSettings = qSharedPointerCast<GTestSettings>(manager->settingsForTestFramework(id));
|
|
||||||
return gSettings.isNull() ? QString(GTest::Constants::DEFAULT_FILTER) : gSettings->gtestFilter;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString GTestFramework::groupingToolTip() const
|
QString GTestFramework::groupingToolTip() const
|
||||||
@@ -90,14 +76,7 @@ QString GTestFramework::groupingToolTip() const
|
|||||||
|
|
||||||
GTest::Constants::GroupMode GTestFramework::groupMode()
|
GTest::Constants::GroupMode GTestFramework::groupMode()
|
||||||
{
|
{
|
||||||
static const Core::Id id
|
return g_settings->groupMode;
|
||||||
= Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix(GTest::Constants::FRAMEWORK_NAME);
|
|
||||||
const auto manager = TestFrameworkManager::instance();
|
|
||||||
if (!manager->groupingEnabled(id))
|
|
||||||
return GTest::Constants::None;
|
|
||||||
|
|
||||||
auto gSettings = qSharedPointerCast<GTestSettings>(manager->settingsForTestFramework(id));
|
|
||||||
return gSettings.isNull() ? GTest::Constants::Directory : gSettings->groupMode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -27,6 +27,8 @@
|
|||||||
|
|
||||||
#include "../itestframework.h"
|
#include "../itestframework.h"
|
||||||
#include "gtestconstants.h"
|
#include "gtestconstants.h"
|
||||||
|
#include "gtestsettings.h"
|
||||||
|
#include "gtestsettingspage.h"
|
||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
@@ -34,18 +36,21 @@ namespace Internal {
|
|||||||
class GTestFramework : public ITestFramework
|
class GTestFramework : public ITestFramework
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GTestFramework() : ITestFramework(true) {}
|
GTestFramework();
|
||||||
const char *name() const override;
|
|
||||||
unsigned priority() const override;
|
|
||||||
IFrameworkSettings *createFrameworkSettings() const override;
|
|
||||||
Core::IOptionsPage *createSettingsPage(QSharedPointer<IFrameworkSettings> settings) const override;
|
|
||||||
bool hasFrameworkSettings() const override;
|
|
||||||
static GTest::Constants::GroupMode groupMode();
|
static GTest::Constants::GroupMode groupMode();
|
||||||
static QString currentGTestFilter();
|
static QString currentGTestFilter();
|
||||||
|
|
||||||
|
private:
|
||||||
|
const char *name() const override;
|
||||||
|
unsigned priority() const override;
|
||||||
QString groupingToolTip() const override;
|
QString groupingToolTip() const override;
|
||||||
protected:
|
IFrameworkSettings *frameworkSettings() override { return &m_settings; }
|
||||||
ITestParser *createTestParser() const override;
|
ITestParser *createTestParser() const override;
|
||||||
TestTreeItem *createRootNode() const override;
|
TestTreeItem *createRootNode() const override;
|
||||||
|
|
||||||
|
GTestSettings m_settings;
|
||||||
|
GTestSettingsPage m_settingsPage{&m_settings, settingsId()};
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -46,17 +46,17 @@ class GTestSettingsWidget final : public Core::IOptionsPageWidget
|
|||||||
Q_DECLARE_TR_FUNCTIONS(Autotest::Internal::GTestSettingsWidget)
|
Q_DECLARE_TR_FUNCTIONS(Autotest::Internal::GTestSettingsWidget)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit GTestSettingsWidget(const QSharedPointer<GTestSettings> &settings);
|
explicit GTestSettingsWidget(GTestSettings *settings);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void apply() final;
|
void apply() final;
|
||||||
|
|
||||||
Ui::GTestSettingsPage m_ui;
|
Ui::GTestSettingsPage m_ui;
|
||||||
QString m_currentGTestFilter;
|
QString m_currentGTestFilter;
|
||||||
QSharedPointer<GTestSettings> m_settings;
|
GTestSettings *m_settings;
|
||||||
};
|
};
|
||||||
|
|
||||||
GTestSettingsWidget::GTestSettingsWidget(const QSharedPointer<GTestSettings> &settings)
|
GTestSettingsWidget::GTestSettingsWidget(GTestSettings *settings)
|
||||||
: m_settings(settings)
|
: m_settings(settings)
|
||||||
{
|
{
|
||||||
m_ui.setupUi(this);
|
m_ui.setupUi(this);
|
||||||
@@ -109,14 +109,13 @@ void GTestSettingsWidget::apply()
|
|||||||
TestTreeModel::instance()->rebuild({id});
|
TestTreeModel::instance()->rebuild({id});
|
||||||
}
|
}
|
||||||
|
|
||||||
GTestSettingsPage::GTestSettingsPage(QSharedPointer<IFrameworkSettings> settings,
|
GTestSettingsPage::GTestSettingsPage(GTestSettings *settings, Core::Id settingsId)
|
||||||
Core::Id settingsId)
|
|
||||||
{
|
{
|
||||||
setId(settingsId);
|
setId(settingsId);
|
||||||
setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY);
|
setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY);
|
||||||
setDisplayName(QCoreApplication::translate("GTestFramework",
|
setDisplayName(QCoreApplication::translate("GTestFramework",
|
||||||
GTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
|
GTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
|
||||||
setWidgetCreator([settings] { return new GTestSettingsWidget(qSharedPointerCast<GTestSettings>(settings)); });
|
setWidgetCreator([settings] { return new GTestSettingsWidget(settings); });
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -28,15 +28,14 @@
|
|||||||
#include <coreplugin/dialogs/ioptionspage.h>
|
#include <coreplugin/dialogs/ioptionspage.h>
|
||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
|
|
||||||
class IFrameworkSettings;
|
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
|
class GTestSettings;
|
||||||
|
|
||||||
class GTestSettingsPage final : public Core::IOptionsPage
|
class GTestSettingsPage final : public Core::IOptionsPage
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GTestSettingsPage(QSharedPointer<IFrameworkSettings> settings, Core::Id settingsId);
|
GTestSettingsPage(GTestSettings *settings, Core::Id settingsId);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -28,8 +28,6 @@
|
|||||||
#include "testtreeitem.h"
|
#include "testtreeitem.h"
|
||||||
#include "itestparser.h"
|
#include "itestparser.h"
|
||||||
|
|
||||||
namespace Core { class IOptionsPage; }
|
|
||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
|
|
||||||
class IFrameworkSettings;
|
class IFrameworkSettings;
|
||||||
@@ -46,13 +44,8 @@ public:
|
|||||||
|
|
||||||
virtual const char *name() const = 0;
|
virtual const char *name() const = 0;
|
||||||
virtual unsigned priority() const = 0; // should this be modifyable?
|
virtual unsigned priority() const = 0; // should this be modifyable?
|
||||||
virtual bool hasFrameworkSettings() const { return false; }
|
|
||||||
virtual IFrameworkSettings *createFrameworkSettings() const { return nullptr; }
|
virtual IFrameworkSettings *frameworkSettings() { return nullptr; }
|
||||||
virtual Core::IOptionsPage *createSettingsPage(QSharedPointer<IFrameworkSettings> settings) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(settings)
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
TestTreeItem *rootNode()
|
TestTreeItem *rootNode()
|
||||||
{ if (!m_rootNode)
|
{ if (!m_rootNode)
|
||||||
|
@@ -41,7 +41,7 @@ TestOutputReader *QtTestConfiguration::outputReader(const QFutureInterface<TestR
|
|||||||
static const Core::Id id
|
static const Core::Id id
|
||||||
= Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix(QtTest::Constants::FRAMEWORK_NAME);
|
= Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix(QtTest::Constants::FRAMEWORK_NAME);
|
||||||
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
||||||
auto qtSettings = qSharedPointerCast<QtTestSettings>(manager->settingsForTestFramework(id));
|
auto qtSettings = dynamic_cast<QtTestSettings *>(manager->settingsForTestFramework(id));
|
||||||
const QtTestOutputReader::OutputMode mode = qtSettings && qtSettings->useXMLOutput
|
const QtTestOutputReader::OutputMode mode = qtSettings && qtSettings->useXMLOutput
|
||||||
? QtTestOutputReader::XML
|
? QtTestOutputReader::XML
|
||||||
: QtTestOutputReader::PlainText;
|
: QtTestOutputReader::PlainText;
|
||||||
@@ -60,8 +60,8 @@ QStringList QtTestConfiguration::argumentsForTestRunner(QStringList *omitted) co
|
|||||||
omitted, false));
|
omitted, false));
|
||||||
}
|
}
|
||||||
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
||||||
auto qtSettings = qSharedPointerCast<QtTestSettings>(manager->settingsForTestFramework(id));
|
auto qtSettings = dynamic_cast<QtTestSettings *>(manager->settingsForTestFramework(id));
|
||||||
if (qtSettings.isNull())
|
if (!qtSettings)
|
||||||
return arguments;
|
return arguments;
|
||||||
if (qtSettings->useXMLOutput)
|
if (qtSettings->useXMLOutput)
|
||||||
arguments << "-xml";
|
arguments << "-xml";
|
||||||
|
@@ -26,8 +26,6 @@
|
|||||||
#include "qttestframework.h"
|
#include "qttestframework.h"
|
||||||
#include "qttestconstants.h"
|
#include "qttestconstants.h"
|
||||||
#include "qttestparser.h"
|
#include "qttestparser.h"
|
||||||
#include "qttestsettings.h"
|
|
||||||
#include "qttestsettingspage.h"
|
|
||||||
#include "qttesttreeitem.h"
|
#include "qttesttreeitem.h"
|
||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
@@ -46,21 +44,6 @@ TestTreeItem *QtTestFramework::createRootNode() const
|
|||||||
QString(), TestTreeItem::Root);
|
QString(), TestTreeItem::Root);
|
||||||
}
|
}
|
||||||
|
|
||||||
IFrameworkSettings *QtTestFramework::createFrameworkSettings() const
|
|
||||||
{
|
|
||||||
return new QtTestSettings;
|
|
||||||
}
|
|
||||||
|
|
||||||
Core::IOptionsPage *QtTestFramework::createSettingsPage(QSharedPointer<IFrameworkSettings> settings) const
|
|
||||||
{
|
|
||||||
return new QtTestSettingsPage(settings, settingsId());
|
|
||||||
}
|
|
||||||
|
|
||||||
bool QtTestFramework::hasFrameworkSettings() const
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *QtTestFramework::name() const
|
const char *QtTestFramework::name() const
|
||||||
{
|
{
|
||||||
return QtTest::Constants::FRAMEWORK_NAME;
|
return QtTest::Constants::FRAMEWORK_NAME;
|
||||||
|
@@ -27,6 +27,9 @@
|
|||||||
|
|
||||||
#include "../itestframework.h"
|
#include "../itestframework.h"
|
||||||
|
|
||||||
|
#include "qttestsettings.h"
|
||||||
|
#include "qttestsettingspage.h"
|
||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
@@ -34,15 +37,16 @@ class QtTestFramework : public ITestFramework
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QtTestFramework() : ITestFramework(true) {}
|
QtTestFramework() : ITestFramework(true) {}
|
||||||
|
|
||||||
|
private:
|
||||||
const char *name() const override;
|
const char *name() const override;
|
||||||
unsigned priority() const override;
|
unsigned priority() const override;
|
||||||
IFrameworkSettings *createFrameworkSettings() const override;
|
|
||||||
Core::IOptionsPage *createSettingsPage(QSharedPointer<IFrameworkSettings> settings) const override;
|
|
||||||
bool hasFrameworkSettings() const override;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
ITestParser *createTestParser() const override;
|
ITestParser *createTestParser() const override;
|
||||||
TestTreeItem *createRootNode() const override;
|
TestTreeItem *createRootNode() const override;
|
||||||
|
IFrameworkSettings *frameworkSettings() override { return &m_settings; }
|
||||||
|
|
||||||
|
QtTestSettings m_settings;
|
||||||
|
QtTestSettingsPage m_settingsPage{&m_settings, settingsId()};
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -41,16 +41,16 @@ class QtTestSettingsWidget final : public Core::IOptionsPageWidget
|
|||||||
Q_DECLARE_TR_FUNCTIONS(Autotest::Internal::QtTestSettingsWidget)
|
Q_DECLARE_TR_FUNCTIONS(Autotest::Internal::QtTestSettingsWidget)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit QtTestSettingsWidget(QSharedPointer<QtTestSettings> settings);
|
explicit QtTestSettingsWidget(QtTestSettings *settings);
|
||||||
|
|
||||||
void apply() final;
|
void apply() final;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::QtTestSettingsPage m_ui;
|
Ui::QtTestSettingsPage m_ui;
|
||||||
QSharedPointer<QtTestSettings> m_settings;
|
QtTestSettings *m_settings;
|
||||||
};
|
};
|
||||||
|
|
||||||
QtTestSettingsWidget::QtTestSettingsWidget(QSharedPointer<QtTestSettings> settings)
|
QtTestSettingsWidget::QtTestSettingsWidget(QtTestSettings *settings)
|
||||||
: m_settings(settings)
|
: m_settings(settings)
|
||||||
{
|
{
|
||||||
m_ui.setupUi(this);
|
m_ui.setupUi(this);
|
||||||
@@ -100,16 +100,13 @@ void QtTestSettingsWidget::apply()
|
|||||||
m_settings->toSettings(Core::ICore::settings());
|
m_settings->toSettings(Core::ICore::settings());
|
||||||
}
|
}
|
||||||
|
|
||||||
QtTestSettingsPage::QtTestSettingsPage(QSharedPointer<IFrameworkSettings> settings,
|
QtTestSettingsPage::QtTestSettingsPage(QtTestSettings *settings, Core::Id settingsId)
|
||||||
Core::Id settingsId)
|
|
||||||
{
|
{
|
||||||
setId(settingsId);
|
setId(settingsId);
|
||||||
setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY);
|
setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY);
|
||||||
setDisplayName(QCoreApplication::translate("QtTestFramework",
|
setDisplayName(QCoreApplication::translate("QtTestFramework",
|
||||||
QtTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
|
QtTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
|
||||||
setWidgetCreator([settings] {
|
setWidgetCreator([settings] { return new QtTestSettingsWidget(settings); });
|
||||||
return new QtTestSettingsWidget(qSharedPointerCast<QtTestSettings>(settings));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -28,15 +28,14 @@
|
|||||||
#include <coreplugin/dialogs/ioptionspage.h>
|
#include <coreplugin/dialogs/ioptionspage.h>
|
||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
|
|
||||||
class IFrameworkSettings;
|
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
|
class QtTestSettings;
|
||||||
|
|
||||||
class QtTestSettingsPage final : public Core::IOptionsPage
|
class QtTestSettingsPage final : public Core::IOptionsPage
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QtTestSettingsPage(QSharedPointer<IFrameworkSettings> settings, Core::Id settingsId);
|
QtTestSettingsPage(QtTestSettings *settings, Core::Id settingsId);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -46,7 +46,7 @@ TestOutputReader *QuickTestConfiguration::outputReader(const QFutureInterface<Te
|
|||||||
static const Core::Id id
|
static const Core::Id id
|
||||||
= Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix(QtTest::Constants::FRAMEWORK_NAME);
|
= Core::Id(Constants::FRAMEWORK_PREFIX).withSuffix(QtTest::Constants::FRAMEWORK_NAME);
|
||||||
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
||||||
auto qtSettings = qSharedPointerCast<QtTestSettings>(manager->settingsForTestFramework(id));
|
auto qtSettings = dynamic_cast<QtTestSettings *>(manager->settingsForTestFramework(id));
|
||||||
const QtTestOutputReader::OutputMode mode = qtSettings && qtSettings->useXMLOutput
|
const QtTestOutputReader::OutputMode mode = qtSettings && qtSettings->useXMLOutput
|
||||||
? QtTestOutputReader::XML
|
? QtTestOutputReader::XML
|
||||||
: QtTestOutputReader::PlainText;
|
: QtTestOutputReader::PlainText;
|
||||||
@@ -67,8 +67,8 @@ QStringList QuickTestConfiguration::argumentsForTestRunner(QStringList *omitted)
|
|||||||
}
|
}
|
||||||
|
|
||||||
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
TestFrameworkManager *manager = TestFrameworkManager::instance();
|
||||||
auto qtSettings = qSharedPointerCast<QtTestSettings>(manager->settingsForTestFramework(id));
|
auto qtSettings = dynamic_cast<QtTestSettings *>(manager->settingsForTestFramework(id));
|
||||||
if (qtSettings.isNull())
|
if (!qtSettings)
|
||||||
return arguments;
|
return arguments;
|
||||||
if (qtSettings->useXMLOutput)
|
if (qtSettings->useXMLOutput)
|
||||||
arguments << "-xml";
|
arguments << "-xml";
|
||||||
|
@@ -67,8 +67,6 @@ TestFrameworkManager::~TestFrameworkManager()
|
|||||||
{
|
{
|
||||||
delete m_testRunner;
|
delete m_testRunner;
|
||||||
delete m_testTreeModel;
|
delete m_testTreeModel;
|
||||||
qDeleteAll(m_frameworkSettingsPages);
|
|
||||||
m_frameworkSettingsPages.clear();
|
|
||||||
for (ITestFramework *framework : m_registeredFrameworks.values())
|
for (ITestFramework *framework : m_registeredFrameworks.values())
|
||||||
delete framework;
|
delete framework;
|
||||||
}
|
}
|
||||||
@@ -82,12 +80,9 @@ bool TestFrameworkManager::registerTestFramework(ITestFramework *framework)
|
|||||||
qCDebug(LOG) << "Registering" << id;
|
qCDebug(LOG) << "Registering" << id;
|
||||||
m_registeredFrameworks.insert(id, framework);
|
m_registeredFrameworks.insert(id, framework);
|
||||||
|
|
||||||
if (framework->hasFrameworkSettings()) {
|
if (IFrameworkSettings *frameworkSettings = framework->frameworkSettings())
|
||||||
QSharedPointer<IFrameworkSettings> frameworkSettings(framework->createFrameworkSettings());
|
|
||||||
m_frameworkSettings.insert(id, frameworkSettings);
|
m_frameworkSettings.insert(id, frameworkSettings);
|
||||||
if (auto page = framework->createSettingsPage(frameworkSettings))
|
|
||||||
m_frameworkSettingsPages.append(page);
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,19 +156,17 @@ ITestParser *TestFrameworkManager::testParserForTestFramework(const Id &framewor
|
|||||||
return testParser;
|
return testParser;
|
||||||
}
|
}
|
||||||
|
|
||||||
QSharedPointer<IFrameworkSettings> TestFrameworkManager::settingsForTestFramework(
|
IFrameworkSettings *TestFrameworkManager::settingsForTestFramework(
|
||||||
const Id &frameworkId) const
|
const Id &frameworkId) const
|
||||||
{
|
{
|
||||||
return m_frameworkSettings.contains(frameworkId) ? m_frameworkSettings.value(frameworkId)
|
return m_frameworkSettings.value(frameworkId, nullptr);
|
||||||
: QSharedPointer<IFrameworkSettings>();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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 (const Id &id : m_frameworkSettings.keys()) {
|
||||||
QSharedPointer<IFrameworkSettings> fSettings = settingsForTestFramework(id);
|
if (IFrameworkSettings *fSettings = settingsForTestFramework(id))
|
||||||
if (!fSettings.isNull())
|
|
||||||
fSettings->fromSettings(s);
|
fSettings->fromSettings(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,6 @@
|
|||||||
#include "itestframework.h"
|
#include "itestframework.h"
|
||||||
|
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
#include <QSharedPointer>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QSettings;
|
class QSettings;
|
||||||
@@ -65,7 +64,7 @@ public:
|
|||||||
|
|
||||||
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;
|
||||||
QSharedPointer<IFrameworkSettings> settingsForTestFramework(const Core::Id &frameworkId) const;
|
IFrameworkSettings *settingsForTestFramework(const Core::Id &frameworkId) const;
|
||||||
void synchronizeSettings(QSettings *s);
|
void synchronizeSettings(QSettings *s);
|
||||||
bool isActive(const Core::Id &frameworkId) const;
|
bool isActive(const Core::Id &frameworkId) const;
|
||||||
bool groupingEnabled(const Core::Id &frameworkId) const;
|
bool groupingEnabled(const Core::Id &frameworkId) const;
|
||||||
@@ -77,8 +76,7 @@ private:
|
|||||||
QList<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, IFrameworkSettings *> m_frameworkSettings;
|
||||||
QVector<Core::IOptionsPage *> m_frameworkSettingsPages;
|
|
||||||
TestTreeModel *m_testTreeModel;
|
TestTreeModel *m_testTreeModel;
|
||||||
Internal::TestRunner *m_testRunner;
|
Internal::TestRunner *m_testRunner;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user