[clangd] Add unit tests for comments in system headers
authorIlya Biryukov <ibiryukov@google.com>
Thu, 7 Nov 2019 08:59:36 +0000 (09:59 +0100)
committerIlya Biryukov <ibiryukov@google.com>
Thu, 7 Nov 2019 09:24:27 +0000 (10:24 +0100)
clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp

index 20f8989..02d7750 100644 (file)
@@ -872,6 +872,33 @@ TEST(CompletionTest, Documentation) {
               Contains(AllOf(Named("baz"), Doc("Multi-line\nblock comment"))));
 }
 
+TEST(CompletionTest, CommentsFromSystemHeaders) {
+  MockFSProvider FS;
+  MockCompilationDatabase CDB;
+  IgnoreDiagnostics DiagConsumer;
+
+  auto Opts = ClangdServer::optsForTest();
+  Opts.BuildDynamicSymbolIndex = true;
+
+  ClangdServer Server(CDB, FS, DiagConsumer, Opts);
+
+  FS.Files[testPath("foo.h")] = R"cpp(
+    #pragma GCC system_header
+
+    // This comment should be retained!
+    int foo();
+  )cpp";
+
+  auto Results = completions(Server,
+                             R"cpp(
+#include "foo.h"
+int x = foo^
+     )cpp");
+  EXPECT_THAT(
+      Results.Completions,
+      Contains(AllOf(Named("foo"), Doc("This comment should be retained!"))));
+}
+
 TEST(CompletionTest, GlobalCompletionFiltering) {
 
   Symbol Class = cls("XYZ");