diff options
Diffstat (limited to 'clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp')
| -rw-r--r-- | clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp index 97f9124e714..c0ec8dd1a37 100644 --- a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp +++ b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp @@ -2073,19 +2073,28 @@ TEST(CompletionTest, MergeMacrosFromIndexAndSema) { UnorderedElementsAre(Named("Clangd_Macro_Test"))); } -TEST(CompletionTest, NoMacroFromPreambleIfIndexIsSet) { +TEST(CompletionTest, MacroFromPreamble) { + MockFSProvider FS; + MockCompilationDatabase CDB; + std::string FooHeader = testPath("foo.h"); + FS.Files[FooHeader] = "#define CLANGD_PREAMBLE_HEADER x\n"; + IgnoreDiagnostics DiagConsumer; + ClangdServer Server(CDB, FS, DiagConsumer, ClangdServer::optsForTest()); auto Results = completions( - R"cpp(#define CLANGD_PREAMBLE x + R"cpp(#include "foo.h" + #define CLANGD_PREAMBLE_MAIN x int x = 0; #define CLANGD_MAIN x void f() { CLANGD_^ } )cpp", {func("CLANGD_INDEX")}); - // Index is overriden in code completion options, so the preamble symbol is - // not seen. - EXPECT_THAT(Results.Completions, UnorderedElementsAre(Named("CLANGD_MAIN"), - Named("CLANGD_INDEX"))); + // We should get results from the main file, including the preamble section. + // However no results from included files (the index should cover them). + EXPECT_THAT(Results.Completions, + UnorderedElementsAre(Named("CLANGD_PREAMBLE_MAIN"), + Named("CLANGD_MAIN"), + Named("CLANGD_INDEX"))); } TEST(CompletionTest, DeprecatedResults) { |

