[clangd] repair mac tests for 88bccded8f

This commit is contained in:
Sam McCall 2019-12-02 21:55:30 +01:00
parent 5154b0253d
commit 82039cbc8d
2 changed files with 26 additions and 8 deletions

View File

@ -527,6 +527,13 @@ TEST_F(BackgroundIndexTest, UncompilableFiles) {
} }
} }
MATCHER_P(HasPrefix, Prefix, "") {
auto Arg = arg; // Force copy.
if (Arg.size() > Prefix.size())
Arg.resize(Prefix.size());
return Arg == Prefix;
}
TEST_F(BackgroundIndexTest, CmdLineHash) { TEST_F(BackgroundIndexTest, CmdLineHash) {
MockFSProvider FS; MockFSProvider FS;
llvm::StringMap<std::string> Storage; llvm::StringMap<std::string> Storage;
@ -552,7 +559,8 @@ TEST_F(BackgroundIndexTest, CmdLineHash) {
{ {
tooling::CompileCommand CmdStored = *MSS.loadShard(testPath("A.cc"))->Cmd; tooling::CompileCommand CmdStored = *MSS.loadShard(testPath("A.cc"))->Cmd;
EXPECT_EQ(CmdStored.CommandLine, Cmd.CommandLine); // Accept prefix because -isysroot gets added on mac.
EXPECT_THAT(CmdStored.CommandLine, HasPrefix(Cmd.CommandLine));
EXPECT_EQ(CmdStored.Directory, Cmd.Directory); EXPECT_EQ(CmdStored.Directory, Cmd.Directory);
} }
@ -566,6 +574,7 @@ TEST_F(BackgroundIndexTest, CmdLineHash) {
{ {
tooling::CompileCommand CmdStored = *MSS.loadShard(testPath("A.cc"))->Cmd; tooling::CompileCommand CmdStored = *MSS.loadShard(testPath("A.cc"))->Cmd;
EXPECT_THAT(CmdStored.CommandLine, HasPrefix(Cmd.CommandLine));
EXPECT_EQ(CmdStored.CommandLine, Cmd.CommandLine); EXPECT_EQ(CmdStored.CommandLine, Cmd.CommandLine);
EXPECT_EQ(CmdStored.Directory, Cmd.Directory); EXPECT_EQ(CmdStored.Directory, Cmd.Directory);
} }

View File

@ -102,12 +102,20 @@ TEST_F(OverlayCDBTest, GetCompileCommand) {
Contains("-DA=3")); Contains("-DA=3"));
} }
// Remove -isysroot injected on mac, if present, to simplify tests.
std::vector<std::string> stripSysroot(std::vector<std::string> Cmd) {
// Allow -isysroot injection on Mac.
if (Cmd.size() > 2 && Cmd[Cmd.size() - 2] == "-isysroot")
Cmd.resize(Cmd.size() - 2);
return Cmd;
}
TEST_F(OverlayCDBTest, GetFallbackCommand) { TEST_F(OverlayCDBTest, GetFallbackCommand) {
OverlayCDB CDB(Base.get(), {"-DA=4"}); OverlayCDB CDB(Base.get(), {"-DA=4"});
EXPECT_THAT(CDB.getFallbackCommand(testPath("bar.cc")).CommandLine, EXPECT_THAT(
ElementsAre(EndsWith("clang"), "-DA=2", testPath("bar.cc"), stripSysroot(CDB.getFallbackCommand(testPath("bar.cc")).CommandLine),
"-DA=4", "-fsyntax-only", ElementsAre(EndsWith("clang"), "-DA=2", testPath("bar.cc"), "-DA=4",
StartsWith("-resource-dir"))); "-fsyntax-only", StartsWith("-resource-dir")));
} }
TEST_F(OverlayCDBTest, NoBase) { TEST_F(OverlayCDBTest, NoBase) {
@ -118,9 +126,10 @@ TEST_F(OverlayCDBTest, NoBase) {
EXPECT_THAT(CDB.getCompileCommand(testPath("bar.cc"))->CommandLine, EXPECT_THAT(CDB.getCompileCommand(testPath("bar.cc"))->CommandLine,
Contains("-DA=5")); Contains("-DA=5"));
EXPECT_THAT(CDB.getFallbackCommand(testPath("foo.cc")).CommandLine, EXPECT_THAT(
ElementsAre(EndsWith("clang"), testPath("foo.cc"), "-DA=6", stripSysroot(CDB.getFallbackCommand(testPath("foo.cc")).CommandLine),
"-fsyntax-only")); ElementsAre(EndsWith("clang"), testPath("foo.cc"), "-DA=6",
"-fsyntax-only"));
} }
TEST_F(OverlayCDBTest, Watch) { TEST_F(OverlayCDBTest, Watch) {