Commit Graph

3319 Commits

Author SHA1 Message Date
Eike Ziller
a9a5972a9f iOS: Add some autotests for devicectl error parsing
Change-Id: I641f0c86b30a11ca6321db88afbf2969b4863972
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2024-01-30 07:56:31 +00:00
Marcus Tillmanns
dbee11f5b4 Environment: Fix incorrect usage of appendOrSet
appendOrSet will append to existing environment variables which is not
what we want for all the changed locations in this commit.

Change-Id: Icf6b110acc59261659839375672943ec21923da1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2024-01-26 10:33:34 +00:00
Marcus Tillmanns
a25bbf23c6 Utils: Fix error prone default value of appendOrSet
It was not readily clear that Environment::appendOrSet/prependOrSet
needed a value for "sep", otherwise it would just concat the values without separator. This got apparent when looking at usages of
appendOrSet.

Instead there are now three options, "Auto", "Colon" or "Semicolon"
with the default being "Auto", which determines the separator based on
the Environment::OsType.

Usages of appendOrSet and prependOrSet are also fixed with this commit.

Change-Id: I868e14ce38f50be9cd07292fe3f22663a62d116d
Reviewed-by: hjk <hjk@qt.io>
2024-01-26 10:10:03 +00:00
Jarek Kobus
983fc4bcf6 TaskTree: Rename stop() -> cancel()
This better corresponds to done handlers called
in this case with DoneWith::Cancel.

By the way, get rid of unused LocatorFilter::stop().

Change-Id: Ie4246b8d888fff95940a2ed41367d2817bd6339c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2024-01-25 09:26:12 +00:00
Jarek Kobus
acf42bf90d Utils: Add synchronizedvalue.h into cmake and qbs
Amends 35a2d598ab

Change-Id: I64d76896c8bfbe4b48e2593118b209e3ae187a87
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2024-01-25 08:52:05 +00:00
Jarek Kobus
359ab928b1 TaskTree: Add tests for Group's CallDoneIf
Change-Id: I7140c1c7e28f6f503520ad05e6dcd613dcec2df3
Reviewed-by: hjk <hjk@qt.io>
2024-01-24 11:52:40 +00:00
Jarek Kobus
63fc22e274 Process: Change signature of waitForXxx() functions
Change the arg to QDeadlineTimer type.

Change-Id: Id3dee0717e44130c16baf7925e5b06346a1a1ad1
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2024-01-23 07:09:22 +00:00
Jarek Kobus
afc67468e6 Process: Get rid of setTimeoutS()
Add an extra arg to runBlocking() function instead.
Use std::chrono::seconds for timeout.

Change-Id: I7c3c21e8f26a2ccbed157d15083d6ef0b4cd2f7e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2024-01-22 20:27:51 +00:00
Jarek Kobus
f6be85b1d2 Process: Refactor timeout handling
Rename ProcessResult::Hang into Canceled.

Change the behavior of the Process:
Whenever the terminate() or kill() is called, including
indirect calls through stop() or runBlocking()'s timeout,
mark the process result as Canceled.
In this way the Process running by a call to start()
may also finish with Canceled state. Before it was only
happening for processes started via runBlocking().

Adapt the runBlockingStdOut_data() test accordingly.

Get rid of ProcessInterface::m_canceledByUser field.
Use ProcessResult::Canceled state instead.

Fix existing 3 usages of m_canceledByUser field.
Use standarized exitMessage() method for them.

Add automatic measurement of process execution.
Introduce processDuration() getter.
Use it for reporting exitMessage() instead of timeoutS().

Change-Id: I1a68559ce844caef863a97a6b0577b0238011f70
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2024-01-22 20:27:38 +00:00
Jarek Kobus
290121bc21 Process: Use more rawStd{Out,Err} const methods instead of mutable ones
Avoid using readAllStandard{Output,Error} mutable methods if possible.
Use non-mutable methods when we are not connected to
readyReadStandard{Output,Error} signals.

Change-Id: I2e830e571b9eab2177fd856bbe06dfc5137d9c01
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2024-01-21 17:21:25 +00:00
hjk
d234e71643 All: More ToolChain->Toolchain renamings
And removal of one unused function declaration.

Change-Id: I594e23401d8f247d3be081ce850005574951899d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2024-01-19 10:29:33 +00:00
Eike Ziller
2865f6eae0 Examples: Read and handle "documentation dependencies"
Some examples are defined in a Qt module (and therefore examples-
manifest), but have dependencies on other modules.

The example-manifests contain a `module` attribute for their
`instructionals` tag, and examples can contain "docdependencies" items
in their meta data, which are comma-separated lists of these module
names. Read the `module` attributes (the meta data is already
generically read) and check if the current set of examples-manifest
contains all required ones for an example. Hide it, if not.

