diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-12-05 13:58:22 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@theqtcompany.com> | 2014-12-10 15:33:44 +0100 |
commit | 5586af99c15af8fef27bedfbf84a05d107b4320c (patch) | |
tree | b4c58e777442855dff5cede6ddf3b95f6e7ae00c /tests | |
parent | e55d89bc29bdb800ddc2cf6be49ac36ca65e2682 (diff) |
QML Debugging: Fix breakpoints/stepping in a with-statement.
Also fix the stack-trace generation, otherwise the debugger engine would
report a breakpoint hit on the wrong line.
Change-Id: I6eb4b508fbdca64d03badd8f9312a05c78781ded
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qml/qv4debugger/tst_qv4debugger.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp b/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp index fcbdcbc201..4d155cf012 100644 --- a/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp +++ b/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp @@ -287,6 +287,7 @@ private slots: // exceptions: void pauseOnThrow(); void breakInCatch(); + void breakInWith(); void evaluateExpression(); @@ -632,6 +633,23 @@ void tst_qv4debugger::breakInCatch() QCOMPARE(state.lineNumber, 4); } +void tst_qv4debugger::breakInWith() +{ + QString script = + "with (42) {\n" + " console.log('give the answer');\n" + "}\n"; + + m_debuggerAgent->addBreakPoint("breakInWith", 2); + evaluateJavaScript(script, "breakInWith"); + QVERIFY(m_debuggerAgent->m_wasPaused); + QCOMPARE(m_debuggerAgent->m_pauseReason, BreakPoint); + QCOMPARE(m_debuggerAgent->m_statesWhenPaused.count(), 1); + QV4::Debugging::Debugger::ExecutionState state = m_debuggerAgent->m_statesWhenPaused.first(); + QCOMPARE(state.fileName, QString("breakInWith")); + QCOMPARE(state.lineNumber, 2); +} + void tst_qv4debugger::evaluateExpression() { QString script = |