aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/debugger
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2017-03-01 10:42:47 +0100
committerSimon Hausmann <simon.hausmann@qt.io>2017-03-07 10:54:46 +0000
commitd5d12e1d6fb9aaa5a8cee7924555f0d4d19ffabc (patch)
tree13ce80ffc0c46c1255a9994489262b3ff925e059 /tests/auto/qml/debugger
parent7fe0d1a06830518e8ce6752e45a0a01b1b97fa73 (diff)
Set source location for all loop body-to-front jumps
Task-number: QTBUG-59204 Change-Id: Id1a73b228cd3386c7fcc7712c2485f387238b65e Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'tests/auto/qml/debugger')
-rw-r--r--tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp
index 8362cb9ed6..56320b8365 100644
--- a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp
+++ b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp
@@ -327,8 +327,9 @@ private slots:
void evaluateExpression();
void stepToEndOfScript();
- void lastLineOfLoop();
+ void lastLineOfLoop_data();
+ void lastLineOfLoop();
private:
QV4Debugger *debugger() const
{
@@ -787,16 +788,30 @@ void tst_qv4debugger::stepToEndOfScript()
QCOMPARE(state.lineNumber, -4); // A return instruction without proper line number.
}
+void tst_qv4debugger::lastLineOfLoop_data()
+{
+ QTest::addColumn<QString>("loopHead");
+ QTest::addColumn<QString>("loopTail");
+
+ QTest::newRow("for") << "for (var i = 0; i < 10; ++i) {\n" << "}\n";
+ QTest::newRow("for..in") << "for (var i in [0, 1, 2, 3, 4]) {\n" << "}\n";
+ QTest::newRow("while") << "while (ret < 10) {\n" << "}\n";
+ QTest::newRow("do..while") << "do {\n" << "} while (ret < 10);\n";
+}
+
void tst_qv4debugger::lastLineOfLoop()
{
+ QFETCH(QString, loopHead);
+ QFETCH(QString, loopTail);
+
QString script =
"var ret = 0;\n"
- "for (var i = 0; i < 10; ++i) {\n"
- " if (i == 2)\n"
+ + loopHead +
+ " if (ret == 2)\n"
" ret += 4;\n" // breakpoint, then step over
" else \n"
" ret += 1;\n"
- "}\n"; // after step over
+ + loopTail;
debugger()->addBreakPoint("trueBranch", 4);
m_debuggerAgent->m_resumeSpeed = QV4Debugger::StepOver;