diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2017-03-01 10:42:47 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-03-07 10:54:46 +0000 |
commit | d5d12e1d6fb9aaa5a8cee7924555f0d4d19ffabc (patch) | |
tree | 13ce80ffc0c46c1255a9994489262b3ff925e059 /tests/auto/qml/debugger/qv4debugger | |
parent | 7fe0d1a06830518e8ce6752e45a0a01b1b97fa73 (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/qv4debugger')
-rw-r--r-- | tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp | 23 |
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; |