| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to encode the scope type properly and we need to return
something from the "scope" command. Previously the client didn't even
get notified about QML contexts and couldn't actually retrieve anything
but call context. The other scope types are not terribly interesting
right now, but at least for the global context it should be possible to
provide more data in the future.
Task-number: QTBUG-68218
Change-Id: I88d3dbc15a93f19b00f6f12365e4fb64ec78862e
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
| |
There may not be a current stack frame and there may not be a function
in either the current frame or the global scope.
Change-Id: I15daf10586cf8895a9a80ccc3dd4bf4117a947c5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
| |
Previously this would crash as it tried to determine strict mode by
querying the function. Check the functions of out contexts, too, and
finally try the global context if none is found.
Change-Id: Ib21c2f4f242a67909944b71640a154ff181c33e1
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
| |
We need that in order to be able to break on the closing brace of a
function.
Change-Id: I4049f0553b01442025bda32c34fac6ce3d77246d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Debug instructions are used to trigger break points and are added for
every source line.
We also need to insert Debug instructions before Ret, so that we can
step out. We also need to assign line numbers to the entry and return
points of "abbreviated" QML functions (by simulating lbrace and
rbrace) so that we can set break points on them. The line numbers on Ret
need to be negative, so that you cannot (accidentally) set break points
on them. A typical signal handler or binding in QML consists of only one
line and if you set a break point on that line, you want it to hit only
once, when entering the function. If the line numbers on Ret were
positive, it would be hit again on exit. Some of the tests in
tst_qqmldebugjs implicitly check for that.
Also the new interpreter does something on the left brace, so a
function actually starts there, not on the first statement.
Change-Id: Id9dfb20e35696b420d0950deab988f7cc5197bfc
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
| |
Enable the tests, make them compile, and QSKIP the ones that don't work
for now.
Change-Id: Iaa175a8160b219be4054e8b9f7a3edff90f56505
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
|
|
|
|
|
|
| |
This way we can easily extract it and test it separately.
Change-Id: I05e78ac705a5b52ee978947f3e0aed596e0a03a0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
Change-Id: I31375151eb239f348bec988d2d0506c2b4d9604c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Apparently the blacklisting doesn't catch tests failures outside the
test function and using QTest::currentTestFailed() to handle that after
the fact is ugly.
Change-Id: I101abd3e8e467a5ca258a6019542251d26235139
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
| |
Amends 80e03bbd9a42401d50af450aff5351c3a0c95444 for dev, adapting
to tests in dev.
Task-number: Task-number: QTQAINFRA-1334
Change-Id: I1aede768f40f42bfc2af7caf342f7cf2d06c523a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Capturing the output of the started process mysteriously fails on
Windows with gcc. While the nested event loop is run, the readyRead()
signal is never emitted. Only after the timer fired and the event loop
is terminated, we receive the output we were expecting.
Some tests needed adapting to the initializing sub-function failing in
QVERIFY/QCOMPARE calls, in order for the process to not crash and the
blacklisting to work.
Task-number: QTQAINFRA-1334
Change-Id: I4804d94580e7db65595137d19d7b75d75c243257
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Large parts of the protocol are unnecessary. There is no reason to send
a separate chunk of "handles" with almost every reply. The refs are
given as part of the regular data and if the client wants to find out
more, it can do further lookups. Also, it makes no sense to encode the
function and script names as objects, as they are in fact not JavaScript
objects.
Unfortunately these cleanups require some cooperation from the client.
Older clients will misbehave if we just drop the redundancy. Therefore,
we introduce parameters which the client can explicitly set with
the "connect" message. redundantRefs tells the service if redundant
references are required, namesAsObjects tells it if script and function
names have to be sent as objects/
Once we can require clients that support these options, we can drop the
code that generates redundant data.
Also, fix tst_qv4debugger::evaluateExpression() to actually check all
the expressions evaluated, not only the first and second one.
Task-number: QTBUG-42435
Change-Id: If93d2a2b9d0b8035f85dbef871bc1b03f199171d
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Interpret the "context" option as an ID for a QObject whose QML context
is then injected when evaluating the expression. The QObject needs to
be tracked by some other debug service for this to work, e.g. the QML
debugger or the inspector.
Task-number: QTCREATORBUG-17177
Change-Id: I6a9e8b9ae23e8bb67ed1905a2ef73f7c4faeb990
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
| |
Remove #ifdef sections for Q_OS_WINCE and wince .pro file clauses.
Task-number: QTBUG-51673
Change-Id: I33ab74f0c2ce9086c3610c5fa727f281197b6b55
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I3c826a7b3ee9ff66fac89a7a3d6f0e7057f03eed
Reviewed-by: Antti Kokko <antti.kokko@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that we can evaluate expressions without pausing, we might as well
test for that. The race conditions should also be resolved by now.
Clarify the reason why the break-on-attach test cannot work (so that
whoever tries to fix it the next time doesn't have to figure it out
for the (n+1)th time) and remove some dead code.
Change-Id: Ib1aab03d40779c6876db914b852f05061a2be046
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Whenever the debugger is paused, there is exactly one engine that
caused the debuggerPaused() slot to be called. We can only interact
with that engine in any meaningful way.
Of course you can shoot yourself in the foot with this tool. You can,
for example, set a breakpoint that will be hit by multiple engines and
then get confused about which engine just hit the breakpoint. Similar
things are also possible with other kinds of debuggers, though. If this
becomes a problem we can add an engine ID to the responses.
Also, this does not fix the other debug services. So you might still
not see the "correct" locals and expressions from the
QQmlEngineDebugService while the debugger is not paused.
Task-number: QTBUG-49615
Change-Id: Ie044f0aedb51481c4cf851635d7c12839251cbd0
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
"macx" is deprecated.
Change-Id: Iefdd1aab8a221e39f0651368fd132a842210f58a
Reviewed-by: hjk <hjk@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Ib3daf9da2cf6798bd022cfcf54d11e565c9cb4ca
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I691b8ddff60b5f16f06d32b379c76e87f44f84a9
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
We don't want to load the debugger when profiling and vice versa. This
makes it easier to prevent unwanted services from getting loaded.
Task-number: QTBUG-47623
Change-Id: I28893b6218110274a6d30b27805d89dbb443add3
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/qml/debugger/qv4profilerservice/qv4profilerservice.pro
tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler.pro
Change-Id: I76d87e3df97ebdba902ca3d7488c1582eca2a83c
|
| |
| |
| |
| |
| |
| |
| |
| | |
The same function was duplicated 5 times in qtbase, so create one copy
to rule them all and use it also in QtDeclarative.
Change-Id: I4e39a7ee0541ce4fe9710cea344e537ee011bbe9
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The test is now passing in CI.
Change-Id: I9414e05d40fe373878afa43121fcfa7cf95fcbdf
Task-number: QTBUG-28263
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
|
|/
|
|
|
|
|
|
|
| |
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3 & LICENSE.GPLv2
- Removed LICENSE.GPL
Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also centralized the context state saver and added line number saving, so that the
JS jobs for evaluation of breakpoint conditions don't change the state of the current
engine context.
Task-number: QTBUG-37119
Task-number: QTCREATORBUG-11516
Change-Id: Ia21b3d64e239e5b67f3c07e1c006d8e6748f29b6
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
connect() starts the JS engine. Any break point set after that may be
missed because the engine has already passed its location when the
breakpoint request arrives. The problem can easily be visualized by
inserting an artificial delay (e.g. sleep(1)) between connect() and
setBreakpoint().
I'm also removing a piece of dead code that gets that wrong and has
never actually worked.
Change-Id: Ie4410ac3eaf89f02993c653b17148c14048652ab
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
| |
Request the scripts after hitting a breakpoint. The reason this test
could fail before, is that the engine might be calling into the debugger
even before any script was loaded.
Change-Id: Iba49f445ab97afaf2bb168b04063432ca2f9dddd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
| |
Currently missing, but coming in subsequent patches:
- evaluating expressions
- evaluating breakpoint conditions
Change-Id: Ib43f2a3aaa252741ea7ce857a274480feb8741aa
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
| |
These are also not (yet) implemented in the V4 debugging engine.
Change-Id: If47b97535e69117193b87d278131f19bd4120c57
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This tool simply runs QML files using a QQmlApplicationEngine.
It is configurable so as to behave, by default, like qmlscene in
that it will automatically place non-Window QtQuick 2 Items inside
a QQuickWindow with the size of the root item. The configuration
is extensible so that other GUI scenes can also use it by altering
the configuration files in their installation.
On OS X, it is an app bundle, and handles the QFileOpenEvent so that
it can be the tool with which qml files are usually launched by
double-clicking. (This does not break the ability to use it on the
command line too: the options still work, you just have to give the
path to the executable inside the bundle.)
Change-Id: I6bac813ce188be54842a78d7b532fcf2d54dc443
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
|
|
|
|
|
|
|
|
| |
Make sure we don't access an already deleted v8engine any more.
Task-number: QTBUG-33100
Change-Id: Ic517577ae30b41375cbf9f787cfe0a29121171e2
Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tst_qqmldebugjs:
Some WINCE header files define IN and OUT macros, and those make
the following assignments in tst_qqmldebugjs.cpp to fail later on:
const char *IN = "in"
const char *OUT = "out"
Since platform macros are not needed in the context of this file,
undef them to make build pass for WinCE.
tst_qquickfolderlistmodel:
WinCE does nothave drive letter concept, so lets execute the
changeDrive test only on desktop Windows.
Change-Id: I5c159e3b3ee82e888aeac1da559fd63a875d089e
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
|
|
|
|
|
|
|
|
| |
This reverts commit c4b4b01d8ea708f7a1c4cb5adaed8f4abdc623a3.
The testcase is still flaky on OSX.
Change-Id: I6970b681c3172f7074c00b38c3362d5f212392ab
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The test cases used to depend on a specific port being free for
client-server communication. Since, the test cases now use a port
range, they should be more stable now. The timeout has also been
increased from 5s to 10s to ensure that the application output
is read.
Task-number: QTBUG-28263
Change-Id: I7f0670713b8a901e4da3c3d62bbb9fc18e38bd25
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
Allow a port range to pass on command line, and try to listen on any of the
ports in the range. (Re)using the ',' separator allows for backwards compatibility,
that is, also Qt 4 will accept a -qmljsdebugger=port:1000,1010 argument, but
will only try to listen on port 1000.
Change-Id: Ic03fe20e4aee9ecdea86651f46f1df5cb19bd75c
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
|
|
|
|
|
|
| |
Change-Id: I6c3bd7bebe3d62d1cfd0fa6334544c9db8398c76
Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test has been failing often on Mac. It seems that test case only
fails with Qt5 master integration, but not with QtDeclarative CI. This
test has now failed twice consecutive in virtualized Mac OSX machines.
Since I'm going to add some more virtual Macs to CI tomorrow morning,
making this test case insignificant to avoid good changes integrating
in additional capacity.
For more information, see the following bug report.
Task-number: QTBUG-28263
Change-Id: I3492373f4f034c27fdbc207e395a40ef96dccbd9
Reviewed-by: Samuli Piippo <samuli.piippo@digia.com>
Reviewed-by: Simo Fält <simo.falt@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Before, it assumed that the root is an Item and needs to have a
Window created. But it's useful for an application to have a Window
as the root, and it was already possible by writing a different C++
main function (see qtdeclarative/examples/window/window/window.cpp).
It doesn't take much to give qmlscene this flexibility too.
Change-Id: Ie808e78a42074e13aa9d3c87723ec9ac8fdbaf4a
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Some tests when failing would leave the process running.
For example on my machine tst_qqmlinspector would hang and
restarting it would not work because the before started process was
still blocking the port.
Change-Id: I32dfb4874b18d7dcf34d0f40819b17dedd794ff3
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
|
|
|
|
|
|
|
| |
Change copyrights and license headers from Nokia to Digia
Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The V8 natve sort implementation calls some functions that are
incompatible with the way sequence wrappers work. In particular,
it calls an internal length() function which does not pass through
the length accessor provided by sequence wrappers, so the sort
function always thinks the array is zero length. Instead, clone the
array prototype and override the sort function with one that is
specific to sequence wrappers.
Task-number: QTBUG-25269
Change-Id: Ic83b9ee0bd3a0707e512f28057f0f99b432fded4
Reviewed-by: Matthew Vogt <matthew.vogt@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
Qt 5.0 beta requires changing the default to the 5.0 API, disabling
the deprecated code. However, tests should test (and often do) the
compatibility API too, so turn it back on.
Task-number: QTBUG-25053
Change-Id: I6988c2360e9d88916311374a0c910bfc5b607439
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|