Task-number: QTBUG-120759
Change-Id: Ib8ff80cf8a13965e57b5c4317e5d121c4127278b
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
2024-01-19 09:44:53 +00:00
Jarek Kobus
14f6954026 TaskTree: Disconnect from task's done() signal on destruction
If a task or task's adapter sends done() signal directly
from the destructor (which isn't really desired),
ensure we disconnect from this signal beforehand,
otherwise this may start invoking normal handling of task done()
and interfere with the destruction.

Fix NetworkQuery d'tor.

Add a test for it.

Add some TODO items.

Fixes: QTCREATORBUG-30204
Change-Id: I56a34d0f00c961c15bd1bcffef45520a4be5bce0
Reviewed-by: hjk <hjk@qt.io>
2024-01-15 08:29:57 +00:00
Jarek Kobus
1bf2c447d3 Process: Add a test for starting unexisting process
With different combinations of processImpl and eventLoopMode.

Change-Id: I7a066741f46bc51c1d670527e03358cd77d6b29e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2024-01-13 13:38:59 +00:00
Jarek Kobus
7802e475ce Process: Fix EventLoopMode::On
Queue the call to start() so that it's executed after the nested
event loop is started, otherwise it fails on Windows with QProcessImpl.

Fixes: QTCREATORBUG-30066
Change-Id: Ibb17ef0f668f52c05b26a521e18c94e637992ba5
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2024-01-13 13:38:49 +00:00
Jarek Kobus
85a27b3ddd TaskTree: Implement progress reporting for LoopRepeat
When a number of repeats is known in advance,
make the progress reporting aware of it.

Add a test for it.

Change-Id: I676a4aa9eb469cfe40a2729d231c706dff3ca07c
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2024-01-13 03:02:41 +00:00
Jarek Kobus
db43e5d679 TaskTree: Introduce LoopUntil
In order to conform better with LoopRepeat and LoopForever.

Change-Id: Ic14cd072dc04951c0b142fd7379daf5541823a9a
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2024-01-12 18:16:03 +00:00
Alessandro Portale
2a2772ba40 Utils: Add test case eventLoopMode to tst_Process
On Windows, Process::runBlocking(EventLoopMode::On) and
ProcessImpl::QProcess fails with ProcessResult::StartFailed.

Task-number: QTCREATORBUG-30066
Change-Id: I25317300023f4f7c16a8a62c4c3f1048482735a4
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2024-01-12 10:02:25 +00:00
Jarek Kobus
e8904041c2 TaskTree: Introduce Forever group
Rename Forever -> LoopForever, Repeat -> LoopRepeat.

Change-Id: Ic999c876762d2b092f23ae88ea6de341b68a1fc2
Reviewed-by: hjk <hjk@qt.io>
2024-01-11 11:34:43 +00:00
Jarek Kobus
9dd3ab12f5 tst_settings.cpp: Get rid of Utils namespace specifier
We are already using namespace Utils in this file.

Change-Id: I6e2f431029bbc27f425be2ad618a98733b618222
Reviewed-by: hjk <hjk@qt.io>
2024-01-11 10:53:18 +00:00
Jarek Kobus
3f1a381c58 TaskTree: Add tests for Loop functionality
Task-number: QTCREATORBUG-30081
Change-Id: I999a5ea1fc887a2a5de6497acc3642abb187ef74
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2024-01-10 09:46:58 +00:00
Jarek Kobus
ebaa13e277 TaskTree: Fix typo in test cases
Change-Id: Ie65e68b61643a8de8eec8d039cd4f874ec6fdd1f
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2024-01-10 07:58:15 +00:00
Jarek Kobus
24649c4980 TaskTree: Add a test for nested cancel
Change-Id: I5d4d329e6c069e744d25d6f94e1d33b53f288f13
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2024-01-08 08:42:00 +00:00
Jarek Kobus
16b40c5bb6 TaskTree: Fix stop() method
Reset internal data after a call to stop().
Add a test for restarting the task tree.

Change-Id: Iedf11d97c33c9001c818078abc816e3c483c42b8
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2024-01-08 08:09:25 +00:00
Jarek Kobus
23ed1977da TaskTree: Keep a stack of active storages
Make it possible to run a nested task tree containing
the common storage from the outer task tree's handler.
This means we need to manage the stack of active storages
per thread.

Add a test for it.

This addresses the 4th point in the report below.

Task-number: QTCREATORBUG-29103
Change-Id: Ib0f925048197625a0eb9f83f262c7256a5756cc8
Reviewed-by: hjk <hjk@qt.io>
2024-01-08 07:08:30 +00:00
Jarek Kobus
2fca517068 Process test: Fix flakiness on linux / mac (2nd try)
It looks like when the running process outputs the newlines,
reading it may be split into separate chunks.

Avoid newlines in this test and use std::flush instead.

Amends bc3e30e7ec

Change-Id: I46be774b5509a1f0f60b289f6b6ffc9b46955b8f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2024-01-05 13:05:51 +00:00
Jarek Kobus
bc3e30e7ec Process test: Fix flakiness on linux / mac
Since it's not clear why the flakiness existed, leave a TODO note.

Change-Id: Ief1104870c008e056d5b87880b508fd66266bce4
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2024-01-04 20:44:38 +00:00
David Schulz
5117ca3280 Debugger: Adjust lldbbridge and test for lldb on windows
Since frame 0 points to the Windows DebugBreak function it does not hold
any usable locals, so we have to pass the correct frame to the
lldbbridge test infrastructure in order to get usable data.

Change-Id: I2595be87a718d73fda3429017efd564e5d0ed9be
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2024-01-03 10:06:21 +00:00
David Schulz
4b088bd226 Debugger: simpify cdb test setup
Change-Id: I196cee8fa6b35b78dae0b2e7db2c708736b39daa
Reviewed-by: hjk <hjk@qt.io>
2023-12-22 09:27:23 +00:00
Cristian Adam
aec3e7dbf2 Debugger: Enable lldb with MSVC binaries
This commit will enable running of tst_dumpers on Windows using a MSVC
setup and lldb.exe as debugger.

Change-Id: I17611cc90ba2a04ec21aae11af16f1d0ff8e894f
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-12-22 09:25:37 +00:00
Artem Sokolovskii
d8561ccb2d SyntaxHighlighter: Fix tst_highlighter
Change-Id: I96c6c7b9843384d14bfa37b6bfdd494c881949af
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-12-18 09:00:57 +00:00
Artem Sokolovskii
62ea85ee6a SyntaxHighlighter: Move SyntaxHighlighter to separate thread
This change involves the relocation of SyntaxHighlighter processing
to another thread. The core idea is to create a duplicate of the
original TextDocument using SyntaxHighlighterRunnerPrivate::cloneDocument.
A new SyntaxHighlighter is then instantiated by SyntaxHighLighterCreator
for the cloned document. The entire SyntaxHighLighterCreator class is
moved to a new thread, where it performs highlighting on the cloned
document. Upon completion of the highlighting process, the resultsReady
signal is emitted, and the updated highlighting data is applied to the
original document.

This shift of SyntaxHighlighter to another thread enhances the user
experience by preventing UI slowdowns during the highlighting process.

- Introduction of BaseSyntaxHighlighterRunner as an interface class for
future *SyntaxHighlighterRunner.
- Inclusion of DirectSyntaxHighlighterRunner class for performing
highlighting in the main thread, suitable for syntax highlighters
that cannot be moved to another thread.
- Introduction of ThreadedSyntaxHighlighterRunner class for highlighting
in a separate thread, preventing UI blocking during the process.
- Addition of Result data to the SyntaxHighlighter class to facilitate
data exchange between threads.

Task-number: QTCREATORBUG-28727
Change-Id: I4b6a38d15f5ec9b8828055d38d2a0c6f21a657b4
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-12-11 09:55:02 +00:00
Cristian Adam
6caf0f0d59 Testsleep: Fix CMake configuration error when test is disabled
If the user has a minimal configuration and the test is not enabled the
call to set_target_properties will fail because the target does not
exist.

Change-Id: I084c53e8d78d92547c1592edc0a19f48d4e76327
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2023-12-07 11:22:05 +00:00
Jarek Kobus
a737ddd931 Process: Use GeneralProcessBlockingImpl for QProcess implementation
This should fix the Process::waitForReadyRead() when the data
appeared on stdErr channel and not on stdOut channel.

Amends ec722b9132

Change-Id: Ib9f361f4d1602487bdbbb735e55d0ad24fb5e4c3
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-12-07 10:47:59 +00:00
Jarek Kobus
db4486e915 Process: Add a test for waitForReadyRead on error channel
Currently it works only in case of ProcessLaucher implementation.
The issue with QProcess implementation is that we need to
select the active channel in advance with QProcess::setReadChannel(),
what really doesn't make sense, since we can't predict on which
channel we will receive the data.

Currently we don't have setReadChannel() method inside Process API.

Change-Id: I23592e37f2ed5e3326bead445a9c6c6500d0e615
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2023-12-07 10:47:50 +00:00
Jarek Kobus
2304dbb395 Process: Make multiRead test platform independent
Change-Id: Ife58e7b2a41ac35f8137acfc66ff827672f75de9
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-12-07 10:47:45 +00:00
Jarek Kobus
1ea1ea7747 Process: Add a test for reading the errorChannel
Change-Id: I3b1d35c8ef2be91ddd1591a0fa2dafedc268f916
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-12-07 10:47:39 +00:00
Marcus Tillmanns
0e59c9e4e1 Utils: Add "findOr(..., nullopt, ...)" function
findOr(nullopt) returns either a value or a std::nullopt for the first entry
in a container where the predicate returned true.

This makes it easy to write constructs like:

if (auto found = Utils::findOr(container, std::nullopt, [](auto){ ... condition ...}) {
...
}

Change-Id: I6f8f0f9c0d8486c32395123d8c2dcba427887189
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-12-04 10:24:17 +00:00
David Schulz
48a77b5b09 Revert "Aggregation: Fix crash when components are in parent-child relationship"
This reverts commit 12428bf1d6 because it triggers a qassert
in QObject::setParent when the object is a widget.

Change-Id: Ib9b76192f548cd3201fcb78a19ea88ccb5782ba2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-11-29 05:20:19 +00:00
Eike Ziller
12428bf1d6 Aggregation: Fix crash when components are in parent-child relationship
and the child is deleted first.

Change-Id: Idea3b4a3410bda99a8727551e2cbeab3a7b95d85
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-11-28 12:00:08 +00:00
Jarek Kobus
ce80a6dad5 TaskTree: Rename TreeStorage<> -> Storage<>
This addresses the 20th point in the master task below.

Task-number: QTCREATORBUG-28741
Change-Id: I696beda87430fbe637abba8054012fb77516e220
Reviewed-by: hjk <hjk@qt.io>
2023-11-20 08:25:50 +00:00
Jarek Kobus
767bb30b11 TaskTree: Hide more internals inside StorageBase class
Rename storage internals.

This addresses the 20th point in the master task below.

Task-number: QTCREATORBUG-28741
Change-Id: I1ed42472060de6180d4665d6504598adb57828fe
Reviewed-by: hjk <hjk@qt.io>
2023-11-20 07:48:04 +00:00
Jarek Kobus
ced3052e7f TaskTree: Get rid of Storage subclass of GroupItem
Make the c'tor of the GroupItem taking the TreeStorageBase
public instead.

This addresses the 20th point in the master task below.

Task-number: QTCREATORBUG-28741
Change-Id: I78320ec24b4e4b915ab549135fb93b45c658b9f2
Reviewed-by: hjk <hjk@qt.io>
2023-11-20 07:47:54 +00:00
Jarek Kobus
73bff6d497 TaskTree: Fix TimeoutTask ordering
Make ordering separate for each thread.
Add stress test for it.

Change-Id: Idb42ce2511b18c0e9dd4dcb216ca39b35b5c980e
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-11-17 17:09:19 +00:00
Jarek Kobus
659f0f000c TaskTree: Unify TaskInterface::done(DoneResult) signal
Change the argument of TaskInterface::done() signal
from bool into DoneResult. Make it consistent with
other TaskTree API.

Introduce toDoneResult(bool success) helper.

Change-Id: I7b3041d7c1ed0317c76adbc1fd37448231e85f82
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2023-11-17 09:44:20 +00:00
Tim Jenssen
9f1d23df00 Merge remote-tracking branch 'origin/qds/dev'
Change-Id: Ic852bc9977d0292fb6cd93a319f4bfdebb22a1b0
2023-11-16 17:17:46 +01:00
Tim Jenssen
39d1dae0d3 Merge remote-tracking branch 'origin/12.0' into qds/dev
Change-Id: Ic6e557806a3209e2c6d983d3c3fcfad66f6e3066
2023-11-16 15:56:06 +01:00
Christian Stenger
e38c84d5db Tests: Fix warning and test execution on Windows
Avoids

 warning C4566: character represented by universal-character-name
 '\u23F0' cannot be represented in the current code page (1252)
and the resulting test fail on Windows.

Change-Id: I2bdd43b0648a954faa9e444df79a91027e6e891f
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-11-15 16:32:24 +00:00
Jarek Kobus
37ed2ce42f TaskTree: Add tests for ConcurrentCall
Change-Id: I493ab170656a61a841614dff87495fa324336c45
Reviewed-by: hjk <hjk@qt.io>
2023-11-15 16:21:43 +00:00
Jarek Kobus
62ad0014f1 TaskTree test: Simplify subprocess name
Fix the qbs build.

Amends 63bfeba87f

Change-Id: I271e5059ba8becf4aade8ce21ff9f40201f3734b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-11-15 15:00:26 +00:00