diff --git a/src/plugins/autotest/qtest/qttestconfiguration.cpp b/src/plugins/autotest/qtest/qttestconfiguration.cpp index 157c9873e58..46a6a3d99f6 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 827b350cfe6..6875207bf76 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 &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 ecab2f4a2f3..7eca4cc1f01 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 &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 35202696364..953f31e6618 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(testConfiguration()); + if (config) + config->setRunMode(TestRunMode::Debug); + return config; +} + QList QuickTestTreeItem::getAllTestConfigurations() const { QList result; diff --git a/src/plugins/autotest/quick/quicktesttreeitem.h b/src/plugins/autotest/quick/quicktesttreeitem.h index a0e860a52c0..be036a13fb3 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 getAllTestConfigurations() const override; QList getSelectedTestConfigurations() const override; TestTreeItem *find(const TestParseResult *result) override; diff --git a/src/plugins/autotest/testconfiguration.h b/src/plugins/autotest/testconfiguration.h index e35b0f0dd21..e3a0bcea3f9 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 b0cd1c8e1d2..34ba6b8363b 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(config)) + enableQuick = debuggable->mixedDebugging(); + if (auto debugAspect = extraAspect()) - debugAspect->setUseQmlDebugger(false); + debugAspect->setUseQmlDebugger(enableQuick); m_testConfig = config; }