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()) {
|
if (m_generatedFiles.isValid()) {
|
||||||
m_pchTaskGenerator.addProjectParts(std::move(newProjectParts),
|
m_pchTaskGenerator.addProjectParts(std::move(newProjectParts),
|
||||||
std::move(message.toolChainArguments));
|
std::move(message.toolChainArguments));
|
||||||
|
} else {
|
||||||
|
m_projectParts.updateDeferred(newProjectParts);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -47,6 +47,7 @@ using Utils::SmallString;
|
|||||||
using ClangBackEnd::V2::FileContainer;
|
using ClangBackEnd::V2::FileContainer;
|
||||||
using ClangBackEnd::V2::FileContainers;
|
using ClangBackEnd::V2::FileContainers;
|
||||||
using ClangBackEnd::ProjectPartContainer;
|
using ClangBackEnd::ProjectPartContainer;
|
||||||
|
using ClangBackEnd::ProjectPartContainers;
|
||||||
|
|
||||||
class PchManagerServer : public ::testing::Test
|
class PchManagerServer : public ::testing::Test
|
||||||
{
|
{
|
||||||
@@ -198,8 +199,11 @@ TEST_F(PchManagerServer, DontGeneratePchIfGeneratedFilesAreNotValid)
|
|||||||
{
|
{
|
||||||
InSequence s;
|
InSequence s;
|
||||||
|
|
||||||
|
EXPECT_CALL(mockProjectParts, update(ElementsAre(projectPart1)))
|
||||||
|
.WillOnce(Return(ProjectPartContainers{projectPart1}));
|
||||||
EXPECT_CALL(mockGeneratedFiles, isValid()).WillOnce(Return(false));
|
EXPECT_CALL(mockGeneratedFiles, isValid()).WillOnce(Return(false));
|
||||||
EXPECT_CALL(mockPchTaskGenerator, addProjectParts(_, _)).Times(0);
|
EXPECT_CALL(mockPchTaskGenerator, addProjectParts(_, _)).Times(0);
|
||||||
|
EXPECT_CALL(mockProjectParts, updateDeferred(ElementsAre(projectPart1)));
|
||||||
|
|
||||||
server.updateProjectParts(
|
server.updateProjectParts(
|
||||||
ClangBackEnd::UpdateProjectPartsMessage{{projectPart1}, {"toolChainArgument"}});
|
ClangBackEnd::UpdateProjectPartsMessage{{projectPart1}, {"toolChainArgument"}});
|
||||||
@@ -209,8 +213,11 @@ TEST_F(PchManagerServer, GeneratePchIfGeneratedFilesAreValid)
|
|||||||
{
|
{
|
||||||
InSequence s;
|
InSequence s;
|
||||||
|
|
||||||
|
EXPECT_CALL(mockProjectParts, update(ElementsAre(projectPart1)))
|
||||||
|
.WillOnce(Return(ProjectPartContainers{projectPart1}));
|
||||||
EXPECT_CALL(mockGeneratedFiles, isValid()).WillOnce(Return(true));
|
EXPECT_CALL(mockGeneratedFiles, isValid()).WillOnce(Return(true));
|
||||||
EXPECT_CALL(mockPchTaskGenerator, addProjectParts(_, _));
|
EXPECT_CALL(mockPchTaskGenerator, addProjectParts(_, _));
|
||||||
|
EXPECT_CALL(mockProjectParts, updateDeferred(_)).Times(0);
|
||||||
|
|
||||||
server.updateProjectParts(
|
server.updateProjectParts(
|
||||||
ClangBackEnd::UpdateProjectPartsMessage{{projectPart1}, {"toolChainArgument"}});
|
ClangBackEnd::UpdateProjectPartsMessage{{projectPart1}, {"toolChainArgument"}});
|
||||||
|
Reference in New Issue
Block a user