ProjectExplorer: Use RAII pattern for parsing start/stop signalling

Change-Id: I13de537140f265db3e3d0ab1cd924d6897cd90c8
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Tobias Hunger
2019-08-06 14:46:37 +02:00
parent 8868989d5c
commit 09530d6dcc
18 changed files with 143 additions and 69 deletions

View File

@@ -1014,15 +1014,6 @@ public:
setDisplayName(TEST_PROJECT_DISPLAYNAME);
}
void testStartParsing()
{
emitParsingStarted();
}
void testParsingFinished(bool success) {
emitParsingFinished(success);
}
bool needsConfiguration() const final { return false; }
};
@@ -1081,14 +1072,17 @@ void ProjectExplorerPlugin::testProject_parsingSuccess()
QSignalSpy startSpy(&project, &Project::parsingStarted);
QSignalSpy stopSpy(&project, &Project::parsingFinished);
project.testStartParsing();
QCOMPARE(startSpy.count(), 1);
QCOMPARE(stopSpy.count(), 0);
{
Project::ParseGuard guard = project.guardParsingRun();
QCOMPARE(startSpy.count(), 1);
QCOMPARE(stopSpy.count(), 0);
QVERIFY(project.isParsing());
QVERIFY(!project.hasParsingData());
QVERIFY(project.isParsing());
QVERIFY(!project.hasParsingData());
guard.markAsSuccess();
}
project.testParsingFinished(true);
QCOMPARE(startSpy.count(), 1);
QCOMPARE(stopSpy.count(), 1);
QCOMPARE(stopSpy.at(0), {QVariant(true)});
@@ -1104,14 +1098,15 @@ void ProjectExplorerPlugin::testProject_parsingFail()
QSignalSpy startSpy(&project, &Project::parsingStarted);
QSignalSpy stopSpy(&project, &Project::parsingFinished);
project.testStartParsing();
QCOMPARE(startSpy.count(), 1);
QCOMPARE(stopSpy.count(), 0);
{
Project::ParseGuard guard = project.guardParsingRun();
QCOMPARE(startSpy.count(), 1);
QCOMPARE(stopSpy.count(), 0);
QVERIFY(project.isParsing());
QVERIFY(!project.hasParsingData());
QVERIFY(project.isParsing());
QVERIFY(!project.hasParsingData());
}
project.testParsingFinished(false);
QCOMPARE(startSpy.count(), 1);
QCOMPARE(stopSpy.count(), 1);
QCOMPARE(stopSpy.at(0), {QVariant(false)});