Commit Graph

38 Commits

Author SHA1 Message Date
Christian Stenger
ac14a1e038 AutoTest: Clean up header mess
Better decoupling and reduced binary size.

Change-Id: I4f6239979d9d7dae4ad92f19ec8420be38372c07
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-11-09 08:24:01 +00:00
hjk
430a33dcd9 Core/Utils: Migrate further to Utils::Id
The coreplugin/id.h header is kept for downstream for now.

Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-07-06 06:07:13 +00:00
Eike Ziller
1b431fe271 Move Id from Core to Utils
And add a compatibility wrapper for Core::Id, so we don't have to rename
all occurrences from Core::Id to Utils::Id.

This allows us to use Id also in Utils, which makes it possible to e.g.
move Core::InfoBar to Utils without work arounds.

Change-Id: I5555d05b4e52f09d501dbfe5d91252a982a97c61
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2020-06-18 05:58:23 +00:00
hjk
7158e67612 AutoTest: Move TestCodeParser and TestTreeModel ownership to plugin pimpl
Change-Id: I01b32aae894a4b419c8a067f604d5f04a2b14dfe
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-03-20 13:13:52 +00:00
hjk
d3f79fcc68 AutoTest: Use ITestFramework * instead of its id in some cases
Change-Id: Ic327e31185247b6479c78af8bf8156f44bb4bdfb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-03-16 12:18:29 +00:00
Christian Stenger
42edcc5771 AutoTest: Allow re-parsing with a sub-set of parsers
Avoid expanding parsing over all parsers if we trigger a
re-parse for a different parser and there is already a
re-parse postponed.

Change-Id: If74480fea2c671b32083fb7cf3f4dc4c418e6e33
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-09-17 13:05:44 +00:00
Christian Stenger
0d11d880ca AutoTest: Unify container usage in TestFrameworkManager
And provide an accessor for the framework's priority which
will be needed later on.

Change-Id: I5a2480699d9467ee50e2cc44b9d4ff58f9e8da88
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-08-22 13:34:23 +00:00
Christian Stenger
ad8e67cea3 AutoTest: Code cosmetics
Change-Id: I49a73b83b1b6857c34913db8f7c6818cf7a1a129
Reviewed-by: David Schulz <david.schulz@qt.io>
2018-06-19 07:40:09 +00:00
Christian Stenger
ecd8fd1198 AutoTest: Ensure reparse even for unlisted Qml files
Files containing Quick tests are not necessarily listed
inside the project file.
If such an unlisted file is updated we have to scan for tests
even if it is not part of the project otherwise it would not
get updated inside the test tree.

Task-number: QTCREATORBUG-18692
Change-Id: I4c4c67d50b4fff13138b0ab3c884f5ea48a7b8bf
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-08-25 07:16:43 +00:00
Eike Ziller
83b8c8fc15 Reduce CPU load of test parsing
Use a thread pool with reduced max thread count.

Task-number: QTCREATORBUG-18185
Change-Id: I18bd3de82365edaf21d8dcf9c89035da1ac74756
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-05-16 10:46:13 +00:00
Christian Stenger
9a126e37f9 AutoTest: Handle conflicting update triggers
If a postponed update should be done for a single parser only and
another full update for all is triggered the latter one would be
ignored which is wrong.
An update for all parsers should always have higher priority and
replace a possible scheduled update for a single parser.

Change-Id: I5e1e446c7dcb9ddbcaed4606ff87a894235b723e
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-03-08 14:16:35 +00:00
Christian Stenger
b273d7be6a AutoTest: Ensure that removing and adding qml files is noticed
Task-number: QTCREATORBUG-17805
Change-Id: I068f6925fc39813a504205c4ef8e8b9f9e911189
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-03-07 09:57:53 +00:00
Christian Stenger
69a94c2c28 AutoTest: Always parse if plugin is enabled
Remove the 'Always parse' setting and respective special handling.
This simplifies the handling of parsing for tests and removes
strange special handling that was introduced in earlier versions
and led more to confusion on the user side.

Change-Id: Ia4d122ed448244f3cb3876dda9930864afde9c28
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-12-12 10:57:47 +00:00
Christian Stenger
f967545c5a AutoTest: Fix handling of enabled state for code parser
Avoid unintentional re-enabling of the code parser.
Handling of the enabled state broke several times before,
therefore separate it from other states of the parser to
avoid breaking it again when not taking enough care while
refactoring or adding features related to states.

Change-Id: If1eb0dd649225f10bfc3bf06f09851649da75983
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-11-14 09:57:25 +00:00
Christian Stenger
2b27f30538 AutoTest: Reduce re-parsings while editing single file
Change-Id: If3dbcb3026733873881921cb9208b7c9da33c8de
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-10-26 10:00:10 +00:00
Christian Stenger
48b2af5e77 AutoTest: Cancel possible running tasks on shutdown
If tasks are running while shutting down we might end up in a crash,
so cancel all tasks and handle possible invalid accesses of the
current running processing.

Change-Id: I69f7cac5f44390e322fa301af6d6794270c95c2a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2016-07-15 09:18:01 +00:00
Christian Stenger
b570ee1b80 AutoTest: Fix initial parse when loading session
Avoid displaying tests from other projects of the same session
which have been indexed but do not belong to the current
startup project.

