diff options
Diffstat (limited to 'clang-tools-extra/clangd/unittests')
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); } } |

