summaryrefslogtreecommitdiff
path: root/tests/auto/qml/debugger/shared
Commit message (Collapse)AuthorAgeFilesLines
* Port from container::count() and length() to size()Marc Mutz2022-10-071-3/+3
| | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8: auto QtContainerClass = anyOf( expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o), expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o)); makeRule(cxxMemberCallExpr(on(QtContainerClass), callee(cxxMethodDecl(hasAnyName({"count", "length"), parameterCountIs(0))))), changeTo(cat(access(o, cat("size"), "()"))), cat("use 'size()' instead of 'count()/length()'")) a.k.a qt-port-to-std-compatible-api with config Scope: 'Container', with the extended set of container classes recognized. Change-Id: Idb1f75dfe2323bd1d9e8b4d58d54f1b4b80c7ed7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Add convenience API for making QQmlDataTest-based tests fail on warningsMitch Curtis2022-07-052-3/+4
| | | | | | | | | | | | | | | | | | | | After this patch, if a QQmlDataTest-derived class passes FailOnWarningsPolicy::FailOnWarnings to the base constructor, any non-empty warning encountered by that test will result in a test failure. This avoids the need to duplicate the catch-all regex in tests that want to fail on warnings. The goal is to gradually enable failure-on-warnings over time. Leave comments and explicitly pass DoNotFailOnWarnings for tests that should never fail on warnings. Task-number: QTBUG-98718 Pick-to: 6.2 6.3 6.4 Change-Id: I4b647d93a0f28ac891c4bdb19ef74569f2918e8f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Use SPDX license identifiersLucie Gérard2022-06-116-163/+12
| | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QQmlDebugProcess: Crash if we cannot kill the debuggeeUlf Hermann2022-05-311-1/+2
| | | | | | | | | | | If the debuggee somehow manages to ignore our kill signal, the QProcess dtor will hang. Let's rather crash in this case, so that we see when it happens. Task-number: QTBUG-101678 Change-Id: Idc72412925244acfdb1dfdeec07369d5fb271080 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix wrong include in debugutil.cppJoerg Bornemann2022-04-251-1/+1
| | | | | | | | | | | | | | Commit 8398f6990b51c120cdf724051c7f25fbbd290a9a added #include "debugutil.moc" but debugutil.cpp doesn't contain anything that would produce such a file. This leads to a flood of AutoMoc warnings when building the QML debugger test. Presumably, it was meant to include moc_debugutil_p.cpp, so let's do that. Change-Id: I86dfe935e7a01388f6737124d9383ad53a772897 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Eliminate extra event loops from QQmlDebugTestUlf Hermann2022-03-242-24/+20
| | | | | | | | | | Extra event loops are famously brittle, and we don't need them here. We can just us QTest::qWaitFor(). Task-number: QTBUG-101678 Change-Id: I73837bc323c83431f487db3cac6872736635d557 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQmlDebugProcess: Remove cruftUlf Hermann2022-03-182-31/+17
| | | | | | | | | | | | | The mutex had no function I can discern as the class is not thread safe in any way, and isn't used from multiple threads anywhere. Extra event loops are famously brittle. We don't have to use an extra event loop here. QTest::qWaitFor will do just fine. Task-number: QTBUG-101678 Change-Id: If25a961312a1eeb725ff779e386b2657e0f23dd1 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Replace 0 pointer constants with nullptrAllan Sandfeld Jensen2021-10-183-3/+3
| | | | | | | Replaced in most common patterns. Change-Id: Idcaff1f2e915f29922702d3600a2e5f1e2418a7a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Consolidate test helpers into private librariesMitch Curtis2021-09-132-1/+9
| | | | | | | | | | | | | | | | | | | | Previously each test would include and build sources from the shared folder. Now we make those sources a library, build it once, then have each test link to it instead. We also take the opportunity to move some helpers that qtquickcontrols2 had added into the quicktestutils library where it makes sense, and for the helpers that don't make sense to be there, move them into quickcontrolstestutils. We add the libraries to src/ so that they are internal modules built as part of Qt, rather than tests. That way we can use them in a standalone test outside of qtdeclarative. Task-number: QTBUG-95621 Pick-to: 6.2 Change-Id: I0a2ab3976fdbff2e4414df7bdc0808f16453b80a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix some "can be marked override" warningsAndreas Buhr2021-02-232-4/+4
| | | | | | Change-Id: I13da0d085901314950c4fa0afb5853e183652e67 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Remove the qmake project filesFabian Kosmale2021-01-151-11/+0
| | | | | | | | | Remove all qmake project files, except for examples which are used to test that qmake continues to work. Change-Id: Ic4abb72dc2dcd75df7a797c56056b6b3c5fe62ac Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Remove QRegExp from qml autotestsLars Knoll2020-04-031-3/+4
| | | | | | | | QRegExp will get removed in Qt6. Clean up by removing dependencies on QRegExp in the autotests. Change-Id: I8ef8561ba30b98b61cd9ed52907b48c5969f2c49 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Tests: rename connect -> connectToTim Jenssen2020-02-032-2/+2
| | | | | | | avoids strange compiler errors if a QObject::connect is used Change-Id: Ib9f5fc4114a06f7f1d1a0b9a142a15ce19270cec Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Tests: make ConnectResult a Q_ENUM to get nice error messageTim Jenssen2020-01-311-1/+2
| | | | | Change-Id: I0e22eb66109e61a5341388d37f5b596f4125ac99 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtDeclarative: replace deprecated functionsChristian Ehrlicher2019-03-041-1/+1
| | | | | | | | | | | | | | | Replace the deprecated functions with it successors: - QProcess::finished(int) -> QProcess::finished(int, ExitStatus) - QDateTime::toTime_t() -> toSecsSinceEpoch() - QDateTime::setUtcOffset() -> setOffsetFromUtc() - QDateTime::utcOffset() -> offsetFromUtc() - QWindowSystemInterface::handleDrag/Drop(4 params) -> 6-params - QJSEngine::installTranslatorFunctions() -> installExtensions(QJSEngine::TranslationExtension) - QEasingCurve::cubicBezierSpline() -> toCubicSpline() Change-Id: I96b4b2195887396b7a5182fce2749745380f5949 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QmlDebug: Add QQmlInspectorClientUlf Hermann2018-10-243-186/+0
| | | | | | | | We use it in 2 tests and we might use it elsewhere, too. Task-number: QTBUG-66504 Change-Id: I57e52e70044ac857482ecfe863f0d30698ab2e60 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QmlDebug: Add QQmlEngineDebugClientUlf Hermann2018-10-243-744/+0
| | | | | | | | | We use it in 3 tests already, and we may want to use it in other applications, too. Task-number: QTBUG-66504 Change-Id: Id73b6ccf49a701fbbc79ee3fe1ac638a70c4c939 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QML Profiler: Test that only one Complete message is sent per sessionUlf Hermann2018-07-102-0/+11
| | | | | | Task-number: QTBUG-65767 Change-Id: I0485092f9a36da73e9e86ef8216be736b6560ec1 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* QmlDebug tests: Return the right value from connect(...)Ulf Hermann2018-06-222-32/+80
| | | | | | | | | | | | If the process terminates shortly after connecting, we would return the wrong value because the services would be NotConnected again, due to the timeout mechanism we used to detect this. Instead, rather directly react to the stateChanged signals and return as soon as all services are in the correct state (or if the debug connection is dropped before, or on timeout, which are failures). Change-Id: I3f0c1c8519fc450627a803c76ec9b0a703104022 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.11' into devSimon Hausmann2018-06-191-2/+0
|\ | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp src/qml/compiler/qv4codegen.cpp tests/auto/qml/debugger/qv4debugger/tst_qv4debugger.cpp Change-Id: I010505326d76ee728ffe5fbd4c7879f28adadb12
| * QQmlDebugProcess: Wait forever for debug messagesUlf Hermann2018-06-191-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | If we don't get the expected message in 15s, output a warning and try again. This will eventually be terminated by the overall test watchdog, but experiments show that starting processes on the CI can take minutes, so it's not worth it to have a separate timeout here. We still output the warning, so that we see in the log when this happens. Task-number: QTBUG-68741 Change-Id: I1ca9d0726753d566d8d89dd682d7d503fcd3a337 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-04-261-5/+11
|\ \ | |/ | | | | | | | | | | | | Conflicts: src/imports/imports.pro src/src.pro Change-Id: Icdc39b6169d15b2102acd0e4d550a8d91e4b0744
| * Make the shared test code independent of QtQmlUlf Hermann2018-04-241-5/+11
| | | | | | | | | | | | | | | | | | This enables us to drop the QML dependency from a number of tests. This is desirable because we want to test that we didn't do any incompatible changes to the debug framework. Change-Id: I937dd45d3079eac15c200c9d68bb4c911f61afc0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QQmlDebugProcess: Forward the process' finished() signalUlf Hermann2018-03-212-0/+2
| | | | | | | | | | Change-Id: If7c3bf5e0e679734911195f0f1fd1f408149a18e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QQmlDebugClient: Make stateChanged a signalUlf Hermann2018-03-204-12/+3
| | | | | | | | | | | | | | | | | | | | | | This way we can observe it from the outside and drop all the code that genrated extra signals from the virtual method. Also drop the unused QQmlDebugTestService::stateHasChanged signal to reduce the confusion. Change-Id: Ia37c1eaf8b392e594b0931694f43f84fe09b000c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QQmlDebugProcess: Add a method to return the ProcessStateUlf Hermann2018-03-203-3/+9
|/ | | | | | | | | We want a simple way to query the process state, without parsing the state string. Rename the old state() method to stateString() to make space for the new state() method. Change-Id: I493b769a4ab31148f654c1b67bd95d93e3e3cba7 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Use QOverload instead of static_cast for connectJesus Fernandez2018-02-151-1/+1
| | | | | Change-Id: I6f43fb3bccb7cc5060852aef1ad21e7811bf79ed Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Match QQmlEngineDebugServiceTest to the serviceUlf Hermann2018-01-251-1/+1
| | | | | | | | | | | | The fact that the service transmits QObject properties by their objectNames, rather than as proper references is not very useful and in fact the reason for some strange behavior in QtCreator. However, it's been that way for a long time and we should test what the service actually does. Task-number: QTBUG-65852 Change-Id: I6e489bb9877fae129432b5b3d5d4c7bfb5deaa9b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix remaining race conditions in QQmlDebugProcessUlf Hermann2017-09-062-15/+25
| | | | | | | | | | | | | | | | | If the process generated a "Cannot listen" message before we waitForSessionStart(), we would never quit the nested event loop. Also, unrelated output was not always forwarded, and the event loop was not terminated when the process unexpectedly stopped. Also, the timer was started when the process started, not when we started waiting and we don't want to report the process as crashed if we kill it ourselves. In turn, we remove the remaining blacklists. Task-number: QTQAINFRA-1334 Change-Id: I711aea373911d380f882b00f6d88627edc9f2415 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add some style to QQmlDebugProcessUlf Hermann2017-09-061-13/+32
| | | | | | | Line breaks, Qt5 connects, etc. Change-Id: I13df05722c6ae6cd5d29e28815a602e997de4605 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Move QQmlDebugProcess into its own header and source filesUlf Hermann2017-09-065-248/+324
| | | | | | | This way we can easily extract it and test it separately. Change-Id: I05e78ac705a5b52ee978947f3e0aed596e0a03a0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.9' into devSimon Hausmann2017-08-231-1/+4
|\ | | | | | | | | | | | | Conflicts: tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp Change-Id: I31375151eb239f348bec988d2d0506c2b4d9604c
| * Make sure QQmlDebugProcess correctly reports session as startedUlf Hermann2017-08-171-1/+4
| | | | | | | | | | | | | | | | | | | | | | If the "Waiting" output appears before we wait, the event loop could run forever. Also, the timeout of 5s was too low. We increase it to 15s. Remove the blacklists and other workarounds in turn. Task-number: QTQAINFRA-1334 Change-Id: Ib1032a8e57ab8dada3e56163ebab1523a7357aeb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Tests: Unify debugger tests' connection mechanismsUlf Hermann2017-08-182-1/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All the tests do pretty much the same thing in their init() or connect() methods: Create a process, create a debug connection, create some clients and make sure they're all running. We can deduplicate the code by moving all this into a common base class. Furthermore, the QSKIP in the qqmlenginedebuginspectorintegration test was obviously done because the BLACKLIST mechanism doesn't cover failures from internally called methods. As we don't have that problem anymore now, we can use BLACKLIST instead. Change-Id: I6d45d3b4e9645558ecc783a81fd740b00235cdc1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Tests: Clean up inclusion of util.pri and debugutil.priUlf Hermann2017-08-171-0/+3
|/ | | | | | | | | | | When we include debugutil.pri, we always want util.pri, too. We can as well nest the inclusions. Also, setting the include path is much easier from within the .pri files than from outside. Change-Id: I1205bdc3051e16e635d4ea9626f44e51002ddb50 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Qml Debugger: Make sure all objects have a typeUlf Hermann2017-03-311-0/+1
| | | | | | | | | QQmlMetaType::prettyTypeName() does a better job in finding a valid type name for our objects than we can do ourselves. Task-number: QTCREATORBUG-17741 Change-Id: Ie8a192aceb230e73b5295b745987692548aff641 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QML tooling: Make sure we signal object creation also from QQmlIncubatorUlf Hermann2017-01-112-2/+4
| | | | | | | | | | | | We have to call the QQmlEngineDebugService back from QQmlObjectCreator rather than QQmlComponent, as there are more ways to create an object. We also add the new instance to the global instance list if only the V4 debug service is active, as both QQmlEngineDebugService and QV4DebugService use it. Change-Id: I5dcc71b2e91049bc19ec70d7b87959a61c9b6b75 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Tooling: Convert connects to Qt5 styleUlf Hermann2016-07-281-2/+0
| | | | | Change-Id: I6746b777f73d047f5cf610bfca9b320ac1e13676 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Updated license headersJani Heikkinen2016-01-208-136/+96
| | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I04760a0801837cfc516d1c7c02d4f503f6bb70b6 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Rewrite inspector serviceUlf Hermann2016-01-123-27/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | The inspector service had bitrotted to a point where there was little code to be rescued. Apparently it was never really finished and quite some code didn't make any sense. This change removes some features that were unused or didn't work correctly: 1. Panning and Zooming with mouse wheel and touch interaction. This might be useful in some contexts, but the implementation was so broken that it wasn't worth trying to fix it. The whole idea of doing this on the layer of QQuickItems is not so great because there is no distinction between spontaneous changes triggered by the application and debugging interaction triggered from outside. It might be better to implement such functionality on a lower level, e.g. in the renderer. 2. Reloading the scene with debug changes. Use one of the other debug services to change properties. Clearing the component cache is a rather drastic measure and not necessary here. In turn, we get support for inspecting multiple windows, and all subclasses of QQuickWindow are supported now. Also, show-on-top works now. Task-number: QTBUG-33376 Change-Id: I65497f49c6b46128a600b0e3a31483eeef40313c Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Make environment for QQmlDebugProcess usefulUlf Hermann2016-01-112-4/+4
| | | | | | | We don't want to replace the system environment, but rather add to it. Change-Id: I0a498682f8f70dc349c529fa4fc3d76ccb815af8 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Remove extra copy of connection from engine debug clientUlf Hermann2015-11-172-20/+17
| | | | | Change-Id: I8e6df629f2be5af9b5058e542980753b9a9053cb Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QmlDebug: Restructure QPacket and QPacketProtocolUlf Hermann2015-11-173-70/+49
| | | | | | | | | | | | | | | | | | | | | | We cannot use the same data stream version for the client and server versions of QPacket and QPacketProtocol should not deal with QPackets but with simple byte arrays because the underlying QDataStream is hard to copy. The new QQmlDebugPacket picks its data stream version from QQmlDebugConnector now, which adjusts it when connecting. As there can only ever be one QQmlDebugConnector, we can keep the version static. The clients need to query the connection for the correct version. We may connect to several different servers sequentially or we may have a server running while using a client, and we don't want to confuse the versions between those. With this in place, all remaining occurrences of QDataStream are replaced with QPacket or QQmlDebugPacket. Change-Id: I3f6ba73fcbfad5e8df917c5feb9308116738a614 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Move QQmlDebugClient into separate static libraryUlf Hermann2015-10-309-677/+68
| | | | | Change-Id: Ib3daf9da2cf6798bd022cfcf54d11e565c9cb4ca Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Put QPacketProtocol into its own static libraryUlf Hermann2015-10-152-5/+7
| | | | | | | | | | | | We need it in 3 places in qtdeclarative and we could also use it in QtCreator. We don't want to bundle it with the debug client code as it is also necessary for the server. QPacket replaces QQmlDebugStream as it has the same purpose. This also fixes the inconsitent handling of data stream versions. Change-Id: I650fae353f267511c551b427d9169f4d718aa7f2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Properly test services arguments for QQmlDebugServerUlf Hermann2015-10-152-1/+29
| | | | | | | | | So far we have only tested that each service is still functional when the services:<service> argument is given on the command line. This test checks that services which aren't specified are indeed not loaded. Change-Id: Ica935da0337b2215898f65cf283d6e11365432a8 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Add missing "We mean it" comments to private headers.Friedemann Kleint2015-10-061-0/+11
| | | | | | Task-number: QTBUG-48594 Change-Id: Ifc207938de7f0c8995fc712df92665f222612647 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* Use signal/slot for passing messages through QQmlDebugServerUlf Hermann2015-07-312-9/+1
| | | | | | | | | | | | | | This results in much cleaner code than the previous implementation using QMetaObject::invokeMethod(). We have to use read locks now for adding and removing engines, as we should have done already before. If a condition is waiting on a write lock you cannot acquire a read lock from another thread. So, if we kept the write locks we wouldn't be able to receive messages while the engines are waiting. Change-Id: Icfe641601dec2f8d7181ae579146ed603d57a4c2 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Make QQmlDebugService::registerService() private and part of ctorUlf Hermann2015-07-301-1/+0
| | | | | | | | | | | | | | | | By forcing all debug services to register before the thread starts we can get rid of the complicated thread synchronization and have a more natural API for the services. We can also better enforce the thread situation when registering services in QQmlDebugServer now. QQmlProfilerService should not moveToThread() in its constructor as the thread has not been started, yet. The thread affinity of QQmlProfilerService doesn't make any difference anyway, as all relevant methods are protected by mutexes and it doesn't have any slots. Change-Id: I57db9e2bf94ec6884ede694715dadf5bfd687334 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Adapt to deprecation of QProcess::error(...) signalUlf Hermann2015-07-151-1/+1
| | | | | Change-Id: Icf708af4ab968c6592f78f90c3758e30dbe9195d Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>