AutoTest: Aspectify BoostTest settings page

Change-Id: I68e10a283fcd59f58c77301ef176b4347f68264a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2021-03-31 16:19:42 +02:00
parent 71d3b04406
commit b63b84b83c
8 changed files with 83 additions and 323 deletions

View File

@@ -25,6 +25,14 @@
#include "boosttestsettings.h"
#include "boosttestconstants.h"
#include "../autotestconstants.h"
#include <utils/layoutbuilder.h>
using namespace Utils;
namespace Autotest {
namespace Internal {
@@ -35,27 +43,90 @@ BoostTestSettings::BoostTestSettings()
registerAspect(&logLevel);
logLevel.setSettingsKey("LogLevel");
logLevel.setDisplayStyle(SelectionAspect::DisplayStyle::ComboBox);
logLevel.addOption("All");
logLevel.addOption("Success");
logLevel.addOption("Test Suite");
logLevel.addOption("Unit Scope");
logLevel.addOption("Message");
logLevel.addOption("Warning");
logLevel.addOption("Error");
logLevel.addOption("C++ Exception");
logLevel.addOption("System Error");
logLevel.addOption("Fatal Error");
logLevel.addOption("Nothing");
logLevel.setDefaultValue(int(LogLevel::Warning));
logLevel.setLabelText(tr("Log format:"));
registerAspect(&reportLevel);
reportLevel.setSettingsKey("ReportLevel");
reportLevel.setDisplayStyle(SelectionAspect::DisplayStyle::ComboBox);
reportLevel.addOption("Confirm");
reportLevel.addOption("Short");
reportLevel.addOption("Detailed");
reportLevel.addOption("No");
reportLevel.setDefaultValue(int(ReportLevel::Confirm));
reportLevel.setLabelText(tr("Report level:"));
registerAspect(&seed);
seed.setSettingsKey("Seed");
seed.setEnabled(false);
seed.setLabelText(tr("Seed:"));
seed.setToolTip(tr("A seed of 0 means no randomization. A value of 1 uses the current "
"time, any other value is used as random seed generator."));
registerAspect(&randomize);
randomize.setSettingsKey("Randomize");
randomize.setLabelPlacement(BoolAspect::LabelPlacement::AtCheckBoxWithoutDummyLabel);
randomize.setLabelText(tr("Randomize"));
randomize.setToolTip(tr("Randomize execution order."));
registerAspect(&systemErrors);
systemErrors.setSettingsKey("SystemErrors");
systemErrors.setLabelPlacement(BoolAspect::LabelPlacement::AtCheckBoxWithoutDummyLabel);
systemErrors.setLabelText(tr("Catch system errors"));
systemErrors.setToolTip(tr("Catch or ignore system errors."));
registerAspect(&fpExceptions);
fpExceptions.setSettingsKey("FPExceptions");
fpExceptions.setLabelPlacement(BoolAspect::LabelPlacement::AtCheckBoxWithoutDummyLabel);
fpExceptions.setLabelText(tr("Floating point exceptions"));
fpExceptions.setToolTip(tr("Enable floating point exception traps."));
registerAspect(&memLeaks);
memLeaks.setSettingsKey("MemoryLeaks");
memLeaks.setLabelPlacement(BoolAspect::LabelPlacement::AtCheckBoxWithoutDummyLabel);
memLeaks.setDefaultValue(true);
memLeaks.setLabelText(tr("Detect memory leaks"));
memLeaks.setToolTip(tr("Enable memory leak detection."));
QObject::connect(&randomize, &BoolAspect::volatileValueChanged, &seed, &BaseAspect::setEnabled);
}
BoostTestSettingsPage::BoostTestSettingsPage(BoostTestSettings *settings, Utils::Id settingsId)
{
setId(settingsId);
setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY);
setDisplayName(QCoreApplication::translate("BoostTestFramework",
BoostTest::Constants::FRAMEWORK_SETTINGS_CATEGORY));
setSettings(settings);
setLayouter([settings](QWidget *widget) {
BoostTestSettings &s = *settings;
using namespace Layouting;
const Break nl;
Grid grid {
s.logLevel, nl,
s.reportLevel, nl,
s.randomize, Row { s.seed }, nl,
s.systemErrors, nl,
s.fpExceptions, nl,
s.memLeaks,
};
Column { Row { Column { grid, Stretch() }, Stretch() } }.attachTo(widget);
});
}
QString BoostTestSettings::logLevelToOption(const LogLevel logLevel)