ClangPchManager: Improve handling of no include in project PCH

We were doing simply nothing but we should call
PchCreator::doInMainThreadAfterFinished().

Change-Id: Ia21d2cf4af53121d9e401f6e9a5b432a4daed00f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2019-05-22 15:08:55 +02:00
parent b213dee013
commit b36e9d0e95
3 changed files with 36 additions and 9 deletions

View File

@@ -315,6 +315,36 @@ TEST_F(PchCreatorVerySlowTest, FaultyProjectPartPchForCreatesFaultyPchForPchTask
Field(&ProjectPartPch::lastModified, Gt(0))));
}
TEST_F(PchCreatorSlowTest, NoIncludes)
{
pchTask1.includes = {};
creator.generatePch(std::move(pchTask1));
ASSERT_THAT(creator.projectPartPch(),
AllOf(Field(&ProjectPartPch::projectPartId, Eq(pchTask1.projectPartId())),
Field(&ProjectPartPch::pchPath, IsEmpty()),
Field(&ProjectPartPch::lastModified, Gt(0))));
}
TEST_F(PchCreatorSlowTest, NoIncludesInTheMainThreadCalls)
{
pchTask1.includes = {};
creator.generatePch(std::move(pchTask1));
EXPECT_CALL(mockPchManagerClient,
precompiledHeadersUpdated(
Field(&ClangBackEnd::PrecompiledHeadersUpdatedMessage::projectPartIds,
ElementsAre(Eq(creator.projectPartPch().projectPartId)))));
EXPECT_CALL(mockClangPathWatcher,
updateIdPaths(
ElementsAre(AllOf(Field(&ClangBackEnd::IdPaths::id, 1),
Field(&ClangBackEnd::IdPaths::filePathIds, IsEmpty())))));
EXPECT_CALL(mockBuildDependenciesStorage, updatePchCreationTimeStamp(Gt(0), Eq(1)));
creator.doInMainThreadAfterFinished();
}
TEST_F(PchCreatorVerySlowTest, GeneratedFile)
{
creator.clear();