aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/debuggerengine.cpp
diff options
context:
space:
mode:
authorDavid Schulz <[email protected]>2012-02-08 14:45:50 +0100
committerhjk <[email protected]>2012-02-08 14:59:00 +0100
commit7889a20e22c5498a22bbcfade00870599b28e5ca (patch)
treefb30250ba37aef546f17adca91cd944d954a2a4b /src/plugins/debugger/debuggerengine.cpp
parent53e2cbfb7ff15a41fbb84085ba98b03d067651b1 (diff)
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 <[email protected]>
Diffstat (limited to 'src/plugins/debugger/debuggerengine.cpp')
-rw-r--r--src/plugins/debugger/debuggerengine.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index aa2ce279136..cc0047f8582 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();