diff options
author | David Schulz <david.schulz@nokia.com> | 2012-02-08 14:45:50 +0100 |
---|---|---|
committer | hjk <qthjk@ovi.com> | 2012-02-08 14:59:00 +0100 |
commit | 7889a20e22c5498a22bbcfade00870599b28e5ca (patch) | |
tree | fb30250ba37aef546f17adca91cd944d954a2a4b | |
parent | 53e2cbfb7ff15a41fbb84085ba98b03d067651b1 (diff) | |
download | qt-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.cpp | 16 | ||||
-rw-r--r-- | tests/manual/debugger/simple/simple_test_app.cpp | 4 |
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 |