Commit Graph

7307 Commits

Author SHA1 Message Date
Jarek Kobus
8f427c1c95 tst_QtcProcess: Move subprocesses into a separate executable
Don't invoke subcreator test in order to run a custom process.
Run a separate executable instead. The advantages are:
1. Faster test running (no need for QTest specific code path
   when running subprocess).
2. Don't use std::exit() from subprocesses as it doesn't
   clean up properly. Use qApp->exit() instead.
3. This should support returning NormalExit and proper
   exit code of subprocess in case the code wasn't 0.

Change-Id: I1395bd8a7873c95a594c3e054087f00c55a15376
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-04-05 11:40:00 +00:00
Marcus Tillmanns
c246caf7a9 sdktool: Change tests to use QTest
* Moved all sdktool code into a static library, allowing us to link against the actual functionality in unittests
* Convert all tests to proper unittests

Change-Id: I5c93be0faecbd8b68e0923655483c870a2f408b5
Reviewed-by: hjk <hjk@qt.io>
2022-04-04 14:27:46 +00:00
Jarek Kobus
ab11c4373b QtcProcess: Introduce done() signal
Introduce QtcProcess::done() signal. It's similar to
QtcProcess::finished() signal, but also emitted when
process failed to start (so after QProcess::FailedToStart
error occurred).

SshRemoteProcess::finished() signal was already behaving
like this. So, we remove special handling of
FailedToStart error in this class and connect all clients
of SshRemoteProcess to done() signal, instead of finished().

Task-number: QTCREATORBUG-27232
Change-Id: If4240e2172f3f706e812bca669a1d5b24bdc3285
Reviewed-by: hjk <hjk@qt.io>
2022-04-04 13:28:12 +00:00
Christian Strømme
e45766cdc8 Make the ExternalTools classes accessible outside core
Change-Id: I225c22bc48b123fec4420761879382ea0a424029
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-04-04 08:02:11 +00:00
Jarek Kobus
679a7ba7ef tst_QtcProcess: Rename ProcessChannelForwarding into ChannelForwarding
Amends 91c11c769f

Change-Id: Ib38edca1f720a313c42ee6224cbd9109fb50fa84
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-04-04 07:20:02 +00:00
Alessandro Portale
91c11c769f Utils: Add mergedChannels test to tst_QtcProcess
Change-Id: Ia6c25004ca37c97c0cfa61bc2eb944493f796217
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-03-31 22:32:11 +00:00
Eike Ziller
c84380cdc8 Merge remote-tracking branch 'origin/7.0'
Change-Id: Ib2267ddbb702564a6e1c8f6b1db802bc9c45759d
2022-03-31 15:32:42 +02:00
GPery
f99094a0b8 CppEditor: Fix indentation for structured binding
Structured bindings were parsed as lambdas instead

Fixes: QTCREATORBUG-27183
Change-Id: I3c88dc1012e55edfe417504c17f6138e3356651c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-03-29 14:21:11 +00:00
Eike Ziller
780f5da7c4 Merge remote-tracking branch 'origin/7.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/studiowelcome/recentpresets.h
	src/plugins/studiowelcome/userpresets.h

Change-Id: Ie573b945eb28347a36ee1b3582fbd6ab0c0f866c
2022-03-28 15:10:11 +02:00
Samuel Ghinet
3935c671dd QDS New Project Dialog fix: recents should include all project properties
Previously, only the wizard category, name, and size were saved for
recent presets. Solved the problem by using the same kind of store (and
struct type) for Recent presets as for User/Custom presets - this way
we can save all properties.

Other changes introduced:
* After user creates custom preset C, then creates a project from it
(resulting in the creation of a Recent preset R), if the user then
deletes custom preset C, then the recent preset R will remain -
previously, all recents of the custom preset were deleted
* Now we can have multiple recent presets with the same name and size -
so, no distinguishing feature inside the Presets view. User will have
to look at Details and Styles panes to view differences.
* Replaced .ini format with *.json file format.

Change-Id: I500e9ac9378d4b9a393c3b0833ef6a34f785585c
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-03-24 10:31:16 +00:00
Jarek Kobus
127ca236a7 Ensure we never encounter the message about destroying QProcess
Until we remove the process launcher / process reaper.

Change-Id: I9c68c40c3c856c0a515277b69fc3084ba2addbee
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-03-24 09:42:07 +00:00
Christian Stenger
c1b585933b Squish: Fix remove kits test
cmake is automatically running when re-opening a project
and creates a temporary kit which was different when using qmake.
Switch back to qmake and enhance later to support cmake as well.

Change-Id: Id3e1dc23c828a6e2af5454863e1349d9866dfa38
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-24 05:55:16 +00:00
Christian Stenger
fcddfe5a8c Squish: Fix project wizard test
Change-Id: Iabf4463ac535cab025db3ee808e61f5fe7054095
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-24 05:55:08 +00:00
Christian Stenger
e7f314e02a Squish: Fix local git test
The test was written for a qmake based project. Explicitly use
one as default build system has changed.