Change-Id: I6e0fb62cc97898ef3853ec61580dd2deb5ac64e5
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-07-07 11:58:30 +00:00
Orgad Shaneh
943c76f4ab AutoTest: De-slot and complete Qt5-style connects
Change-Id: I013b42523f163e123a0cee85f9d232815ad284e3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-06-29 09:01:28 +00:00
Christian Stenger
72e6dd2ab1 AutoTest: Avoid fetching WorkingCopy from multiple threads
Instead fetch it once before starting asynchronous processing and
accept that current state of the WorkingCopy might be not completely
up to date. This avoids a crash that might happen when the code model
tries to update the WorkingCopy while the test code parser fetches
information of the WorkingCopy.

Change-Id: I2a893bc8814090361305657ed3c3d772c7bf07d5
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2016-06-20 10:50:28 +00:00
Christian Stenger
8cba580343 AutoTest: Introduce active state for test frameworks
Change-Id: I0fddce91a239c0a51352a25e34a221fd8880b733
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2016-06-14 11:05:35 +00:00
Christian Stenger
5ef85949a8 AutoTest: Add test frame work handling
Mainly a preparation for enabling/disabling test frame works.

Change-Id: I0bbea7e055a607517ef8193587c229cadf0de027
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-06-09 11:50:26 +00:00
Christian Stenger
2f8b4b3fbf AutoTest: Move test framework related code...
...into files and respective sub folders.

Change-Id: Ic80d693bd73993a6e74b6d422349e47276e8cb6e
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-06-01 11:37:32 +00:00
Christian Stenger
0faf499461 AutoTest: Separate different test code parsers.
Change-Id: I7ff68be6e5442f7140d1257c7d9057434a398359
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-05-30 13:21:14 +00:00
Christian Stenger
ef2f37f6d5 AutoTest: Decouple item and model once more
Change-Id: I301f17dd8be7feb9dc61f483277a4835aea937af
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-05-27 11:24:27 +00:00
Christian Stenger
317a1d14d7 AutoTest: Unify test parse result implementations
This is also necessary for a uniform handling while adding or
updating test tree items, which in turn makes it possible to
separate model and items once more.

Change-Id: I84ff558d23490c8734b22062f00e03e8c06d6720
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-05-27 06:01:44 +00:00
Christian Stenger
b58a10dfff AutoTest: Split off TestParseResult...
...to allow different approaches for different test frameworks.

Change-Id: I16f101fb3f702a0db00cffe33e0d83cd4ea28c99
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-05-12 13:48:43 +00:00
Christian Stenger
db71490b1e AutoTest: Use (shared) pointer for parse results
This is necessary later on as we will need different sub-classes of
TestParseResult to support different test frameworks.
This avoids the necessarity to put all information inside a single
object even if it is not used.

Change-Id: I39c74ba06b9337608ece8b113b0993c0934b24b9
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-05-12 13:48:29 +00:00
hjk
39a38d5679 Wholesale conversion to #pragma once
Kudos to cgmb and https://github.com/cgmb/guardonce

Change-Id: Ifa8970734b8d43fd08c9260c645bdb0228633791
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-30 15:20:19 +00:00
Christian Stenger
507a7e89eb AutoTest: Fix enabling run buttons
If a parsing for tests is in progress the buttons might get enabled
but they should be disabled until the parsing has finished.

Change-Id: I3f089626983c219a9b54d8fc057a7ff51f11dc8c
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-03-17 10:00:12 +00:00
Christian Stenger
a4b747307e AutoTest: Fix flaky unit test
Since parsing and updating the tree model has been changed the
respective tests became flaky.

Change-Id: I82fcde51493bc86e2315018b21e9bacd8e8409a9
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-02-26 09:40:39 +00:00
Christian Stenger
956db366cb AutoTest: Avoid triggering aboutToPerformFullParse twice...
...when switching projects.

Change-Id: Id4c9e4e4691ef93cea1fa7e40643c549634f0215
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-02-16 11:49:11 +00:00
Christian Stenger
6ebd3cc7e8 AutoTest: Trigger onPartialParseFinished directly
Change-Id: I291712b5820c5bf84ee92621bc91497ec4264709
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2016-02-05 13:12:01 +00:00
Christian Stenger
7f61a590ab AutoTest: Do not pass pointers without owner between threads
Change-Id: I40e86716d1dd7c8a84e759e792042b84571fc2aa
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-02-05 09:09:31 +00:00
Christian Stenger
30b1e70c42 AutoTest: Report parse results through QFutureInterface
Change-Id: Ib99e9ae5efa26f01dd9c0b0bf5516e2e9dab73ce
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-02-04 06:05:14 +00:00
Christian Stenger
992f9ed222 AutoTest: Use mark and sweep for parsing
This also removes caching from parser and the respective test info
files are gone now as well.

Change-Id: Ibcea68e446dea532d6addd2f16863738e497bca4
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-02-01 08:31:52 +00:00
Christian Stenger
3d5bb6d0bb AutoTest: Prepare parsing function to get referencing files directly
Change-Id: I53b8db50d286dccc8ec9764ddb9a2c08d52fffb5
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2016-02-01 08:31:16 +00:00
Christian Stenger
9a0941277b AutoTest: Simplify caching for test information
We only need the referencing file in some cases.
First step for refactoring the code parser and the test tree model.

Change-Id: I713212461e4992863ef11a0a634c5d8d786a72a9
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2016-02-01 08:31:02 +00:00
Christian Stenger
15b4e6fc91 Delete unneeded and prepare directory structure...
...to get plugin's repository more easily integrated
into QC's repository.

Change-Id: I10243bb4283623ae951e799feacaa15915678e04
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-01-22 14:07:19 +00:00