From 0449a3fdab2400174d1e19fb9b5e87e822a16487 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 9 May 2023 17:46:02 +0200 Subject: [PATCH] Autotest: Use new PagedSettings Change-Id: If93494ef9e3f10e1b7bbc95a3930d3b36e83f8fc Reviewed-by: Christian Stenger --- .../autotest/boost/boosttestframework.h | 9 +-- .../autotest/boost/boosttestsettings.cpp | 49 +++++------- .../autotest/boost/boosttestsettings.h | 19 +---- src/plugins/autotest/catch/catchframework.h | 9 +-- .../autotest/catch/catchtestsettings.cpp | 57 ++++++------- .../autotest/catch/catchtestsettings.h | 18 +---- src/plugins/autotest/ctest/ctestsettings.cpp | 79 +++++++++---------- src/plugins/autotest/ctest/ctestsettings.h | 18 +---- src/plugins/autotest/ctest/ctesttool.h | 9 +-- src/plugins/autotest/gtest/gtestframework.h | 9 +-- src/plugins/autotest/gtest/gtestsettings.cpp | 56 ++++++------- src/plugins/autotest/gtest/gtestsettings.h | 18 +---- src/plugins/autotest/qtest/qttestframework.h | 9 +-- src/plugins/autotest/qtest/qttestsettings.cpp | 62 ++++++--------- src/plugins/autotest/qtest/qttestsettings.h | 18 +---- 15 files changed, 165 insertions(+), 274 deletions(-) diff --git a/src/plugins/autotest/boost/boosttestframework.h b/src/plugins/autotest/boost/boosttestframework.h index e8f4c98ed82..da015fbd6f3 100644 --- a/src/plugins/autotest/boost/boosttestframework.h +++ b/src/plugins/autotest/boost/boosttestframework.h @@ -7,8 +7,7 @@ #include "boosttestsettings.h" -namespace Autotest { -namespace Internal { +namespace Autotest::Internal { class BoostTestFramework : public ITestFramework { @@ -23,9 +22,7 @@ private: ITestParser *createTestParser() override; ITestTreeItem *createRootNode() override; - BoostTestSettings m_settings; - BoostTestSettingsPage m_settingsPage{&m_settings, settingsId()}; + BoostTestSettings m_settings{settingsId()}; }; -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/boost/boosttestsettings.cpp b/src/plugins/autotest/boost/boosttestsettings.cpp index c995cab9b6c..182c0dac0e3 100644 --- a/src/plugins/autotest/boost/boosttestsettings.cpp +++ b/src/plugins/autotest/boost/boosttestsettings.cpp @@ -10,13 +10,29 @@ #include +using namespace Layouting; using namespace Utils; -namespace Autotest { -namespace Internal { +namespace Autotest::Internal { -BoostTestSettings::BoostTestSettings() +BoostTestSettings::BoostTestSettings(Id settingsId) { + setId(settingsId); + setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); + setDisplayName(Tr::tr(BoostTest::Constants::FRAMEWORK_SETTINGS_CATEGORY)); + setSettings(this); + + setLayouter([this](QWidget *widget) { + Row { Form { + logLevel, br, + reportLevel, br, + randomize, Row { seed }, br, + systemErrors, br, + fpExceptions, br, + memLeaks, + }, st}.attachTo(widget); + }); + setSettingsGroups("Autotest", "BoostTest"); setAutoApply(false); @@ -81,30 +97,6 @@ BoostTestSettings::BoostTestSettings() memLeaks.setToolTip(Tr::tr("Enable memory leak detection.")); } -BoostTestSettingsPage::BoostTestSettingsPage(BoostTestSettings *settings, Id settingsId) -{ - setId(settingsId); - setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); - setDisplayName(Tr::tr(BoostTest::Constants::FRAMEWORK_SETTINGS_CATEGORY)); - setSettings(settings); - - setLayouter([settings](QWidget *widget) { - BoostTestSettings &s = *settings; - using namespace Layouting; - - Grid grid { - s.logLevel, br, - s.reportLevel, br, - s.randomize, Row { s.seed }, br, - s.systemErrors, br, - s.fpExceptions, br, - s.memLeaks, - }; - - Column { Row { Column { grid, st }, st } }.attachTo(widget); - }); -} - QString BoostTestSettings::logLevelToOption(const LogLevel logLevel) { switch (logLevel) { @@ -134,5 +126,4 @@ QString BoostTestSettings::reportLevelToOption(const ReportLevel reportLevel) return {}; } -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/boost/boosttestsettings.h b/src/plugins/autotest/boost/boosttestsettings.h index 60a3df5042f..f2a906cd79e 100644 --- a/src/plugins/autotest/boost/boosttestsettings.h +++ b/src/plugins/autotest/boost/boosttestsettings.h @@ -5,10 +5,7 @@ #include -#include - -namespace Autotest { -namespace Internal { +namespace Autotest::Internal { enum class LogLevel { @@ -33,10 +30,10 @@ enum class ReportLevel No }; -class BoostTestSettings : public Utils::AspectContainer +class BoostTestSettings : public Core::PagedSettings { public: - BoostTestSettings(); + explicit BoostTestSettings(Utils::Id settingsId); static QString logLevelToOption(const LogLevel logLevel); static QString reportLevelToOption(const ReportLevel reportLevel); @@ -50,15 +47,7 @@ public: Utils::BoolAspect memLeaks; }; - -class BoostTestSettingsPage final : public Core::IOptionsPage -{ -public: - BoostTestSettingsPage(BoostTestSettings *settings, Utils::Id settingsId); -}; - -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal Q_DECLARE_METATYPE(Autotest::Internal::LogLevel) Q_DECLARE_METATYPE(Autotest::Internal::ReportLevel) diff --git a/src/plugins/autotest/catch/catchframework.h b/src/plugins/autotest/catch/catchframework.h index 0fe7138ce90..6bd20b44f6a 100644 --- a/src/plugins/autotest/catch/catchframework.h +++ b/src/plugins/autotest/catch/catchframework.h @@ -7,8 +7,7 @@ #include "catchtestsettings.h" -namespace Autotest { -namespace Internal { +namespace Autotest::Internal { class CatchFramework : public ITestFramework { @@ -25,9 +24,7 @@ protected: private: ITestSettings * testSettings() override { return &m_settings; } - CatchTestSettings m_settings; - CatchTestSettingsPage m_settingsPage{&m_settings, settingsId()}; + CatchTestSettings m_settings{settingsId()}; }; -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/catch/catchtestsettings.cpp b/src/plugins/autotest/catch/catchtestsettings.cpp index e3e2c000db4..583fc95dc60 100644 --- a/src/plugins/autotest/catch/catchtestsettings.cpp +++ b/src/plugins/autotest/catch/catchtestsettings.cpp @@ -10,13 +10,33 @@ #include +using namespace Layouting; using namespace Utils; -namespace Autotest { -namespace Internal { +namespace Autotest::Internal { -CatchTestSettings::CatchTestSettings() +CatchTestSettings::CatchTestSettings(Id settingsId) { + setId(settingsId); + setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); + setDisplayName(Tr::tr("Catch Test")); + setSettings(this); + + setLayouter([this](QWidget *widget) { + Column { Row { Grid { + showSuccess, br, + breakOnFailure, br, + noThrow, br, + visibleWhitespace, br, + abortAfterChecked, abortAfter, br, + samplesChecked, benchmarkSamples, br, + resamplesChecked, benchmarkResamples, br, + confidenceIntervalChecked, confidenceInterval, br, + warmupChecked, benchmarkWarmupTime, br, + noAnalysis + }, st }, st }.attachTo(widget); + }); + setSettingsGroups("Autotest", "Catch2"); setAutoApply(false); @@ -108,33 +128,4 @@ CatchTestSettings::CatchTestSettings() warnOnEmpty.setToolTip(Tr::tr("Warns if a test section does not check any assertion.")); } -CatchTestSettingsPage::CatchTestSettingsPage(CatchTestSettings *settings, Id settingsId) -{ - setId(settingsId); - setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); - setDisplayName(Tr::tr("Catch Test")); - setSettings(settings); - - setLayouter([settings](QWidget *widget) { - CatchTestSettings &s = *settings; - using namespace Layouting; - - Grid col { - s.showSuccess, br, - s.breakOnFailure, br, - s.noThrow, br, - s.visibleWhitespace, br, - s.abortAfterChecked, s.abortAfter, br, - s.samplesChecked, s.benchmarkSamples, br, - s.resamplesChecked, s.benchmarkResamples, br, - s.confidenceIntervalChecked, s.confidenceInterval, br, - s.warmupChecked, s.benchmarkWarmupTime, br, - s.noAnalysis - }; - - Column { Row { col, st }, st }.attachTo(widget); - }); -} - -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/catch/catchtestsettings.h b/src/plugins/autotest/catch/catchtestsettings.h index 9e1b639fd31..07ac5580814 100644 --- a/src/plugins/autotest/catch/catchtestsettings.h +++ b/src/plugins/autotest/catch/catchtestsettings.h @@ -5,15 +5,12 @@ #include -#include +namespace Autotest::Internal { -namespace Autotest { -namespace Internal { - -class CatchTestSettings : public Utils::AspectContainer +class CatchTestSettings : public Core::PagedSettings { public: - CatchTestSettings(); + explicit CatchTestSettings(Utils::Id settingsId); Utils::IntegerAspect abortAfter; Utils::IntegerAspect benchmarkSamples; @@ -33,11 +30,4 @@ public: Utils::BoolAspect warnOnEmpty; }; -class CatchTestSettingsPage : public Core::IOptionsPage -{ -public: - CatchTestSettingsPage(CatchTestSettings *settings, Utils::Id settingsId); -}; - -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/ctest/ctestsettings.cpp b/src/plugins/autotest/ctest/ctestsettings.cpp index 3fa9fadadee..07e6a3bf22b 100644 --- a/src/plugins/autotest/ctest/ctestsettings.cpp +++ b/src/plugins/autotest/ctest/ctestsettings.cpp @@ -8,14 +8,44 @@ #include -namespace Autotest { -namespace Internal { +using namespace Layouting; +using namespace Utils; -CTestSettings::CTestSettings() +namespace Autotest::Internal { + +CTestSettings::CTestSettings(Id settingsId) { setSettingsGroups("Autotest", "CTest"); setAutoApply(false); + setId(settingsId); + setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); + setDisplayName(Tr::tr("CTest")); + + setSettings(this); + + setLayouter([this](QWidget *w) { + Column { Row { Form { + outputOnFail, br, + scheduleRandom, br, + stopOnFailure, br, + outputMode, br, + Group { + title(Tr::tr("Repeat tests")), + repeat.groupChecker(), + Row { repetitionMode, repetitionCount}, + }, br, + Group { + title(Tr::tr("Run in parallel")), + parallel.groupChecker(), + Column { + Row { jobs }, br, + Row { testLoad, threshold} + } + } + }, st }, st }.attachTo(w); + }); + registerAspect(&outputOnFail); outputOnFail.setSettingsKey("OutputOnFail"); outputOnFail.setLabelText(Tr::tr("Output on failure")); @@ -24,7 +54,7 @@ CTestSettings::CTestSettings() registerAspect(&outputMode); outputMode.setSettingsKey("OutputMode"); outputMode.setLabelText(Tr::tr("Output mode")); - outputMode.setDisplayStyle(Utils::SelectionAspect::DisplayStyle::ComboBox); + outputMode.setDisplayStyle(SelectionAspect::DisplayStyle::ComboBox); outputMode.addOption({Tr::tr("Default"), {}, 0}); outputMode.addOption({Tr::tr("Verbose"), {}, 1}); outputMode.addOption({Tr::tr("Very Verbose"), {}, 2}); @@ -32,7 +62,7 @@ CTestSettings::CTestSettings() registerAspect(&repetitionMode); repetitionMode.setSettingsKey("RepetitionMode"); repetitionMode.setLabelText(Tr::tr("Repetition mode")); - repetitionMode.setDisplayStyle(Utils::SelectionAspect::DisplayStyle::ComboBox); + repetitionMode.setDisplayStyle(SelectionAspect::DisplayStyle::ComboBox); repetitionMode.addOption({Tr::tr("Until Fail"), {}, 0}); repetitionMode.addOption({Tr::tr("Until Pass"), {}, 1}); repetitionMode.addOption({Tr::tr("After Timeout"), {}, 2}); @@ -115,41 +145,4 @@ QStringList CTestSettings::activeSettingsAsOptions() const return options; } -CTestSettingsPage::CTestSettingsPage(CTestSettings *settings, Utils::Id settingsId) -{ - setId(settingsId); - setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); - setDisplayName(Tr::tr("CTest")); - - setSettings(settings); - - setLayouter([settings](QWidget *widget) { - CTestSettings &s = *settings; - using namespace Layouting; - - Form form { - Row {s.outputOnFail}, br, - Row {s.scheduleRandom}, br, - Row {s.stopOnFailure}, br, - Row {s.outputMode}, br, - Group { - title(Tr::tr("Repeat tests")), - s.repeat.groupChecker(), - Row {s.repetitionMode, s.repetitionCount}, - }, br, - Group { - title(Tr::tr("Run in parallel")), - s.parallel.groupChecker(), - Column { - Row {s.jobs}, br, - Row {s.testLoad, s.threshold} - } - } - }; - - Column { Row { Column { form , st }, st } }.attachTo(widget); - }); -} - -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/ctest/ctestsettings.h b/src/plugins/autotest/ctest/ctestsettings.h index f9e87f5a8e8..a4e9b19605a 100644 --- a/src/plugins/autotest/ctest/ctestsettings.h +++ b/src/plugins/autotest/ctest/ctestsettings.h @@ -5,15 +5,12 @@ #include -#include +namespace Autotest::Internal { -namespace Autotest { -namespace Internal { - -class CTestSettings : public Utils::AspectContainer +class CTestSettings : public Core::PagedSettings { public: - CTestSettings(); + explicit CTestSettings(Utils::Id settingsId); QStringList activeSettingsAsOptions() const; @@ -31,12 +28,5 @@ public: Utils::IntegerAspect threshold; }; -class CTestSettingsPage final : public Core::IOptionsPage -{ -public: - CTestSettingsPage(CTestSettings *settings, Utils::Id settingsId); -}; - -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/ctest/ctesttool.h b/src/plugins/autotest/ctest/ctesttool.h index ad510ac9471..e7a7f74218a 100644 --- a/src/plugins/autotest/ctest/ctesttool.h +++ b/src/plugins/autotest/ctest/ctesttool.h @@ -6,8 +6,7 @@ #include "../itestframework.h" #include "ctestsettings.h" -namespace Autotest { -namespace Internal { +namespace Autotest::Internal { class CTestTool final : public Autotest::ITestTool { @@ -26,9 +25,7 @@ protected: private: ITestSettings *testSettings() override { return &m_settings; } - CTestSettings m_settings; - CTestSettingsPage m_settingsPage{&m_settings, settingsId()}; + CTestSettings m_settings{settingsId()}; }; -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/gtest/gtestframework.h b/src/plugins/autotest/gtest/gtestframework.h index c9e8cbddc07..03c8a4fc0d9 100644 --- a/src/plugins/autotest/gtest/gtestframework.h +++ b/src/plugins/autotest/gtest/gtestframework.h @@ -7,8 +7,7 @@ #include "gtestconstants.h" #include "gtestsettings.h" -namespace Autotest { -namespace Internal { +namespace Autotest::Internal { class GTestFramework : public ITestFramework { @@ -28,9 +27,7 @@ private: ITestParser *createTestParser() override; ITestTreeItem *createRootNode() override; - GTestSettings m_settings; - GTestSettingsPage m_settingsPage{&m_settings, settingsId()}; + GTestSettings m_settings{settingsId()}; }; -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/gtest/gtestsettings.cpp b/src/plugins/autotest/gtest/gtestsettings.cpp index 5a7a72ab46b..9af32fb8d4d 100644 --- a/src/plugins/autotest/gtest/gtestsettings.cpp +++ b/src/plugins/autotest/gtest/gtestsettings.cpp @@ -11,16 +11,36 @@ #include +using namespace Layouting; using namespace Utils; -namespace Autotest { -namespace Internal { +namespace Autotest::Internal { -GTestSettings::GTestSettings() +GTestSettings::GTestSettings(Utils::Id settingsId) { setSettingsGroups("Autotest", "GTest"); setAutoApply(false); + setId(settingsId); + setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); + setDisplayName(Tr::tr(GTest::Constants::FRAMEWORK_SETTINGS_CATEGORY)); + setSettings(this); + + setLayouter([this](QWidget *widget) { + Column { Row { Column { + Grid { + runDisabled, br, + breakOnFailure, br, + repeat, iterations, br, + shuffle, seed + }, + Form { + groupMode, + gtestFilter + } + }, st }, st }.attachTo(widget); + }); + registerAspect(&iterations); iterations.setSettingsKey("Iterations"); iterations.setDefaultValue(1); @@ -111,32 +131,4 @@ GTestSettings::GTestSettings() }); } -GTestSettingsPage::GTestSettingsPage(GTestSettings *settings, Id settingsId) -{ - setId(settingsId); - setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); - setDisplayName(Tr::tr(GTest::Constants::FRAMEWORK_SETTINGS_CATEGORY)); - setSettings(settings); - - setLayouter([settings](QWidget *widget) { - GTestSettings &s = *settings; - using namespace Layouting; - - Grid grid { - s.runDisabled, br, - s.breakOnFailure, br, - s.repeat, s.iterations, br, - s.shuffle, s.seed - }; - - Form form { - s.groupMode, - s.gtestFilter - }; - - Column { Row { Column { grid, form, st }, st } }.attachTo(widget); - }); -} - -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/gtest/gtestsettings.h b/src/plugins/autotest/gtest/gtestsettings.h index 11fb144e227..fe928376075 100644 --- a/src/plugins/autotest/gtest/gtestsettings.h +++ b/src/plugins/autotest/gtest/gtestsettings.h @@ -5,15 +5,12 @@ #include -#include +namespace Autotest::Internal { -namespace Autotest { -namespace Internal { - -class GTestSettings : public Utils::AspectContainer +class GTestSettings : public Core::PagedSettings { public: - GTestSettings(); + explicit GTestSettings(Utils::Id settingsId); Utils::IntegerAspect iterations; Utils::IntegerAspect seed; @@ -26,11 +23,4 @@ public: Utils::StringAspect gtestFilter; }; -class GTestSettingsPage final : public Core::IOptionsPage -{ -public: - GTestSettingsPage(GTestSettings *settings, Utils::Id settingsId); -}; - -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/qtest/qttestframework.h b/src/plugins/autotest/qtest/qttestframework.h index 4fa765ab192..c90bd3c9d8c 100644 --- a/src/plugins/autotest/qtest/qttestframework.h +++ b/src/plugins/autotest/qtest/qttestframework.h @@ -7,8 +7,7 @@ #include "qttestsettings.h" -namespace Autotest { -namespace Internal { +namespace Autotest::Internal { class QtTestFramework : public ITestFramework { @@ -24,9 +23,7 @@ private: ITestTreeItem *createRootNode() override; ITestSettings *testSettings() override { return &m_settings; } - QtTestSettings m_settings; - QtTestSettingsPage m_settingsPage{&m_settings, settingsId()}; + QtTestSettings m_settings{settingsId()}; }; -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/qtest/qttestsettings.cpp b/src/plugins/autotest/qtest/qttestsettings.cpp index 4be93d99379..06f368de379 100644 --- a/src/plugins/autotest/qtest/qttestsettings.cpp +++ b/src/plugins/autotest/qtest/qttestsettings.cpp @@ -10,15 +10,37 @@ #include #include +using namespace Layouting; using namespace Utils; -namespace Autotest { -namespace Internal { +namespace Autotest::Internal { -QtTestSettings::QtTestSettings() +QtTestSettings::QtTestSettings(Id settingsId) { setSettingsGroups("Autotest", "QtTest"); setAutoApply(false); + setId(settingsId); + setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); + setDisplayName(Tr::tr(QtTest::Constants::FRAMEWORK_SETTINGS_CATEGORY)); + setSettings(this); + + setLayouter([this](QWidget *widget) { + Column { Row { Column { + noCrashHandler, + useXMLOutput, + verboseBench, + logSignalsSlots, + Row { + limitWarnings, maxWarnings + }, + Group { + title(Tr::tr("Benchmark Metrics")), + Column { metrics } + }, + br, + quickCheckForDerivedTests, + }, st }, st }.attachTo(widget); + }); registerAspect(&metrics); metrics.setSettingsKey("Metrics"); @@ -99,36 +121,4 @@ QString QtTestSettings::metricsTypeToOption(const MetricsType type) return {}; } -QtTestSettingsPage::QtTestSettingsPage(QtTestSettings *settings, Id settingsId) -{ - setId(settingsId); - setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); - setDisplayName(Tr::tr(QtTest::Constants::FRAMEWORK_SETTINGS_CATEGORY)); - setSettings(settings); - - setLayouter([settings](QWidget *widget) { - QtTestSettings &s = *settings; - using namespace Layouting; - - Column col { - s.noCrashHandler, - s.useXMLOutput, - s.verboseBench, - s.logSignalsSlots, - Row { - s.limitWarnings, s.maxWarnings - }, - Group { - title(Tr::tr("Benchmark Metrics")), - Column { s.metrics } - }, - br, - s.quickCheckForDerivedTests, - }; - - Column { Row { col, st }, st }.attachTo(widget); - }); -} - -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal diff --git a/src/plugins/autotest/qtest/qttestsettings.h b/src/plugins/autotest/qtest/qttestsettings.h index 4bbec4332df..eafd464d7ba 100644 --- a/src/plugins/autotest/qtest/qttestsettings.h +++ b/src/plugins/autotest/qtest/qttestsettings.h @@ -5,10 +5,7 @@ #include -#include - -namespace Autotest { -namespace Internal { +namespace Autotest::Internal { enum MetricsType { @@ -19,10 +16,10 @@ enum MetricsType Perf }; -class QtTestSettings : public Utils::AspectContainer +class QtTestSettings : public Core::PagedSettings { public: - QtTestSettings(); + explicit QtTestSettings(Utils::Id settingsId); static QString metricsTypeToOption(const MetricsType type); @@ -36,11 +33,4 @@ public: Utils::BoolAspect quickCheckForDerivedTests; }; -class QtTestSettingsPage final : public Core::IOptionsPage -{ -public: - QtTestSettingsPage(QtTestSettings *settings, Utils::Id settingsId); -}; - -} // namespace Internal -} // namespace Autotest +} // Autotest::Internal