Change-Id: Iccf5761915708dd66ba73aeda25ca6b61a8c0b99
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-23 13:44:28 +00:00
Eike Ziller
ae6c974fb2 Merge remote-tracking branch 'origin/7.0'
Conflicts:
	src/plugins/android/androiddevice.h
	src/plugins/android/androidplugin.cpp
	src/plugins/android/androidplugin.h

Change-Id: I1a68354415283fe4a7450706520a576d2a1775e0
2022-03-23 14:16:07 +01:00
Robert Löhning
5b0b48177b Squish: Port tst_WELP03 to Python3
Change-Id: I997fb8cc44fab986b5f4e0aa6e6f1f92fccfd54a
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-03-23 13:14:18 +00:00
Jarek Kobus
ae49fb213b Ensure that after a call to waitForFinished() process is not running
Amends 5de5f1cf0a

Change-Id: I64db8c6736c6a7cc6805813f852faf1048ebb629
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-03-23 12:12:39 +00:00
Christian Stenger
34b94d8cd2 Squish: Update Welcome page test
Change-Id: I447addcba50e932886a8ed5e730a1eab663a2224
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-23 05:37:42 +00:00
Jarek Kobus
5de5f1cf0a QtcProcess: Add a test for crashing app
Ensure that when waitForFinished() didn't timeout
but the process has terminated, it returns true,
like QProcess does, in contrary to what QProcess'
documentation says.

Change-Id: I6af5034f4df7fc2e14a83bab74334a8abefe7a0f
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-03-22 11:30:24 +00:00
Christian Stenger
f69de8b5bc Tests: Fix compile
Amends 47bcb63854.

Change-Id: I34a867b3b0b868933937e37e8268b98078aa3023
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-03-21 07:59:19 +00:00
Robert Löhning
a2735ec024 Squish: Don't configure projects on Qt4 anymore
Change-Id: Ib09fc44323e09fa4d6a5d2428c35b5b6afe08f24
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-03-18 18:27:32 +00:00
Jarek Kobus
dabe2e1493 ProcessLauncher: Don't emit error twice on process crash
Behave the same as QProcess in this circumstances.

Change-Id: If8175ccb7102d6a561584ee73c2e5c5844f2770d
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-03-18 15:19:35 +00:00
Eike Ziller
b6f679d777 Merge remote-tracking branch 'origin/7.0'
Conflicts:
	src/plugins/webassembly/webassemblytoolchain.cpp

Change-Id: Ia75c783e3ecab1f97de2b5c73a0979c49da82009
2022-03-18 16:07:51 +01:00
Christian Stenger
4e47ed66c9 Squish: Fix qml indentation test
Adapt to default build system change.

Change-Id: I70b5869871d4fbb612d4b6a28beb5e73c2d8d88e
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-18 14:39:56 +00:00
Christian Stenger
de1a328390 Squish: Fix debugging console app test
Change-Id: I752dab65948952081752a805018cfc3b01193855
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-18 14:39:49 +00:00
Robert Löhning
48c3a02229 Squish: Update suite_QMLS
Change-Id: I2cf804362b965be77ff0cd6686c998664e6eee02
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-03-18 12:57:08 +00:00
Robert Löhning
59c32bcfbe Squish: Don't use Qt4 in tst_HELP04 anymore
Change-Id: Idebff8b0bfd75daf573ab870dedd984eac9d09d0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-03-18 12:56:31 +00:00
Christian Stenger
cc885348c7 Squish: Adapt to ui change
Change-Id: I0c896d5fa6d8fd814afec3206a2faae434da9dc7
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-18 11:31:54 +00:00
Robert Löhning
689d3d528e Squish: Update tst_CSUP01 and -02
Change-Id: I6e15545be1a92e43b5708dc5fdef456b8d2ab32d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-03-18 10:02:00 +00:00
Jarek Kobus
47bcb63854 Add new types of blocking processes
Change-Id: I7668d0ac94a4e949f7ea67d8a1c0c144af5bd541
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-03-18 09:35:44 +00:00
Eike Ziller
e914f42458 Merge remote-tracking branch 'origin/7.0'
Change-Id: I9c4ef46084fd392663c7c21c4ecdbc578ea28577
2022-03-18 08:42:02 +01:00
Robert Löhning
ab772c50be Squish: Update tst_cmake_speedcrunch
Change-Id: I46ab6f245a21546e6ebf20680f06b0cdd26eab8f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-03-17 21:35:44 +00:00
Eike Ziller
9fd2a059f6 Merge remote-tracking branch 'origin/7.0'
Conflicts:
	src/plugins/android/androiddevice.cpp
	src/plugins/docker/dockerdevice.cpp

Change-Id: Id16ba0d9993c9f608242622aceae0a2a6691e05e
2022-03-17 08:48:28 +01:00
Christian Stenger
a42b63ac05 Squish: Build speedcrunch with Qt5
Change-Id: I1fe79d6775b157fda26248917c9489edca88fd53
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-17 05:27:13 +00:00
Christian Stenger
66c5b1e11e RemoteLinux: Avoid unexpected password dialog in tests
Make the test depend on environment variables and give some
hint how to run the test correctly.
Beside this make the test work on Windows and share the setup
with ssh unit test.

