diff options
author | Andreas Buhr <andreas@andreasbuhr.de> | 2022-04-13 12:19:00 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-04-19 12:25:01 +0000 |
commit | 3dfbaaa2406e74d909abd5e708f315ec7cd8d6d4 (patch) | |
tree | 47804d2b111a7baded7efb7ba41bb59f4bf44bb5 | |
parent | 199ed691a74c6f5d292f8fcfda39eb568407928e (diff) |
Fix tst_qv4debugger on Android
tst_qv4debugger::conditionalBreakPointInQml() failed on Android
because dependencies were not available.
This patch moves qml code from strings to file, thus exposing it
to the build system. This way, the build system can take care
of the dependencies.
Fixes: QTBUG-102416
Task-number: QTBUG-101865
Change-Id: Icd6ef43a45642f68e749137a963ee2ebfe462bce
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit b7fd8ab10b4d93f53246e4bb6db6f2a46757f03d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
3 files changed, 39 insertions, 13 deletions
diff --git a/tests/auto/qml/debugger/qv4debugger/CMakeLists.txt b/tests/auto/qml/debugger/qv4debugger/CMakeLists.txt index f106208737..ecefcb65bc 100644 --- a/tests/auto/qml/debugger/qv4debugger/CMakeLists.txt +++ b/tests/auto/qml/debugger/qv4debugger/CMakeLists.txt @@ -4,6 +4,12 @@ ## tst_qv4debugger Test: ##################################################################### +# Collect test data +file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + data/*) +list(APPEND test_data ${test_data_glob}) + qt_internal_add_test(tst_qv4debugger SOURCES ../../../../../src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp ../../../../../src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.h @@ -18,7 +24,19 @@ qt_internal_add_test(tst_qv4debugger Qt::GuiPrivate Qt::Network Qt::QmlPrivate + Qt::QuickTestUtilsPrivate + TESTDATA ${test_data} ) ## Scopes: ##################################################################### + +qt_internal_extend_target(tst_qv4debugger CONDITION ANDROID OR IOS + DEFINES + QT_QMLTEST_DATADIR=\\\":/data\\\" + ) + +qt_internal_extend_target(tst_qv4debugger CONDITION NOT ANDROID AND NOT IOS + DEFINES + QT_QMLTEST_DATADIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/data\\\" + ) diff --git a/tests/auto/qml/debugger/qv4debugger/data/conditionalBreakPointInQml.qml b/tests/auto/qml/debugger/qv4debugger/data/conditionalBreakPointInQml.qml new file mode 100644 index 0000000000..ceb4edbe7a --- /dev/null +++ b/tests/auto/qml/debugger/qv4debugger/data/conditionalBreakPointInQml.qml @@ -0,0 +1,9 @@ +import QtQml 2.0 +QtObject { + id: root + property int foo: 42 + property bool success: false + Component.onCompleted: { + success = true; // break here + } +} diff --git a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp index dd4c28f1d2..beaee6c61a 100644 --- a/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp +++ b/tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp @@ -25,6 +25,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ +#include <QtQuickTestUtils/private/qmlutils_p.h> #include <QtTest/QtTest> #include "qv4datacollector.h" @@ -289,10 +290,13 @@ public: } }; -class tst_qv4debugger : public QObject +class tst_qv4debugger : public QQmlDataTest { Q_OBJECT +public: + tst_qv4debugger(); + private slots: void init(); void cleanup(); @@ -507,24 +511,17 @@ void tst_qv4debugger::conditionalBreakPointInQml() debuggerAgent->addDebugger(v4Debugger); debuggerAgent->moveToThread(debugThread.data()); - QQmlComponent component(&engine); - component.setData("import QtQml 2.0\n" - "QtObject {\n" - " id: root\n" - " property int foo: 42\n" - " property bool success: false\n" - " Component.onCompleted: {\n" - " success = true;\n" // breakpoint here - " }\n" - "}\n", QUrl("test.qml")); + const QString qmlFileName("conditionalBreakPointInQml.qml"); + const QString qmlFilePath(testFile(qmlFileName)); + QQmlComponent component(&engine, qmlFilePath); - v4Debugger->addBreakPoint("test.qml", 7, "root.foo == 42"); + v4Debugger->addBreakPoint(qmlFileName, 7, "root.foo == 42"); QScopedPointer<QObject> obj(component.create()); QCOMPARE(obj->property("success").toBool(), true); QCOMPARE(debuggerAgent->m_statesWhenPaused.count(), 1); - QCOMPARE(debuggerAgent->m_statesWhenPaused.at(0).fileName, QStringLiteral("test.qml")); + QCOMPARE(debuggerAgent->m_statesWhenPaused.at(0).fileName, qmlFileName); QCOMPARE(debuggerAgent->m_statesWhenPaused.at(0).lineNumber, 7); debugThread->quit(); @@ -944,6 +941,8 @@ void tst_qv4debugger::signalParameters() QCOMPARE(obj->property("resultCallbackExternal").toString(), QLatin1String("unset")); } +tst_qv4debugger::tst_qv4debugger() : QQmlDataTest(QT_QMLTEST_DATADIR) { } + QTEST_MAIN(tst_qv4debugger) #include "tst_qv4debugger.moc" |