diff options
Diffstat (limited to 'clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp')
-rw-r--r-- | clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp | 87 |
1 files changed, 47 insertions, 40 deletions
diff --git a/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp b/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp index 9402c28ffbf..029590aed30 100644 --- a/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp +++ b/clang-tools-extra/unittests/include-fixer/IncludeFixerTest.cpp @@ -19,6 +19,7 @@ namespace include_fixer { namespace { using find_all_symbols::SymbolInfo; +using find_all_symbols::SymbolAndSignals; static bool runOnCode(tooling::ToolAction *ToolAction, StringRef Code, StringRef FileName, @@ -52,42 +53,49 @@ static bool runOnCode(tooling::ToolAction *ToolAction, StringRef Code, static std::string runIncludeFixer( StringRef Code, const std::vector<std::string> &ExtraArgs = std::vector<std::string>()) { - std::vector<SymbolInfo> Symbols = { - SymbolInfo("string", SymbolInfo::SymbolKind::Class, "<string>", 1, - {{SymbolInfo::ContextType::Namespace, "std"}}), - SymbolInfo("sting", SymbolInfo::SymbolKind::Class, "\"sting\"", 1, - {{SymbolInfo::ContextType::Namespace, "std"}}), - SymbolInfo("foo", SymbolInfo::SymbolKind::Class, "\"dir/otherdir/qux.h\"", - 1, {{SymbolInfo::ContextType::Namespace, "b"}, - {SymbolInfo::ContextType::Namespace, "a"}}), - SymbolInfo("bar", SymbolInfo::SymbolKind::Class, "\"bar.h\"", 1, - {{SymbolInfo::ContextType::Namespace, "b"}, - {SymbolInfo::ContextType::Namespace, "a"}}), - SymbolInfo("bar", SymbolInfo::SymbolKind::Class, "\"bar2.h\"", 1, - {{SymbolInfo::ContextType::Namespace, "c"}, - {SymbolInfo::ContextType::Namespace, "a"}}), - SymbolInfo("Green", SymbolInfo::SymbolKind::Class, "\"color.h\"", 1, - {{SymbolInfo::ContextType::EnumDecl, "Color"}, - {SymbolInfo::ContextType::Namespace, "b"}, - {SymbolInfo::ContextType::Namespace, "a"}}), - SymbolInfo("Vector", SymbolInfo::SymbolKind::Class, "\"Vector.h\"", 1, - {{SymbolInfo::ContextType::Namespace, "__a"}, - {SymbolInfo::ContextType::Namespace, "a"}}, - /*num_occurrences=*/2), - SymbolInfo("Vector", SymbolInfo::SymbolKind::Class, "\"Vector.h\"", 2, - {{SymbolInfo::ContextType::Namespace, "a"}}, - /*num_occurrences=*/1), - SymbolInfo("StrCat", SymbolInfo::SymbolKind::Class, "\"strcat.h\"", - 1, {{SymbolInfo::ContextType::Namespace, "str"}}), - SymbolInfo("str", SymbolInfo::SymbolKind::Class, "\"str.h\"", - 1, {}), - SymbolInfo("foo2", SymbolInfo::SymbolKind::Class, "\"foo2.h\"", - 1, {}), + std::vector<SymbolAndSignals> Symbols = { + {SymbolInfo("string", SymbolInfo::SymbolKind::Class, "<string>", 1, + {{SymbolInfo::ContextType::Namespace, "std"}}), + SymbolInfo::Signals{}}, + {SymbolInfo("sting", SymbolInfo::SymbolKind::Class, "\"sting\"", 1, + {{SymbolInfo::ContextType::Namespace, "std"}}), + SymbolInfo::Signals{}}, + {SymbolInfo("foo", SymbolInfo::SymbolKind::Class, + "\"dir/otherdir/qux.h\"", 1, + {{SymbolInfo::ContextType::Namespace, "b"}, + {SymbolInfo::ContextType::Namespace, "a"}}), + SymbolInfo::Signals{}}, + {SymbolInfo("bar", SymbolInfo::SymbolKind::Class, "\"bar.h\"", 1, + {{SymbolInfo::ContextType::Namespace, "b"}, + {SymbolInfo::ContextType::Namespace, "a"}}), + SymbolInfo::Signals{}}, + {SymbolInfo("bar", SymbolInfo::SymbolKind::Class, "\"bar2.h\"", 1, + {{SymbolInfo::ContextType::Namespace, "c"}, + {SymbolInfo::ContextType::Namespace, "a"}}), + SymbolInfo::Signals{}}, + {SymbolInfo("Green", SymbolInfo::SymbolKind::Class, "\"color.h\"", 1, + {{SymbolInfo::ContextType::EnumDecl, "Color"}, + {SymbolInfo::ContextType::Namespace, "b"}, + {SymbolInfo::ContextType::Namespace, "a"}}), + SymbolInfo::Signals{}}, + {SymbolInfo("Vector", SymbolInfo::SymbolKind::Class, "\"Vector.h\"", 1, + {{SymbolInfo::ContextType::Namespace, "__a"}, + {SymbolInfo::ContextType::Namespace, "a"}}), + SymbolInfo::Signals{/*Seen=*/2, 0}}, + {SymbolInfo("Vector", SymbolInfo::SymbolKind::Class, "\"Vector.h\"", 2, + {{SymbolInfo::ContextType::Namespace, "a"}}), + SymbolInfo::Signals{/*Seen=*/2, 0}}, + {SymbolInfo("StrCat", SymbolInfo::SymbolKind::Class, "\"strcat.h\"", 1, + {{SymbolInfo::ContextType::Namespace, "str"}}), + SymbolInfo::Signals{}}, + {SymbolInfo("str", SymbolInfo::SymbolKind::Class, "\"str.h\"", 1, {}), + SymbolInfo::Signals{}}, + {SymbolInfo("foo2", SymbolInfo::SymbolKind::Class, "\"foo2.h\"", 1, {}), + SymbolInfo::Signals{}}, }; - auto SymbolIndexMgr = llvm::make_unique<include_fixer::SymbolIndexManager>(); - SymbolIndexMgr->addSymbolIndex([=]() { - return llvm::make_unique<include_fixer::InMemorySymbolIndex>(Symbols); - }); + auto SymbolIndexMgr = llvm::make_unique<SymbolIndexManager>(); + SymbolIndexMgr->addSymbolIndex( + [=]() { return llvm::make_unique<InMemorySymbolIndex>(Symbols); }); std::vector<IncludeFixerContext> FixerContexts; IncludeFixerActionFactory Factory(*SymbolIndexMgr, FixerContexts, "llvm"); @@ -96,15 +104,14 @@ static std::string runIncludeFixer( assert(FixerContexts.size() == 1); if (FixerContexts.front().getHeaderInfos().empty()) return Code; - auto Replaces = clang::include_fixer::createIncludeFixerReplacements( - Code, FixerContexts.front()); + auto Replaces = createIncludeFixerReplacements(Code, FixerContexts.front()); EXPECT_TRUE(static_cast<bool>(Replaces)) << llvm::toString(Replaces.takeError()) << "\n"; if (!Replaces) return ""; - clang::RewriterTestContext Context; - clang::FileID ID = Context.createInMemoryFile(FakeFileName, Code); - clang::tooling::applyAllReplacements(*Replaces, Context.Rewrite); + RewriterTestContext Context; + FileID ID = Context.createInMemoryFile(FakeFileName, Code); + tooling::applyAllReplacements(*Replaces, Context.Rewrite); return Context.getRewrittenText(ID); } |