Change-Id: I6bbf1ec863449512646ca2c51d13fec537beedbc
Reviewed-by: hjk <hjk@qt.io>
2022-03-16 16:44:27 +00:00
Christian Stenger
f43348c4f2 Squish: More corrections due to change of default build system
Change-Id: Ia221e1e84784f5218d14258fcc24dcac900d60ad
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-16 12:56:43 +00:00
hjk
42d7a96a67 Docker: Add some example for boot2qt kit setup
Change-Id: Ib4dfc474eee19d7e0f66bf5a76cd6c808df15efc
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
2022-03-16 12:51:42 +00:00
Christian Stenger
d24f13d66d Squish: Adapt to changes ui text
Change-Id: I03187ddecb7a5737a87a626135584458795aa633
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2022-03-16 05:18:18 +00:00
Christian Stenger
2907d60973 Squish: Handle build systems more appropriately
Change-Id: I43e89d76c4199a741a5606dd0d6de2165b8133c6
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-03-16 05:18:10 +00:00
Robert Löhning
82534fc979 Squish: Explicitly use qmake-based projects in suite_APTW
Creator's default build system is CMake now which broke the tests.

Change-Id: I901b44dd4545a297d0100da5d92aa1bea79e41d3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-03-15 08:24:20 +00:00
Assam Boudjelthia
e5ce9e9e76 Android: Get rid of the avd info fields in AndroidDeviceInfo
The AVD specific fields don't need to be carried out by QtC settings,
these can be read from the AVD's config file when they are needed.

This also is good because those values can change at any time,
either manually or by some other IDE like Android Studio, and thus
we don't really need to manage them ourselves.

The fields in question are: skin name, target name, sdcard size,
openGL status.

Change-Id: I86163500ec2fed035e32ec02ed17e182778db4a7
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-03-14 17:47:55 +00:00
Jarek Kobus
67497e6bc4 Compile fix
Amends cfe8b7ad88

Change-Id: I4a570c481cf631ee6650a5c9d3b0f0540df88671
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-03-14 09:41:42 +00:00
Jarek Kobus
cfe8b7ad88 Fix handling of unfinished lines by QtcProcess callbacks
Don't detect a call to QtcProcess::kill() from inside the
QtcProcess callback while awaiting inside QtcProcess::waitFor...().
That's not needed, since a call to kill() sends a stop message
to the process launcher, so we wait for confirmation
from process launcher instead. This may bring e.g. new
read data from the running process.

Fix a runBlockingStdOut() test so that when we write to the stdOut
from the running process we flush the unfinished line so that
it's not buffered inside the process.

Change-Id: I7944ac214d8cb9e10a71715a7ef8bfacab6df7c9
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-03-14 07:38:08 +00:00
Eike Ziller
cd8c4ced81 Merge remote-tracking branch 'origin/7.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: Ic02df53b880d0861d9d9ea0df3e0d381ae99f350
2022-03-11 09:50:48 +01:00
Alessandro Portale
a863958aa4 Utils: Silence MSVC deprecation warnings in tst_qtcprocess
warning: C4996: 'setmode': The POSIX name for this item is deprecated.
Instead, use the ISO C and C++ conformant name: _setmode. See online
help for details.

...same for 'fileno'

Change-Id: I85090b65532b17b535914b88de835d718f654f6a
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-03-11 08:04:35 +00:00
Jarek Kobus
b2331dd5f6 Fix paths to subprocesses when test is run from other directory
Now it's possible to run the test outside of directory
where the test is located.

Change-Id: I2a2c693d382917ac7b84488c8ccf161538b58238
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-03-10 10:27:29 +00:00
Jarek Kobus
e66bd6ed90 Simplify starting subCreator process even more
Use SUB_CREATOR_PROCESS macro for registering subprocess'
main() function.

Invoke registered subprocesses by a call to
invokeSubProcessIfRequired().

Substitute subTestCase env variables with TestCase subclasses.
This should make the code even more readable.

Amends bbb0270fb1

Change-Id: Id63b15841ea539f367dab4972a6ecbb298d277e7
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-03-10 08:42:56 +00:00
Christian Stenger
ced2b9c4c0 Tests: Fix build
Amends a7f867ab06.

Change-Id: I5854228fce2d4537305535c332a1a39b21619f62
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-03-10 07:38:30 +00:00
Christian Stenger
a09c5baedb Tests: Fix expected assert on Windows
Paths are os specific in this context.

Change-Id: Ida8f7a661ca005d0b624f4ce75727df420f51e9b
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-03-09 15:22:29 +00:00
Jarek Kobus
bbb0270fb1 Simplify starting subCreator process
Introduce SubCreatorConfig class that helps setting up
a Creator subprocess. This limits the code repetition.

Introduce SUB_CREATOR_PROCESS(subProcess) macro to easily define
environment variables referred to Creator subprocesses.
This macro also forward declares the subProcessMain()
function.

Match names of main subprocess functions with their
corresponding environment variables.

Group subProcessMain() functions near the corresponding
test function for clarity.

Change-Id: Ib4365cf18fddc1527ebc99accee1fbb974bbf7a1
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-03-09 12:17:14 +00:00