diff options
author | Christian Stenger <christian.stenger@theqtcompany.com> | 2014-12-04 14:05:19 +0100 |
---|---|---|
committer | Christian Stenger <christian.stenger@theqtcompany.com> | 2014-12-09 10:22:48 +0200 |
commit | e71a2c44fc64b3e3ced132731bf57fc6809516e1 (patch) | |
tree | 9eda69e11b1ab5a8cb9951f12b24bf5e11b158a8 /plugins/autotest | |
parent | edfd394bf54bc78f2a85104da2f49484a61d1134 (diff) | |
download | qt-creator-e71a2c44fc64b3e3ced132731bf57fc6809516e1.tar.gz |
Provide test settings and make use of them
Change-Id: Ia6fef10bc577f9722b6c063c2df4d1651a8be50d
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Diffstat (limited to 'plugins/autotest')
-rw-r--r-- | plugins/autotest/autotest.pro | 11 | ||||
-rw-r--r-- | plugins/autotest/autotest.qrc | 1 | ||||
-rw-r--r-- | plugins/autotest/autotestconstants.h | 13 | ||||
-rw-r--r-- | plugins/autotest/autotestplugin.cpp | 15 | ||||
-rw-r--r-- | plugins/autotest/autotestplugin.h | 9 | ||||
-rw-r--r-- | plugins/autotest/images/autotest.png | bin | 0 -> 683 bytes | |||
-rw-r--r-- | plugins/autotest/testresultspane.cpp | 9 | ||||
-rw-r--r-- | plugins/autotest/testrunner.cpp | 63 | ||||
-rw-r--r-- | plugins/autotest/testsettings.cpp | 97 | ||||
-rw-r--r-- | plugins/autotest/testsettings.h | 58 | ||||
-rw-r--r-- | plugins/autotest/testsettingspage.cpp | 119 | ||||
-rw-r--r-- | plugins/autotest/testsettingspage.h | 66 | ||||
-rw-r--r-- | plugins/autotest/testsettingspage.ui | 258 |
13 files changed, 706 insertions, 13 deletions
diff --git a/plugins/autotest/autotest.pro b/plugins/autotest/autotest.pro index 6d2423bdd7..507d930300 100644 --- a/plugins/autotest/autotest.pro +++ b/plugins/autotest/autotest.pro @@ -22,7 +22,9 @@ SOURCES += \ testresultspane.cpp \ testresultmodel.cpp \ testresultdelegate.cpp \ - testtreeitemdelegate.cpp + testtreeitemdelegate.cpp \ + testsettings.cpp \ + testsettingspage.cpp HEADERS += \ testtreeview.h \ @@ -40,8 +42,13 @@ HEADERS += \ testresultspane.h \ testresultmodel.h \ testresultdelegate.h \ - testtreeitemdelegate.h + testtreeitemdelegate.h \ + testsettings.h \ + testsettingspage.h RESOURCES += \ autotest.qrc +FORMS += \ + testsettingspage.ui + diff --git a/plugins/autotest/autotest.qrc b/plugins/autotest/autotest.qrc index 7b98beaab9..2770aff5fe 100644 --- a/plugins/autotest/autotest.qrc +++ b/plugins/autotest/autotest.qrc @@ -1,5 +1,6 @@ <RCC> <qresource prefix="/"> + <file>images/autotest.png</file> <file>images/class.png</file> <file>images/func.png</file> <file>images/expand.png</file> diff --git a/plugins/autotest/autotestconstants.h b/plugins/autotest/autotestconstants.h index a4f6bdc7d9..fc254e4228 100644 --- a/plugins/autotest/autotestconstants.h +++ b/plugins/autotest/autotestconstants.h @@ -24,12 +24,13 @@ namespace Autotest { namespace Constants { -const char ACTION_ID[] = "AutoTest.Action"; -const char MENU_ID[] = "AutoTest.Menu"; -const char AUTOTEST_ID[] = "AutoTest.ATP"; -const char AUTOTEST_CONTEXT[] = "Auto Tests"; -const char TASK_INDEX[] = "AutoTest.Task.Index"; -const char UNNAMED_QUICKTESTS[] = QT_TR_NOOP("<unnamed>"); +const char ACTION_ID[] = "AutoTest.Action"; +const char MENU_ID[] = "AutoTest.Menu"; +const char AUTOTEST_ID[] = "AutoTest.ATP"; +const char AUTOTEST_CONTEXT[] = "Auto Tests"; +const char TASK_INDEX[] = "AutoTest.Task.Index"; +const char UNNAMED_QUICKTESTS[] = QT_TR_NOOP("<unnamed>"); +const char AUTOTEST_SETTINGS_CATEGORY[] = "ZY.Tests"; } // namespace Autotest } // namespace Constants diff --git a/plugins/autotest/autotestplugin.cpp b/plugins/autotest/autotestplugin.cpp index 065b561f5f..2f99db04ae 100644 --- a/plugins/autotest/autotestplugin.cpp +++ b/plugins/autotest/autotestplugin.cpp @@ -19,6 +19,8 @@ #include "autotestplugin.h" #include "autotestconstants.h" #include "testrunner.h" +#include "testsettings.h" +#include "testsettingspage.h" #include "testtreeview.h" #include "testtreemodel.h" #include "testresultspane.h" @@ -43,9 +45,13 @@ using namespace Autotest::Internal; +static AutotestPlugin *m_instance = 0; + AutotestPlugin::AutotestPlugin() + : m_settings(new TestSettings) { // Create your members + m_instance = this; } AutotestPlugin::~AutotestPlugin() @@ -58,6 +64,11 @@ AutotestPlugin::~AutotestPlugin() delete runner; } +AutotestPlugin *AutotestPlugin::instance() +{ + return m_instance; +} + bool AutotestPlugin::initialize(const QStringList &arguments, QString *errorString) { // Register objects in the plugin manager's object pool @@ -90,6 +101,10 @@ bool AutotestPlugin::initialize(const QStringList &arguments, QString *errorStri menu->addAction(cmd); Core::ActionManager::actionContainer(Core::Constants::M_TOOLS)->addMenu(menu); + m_settings->fromSettings(Core::ICore::settings()); + TestSettingsPage *settingsPage = new TestSettingsPage(m_settings); + addAutoReleasedObject(settingsPage); + addAutoReleasedObject(new TestViewFactory); addAutoReleasedObject(TestResultsPane::instance()); diff --git a/plugins/autotest/autotestplugin.h b/plugins/autotest/autotestplugin.h index 6391f050fe..6d5365ddee 100644 --- a/plugins/autotest/autotestplugin.h +++ b/plugins/autotest/autotestplugin.h @@ -26,6 +26,8 @@ namespace Autotest { namespace Internal { +struct TestSettings; + class AutotestPlugin : public ExtensionSystem::IPlugin { Q_OBJECT @@ -35,12 +37,19 @@ public: AutotestPlugin(); ~AutotestPlugin(); + static AutotestPlugin *instance(); + bool initialize(const QStringList &arguments, QString *errorString); void extensionsInitialized(); ShutdownFlag aboutToShutdown(); + QSharedPointer<TestSettings> settings() const { return m_settings; } + private slots: void triggerAction(); + +private: + const QSharedPointer<TestSettings> m_settings; }; } // namespace Internal diff --git a/plugins/autotest/images/autotest.png b/plugins/autotest/images/autotest.png Binary files differnew file mode 100644 index 0000000000..3f52e9bf08 --- /dev/null +++ b/plugins/autotest/images/autotest.png diff --git a/plugins/autotest/testresultspane.cpp b/plugins/autotest/testresultspane.cpp index 998e80f57f..cb28412a4c 100644 --- a/plugins/autotest/testresultspane.cpp +++ b/plugins/autotest/testresultspane.cpp @@ -16,10 +16,12 @@ ** ****************************************************************************/ +#include "autotestplugin.h" #include "testresultspane.h" #include "testresultmodel.h" #include "testresultdelegate.h" #include "testrunner.h" +#include "testsettings.h" #include "testtreemodel.h" #include <coreplugin/coreconstants.h> @@ -271,6 +273,11 @@ void TestResultsPane::onRunSelectedTriggered() void TestResultsPane::initializeFilterMenu() { + const bool omitIntern = AutotestPlugin::instance()->settings()->omitInternalMssg; + // FilterModel has all messages enabled by default + if (omitIntern) + m_filterModel->toggleTestResultType(ResultType::MESSAGE_INTERNAL); + QMap<ResultType, QString> textAndType; textAndType.insert(ResultType::PASS, tr("Pass")); textAndType.insert(ResultType::FAIL, tr("Fail")); @@ -285,7 +292,7 @@ void TestResultsPane::initializeFilterMenu() QAction *action = new QAction(m_filterMenu); action->setText(textAndType.value(result)); action->setCheckable(true); - action->setChecked(true); + action->setChecked(result != ResultType::MESSAGE_INTERNAL || !omitIntern); action->setData(result); m_filterMenu->addAction(action); } diff --git a/plugins/autotest/testrunner.cpp b/plugins/autotest/testrunner.cpp index 2c0b035a1c..4ec7478453 100644 --- a/plugins/autotest/testrunner.cpp +++ b/plugins/autotest/testrunner.cpp @@ -17,8 +17,10 @@ ****************************************************************************/ #include "autotestconstants.h" +#include "autotestplugin.h" #include "testresultspane.h" #include "testrunner.h" +#include "testsettings.h" #include <QDebug> // REMOVE @@ -112,6 +114,53 @@ static bool xmlExtractTypeFileLine(const QString &code, const QString &tagStart, return false; } +// adapted from qplaintestlogger.cpp +static QString formatResult(double value) +{ + if (value < 0 || value == NAN) + return QLatin1String("NAN"); + if (value == 0) + return QLatin1String("0"); + + int significantDigits = 0; + qreal divisor = 1; + + while (value / divisor >= 1) { + divisor *= 10; + ++significantDigits; + } + + QString beforeDecimalPoint = QString::number(value, 'f', 0); + QString afterDecimalPoint = QString::number(value, 'f', 20); + afterDecimalPoint.remove(0, beforeDecimalPoint.count() + 1); + + const int beforeUse = qMin(beforeDecimalPoint.count(), significantDigits); + const int beforeRemove = beforeDecimalPoint.count() - beforeUse; + + beforeDecimalPoint.chop(beforeRemove); + for (int i = 0; i < beforeRemove; ++i) + beforeDecimalPoint.append(QLatin1Char('0')); + + int afterUse = significantDigits - beforeUse; + if (beforeDecimalPoint == QLatin1String("0") && !afterDecimalPoint.isEmpty()) { + ++afterUse; + int i = 0; + while (i < afterDecimalPoint.count() && afterDecimalPoint.at(i) == QLatin1Char('0')) + ++i; + afterUse += i; + } + + const int afterRemove = afterDecimalPoint.count() - afterUse; + afterDecimalPoint.chop(afterRemove); + + QString result = beforeDecimalPoint; + if (afterUse > 0) + result.append(QLatin1Char('.')); + result += afterDecimalPoint; + + return result; +} + static bool xmlExtractBenchmarkInformation(const QString &code, const QString &tagStart, QString &description) { @@ -134,9 +183,9 @@ static bool xmlExtractBenchmarkInformation(const QString &code, const QString &t else if (metric == QLatin1String("CPUCycles")) // -perf metricsTxt = QLatin1String("CPU cycles"); description = QObject::tr("%1 %2 per iteration (total: %3, iterations: %4)") - .arg(QString::number(value, 'f', 6)) + .arg(formatResult(value)) .arg(metricsTxt) - .arg(QString::number(value * (double)iterations, 'g', 3)) + .arg(formatResult(value * (double)iterations)) .arg(iterations); return true; } @@ -282,7 +331,7 @@ static QString which(const QString &path, const QString &cmd) } bool performExec(const QString &cmd, const QStringList &args, const QString &workingDir, - const Utils::Environment &env, int timeout = 60000) + const Utils::Environment &env, int timeout) { QString runCmd; if (!QDir::toNativeSeparators(cmd).contains(QDir::separator())) { @@ -354,6 +403,10 @@ void performTestRun(QFutureInterface<void> &future, const QList<TestConfiguratio future.setProgressRange(0, testCaseCount); future.setProgressValue(0); + const QSharedPointer<TestSettings> settings = AutotestPlugin::instance()->settings(); + const int timeout = settings->timeout; + const QString metricsOption = TestSettings::metricsTypeToOption(settings->metrics); + foreach (const TestConfiguration *tc, selectedTests) { if (future.isCanceled()) break; @@ -363,10 +416,12 @@ void performTestRun(QFutureInterface<void> &future, const QList<TestConfiguratio Utils::Environment env = tc->environment(); args << QLatin1String("-xml"); + if (!metricsOption.isEmpty()) + args << metricsOption; if (tc->testCases().count()) args << tc->testCases(); - performExec(cmd, args, workDir, env); + performExec(cmd, args, workDir, env, timeout); } future.setProgressValue(testCaseCount); diff --git a/plugins/autotest/testsettings.cpp b/plugins/autotest/testsettings.cpp new file mode 100644 index 0000000000..17a9f7c7aa --- /dev/null +++ b/plugins/autotest/testsettings.cpp @@ -0,0 +1,97 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Creator Enterprise Auto Test Add-on. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#include "testsettings.h" + +#include <QSettings> + +namespace Autotest { +namespace Internal { + +static const char group[] = "Autotest"; +static const char timeoutKey[] = "Timeout"; +static const char metricsKey[] = "Metrics"; +static const char omitInternalKey[] = "OmitInternal"; +static const int defaultTimeout = 60000; + +TestSettings::TestSettings() + : timeout(defaultTimeout), metrics(Walltime), omitInternalMssg(true) +{ +} + +void TestSettings::toSettings(QSettings *s) const +{ + s->beginGroup(QLatin1String(group)); + s->setValue(QLatin1String(timeoutKey), timeout); + s->setValue(QLatin1String(metricsKey), metrics); + s->setValue(QLatin1String(omitInternalKey), omitInternalMssg); + s->endGroup(); +} + +static MetricsType intToMetrics(int value) +{ + switch (value) { + case Walltime: + return Walltime; + case TickCounter: + return TickCounter; + case EventCounter: + return EventCounter; + case CallGrind: + return CallGrind; + case Perf: + return Perf; + default: + return Walltime; + } +} + +void TestSettings::fromSettings(const QSettings *s) +{ + const QString root = QLatin1String(group) + QLatin1Char('/'); + timeout = s->value(root + QLatin1String(timeoutKey), defaultTimeout).toInt(); + metrics = intToMetrics(s->value(root + QLatin1String(metricsKey), Walltime).toInt()); + omitInternalMssg = s->value(root + QLatin1String(omitInternalKey), true).toBool(); +} + +bool TestSettings::equals(const TestSettings &rhs) const +{ + return timeout == rhs.timeout && metrics == rhs.metrics + && omitInternalMssg == rhs.omitInternalMssg; +} + +QString TestSettings::metricsTypeToOption(const MetricsType type) +{ + switch (type) { + case MetricsType::Walltime: + return QString(); + case MetricsType::TickCounter: + return QLatin1String("-tickcounter"); + case MetricsType::EventCounter: + return QLatin1String("-eventcounter"); + case MetricsType::CallGrind: + return QLatin1String("-callgrind"); + case MetricsType::Perf: + return QLatin1String("-perf"); + default: + return QString(); + } +} + +} // namespace Internal +} // namespace Autotest diff --git a/plugins/autotest/testsettings.h b/plugins/autotest/testsettings.h new file mode 100644 index 0000000000..dc82647d10 --- /dev/null +++ b/plugins/autotest/testsettings.h @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Creator Enterprise Auto Test Add-on. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#ifndef TESTSETTINGS_H +#define TESTSETTINGS_H + +#include <QtGlobal> + +QT_BEGIN_NAMESPACE +class QSettings; +QT_END_NAMESPACE + +namespace Autotest { +namespace Internal { + +enum MetricsType { + Walltime, + TickCounter, + EventCounter, + CallGrind, + Perf +}; + +struct TestSettings +{ + TestSettings(); + void toSettings(QSettings *s) const; + void fromSettings(const QSettings *s); + bool equals(const TestSettings &rhs) const; + static QString metricsTypeToOption(const MetricsType type); + + int timeout; + MetricsType metrics; + bool omitInternalMssg; +}; + +inline bool operator==(const TestSettings &s1, const TestSettings &s2) { return s1.equals(s2); } +inline bool operator!=(const TestSettings &s1, const TestSettings &s2) { return !s1.equals(s2); } + +} // namespace Internal +} // namespace Autotest + +#endif // TESTSETTINGS_H diff --git a/plugins/autotest/testsettingspage.cpp b/plugins/autotest/testsettingspage.cpp new file mode 100644 index 0000000000..64be40bb9b --- /dev/null +++ b/plugins/autotest/testsettingspage.cpp @@ -0,0 +1,119 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Creator Enterprise Auto Test Add-on. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#include "autotestconstants.h" +#include "testsettingspage.h" +#include "testsettings.h" + +#include <coreplugin/icore.h> + +#include <utils/hostosinfo.h> + +namespace Autotest { +namespace Internal { + +TestSettingsWidget::TestSettingsWidget(QWidget *parent) + : QWidget(parent) +{ + m_ui.setupUi(this); + m_ui.callgrindRB->setEnabled(Utils::HostOsInfo::isAnyUnixHost()); // valgrind available on UNIX + m_ui.perfRB->setEnabled(Utils::HostOsInfo::isLinuxHost()); // according to docs perf Linux only +} + +void TestSettingsWidget::setSettings(const TestSettings &settings) +{ + m_ui.timeoutSpin->setValue(settings.timeout / 1000); // we store milliseconds + m_ui.omitInternalMsgCB->setChecked(settings.omitInternalMssg); + + switch (settings.metrics) { + case MetricsType::Walltime: + m_ui.walltimeRB->setChecked(true); + break; + case MetricsType::TickCounter: + m_ui.tickcounterRB->setChecked(true); + break; + case MetricsType::EventCounter: + m_ui.eventCounterRB->setChecked(true); + break; + case MetricsType::CallGrind: + m_ui.callgrindRB->setChecked(true); + break; + case MetricsType::Perf: + m_ui.perfRB->setChecked(true); + break; + default: + m_ui.walltimeRB->setChecked(true); + } +} + +TestSettings TestSettingsWidget::settings() const +{ + TestSettings result; + result.timeout = m_ui.timeoutSpin->value() * 1000; // we display seconds + result.omitInternalMssg = m_ui.omitInternalMsgCB->isChecked(); + + if (m_ui.walltimeRB->isChecked()) + result.metrics = MetricsType::Walltime; + else if (m_ui.tickcounterRB->isChecked()) + result.metrics = MetricsType::TickCounter; + else if (m_ui.eventCounterRB->isChecked()) + result.metrics = MetricsType::EventCounter; + else if (m_ui.callgrindRB->isChecked()) + result.metrics = MetricsType::CallGrind; + else if (m_ui.perfRB->isChecked()) + result.metrics = MetricsType::Perf; + + return result; +} + +TestSettingsPage::TestSettingsPage(const QSharedPointer<TestSettings> &settings) + : m_settings(settings), m_widget(0) +{ + setId("A.General"); + setDisplayName(tr("General")); + setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY); + setDisplayCategory(tr("Test Settings")); + setCategoryIcon(QLatin1String(":/images/autotest.png")); +} + +TestSettingsPage::~TestSettingsPage() +{ +} + +QWidget *TestSettingsPage::widget() +{ + if (!m_widget) { + m_widget = new TestSettingsWidget; + m_widget->setSettings(*m_settings); + } + return m_widget; +} + +void TestSettingsPage::apply() +{ + if (!m_widget) // page was not shown at all + return; + const TestSettings newSettings = m_widget->settings(); + if (newSettings != *m_settings) { + *m_settings = newSettings; + m_settings->toSettings(Core::ICore::settings()); + } +} + +} // namespace Internal +} // namespace Autotest diff --git a/plugins/autotest/testsettingspage.h b/plugins/autotest/testsettingspage.h new file mode 100644 index 0000000000..cc30026fe2 --- /dev/null +++ b/plugins/autotest/testsettingspage.h @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Creator Enterprise Auto Test Add-on. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#ifndef TESTSETTINGSPAGE_H +#define TESTSETTINGSPAGE_H + +#include "ui_testsettingspage.h" + +#include <coreplugin/dialogs/ioptionspage.h> + +#include <QPointer> + +namespace Autotest { +namespace Internal { + +struct TestSettings; + +class TestSettingsWidget : public QWidget +{ + Q_OBJECT +public: + explicit TestSettingsWidget(QWidget *parent = 0); + + void setSettings(const TestSettings &settings); + TestSettings settings() const; + +private: + Ui::TestSettingsPage m_ui; + +}; + +class TestSettingsPage : public Core::IOptionsPage +{ + Q_OBJECT +public: + explicit TestSettingsPage(const QSharedPointer<TestSettings> &settings); + ~TestSettingsPage(); + + QWidget *widget(); + void apply(); + void finish() { } + +private: + QSharedPointer<TestSettings> m_settings; + QPointer<TestSettingsWidget> m_widget; +}; + +} // namespace Internal +} // namespace Autotest + +#endif // TESTSETTINGSPAGE_H diff --git a/plugins/autotest/testsettingspage.ui b/plugins/autotest/testsettingspage.ui new file mode 100644 index 0000000000..1a68db4b21 --- /dev/null +++ b/plugins/autotest/testsettingspage.ui @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Autotest::Internal::TestSettingsPage</class> + <widget class="QWidget" name="Autotest::Internal::TestSettingsPage"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>462</width> + <height>292</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <item> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="label"> + <property name="toolTip"> + <string>Timeout used when executing test cases. This will apply for each test case on its own, not the whole project.</string> + </property> + <property name="text"> + <string>Timeout:</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="timeoutSpin"> + <property name="toolTip"> + <string>Timeout used when executing test cases. This will apply for each test case on its own, not the whole project.</string> + </property> + <property name="suffix"> + <string> s</string> + </property> + <property name="minimum"> + <number>5</number> + </property> + <property name="maximum"> + <number>36000</number> + </property> + <property name="value"> + <number>60</number> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + <item> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QCheckBox" name="omitInternalMsgCB"> + <property name="toolTip"> + <string>If checked Internal Messages won't be shown by default. (You can still enable them on the test results filter)</string> + </property> + <property name="text"> + <string>Omit Internal Messages</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QGroupBox" name="groupBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Benchmark Metrics</string> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QRadioButton" name="walltimeRB"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Use Walltime metrics for executing benchmarks. (default)</string> + </property> + <property name="text"> + <string>Walltime</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="tickcounterRB"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Use tick counter for executing benchmarks.</string> + </property> + <property name="text"> + <string>Tickcounter</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="eventCounterRB"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Use event counter when executing benchmarks.</string> + </property> + <property name="text"> + <string>Eventcounter</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="callgrindRB"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Use callgrind when executing benchmark. (valgrind must be installed)</string> + </property> + <property name="text"> + <string>Callgrind</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="perfRB"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Use perf when executing benchmarks. (perf must be installed)</string> + </property> + <property name="text"> + <string>Perf</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <spacer name="verticalSpacer_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> |