summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/unittests
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/unittests')
-rw-r--r--clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp15
-rw-r--r--clang-tools-extra/clangd/unittests/IndexActionTests.cpp3
-rw-r--r--clang-tools-extra/clangd/unittests/SerializationTests.cpp6
3 files changed, 19 insertions, 5 deletions
diff --git a/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp b/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
index 9446aba2b0f..bad1a3c4a10 100644
--- a/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
+++ b/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
@@ -1,3 +1,4 @@
+#include "Headers.h"
#include "SyncAPI.h"
#include "TestFS.h"
#include "TestTU.h"
@@ -31,9 +32,14 @@ RefsAre(std::vector<::testing::Matcher<Ref>> Matchers) {
}
// URI cannot be empty since it references keys in the IncludeGraph.
MATCHER(EmptyIncludeNode, "") {
- return !arg.IsTU && !arg.URI.empty() && arg.Digest == FileDigest{{0}} &&
- arg.DirectIncludes.empty();
+ return arg.Flags == IncludeGraphNode::SourceFlag::None && !arg.URI.empty() &&
+ arg.Digest == FileDigest{{0}} && arg.DirectIncludes.empty();
}
+
+MATCHER(HadErrors, "") {
+ return arg.Flags & IncludeGraphNode::SourceFlag::HadErrors;
+}
+
MATCHER_P(NumReferences, N, "") { return arg.References == N; }
class MemoryShardStorage : public BackgroundIndexStorage {
@@ -525,6 +531,11 @@ TEST_F(BackgroundIndexTest, UncompilableFiles) {
EXPECT_THAT(Shard->Sources->keys(),
UnorderedElementsAre("unittest:///A.cc", "unittest:///A.h",
"unittest:///B.h"));
+
+ EXPECT_THAT(Shard->Sources->lookup("unittest:///A.cc"), HadErrors());
+ // FIXME: We should also persist headers while marking them with errors.
+ EXPECT_THAT(Shard->Sources->lookup("unittest:///A.h"), Not(HadErrors()));
+ EXPECT_THAT(Shard->Sources->lookup("unittest:///B.h"), Not(HadErrors()));
}
TEST_F(BackgroundIndexTest, CmdLineHash) {
diff --git a/clang-tools-extra/clangd/unittests/IndexActionTests.cpp b/clang-tools-extra/clangd/unittests/IndexActionTests.cpp
index 7188a3f41fa..7d7a3c189c7 100644
--- a/clang-tools-extra/clangd/unittests/IndexActionTests.cpp
+++ b/clang-tools-extra/clangd/unittests/IndexActionTests.cpp
@@ -6,6 +6,7 @@
//
//===----------------------------------------------------------------------===//
+#include "Headers.h"
#include "TestFS.h"
#include "index/IndexAction.h"
#include "clang/Tooling/Tooling.h"
@@ -25,7 +26,7 @@ using ::testing::UnorderedPointwise;
std::string toUri(llvm::StringRef Path) { return URI::create(Path).toString(); }
-MATCHER(IsTU, "") { return arg.IsTU; }
+MATCHER(IsTU, "") { return arg.Flags & IncludeGraphNode::SourceFlag::IsTU; }
MATCHER_P(HasDigest, Digest, "") { return arg.Digest == Digest; }
diff --git a/clang-tools-extra/clangd/unittests/SerializationTests.cpp b/clang-tools-extra/clangd/unittests/SerializationTests.cpp
index 19d48ea29f8..b76ea8243fc 100644
--- a/clang-tools-extra/clangd/unittests/SerializationTests.cpp
+++ b/clang-tools-extra/clangd/unittests/SerializationTests.cpp
@@ -6,6 +6,7 @@
//
//===----------------------------------------------------------------------===//
+#include "Headers.h"
#include "index/Index.h"
#include "index/Serialization.h"
#include "clang/Tooling/CompilationDatabase.h"
@@ -212,7 +213,8 @@ TEST(SerializationTest, SrcsTest) {
TestContent.size()});
IGN.DirectIncludes = {"inc1", "inc2"};
IGN.URI = "URI";
- IGN.IsTU = true;
+ IGN.Flags |= IncludeGraphNode::SourceFlag::IsTU;
+ IGN.Flags |= IncludeGraphNode::SourceFlag::HadErrors;
IncludeGraph Sources;
Sources[IGN.URI] = IGN;
// Write to binary format, and parse again.
@@ -237,7 +239,7 @@ TEST(SerializationTest, SrcsTest) {
EXPECT_EQ(IGNDeserialized.Digest, IGN.Digest);
EXPECT_EQ(IGNDeserialized.DirectIncludes, IGN.DirectIncludes);
EXPECT_EQ(IGNDeserialized.URI, IGN.URI);
- EXPECT_EQ(IGNDeserialized.IsTU, IGN.IsTU);
+ EXPECT_EQ(IGNDeserialized.Flags, IGN.Flags);
}
}
OpenPOWER on IntegriCloud