summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@nokia.com>2012-02-08 14:45:50 +0100
committerhjk <qthjk@ovi.com>2012-02-08 14:59:00 +0100
commit7889a20e22c5498a22bbcfade00870599b28e5ca (patch)
treefb30250ba37aef546f17adca91cd944d954a2a4b
parent53e2cbfb7ff15a41fbb84085ba98b03d067651b1 (diff)
downloadqt-creator-7889a20e22c5498a22bbcfade00870599b28e5ca.tar.gz
added new mode for simple test
This mode is the same as USE_AUTORUN, except that the debugger will stop if an test after a BREAK_HERE has failed. Change-Id: I786459a101fb2ff0556f7ac640b1b0d21d674e8b Reviewed-by: hjk <qthjk@ovi.com>
-rw-r--r--src/plugins/debugger/debuggerengine.cpp16
-rw-r--r--tests/manual/debugger/simple/simple_test_app.cpp4
2 files changed, 18 insertions, 2 deletions
diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index aa2ce27913..cc0047f858 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -315,6 +315,8 @@ public:
void handleAutoTestLine(int line);
void reportTestError(const QString &msg, int line);
bool m_testsPossible;
+ bool m_breakOnError;
+ bool m_foundError;
QStringList m_testContents;
TaskHub *m_taskHub;
QString m_testFileName;
@@ -1783,7 +1785,13 @@ void DebuggerEnginePrivate::handleAutoTests()
}
foreach (const QString &s, m_testContents) {
if (s.startsWith(QLatin1String("#define USE_AUTORUN"))) {
- m_testsPossible = s.startsWith(QLatin1String("#define USE_AUTORUN 1"));
+ if (s.startsWith(QLatin1String("#define USE_AUTORUN 1"))) {
+ m_testsPossible = true;
+ m_breakOnError = false;
+ } else if (s.startsWith(QLatin1String("#define USE_AUTORUN 2"))) {
+ m_testsPossible = true;
+ m_breakOnError = true;
+ }
break;
}
}
@@ -1860,13 +1868,17 @@ void DebuggerEnginePrivate::handleAutoTestLine(int line)
handleAutoTestLine(line + 1);
} else if (cmd == QLatin1String("Continue")) {
m_engine->showMessage(_("Continue in line %1 processed.").arg(line));
- m_engine->continueInferior();
+ if (!m_breakOnError || !m_foundError)
+ m_engine->continueInferior();
+ else
+ m_foundError = false;
}
}
void DebuggerEnginePrivate::reportTestError(const QString &msg, int line)
{
m_engine->showMessage(_("### Line %1: %2").arg(line).arg(msg));
+ m_foundError = true;
if (!m_taskHub) {
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
diff --git a/tests/manual/debugger/simple/simple_test_app.cpp b/tests/manual/debugger/simple/simple_test_app.cpp
index a2adddf1fd..d61c6a7554 100644
--- a/tests/manual/debugger/simple/simple_test_app.cpp
+++ b/tests/manual/debugger/simple/simple_test_app.cpp
@@ -55,8 +55,12 @@
// FIXME: Not implemented yet.
+// Value: 1
// If the line after a BREAK_HERE line does not contain one of the
// supported commands, the test stops.
+// Value: 2
+// Same as 1, except that the debugger will stop automatically when
+// a test after a BREAK_HERE failed
// Default: 0
#ifndef USE_AUTORUN
#define USE_AUTORUN 0