forked from qt-creator/qt-creator
ClangPchManager: Fix deferred project parts
Change-Id: Ie760c0dd269c643a147d7edf3f1b812cd27fe4c4 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
@@ -66,6 +66,8 @@ void PchManagerServer::updateProjectParts(UpdateProjectPartsMessage &&message)
|
||||
if (m_generatedFiles.isValid()) {
|
||||
m_pchTaskGenerator.addProjectParts(std::move(newProjectParts),
|
||||
std::move(message.toolChainArguments));
|
||||
} else {
|
||||
m_projectParts.updateDeferred(newProjectParts);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -47,6 +47,7 @@ using Utils::SmallString;
|
||||
using ClangBackEnd::V2::FileContainer;
|
||||
using ClangBackEnd::V2::FileContainers;
|
||||
using ClangBackEnd::ProjectPartContainer;
|
||||
using ClangBackEnd::ProjectPartContainers;
|
||||
|
||||
class PchManagerServer : public ::testing::Test
|
||||
{
|
||||
@@ -198,8 +199,11 @@ TEST_F(PchManagerServer, DontGeneratePchIfGeneratedFilesAreNotValid)
|
||||
{
|
||||
InSequence s;
|
||||
|
||||
EXPECT_CALL(mockProjectParts, update(ElementsAre(projectPart1)))
|
||||
.WillOnce(Return(ProjectPartContainers{projectPart1}));
|
||||
EXPECT_CALL(mockGeneratedFiles, isValid()).WillOnce(Return(false));
|
||||
EXPECT_CALL(mockPchTaskGenerator, addProjectParts(_, _)).Times(0);
|
||||
EXPECT_CALL(mockProjectParts, updateDeferred(ElementsAre(projectPart1)));
|
||||
|
||||
server.updateProjectParts(
|
||||
ClangBackEnd::UpdateProjectPartsMessage{{projectPart1}, {"toolChainArgument"}});
|
||||
@@ -209,8 +213,11 @@ TEST_F(PchManagerServer, GeneratePchIfGeneratedFilesAreValid)
|
||||
{
|
||||
InSequence s;
|
||||
|
||||
EXPECT_CALL(mockProjectParts, update(ElementsAre(projectPart1)))
|
||||
.WillOnce(Return(ProjectPartContainers{projectPart1}));
|
||||
EXPECT_CALL(mockGeneratedFiles, isValid()).WillOnce(Return(true));
|
||||
EXPECT_CALL(mockPchTaskGenerator, addProjectParts(_, _));
|
||||
EXPECT_CALL(mockProjectParts, updateDeferred(_)).Times(0);
|
||||
|
||||
server.updateProjectParts(
|
||||
ClangBackEnd::UpdateProjectPartsMessage{{projectPart1}, {"toolChainArgument"}});
|
||||
|
Reference in New Issue
Block a user