Skip to content

Commit

Permalink
Investigate D110386 Windows failures
Browse files Browse the repository at this point in the history
Add more information for test failures inspection.
  • Loading branch information
kirillbobyrev committed Sep 28, 2021
1 parent 9fb57c8 commit 7394d3b
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 8 deletions.
6 changes: 6 additions & 0 deletions clang-tools-extra/clangd/Headers.h
Expand Up @@ -20,6 +20,7 @@
#include "clang/Lex/PPCallbacks.h"
#include "clang/Tooling/Inclusions/HeaderIncludes.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/Support/Error.h"
Expand Down Expand Up @@ -141,6 +142,11 @@ class IncludeStructure {

std::vector<Inclusion> MainFileIncludes;

std::string dump() {
return "RealPathNames: " +
llvm::join(RealPathNames.begin(), RealPathNames.end(), ", ");
}

private:
std::vector<std::string> RealPathNames; // In HeaderID order.
// HeaderID maps the FileEntry::Name to the internal representation.
Expand Down
17 changes: 10 additions & 7 deletions clang-tools-extra/clangd/unittests/HeadersTests.cpp
Expand Up @@ -165,7 +165,8 @@ TEST_F(HeadersTest, CollectRewrittenAndResolved) {
AllOf(Written("\"sub/bar.h\""), Resolved(BarHeader))));
EXPECT_THAT(Includes.includeDepth(getID(MainFile, Includes)),
UnorderedElementsAre(Distance(getID(MainFile, Includes), 0u),
Distance(getID(BarHeader, Includes), 1u)));
Distance(getID(BarHeader, Includes), 1u)))
<< Includes.dump();
}

TEST_F(HeadersTest, OnlyCollectInclusionsInMain) {
Expand All @@ -179,17 +180,19 @@ TEST_F(HeadersTest, OnlyCollectInclusionsInMain) {
#include "bar.h"
)cpp";
auto Includes = collectIncludes();
EXPECT_THAT(Includes.MainFileIncludes,
UnorderedElementsAre(
AllOf(Written("\"bar.h\""), Resolved(BarHeader))));
EXPECT_THAT(
Includes.MainFileIncludes,
UnorderedElementsAre(AllOf(Written("\"bar.h\""), Resolved(BarHeader))));
EXPECT_THAT(Includes.includeDepth(getID(MainFile, Includes)),
UnorderedElementsAre(Distance(getID(MainFile, Includes), 0u),
Distance(getID(BarHeader, Includes), 1u),
Distance(getID(BazHeader, Includes), 2u)));
Distance(getID(BazHeader, Includes), 2u)))
<< Includes.dump();
// includeDepth() also works for non-main files.
EXPECT_THAT(Includes.includeDepth(getID(BarHeader, Includes)),
UnorderedElementsAre(Distance(getID(BarHeader, Includes), 0u),
Distance(getID(BazHeader, Includes), 1u)));
Distance(getID(BazHeader, Includes), 1u)))
<< Includes.dump();
}

TEST_F(HeadersTest, PreambleIncludesPresentOnce) {
Expand Down Expand Up @@ -240,7 +243,7 @@ TEST_F(HeadersTest, IncludedFilesGraph) {
{getID(BarHeader, Includes), getID(FooHeader, Includes)}},
{getID(FooHeader, Includes),
{getID(BarHeader, Includes), getID(BazHeader, Includes)}}};
EXPECT_EQ(Includes.IncludeChildren, Expected);
EXPECT_EQ(Includes.IncludeChildren, Expected) << Includes.dump();
}

TEST_F(HeadersTest, IncludeDirective) {
Expand Down
3 changes: 2 additions & 1 deletion clang-tools-extra/clangd/unittests/ParsedASTTests.cpp
Expand Up @@ -519,7 +519,8 @@ TEST(ParsedASTTest, PatchesAdditionalIncludes) {
auto AuxFE = FM.getFile(testPath("sub/aux.h"));
ASSERT_TRUE(AuxFE);
auto AuxID = Includes.getID(*AuxFE);
EXPECT_THAT(Includes.IncludeChildren[*MainID], Contains(*AuxID));
EXPECT_THAT(Includes.IncludeChildren[*MainID], Contains(*AuxID))
<< Includes.dump();
}

TEST(ParsedASTTest, PatchesDeletedIncludes) {
Expand Down

0 comments on commit 7394d3b

Please sign in to comment.