forked from qt-creator/qt-creator
Autotest: Adapt to changed settings access pattern again
Settings are created on first access now, even though this doesn't matter much here as this happens unconditionally in AutotestPluginPrivate ctor via m_frameworkManager.synchronizeSettings() Change-Id: I340927cf107d7e4b2268e842d23f1a89898e8a92 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -94,7 +94,6 @@ public:
|
|||||||
void onRunFileTriggered();
|
void onRunFileTriggered();
|
||||||
void onRunUnderCursorTriggered(TestRunMode mode);
|
void onRunUnderCursorTriggered(TestRunMode mode);
|
||||||
|
|
||||||
TestSettings m_settings;
|
|
||||||
TestSettingsPage m_testSettingPage;
|
TestSettingsPage m_testSettingPage;
|
||||||
|
|
||||||
TestCodeParser m_testCodeParser;
|
TestCodeParser m_testCodeParser;
|
||||||
@@ -149,7 +148,7 @@ AutotestPluginPrivate::AutotestPluginPrivate()
|
|||||||
});
|
});
|
||||||
ProjectExplorer::ProjectPanelFactory::registerFactory(panelFactory);
|
ProjectExplorer::ProjectPanelFactory::registerFactory(panelFactory);
|
||||||
|
|
||||||
TestFrameworkManager::activateFrameworksAndToolsFromSettings(&m_settings);
|
TestFrameworkManager::activateFrameworksAndToolsFromSettings();
|
||||||
m_testTreeModel.synchronizeTestFrameworks();
|
m_testTreeModel.synchronizeTestFrameworks();
|
||||||
m_testTreeModel.synchronizeTestTools();
|
m_testTreeModel.synchronizeTestTools();
|
||||||
|
|
||||||
|
@@ -88,17 +88,17 @@ QStringList BoostTestConfiguration::argumentsForTestRunner(QStringList *omitted)
|
|||||||
{
|
{
|
||||||
auto boostSettings = static_cast<BoostTestSettings *>(framework()->testSettings());
|
auto boostSettings = static_cast<BoostTestSettings *>(framework()->testSettings());
|
||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
arguments << "-l" << BoostTestSettings::logLevelToOption(LogLevel(boostSettings->logLevel.value()));
|
arguments << "-l" << BoostTestSettings::logLevelToOption(LogLevel(boostSettings->logLevel()));
|
||||||
arguments << "-r" << BoostTestSettings::reportLevelToOption(ReportLevel(boostSettings->reportLevel.value()));
|
arguments << "-r" << BoostTestSettings::reportLevelToOption(ReportLevel(boostSettings->reportLevel()));
|
||||||
|
|
||||||
if (boostSettings->randomize.value())
|
if (boostSettings->randomize())
|
||||||
arguments << QString("--random=").append(QString::number(boostSettings->seed.value()));
|
arguments << QString("--random=").append(QString::number(boostSettings->seed()));
|
||||||
|
|
||||||
if (boostSettings->systemErrors.value())
|
if (boostSettings->systemErrors())
|
||||||
arguments << "-s";
|
arguments << "-s";
|
||||||
if (boostSettings->fpExceptions.value())
|
if (boostSettings->fpExceptions())
|
||||||
arguments << "--detect_fp_exceptions";
|
arguments << "--detect_fp_exceptions";
|
||||||
if (!boostSettings->memLeaks.value())
|
if (!boostSettings->memLeaks())
|
||||||
arguments << "--detect_memory_leaks=0";
|
arguments << "--detect_memory_leaks=0";
|
||||||
|
|
||||||
// TODO improve the test case gathering and arguments building to avoid too long command lines
|
// TODO improve the test case gathering and arguments building to avoid too long command lines
|
||||||
@@ -110,7 +110,7 @@ QStringList BoostTestConfiguration::argumentsForTestRunner(QStringList *omitted)
|
|||||||
arguments << "-t" << "\"" + test + "\"";
|
arguments << "-t" << "\"" + test + "\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TestSettings::instance()->processArgs()) {
|
if (testSettings().processArgs()) {
|
||||||
arguments << filterInterfering(runnable().command.arguments().split(
|
arguments << filterInterfering(runnable().command.arguments().split(
|
||||||
' ', Qt::SkipEmptyParts), omitted);
|
' ', Qt::SkipEmptyParts), omitted);
|
||||||
}
|
}
|
||||||
|
@@ -79,7 +79,7 @@ QStringList CatchConfiguration::argumentsForTestRunner(QStringList *omitted) con
|
|||||||
arguments << "\"" + testCases().join("\", \"") + "\"";
|
arguments << "\"" + testCases().join("\", \"") + "\"";
|
||||||
arguments << "--reporter" << "xml";
|
arguments << "--reporter" << "xml";
|
||||||
|
|
||||||
if (TestSettings::instance()->processArgs()) {
|
if (testSettings().processArgs()) {
|
||||||
arguments << filterInterfering(runnable().command.arguments().split(
|
arguments << filterInterfering(runnable().command.arguments().split(
|
||||||
' ', Qt::SkipEmptyParts), omitted);
|
' ', Qt::SkipEmptyParts), omitted);
|
||||||
}
|
}
|
||||||
|
@@ -88,7 +88,7 @@ QList<ITestConfiguration *> CTestTreeItem::testConfigurationsFor(const QStringLi
|
|||||||
return {};
|
return {};
|
||||||
|
|
||||||
const ProjectExplorer::BuildSystem *buildSystem = target->buildSystem();
|
const ProjectExplorer::BuildSystem *buildSystem = target->buildSystem();
|
||||||
QStringList options{"--timeout", QString::number(TestSettings::instance()->timeout() / 1000)};
|
QStringList options{"--timeout", QString::number(testSettings().timeout() / 1000)};
|
||||||
auto ctestSettings = static_cast<CTestSettings *>(testBase()->testSettings());
|
auto ctestSettings = static_cast<CTestSettings *>(testBase()->testSettings());
|
||||||
options << ctestSettings->activeSettingsAsOptions();
|
options << ctestSettings->activeSettingsAsOptions();
|
||||||
CommandLine command = buildSystem->commandLineForTests(selected, options);
|
CommandLine command = buildSystem->commandLineForTests(selected, options);
|
||||||
|
@@ -54,7 +54,7 @@ QStringList filterInterfering(const QStringList &provided, QStringList *omitted)
|
|||||||
QStringList GTestConfiguration::argumentsForTestRunner(QStringList *omitted) const
|
QStringList GTestConfiguration::argumentsForTestRunner(QStringList *omitted) const
|
||||||
{
|
{
|
||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
if (TestSettings::instance()->processArgs()) {
|
if (testSettings().processArgs()) {
|
||||||
arguments << filterInterfering(runnable().command.arguments().split(
|
arguments << filterInterfering(runnable().command.arguments().split(
|
||||||
' ', Qt::SkipEmptyParts), omitted);
|
' ', Qt::SkipEmptyParts), omitted);
|
||||||
}
|
}
|
||||||
|
@@ -137,7 +137,7 @@ Environment prepareBasicEnvironment(const Environment &env)
|
|||||||
result.set("QT_FORCE_STDERR_LOGGING", "1");
|
result.set("QT_FORCE_STDERR_LOGGING", "1");
|
||||||
result.set("QT_LOGGING_TO_CONSOLE", "1");
|
result.set("QT_LOGGING_TO_CONSOLE", "1");
|
||||||
}
|
}
|
||||||
const int timeout = TestSettings::instance()->timeout();
|
const int timeout = testSettings().timeout();
|
||||||
if (timeout > 5 * 60 * 1000) // Qt5.5 introduced hard limit, Qt5.6.1 added env var to raise this
|
if (timeout > 5 * 60 * 1000) // Qt5.5 introduced hard limit, Qt5.6.1 added env var to raise this
|
||||||
result.set("QTEST_FUNCTION_TIMEOUT", QString::number(timeout));
|
result.set("QTEST_FUNCTION_TIMEOUT", QString::number(timeout));
|
||||||
return result;
|
return result;
|
||||||
|
@@ -39,7 +39,7 @@ TestOutputReader *QtTestConfiguration::createOutputReader(Process *app) const
|
|||||||
QStringList QtTestConfiguration::argumentsForTestRunner(QStringList *omitted) const
|
QStringList QtTestConfiguration::argumentsForTestRunner(QStringList *omitted) const
|
||||||
{
|
{
|
||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
if (TestSettings::instance()->processArgs()) {
|
if (testSettings().processArgs()) {
|
||||||
arguments.append(QTestUtils::filterInterfering(
|
arguments.append(QTestUtils::filterInterfering(
|
||||||
runnable().command.arguments().split(' ', Qt::SkipEmptyParts),
|
runnable().command.arguments().split(' ', Qt::SkipEmptyParts),
|
||||||
omitted, false));
|
omitted, false));
|
||||||
|
@@ -32,7 +32,7 @@ TestOutputReader *QuickTestConfiguration::createOutputReader(Process *app) const
|
|||||||
QStringList QuickTestConfiguration::argumentsForTestRunner(QStringList *omitted) const
|
QStringList QuickTestConfiguration::argumentsForTestRunner(QStringList *omitted) const
|
||||||
{
|
{
|
||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
if (TestSettings::instance()->processArgs()) {
|
if (testSettings().processArgs()) {
|
||||||
arguments.append(QTestUtils::filterInterfering
|
arguments.append(QTestUtils::filterInterfering
|
||||||
(runnable().command.arguments().split(' ', Qt::SkipEmptyParts),
|
(runnable().command.arguments().split(' ', Qt::SkipEmptyParts),
|
||||||
omitted, true));
|
omitted, true));
|
||||||
|
@@ -361,7 +361,7 @@ void TestCodeParser::scanForTests(const QSet<FilePath> &filePaths,
|
|||||||
|
|
||||||
using namespace Tasking;
|
using namespace Tasking;
|
||||||
|
|
||||||
int limit = TestSettings::instance()->scanThreadLimit();
|
int limit = testSettings().scanThreadLimit();
|
||||||
if (limit == 0)
|
if (limit == 0)
|
||||||
limit = std::max(QThread::idealThreadCount() / 4, 1);
|
limit = std::max(QThread::idealThreadCount() / 4, 1);
|
||||||
qCDebug(LOG) << "Using" << limit << "threads for scan.";
|
qCDebug(LOG) << "Using" << limit << "threads for scan.";
|
||||||
|
@@ -45,15 +45,15 @@ bool TestFrameworkManager::registerTestTool(ITestTool *testTool)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestFrameworkManager::activateFrameworksAndToolsFromSettings(
|
void TestFrameworkManager::activateFrameworksAndToolsFromSettings()
|
||||||
const Internal::TestSettings *settings)
|
|
||||||
{
|
{
|
||||||
|
const Internal::TestSettings &settings = Internal::testSettings();
|
||||||
for (ITestFramework *framework : std::as_const(s_instance->m_registeredFrameworks)) {
|
for (ITestFramework *framework : std::as_const(s_instance->m_registeredFrameworks)) {
|
||||||
framework->setActive(settings->frameworks.value(framework->id(), false));
|
framework->setActive(settings.frameworks.value(framework->id(), false));
|
||||||
framework->setGrouping(settings->frameworksGrouping.value(framework->id(), false));
|
framework->setGrouping(settings.frameworksGrouping.value(framework->id(), false));
|
||||||
}
|
}
|
||||||
for (ITestTool *testTool : std::as_const(s_instance->m_registeredTestTools))
|
for (ITestTool *testTool : std::as_const(s_instance->m_registeredTestTools))
|
||||||
testTool->setActive(settings->tools.value(testTool->id(), false));
|
testTool->setActive(settings.tools.value(testTool->id(), false));
|
||||||
}
|
}
|
||||||
|
|
||||||
const TestFrameworks TestFrameworkManager::registeredFrameworks()
|
const TestFrameworks TestFrameworkManager::registeredFrameworks()
|
||||||
@@ -95,7 +95,7 @@ ITestTool *TestFrameworkManager::testToolForBuildSystemId(Id buildSystemId)
|
|||||||
|
|
||||||
void TestFrameworkManager::synchronizeSettings()
|
void TestFrameworkManager::synchronizeSettings()
|
||||||
{
|
{
|
||||||
Internal::TestSettings::instance()->fromSettings();
|
Internal::testSettings().fromSettings();
|
||||||
for (ITestFramework *framework : std::as_const(m_registeredFrameworks)) {
|
for (ITestFramework *framework : std::as_const(m_registeredFrameworks)) {
|
||||||
if (ITestSettings *fSettings = framework->testSettings())
|
if (ITestSettings *fSettings = framework->testSettings())
|
||||||
fSettings->readSettings();
|
fSettings->readSettings();
|
||||||
|
@@ -6,9 +6,6 @@
|
|||||||
#include "itestframework.h"
|
#include "itestframework.h"
|
||||||
|
|
||||||
namespace Autotest {
|
namespace Autotest {
|
||||||
namespace Internal {
|
|
||||||
class TestSettings;
|
|
||||||
}
|
|
||||||
|
|
||||||
class TestFrameworkManager final
|
class TestFrameworkManager final
|
||||||
{
|
{
|
||||||
@@ -24,7 +21,7 @@ public:
|
|||||||
static ITestFramework *frameworkForId(Utils::Id frameworkId);
|
static ITestFramework *frameworkForId(Utils::Id frameworkId);
|
||||||
static ITestTool *testToolForId(Utils::Id testToolId);
|
static ITestTool *testToolForId(Utils::Id testToolId);
|
||||||
static ITestTool *testToolForBuildSystemId(Utils::Id buildSystemId);
|
static ITestTool *testToolForBuildSystemId(Utils::Id buildSystemId);
|
||||||
static void activateFrameworksAndToolsFromSettings(const Internal::TestSettings *settings);
|
static void activateFrameworksAndToolsFromSettings();
|
||||||
static const TestFrameworks registeredFrameworks();
|
static const TestFrameworks registeredFrameworks();
|
||||||
static const TestTools registeredTestTools();
|
static const TestTools registeredTestTools();
|
||||||
|
|
||||||
|
@@ -161,10 +161,10 @@ void TestResultDelegate::clearCache()
|
|||||||
|
|
||||||
void TestResultDelegate::limitTextOutput(QString &output) const
|
void TestResultDelegate::limitTextOutput(QString &output) const
|
||||||
{
|
{
|
||||||
int maxLineCount = Internal::TestSettings::instance()->resultDescriptionMaxSize();
|
int maxLineCount = testSettings().resultDescriptionMaxSize();
|
||||||
bool limited = false;
|
bool limited = false;
|
||||||
|
|
||||||
if (Internal::TestSettings::instance()->limitResultDescription() && maxLineCount > 0) {
|
if (testSettings().limitResultDescription() && maxLineCount > 0) {
|
||||||
int index = -1;
|
int index = -1;
|
||||||
int lastChar = output.size() - 1;
|
int lastChar = output.size() - 1;
|
||||||
|
|
||||||
@@ -182,7 +182,7 @@ void TestResultDelegate::limitTextOutput(QString &output) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TestSettings::instance()->limitResultOutput() && output.length() > outputLimit) {
|
if (testSettings().limitResultOutput() && output.length() > outputLimit) {
|
||||||
output = output.left(outputLimit);
|
output = output.left(outputLimit);
|
||||||
limited = true;
|
limited = true;
|
||||||
}
|
}
|
||||||
|
@@ -284,7 +284,7 @@ void TestResultModel::addTestResult(const TestResult &testResult, bool autoExpan
|
|||||||
|
|
||||||
TestResultItem *newItem = new TestResultItem(testResult);
|
TestResultItem *newItem = new TestResultItem(testResult);
|
||||||
TestResultItem *root = nullptr;
|
TestResultItem *root = nullptr;
|
||||||
if (TestSettings::instance()->displayApplication()) {
|
if (testSettings().displayApplication()) {
|
||||||
const QString application = testResult.id();
|
const QString application = testResult.id();
|
||||||
if (!application.isEmpty()) {
|
if (!application.isEmpty()) {
|
||||||
root = rootItem()->findFirstLevelChild([&application](TestResultItem *child) {
|
root = rootItem()->findFirstLevelChild([&application](TestResultItem *child) {
|
||||||
|
@@ -291,7 +291,7 @@ void TestResultsPane::clearContents()
|
|||||||
setIconBadgeNumber(0);
|
setIconBadgeNumber(0);
|
||||||
navigateStateChanged();
|
navigateStateChanged();
|
||||||
m_summaryWidget->setVisible(false);
|
m_summaryWidget->setVisible(false);
|
||||||
m_autoScroll = TestSettings::instance()->autoScroll();
|
m_autoScroll = testSettings().autoScroll();
|
||||||
connect(m_treeView->verticalScrollBar(), &QScrollBar::rangeChanged,
|
connect(m_treeView->verticalScrollBar(), &QScrollBar::rangeChanged,
|
||||||
this, &TestResultsPane::onScrollBarRangeChanged, Qt::UniqueConnection);
|
this, &TestResultsPane::onScrollBarRangeChanged, Qt::UniqueConnection);
|
||||||
m_textOutput->clear();
|
m_textOutput->clear();
|
||||||
@@ -437,7 +437,7 @@ void TestResultsPane::onRunSelectedTriggered()
|
|||||||
|
|
||||||
void TestResultsPane::initializeFilterMenu()
|
void TestResultsPane::initializeFilterMenu()
|
||||||
{
|
{
|
||||||
const bool omitIntern = TestSettings::instance()->omitInternalMsg();
|
const bool omitIntern = testSettings().omitInternalMsg();
|
||||||
// FilterModel has all messages enabled by default
|
// FilterModel has all messages enabled by default
|
||||||
if (omitIntern)
|
if (omitIntern)
|
||||||
m_filterModel->toggleTestResultType(ResultType::MessageInternal);
|
m_filterModel->toggleTestResultType(ResultType::MessageInternal);
|
||||||
@@ -553,8 +553,7 @@ void TestResultsPane::onTestRunFinished()
|
|||||||
m_model->removeCurrentTestMessage();
|
m_model->removeCurrentTestMessage();
|
||||||
disconnect(m_treeView->verticalScrollBar(), &QScrollBar::rangeChanged,
|
disconnect(m_treeView->verticalScrollBar(), &QScrollBar::rangeChanged,
|
||||||
this, &TestResultsPane::onScrollBarRangeChanged);
|
this, &TestResultsPane::onScrollBarRangeChanged);
|
||||||
if (TestSettings::instance()->popupOnFinish()
|
if (testSettings().popupOnFinish() && (!testSettings().popupOnFail() || hasFailedTests(m_model))) {
|
||||||
&& (!TestSettings::instance()->popupOnFail() || hasFailedTests(m_model))) {
|
|
||||||
popup(IOutputPane::NoModeSwitch);
|
popup(IOutputPane::NoModeSwitch);
|
||||||
}
|
}
|
||||||
createMarks();
|
createMarks();
|
||||||
|
@@ -258,7 +258,7 @@ static RunConfiguration *getRunConfiguration(const QString &buildTargetKey)
|
|||||||
|
|
||||||
int TestRunner::precheckTestConfigurations()
|
int TestRunner::precheckTestConfigurations()
|
||||||
{
|
{
|
||||||
const bool omitWarnings = TestSettings::instance()->omitRunConfigWarn();
|
const bool omitWarnings = testSettings().omitRunConfigWarn();
|
||||||
int testCaseCount = 0;
|
int testCaseCount = 0;
|
||||||
for (ITestConfiguration *itc : std::as_const(m_selectedTests)) {
|
for (ITestConfiguration *itc : std::as_const(m_selectedTests)) {
|
||||||
if (itc->testBase()->type() == ITestBase::Tool) {
|
if (itc->testBase()->type() == ITestBase::Tool) {
|
||||||
@@ -402,7 +402,7 @@ void TestRunner::runTestsHelper()
|
|||||||
}
|
}
|
||||||
process.setEnvironment(environment);
|
process.setEnvironment(environment);
|
||||||
|
|
||||||
m_cancelTimer.setInterval(TestSettings::instance()->timeout());
|
m_cancelTimer.setInterval(testSettings().timeout());
|
||||||
m_cancelTimer.start();
|
m_cancelTimer.start();
|
||||||
|
|
||||||
qCInfo(runnerLog) << "Command:" << process.commandLine().executable();
|
qCInfo(runnerLog) << "Command:" << process.commandLine().executable();
|
||||||
@@ -468,7 +468,7 @@ void TestRunner::runTestsHelper()
|
|||||||
cancelCurrent(UserCanceled);
|
cancelCurrent(UserCanceled);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (TestSettings::instance()->popupOnStart())
|
if (testSettings().popupOnStart())
|
||||||
AutotestPlugin::popupResultsPane();
|
AutotestPlugin::popupResultsPane();
|
||||||
|
|
||||||
m_taskTree->start();
|
m_taskTree->start();
|
||||||
@@ -590,7 +590,7 @@ void TestRunner::debugTests()
|
|||||||
|
|
||||||
connect(runControl, &RunControl::stopped, this, &TestRunner::onFinished);
|
connect(runControl, &RunControl::stopped, this, &TestRunner::onFinished);
|
||||||
ProjectExplorerPlugin::startRunControl(runControl);
|
ProjectExplorerPlugin::startRunControl(runControl);
|
||||||
if (useOutputProcessor && TestSettings::instance()->popupOnStart())
|
if (useOutputProcessor && testSettings().popupOnStart())
|
||||||
AutotestPlugin::popupResultsPane();
|
AutotestPlugin::popupResultsPane();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -671,10 +671,10 @@ static RunAfterBuildMode runAfterBuild()
|
|||||||
return RunAfterBuildMode::None;
|
return RunAfterBuildMode::None;
|
||||||
|
|
||||||
if (!project->namedSettings(Constants::SK_USE_GLOBAL).isValid())
|
if (!project->namedSettings(Constants::SK_USE_GLOBAL).isValid())
|
||||||
return TestSettings::instance()->runAfterBuildMode();
|
return testSettings().runAfterBuildMode();
|
||||||
|
|
||||||
TestProjectSettings *projectSettings = AutotestPlugin::projectSettings(project);
|
TestProjectSettings *projectSettings = AutotestPlugin::projectSettings(project);
|
||||||
return projectSettings->useGlobalSettings() ? TestSettings::instance()->runAfterBuildMode()
|
return projectSettings->useGlobalSettings() ? testSettings().runAfterBuildMode()
|
||||||
: projectSettings->runAfterBuild();
|
: projectSettings->runAfterBuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -15,17 +15,14 @@ static const char groupSuffix[] = ".group";
|
|||||||
|
|
||||||
constexpr int defaultTimeout = 60000;
|
constexpr int defaultTimeout = 60000;
|
||||||
|
|
||||||
static TestSettings *s_instance;
|
TestSettings &testSettings()
|
||||||
|
|
||||||
TestSettings *TestSettings::instance()
|
|
||||||
{
|
{
|
||||||
return s_instance;
|
static TestSettings theSettings;
|
||||||
|
return theSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
TestSettings::TestSettings()
|
TestSettings::TestSettings()
|
||||||
{
|
{
|
||||||
s_instance = this;
|
|
||||||
|
|
||||||
setSettingsGroup(Constants::SETTINGSGROUP);
|
setSettingsGroup(Constants::SETTINGSGROUP);
|
||||||
|
|
||||||
scanThreadLimit.setSettingsKey("ScanThreadLimit");
|
scanThreadLimit.setSettingsKey("ScanThreadLimit");
|
||||||
|
@@ -27,8 +27,6 @@ class TestSettings : public Utils::AspectContainer, public NonAspectSettings
|
|||||||
public:
|
public:
|
||||||
TestSettings();
|
TestSettings();
|
||||||
|
|
||||||
static TestSettings *instance();
|
|
||||||
|
|
||||||
void toSettings() const;
|
void toSettings() const;
|
||||||
void fromSettings();
|
void fromSettings();
|
||||||
|
|
||||||
@@ -50,4 +48,6 @@ public:
|
|||||||
RunAfterBuildMode runAfterBuildMode() const;
|
RunAfterBuildMode runAfterBuildMode() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
TestSettings &testSettings();
|
||||||
|
|
||||||
} // Autotest::Internal
|
} // Autotest::Internal
|
||||||
|
@@ -80,7 +80,7 @@ TestSettingsWidget::TestSettingsWidget()
|
|||||||
onClicked([] { AutotestPlugin::clearChoiceCache(); }, this)
|
onClicked([] { AutotestPlugin::clearChoiceCache(); }, this)
|
||||||
};
|
};
|
||||||
|
|
||||||
TestSettings &s = *TestSettings::instance();
|
TestSettings &s = Internal::testSettings();
|
||||||
Group generalGroup {
|
Group generalGroup {
|
||||||
title(Tr::tr("General")),
|
title(Tr::tr("General")),
|
||||||
Column {
|
Column {
|
||||||
@@ -123,7 +123,7 @@ TestSettingsWidget::TestSettingsWidget()
|
|||||||
populateFrameworksListWidget(s.frameworks, s.tools);
|
populateFrameworksListWidget(s.frameworks, s.tools);
|
||||||
|
|
||||||
setOnApply([this] {
|
setOnApply([this] {
|
||||||
TestSettings &s = *TestSettings::instance();
|
TestSettings &s = Internal::testSettings();
|
||||||
|
|
||||||
NonAspectSettings tmp;
|
NonAspectSettings tmp;
|
||||||
testSettings(tmp);
|
testSettings(tmp);
|
||||||
|
Reference in New Issue
Block a user