diff options
author | Christian Stenger <christian.stenger@qt.io> | 2017-09-29 15:01:32 +0200 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2017-10-09 12:46:33 +0000 |
commit | faee18d31e3c34bb9f13be62bfdf2011cca4c67c (patch) | |
tree | 02a9e4d8414c76bb67d3fc233759d12ac885fb58 | |
parent | c2686fd9ae3bc8ac1550984d88b59cb9a307c13a (diff) |
AutoTest: Enable debugging for Quick Tests
Task-number: QTCREATORBUG-18961
Change-Id: I6f00c84ea6279ceb59745e5bb12349511ae4637b
Reviewed-by: David Schulz <david.schulz@qt.io>
-rw-r--r-- | src/plugins/autotest/qtest/qttestconfiguration.cpp | 6 | ||||
-rw-r--r-- | src/plugins/autotest/quick/quicktestconfiguration.cpp | 10 | ||||
-rw-r--r-- | src/plugins/autotest/quick/quicktestconfiguration.h | 4 | ||||
-rw-r--r-- | src/plugins/autotest/quick/quicktesttreeitem.cpp | 13 | ||||
-rw-r--r-- | src/plugins/autotest/quick/quicktesttreeitem.h | 2 | ||||
-rw-r--r-- | src/plugins/autotest/testconfiguration.h | 3 | ||||
-rw-r--r-- | src/plugins/autotest/testrunconfiguration.h | 8 |
7 files changed, 37 insertions, 9 deletions
diff --git a/src/plugins/autotest/qtest/qttestconfiguration.cpp b/src/plugins/autotest/qtest/qttestconfiguration.cpp index 157c9873e5..46a6a3d99f 100644 --- a/src/plugins/autotest/qtest/qttestconfiguration.cpp +++ b/src/plugins/autotest/qtest/qttestconfiguration.cpp @@ -81,10 +81,8 @@ QStringList QtTestConfiguration::argumentsForTestRunner(QStringList *omitted) co if (qtSettings->logSignalsSlots) arguments << "-vs"; - if (isDebugRunMode()) { - if (qtSettings->noCrashHandler) - arguments << "-nocrashhandler"; - } + if (isDebugRunMode() && qtSettings->noCrashHandler) + arguments << "-nocrashhandler"; return arguments; } diff --git a/src/plugins/autotest/quick/quicktestconfiguration.cpp b/src/plugins/autotest/quick/quicktestconfiguration.cpp index 827b350cfe..6875207bf7 100644 --- a/src/plugins/autotest/quick/quicktestconfiguration.cpp +++ b/src/plugins/autotest/quick/quicktestconfiguration.cpp @@ -35,6 +35,11 @@ namespace Autotest { namespace Internal { +QuickTestConfiguration::QuickTestConfiguration() +{ + setMixedDebugging(true); +} + TestOutputReader *QuickTestConfiguration::outputReader(const QFutureInterface<TestResultPtr> &fi, QProcess *app) const { @@ -74,6 +79,11 @@ QStringList QuickTestConfiguration::argumentsForTestRunner(QStringList *omitted) const QString &metricsOption = QtTestSettings::metricsTypeToOption(qtSettings->metrics); if (!metricsOption.isEmpty()) arguments << metricsOption; + + if (isDebugRunMode()) { + if (qtSettings->noCrashHandler) + arguments << "-nocrashhandler"; + } return arguments; } diff --git a/src/plugins/autotest/quick/quicktestconfiguration.h b/src/plugins/autotest/quick/quicktestconfiguration.h index ecab2f4a2f..7eca4cc1f0 100644 --- a/src/plugins/autotest/quick/quicktestconfiguration.h +++ b/src/plugins/autotest/quick/quicktestconfiguration.h @@ -30,10 +30,10 @@ namespace Autotest { namespace Internal { -class QuickTestConfiguration : public TestConfiguration +class QuickTestConfiguration : public DebuggableTestConfiguration { public: - explicit QuickTestConfiguration() {} + QuickTestConfiguration(); TestOutputReader *outputReader(const QFutureInterface<TestResultPtr> &fi, QProcess *app) const override; QStringList argumentsForTestRunner(QStringList *omitted = nullptr) const override; diff --git a/src/plugins/autotest/quick/quicktesttreeitem.cpp b/src/plugins/autotest/quick/quicktesttreeitem.cpp index 3520269636..953f31e661 100644 --- a/src/plugins/autotest/quick/quicktesttreeitem.cpp +++ b/src/plugins/autotest/quick/quicktesttreeitem.cpp @@ -109,6 +109,11 @@ bool QuickTestTreeItem::canProvideTestConfiguration() const } } +bool QuickTestTreeItem::canProvideDebugConfiguration() const +{ + return canProvideTestConfiguration(); +} + TestConfiguration *QuickTestTreeItem::testConfiguration() const { ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); @@ -143,6 +148,14 @@ TestConfiguration *QuickTestTreeItem::testConfiguration() const return config; } +TestConfiguration *QuickTestTreeItem::debugConfiguration() const +{ + QuickTestConfiguration *config = static_cast<QuickTestConfiguration *>(testConfiguration()); + if (config) + config->setRunMode(TestRunMode::Debug); + return config; +} + QList<TestConfiguration *> QuickTestTreeItem::getAllTestConfigurations() const { QList<TestConfiguration *> result; diff --git a/src/plugins/autotest/quick/quicktesttreeitem.h b/src/plugins/autotest/quick/quicktesttreeitem.h index a0e860a52c..be036a13fb 100644 --- a/src/plugins/autotest/quick/quicktesttreeitem.h +++ b/src/plugins/autotest/quick/quicktesttreeitem.h @@ -39,7 +39,9 @@ public: QVariant data(int column, int role) const override; Qt::ItemFlags flags(int column) const override; bool canProvideTestConfiguration() const override; + bool canProvideDebugConfiguration() const override; TestConfiguration *testConfiguration() const override; + TestConfiguration *debugConfiguration() const override; QList<TestConfiguration *> getAllTestConfigurations() const override; QList<TestConfiguration *> getSelectedTestConfigurations() const override; TestTreeItem *find(const TestParseResult *result) override; diff --git a/src/plugins/autotest/testconfiguration.h b/src/plugins/autotest/testconfiguration.h index e35b0f0dd2..e3a0bcea3f 100644 --- a/src/plugins/autotest/testconfiguration.h +++ b/src/plugins/autotest/testconfiguration.h @@ -117,8 +117,11 @@ public: void setRunMode(TestRunMode mode) { m_runMode = mode; } TestRunMode runMode() const { return m_runMode; } bool isDebugRunMode() const; + void setMixedDebugging(bool enable) { m_mixedDebugging = enable; } + bool mixedDebugging() const { return m_mixedDebugging; } private: TestRunMode m_runMode; + bool m_mixedDebugging = false; }; } // namespace Internal diff --git a/src/plugins/autotest/testrunconfiguration.h b/src/plugins/autotest/testrunconfiguration.h index b0cd1c8e1d..34ba6b8363 100644 --- a/src/plugins/autotest/testrunconfiguration.h +++ b/src/plugins/autotest/testrunconfiguration.h @@ -52,10 +52,12 @@ public: initialize("AutoTest.TestRunConfig"); setDefaultDisplayName(tr("AutoTest Debug")); - // disable QmlDebugger that is enabled by default - // might change if debugging QuickTest gets enabled + bool enableQuick = false; + if (auto debuggable = dynamic_cast<DebuggableTestConfiguration *>(config)) + enableQuick = debuggable->mixedDebugging(); + if (auto debugAspect = extraAspect<Debugger::DebuggerRunConfigurationAspect>()) - debugAspect->setUseQmlDebugger(false); + debugAspect->setUseQmlDebugger(enableQuick); m_testConfig = config; } |