forked from qt-creator/qt-creator
ClangRefactoring: Clear input files after collecting symbols
Change-Id: Ic4fbaac7ad3b3f80223d6cbb84a34dffa741fc4f Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -129,7 +129,11 @@ bool SymbolsCollector::collectSymbols()
|
||||
|
||||
auto actionFactory = ClangBackEnd::newFrontendActionFactory(&m_collectSymbolsAction);
|
||||
|
||||
return tool.run(actionFactory.get()) != 1;
|
||||
bool noErrors = tool.run(actionFactory.get()) != 1;
|
||||
|
||||
m_clangTool = ClangTool();
|
||||
|
||||
return noErrors;
|
||||
}
|
||||
|
||||
void SymbolsCollector::doInMainThreadAfterFinished()
|
||||
|
@@ -63,6 +63,8 @@ public:
|
||||
bool isUsed() const override;
|
||||
void setIsUsed(bool isUsed) override;
|
||||
|
||||
bool isClean() const { return m_clangTool.isClean(); }
|
||||
|
||||
private:
|
||||
FilePathCaching m_filePathCache;
|
||||
ClangTool m_clangTool;
|
||||
|
@@ -53,17 +53,18 @@ using testing::Value;
|
||||
using testing::_;
|
||||
|
||||
using ClangBackEnd::FilePath;
|
||||
using ClangBackEnd::FilePathId;
|
||||
using ClangBackEnd::FilePathCaching;
|
||||
using ClangBackEnd::V2::FileContainers;
|
||||
using ClangBackEnd::FilePathId;
|
||||
using ClangBackEnd::FileStatus;
|
||||
using ClangBackEnd::SourceDependency;
|
||||
using ClangBackEnd::SourceLocationEntry;
|
||||
using ClangBackEnd::SourceLocationKind;
|
||||
using ClangBackEnd::SymbolEntry;
|
||||
using ClangBackEnd::SymbolIndex;
|
||||
using ClangBackEnd::SymbolKind;
|
||||
using ClangBackEnd::SymbolTag;
|
||||
using ClangBackEnd::SourceLocationKind;
|
||||
using ClangBackEnd::SymbolIndex;
|
||||
using ClangBackEnd::UsedMacro;
|
||||
using ClangBackEnd::V2::FileContainers;
|
||||
|
||||
using Sqlite::Database;
|
||||
|
||||
@@ -130,6 +131,9 @@ MATCHER_P(HasSymbolTag, symbolTag,
|
||||
class SymbolsCollector : public testing::Test
|
||||
{
|
||||
protected:
|
||||
SymbolsCollector() { setFilePathCache(&filePathCache); }
|
||||
~SymbolsCollector() { setFilePathCache({}); }
|
||||
|
||||
FilePathId filePathId(Utils::SmallStringView filePath) const
|
||||
{
|
||||
return filePathCache.filePathId(ClangBackEnd::FilePathView{filePath});
|
||||
@@ -664,4 +668,15 @@ TEST_F(SymbolsCollector, CollectReturnsFalseIfThereIsNoError)
|
||||
|
||||
ASSERT_TRUE(success);
|
||||
}
|
||||
|
||||
TEST_F(SymbolsCollector, ClearInputFilesAfterCollectingSymbols)
|
||||
{
|
||||
collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main2.cpp"), {"cc"});
|
||||
collector.collectSymbols();
|
||||
collector.setFile(filePathId(TESTDATA_DIR "/symbolscollector/main.cpp"), {"cc"});
|
||||
|
||||
collector.collectSymbols();
|
||||
|
||||
ASSERT_TRUE(collector.isClean());
|
||||
}
|
||||
} // namespace
|
||||
|
Reference in New Issue
Block a user