forked from qt-creator/qt-creator
Clang: Fix updating dependencies
...if the registered document comes with unsaved content. This can easily happen if the document is opened and modified by a refactoring action. Task-number: QTCREATORBUG-17295 Change-Id: I3a95fb495b6122248ceaa80985e838851ba2c0e5 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -73,6 +73,7 @@ protected:
|
||||
ClangBackEnd::UnsavedFiles unsavedFiles;
|
||||
ClangBackEnd::Documents documents{projects, unsavedFiles};
|
||||
const Utf8String filePath = Utf8StringLiteral(TESTDATA_DIR"/translationunits.cpp");
|
||||
const Utf8String otherFilePath = Utf8StringLiteral(TESTDATA_DIR"/translationunits.h");
|
||||
const Utf8String headerPath = Utf8StringLiteral(TESTDATA_DIR"/translationunits.h");
|
||||
const Utf8String nonExistingFilePath = Utf8StringLiteral("foo.cpp");
|
||||
const Utf8String projectPartId = Utf8StringLiteral("projectPartId");
|
||||
@@ -121,6 +122,18 @@ TEST_F(Documents, Add)
|
||||
IsDocument(filePath, projectPartId, 74u));
|
||||
}
|
||||
|
||||
TEST_F(Documents, CreateWithUnsavedContentSetsDependenciesDirty)
|
||||
{
|
||||
ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u);
|
||||
ClangBackEnd::FileContainer fileContainerWithUnsavedContent(otherFilePath, projectPartId, Utf8StringVector(), Utf8String(), true, 2u);
|
||||
auto dependentDocument = documents.create({fileContainer}).at(0);
|
||||
dependentDocument.setDependedFilePaths(QSet<Utf8String>() << filePath << otherFilePath);
|
||||
|
||||
documents.create({fileContainerWithUnsavedContent});
|
||||
|
||||
ASSERT_TRUE(dependentDocument.isNeedingReparse());
|
||||
}
|
||||
|
||||
TEST_F(Documents, AddAndTestCreatedTranslationUnit)
|
||||
{
|
||||
ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u);
|
||||
|
||||
Reference in New Issue
Block a user