diff options
author | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2015-07-22 18:50:34 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2015-08-10 10:05:14 +0000 |
commit | a2ccdd33888cb0eb4516089d3418dd01c8cca25c (patch) | |
tree | 400d8d1de2223812f9b8c0106e69c6ef9656c0a3 /tests/auto/qml | |
parent | bf5db2bbc1da83a9930832e628e65ec64cd4b831 (diff) |
Move DataCollector into debugger plugin
The data collector and all the jobs it uses to interact with the engine
are only used from the debugger plugin. We can as well move them there.
Change-Id: Ia48251f08b48c7e1e607b8ae2a3d1de29f80f742
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Diffstat (limited to 'tests/auto/qml')
-rw-r--r-- | tests/auto/qml/qv4debugger/qv4debugger.pro | 10 | ||||
-rw-r--r-- | tests/auto/qml/qv4debugger/tst_qv4debugger.cpp | 38 |
2 files changed, 33 insertions, 15 deletions
diff --git a/tests/auto/qml/qv4debugger/qv4debugger.pro b/tests/auto/qml/qv4debugger/qv4debugger.pro index 2a318955f3..540cab70e6 100644 --- a/tests/auto/qml/qv4debugger/qv4debugger.pro +++ b/tests/auto/qml/qv4debugger/qv4debugger.pro @@ -2,6 +2,14 @@ CONFIG += testcase TARGET = tst_qv4debugger macx:CONFIG -= app_bundle -SOURCES += tst_qv4debugger.cpp +SOURCES += \ + $$PWD/tst_qv4debugger.cpp \ + $$PWD/../../../../src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp + +HEADERS += \ + $$PWD/../../../../src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h + +INCLUDEPATH += \ + $$PWD/../../../../src/plugins/qmltooling/qmldbg_debugger QT += core-private gui-private qml-private network testlib diff --git a/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp b/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp index ac780d272c..ca308a4f49 100644 --- a/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp +++ b/tests/auto/qml/qv4debugger/tst_qv4debugger.cpp @@ -32,6 +32,8 @@ ****************************************************************************/ #include <QtTest/QtTest> +#include "qv4datacollector.h" + #include <QJSEngine> #include <QQmlEngine> #include <QQmlComponent> @@ -97,14 +99,14 @@ class TestAgent : public QObject { Q_OBJECT public: - typedef QV4::Debugging::DataCollector::Refs Refs; - typedef QV4::Debugging::DataCollector::Ref Ref; + typedef QV4DataCollector::Refs Refs; + typedef QV4DataCollector::Ref Ref; struct NamedRefs { - NamedRefs(DataCollector *collector = 0): collector(collector) {} + NamedRefs(QV4DataCollector *collector = 0): collector(collector) {} QStringList names; Refs refs; - DataCollector *collector; + QV4DataCollector *collector; int size() const { Q_ASSERT(names.size() == refs.size()); @@ -164,13 +166,14 @@ public slots: m_pauseReason = reason; m_statesWhenPaused << debugger->currentExecutionState(); - { + if (debugger->state() == QV4::Debugging::Debugger::Paused && + debugger->engine()->hasException) { Refs refs; - QV4::Debugging::RefHolder holder(&collector, &refs); - if (debugger->collectThrownValue(&collector)) { - Q_ASSERT(refs.size() > 0); - m_thrownValue = refs.first(); - } + RefHolder holder(&collector, &refs); + ExceptionCollectJob job(debugger->engine(), &collector); + debugger->runInEngine(&job); + Q_ASSERT(refs.size() > 0); + m_thrownValue = refs.first(); } foreach (const TestBreakPoint &bp, m_breakPointsToAddWhenPaused) @@ -180,10 +183,13 @@ public slots: m_stackTrace = debugger->stackTrace(); while (!m_expressionRequests.isEmpty()) { + Q_ASSERT(debugger->state() == QV4::Debugging::Debugger::Paused); ExpressionRequest request = m_expressionRequests.takeFirst(); m_expressionResults << Refs(); RefHolder holder(&collector, &m_expressionResults.last()); - debugger->evaluateExpression(request.frameNr, request.expression, &collector); + ExpressionEvalJob job(debugger->engine(), request.frameNr, request.expression, + &collector); + debugger->runInEngine(&job); } if (m_captureContextInfo) @@ -207,11 +213,15 @@ public: for (int i = 0, ei = m_stackTrace.size(); i != ei; ++i) { m_capturedArguments.append(NamedRefs(&collector)); RefHolder argHolder(&collector, &m_capturedArguments.last().refs); - debugger->collectArgumentsInContext(&collector, &m_capturedArguments.last().names, i); + ArgumentCollectJob argumentsJob(debugger->engine(), &collector, + &m_capturedArguments.last().names, i, 0); + debugger->runInEngine(&argumentsJob); m_capturedLocals.append(NamedRefs(&collector)); RefHolder localHolder(&collector, &m_capturedLocals.last().refs); - debugger->collectLocalsInContext(&collector, &m_capturedLocals.last().names, i); + LocalCollectJob localsJob(debugger->engine(), &collector, + &m_capturedLocals.last().names, i, 0); + debugger->runInEngine(&localsJob); } } @@ -234,7 +244,7 @@ public: QVector<NamedRefs> m_capturedArguments; QVector<NamedRefs> m_capturedLocals; qint64 m_thrownValue; - QV4::Debugging::DataCollector collector; + QV4DataCollector collector; struct ExpressionRequest { QString expression; |