diff --git a/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc b/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc index 66f38bc0bf9..4447c342cea 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-autotest.qdoc @@ -470,6 +470,11 @@ To record information about signals and slots in the test log, select the \uicontrol {Log signals and slots} check box. + To explicitly limit the maximum number of warnings in the test log, select + the \uicontrol {Limit warnings} check box and specify the intended number + inside the spin box next to it. Set the number to 0 if you want no limit + at all. The default number is 2000. + \section2 Specifying Settings for Running Google Tests To specify settings for running Google tests, select \uicontrol Tools > diff --git a/src/plugins/autotest/qtest/qttest_utils.cpp b/src/plugins/autotest/qtest/qttest_utils.cpp index 8f945367066..66ab170a4e8 100644 --- a/src/plugins/autotest/qtest/qttest_utils.cpp +++ b/src/plugins/autotest/qtest/qttest_utils.cpp @@ -98,9 +98,9 @@ QStringList filterInterfering(const QStringList &provided, QStringList *omitted, "-functions", "-datatags", "-nocrashhandler", "-callgrind", "-perf", "-perfcounterlist", "-tickcounter", "-eventcounter", "-help" }; - static const QSet knownInterferingOptionWithParameter = { "-o" }; + static const QSet knownInterferingOptionWithParameter = { "-o", "-maxwarnings" }; static const QSet knownAllowedOptionsWithParameter { - "-eventdelay", "-keydelay", "-mousedelay", "-maxwarnings", "-perfcounter", + "-eventdelay", "-keydelay", "-mousedelay", "-perfcounter", "-minimumvalue", "-minimumtotal", "-iterations", "-median" }; diff --git a/src/plugins/autotest/qtest/qttestconfiguration.cpp b/src/plugins/autotest/qtest/qttestconfiguration.cpp index a7305eeb729..7f613702137 100644 --- a/src/plugins/autotest/qtest/qttestconfiguration.cpp +++ b/src/plugins/autotest/qtest/qttestconfiguration.cpp @@ -76,6 +76,9 @@ QStringList QtTestConfiguration::argumentsForTestRunner(QStringList *omitted) co if (isDebugRunMode() && qtSettings->noCrashHandler.value()) arguments << "-nocrashhandler"; + if (qtSettings->limitWarnings.value() && qtSettings->maxWarnings.value() != 2000) + arguments << "-maxwarnings" << QString::number(qtSettings->maxWarnings.value()); + return arguments; } diff --git a/src/plugins/autotest/qtest/qttestsettings.cpp b/src/plugins/autotest/qtest/qttestsettings.cpp index f98cdc43574..a8d5626aa1a 100644 --- a/src/plugins/autotest/qtest/qttestsettings.cpp +++ b/src/plugins/autotest/qtest/qttestsettings.cpp @@ -79,6 +79,19 @@ QtTestSettings::QtTestSettings() logSignalsSlots.setSettingsKey("LogSignalsSlots"); logSignalsSlots.setLabelText(tr("Log signals and slots")); logSignalsSlots.setToolTip(tr("Log every signal emission and resulting slot invocations.")); + + registerAspect(&limitWarnings); + limitWarnings.setSettingsKey("LimitWarnings"); + limitWarnings.setLabelText(tr("Limit warnings")); + limitWarnings.setToolTip(tr("Set the maximum number of warnings. 0 means that the number " + "is not limited.")); + + registerAspect(&maxWarnings); + maxWarnings.setSettingsKey("MaxWarnings"); + maxWarnings.setRange(0, 10000); + maxWarnings.setDefaultValue(2000); + maxWarnings.setSpecialValueText(tr("Unlimited")); + maxWarnings.setEnabler(&limitWarnings); } QString QtTestSettings::metricsTypeToOption(const MetricsType type) @@ -115,6 +128,9 @@ QtTestSettingsPage::QtTestSettingsPage(QtTestSettings *settings, Id settingsId) s.useXMLOutput, s.verboseBench, s.logSignalsSlots, + Row { + s.limitWarnings, s.maxWarnings + }, Group { Title(QtTestSettings::tr("Benchmark Metrics")), s.metrics diff --git a/src/plugins/autotest/qtest/qttestsettings.h b/src/plugins/autotest/qtest/qttestsettings.h index bc890591524..682f66c5d77 100644 --- a/src/plugins/autotest/qtest/qttestsettings.h +++ b/src/plugins/autotest/qtest/qttestsettings.h @@ -54,6 +54,8 @@ public: Utils::BoolAspect useXMLOutput; Utils::BoolAspect verboseBench; Utils::BoolAspect logSignalsSlots; + Utils::BoolAspect limitWarnings; + Utils::IntegerAspect maxWarnings; }; class QtTestSettingsPage final : public Core::IOptionsPage diff --git a/src/plugins/autotest/quick/quicktestconfiguration.cpp b/src/plugins/autotest/quick/quicktestconfiguration.cpp index bd02a88be20..8ede65e66bc 100644 --- a/src/plugins/autotest/quick/quicktestconfiguration.cpp +++ b/src/plugins/autotest/quick/quicktestconfiguration.cpp @@ -79,6 +79,10 @@ QStringList QuickTestConfiguration::argumentsForTestRunner(QStringList *omitted) if (qtSettings->noCrashHandler.value()) arguments << "-nocrashhandler"; } + + if (qtSettings->limitWarnings.value() && qtSettings->maxWarnings.value() != 2000) + arguments << "-maxwarnings" << QString::number(qtSettings->maxWarnings.value()); + return arguments; }