AutoTest: Further optimize TestCodeParser::scanForTests()

When loading a Qt project, after the Scanning For Tests
finished, the scanForTests() blocks the main thread for
about 3.5 seconds on the calls to parser->init().

Refactor the code so that it operates on QSet<FilePath>
instead of QList<FilePaths>.

This patch constraints the freeze to about 40 ms.

Change-Id: I219b3e2abf2b7e5166eec08d83f4cdcb8e4a8098
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Jarek Kobus
2023-04-23 17:25:46 +02:00
parent 72bddf9f51
commit b9ca680b03
12 changed files with 47 additions and 46 deletions

View File

@@ -66,8 +66,8 @@ public:
void aboutToShutdown();
private:
bool postponed(const Utils::FilePaths &fileList);
void scanForTests(const Utils::FilePaths &fileList = Utils::FilePaths(),
bool postponed(const QSet<Utils::FilePath> &fileList);
void scanForTests(const QSet<Utils::FilePath> &filePaths = {},
const QList<ITestParser *> &parsers = {});
// qml files must be handled slightly different