aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2017-09-29 15:01:32 +0200
committerChristian Stenger <christian.stenger@qt.io>2017-10-09 12:46:33 +0000
commitfaee18d31e3c34bb9f13be62bfdf2011cca4c67c (patch)
tree02a9e4d8414c76bb67d3fc233759d12ac885fb58
parentc2686fd9ae3bc8ac1550984d88b59cb9a307c13a (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.cpp6
-rw-r--r--src/plugins/autotest/quick/quicktestconfiguration.cpp10
-rw-r--r--src/plugins/autotest/quick/quicktestconfiguration.h4
-rw-r--r--src/plugins/autotest/quick/quicktesttreeitem.cpp13
-rw-r--r--src/plugins/autotest/quick/quicktesttreeitem.h2
-rw-r--r--src/plugins/autotest/testconfiguration.h3
-rw-r--r--src/plugins/autotest/testrunconfiguration.h8
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;
}