summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp11
-rw-r--r--clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp23
2 files changed, 26 insertions, 8 deletions
diff --git a/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp b/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
index 01f0ba1b404..ee7ba4355c0 100644
--- a/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
+++ b/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
@@ -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) {
MockFSProvider FS;
llvm::StringMap<std::string> Storage;
@@ -552,7 +559,8 @@ TEST_F(BackgroundIndexTest, CmdLineHash) {
{
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);
}
@@ -566,6 +574,7 @@ TEST_F(BackgroundIndexTest, CmdLineHash) {
{
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.Directory, Cmd.Directory);
}
diff --git a/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp b/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp
index 15f628825b1..857bf26f00d 100644
--- a/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp
+++ b/clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp
@@ -102,12 +102,20 @@ TEST_F(OverlayCDBTest, GetCompileCommand) {
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) {
OverlayCDB CDB(Base.get(), {"-DA=4"});
- EXPECT_THAT(CDB.getFallbackCommand(testPath("bar.cc")).CommandLine,
- ElementsAre(EndsWith("clang"), "-DA=2", testPath("bar.cc"),
- "-DA=4", "-fsyntax-only",
- StartsWith("-resource-dir")));
+ EXPECT_THAT(
+ stripSysroot(CDB.getFallbackCommand(testPath("bar.cc")).CommandLine),
+ ElementsAre(EndsWith("clang"), "-DA=2", testPath("bar.cc"), "-DA=4",
+ "-fsyntax-only", StartsWith("-resource-dir")));
}
TEST_F(OverlayCDBTest, NoBase) {
@@ -118,9 +126,10 @@ TEST_F(OverlayCDBTest, NoBase) {
EXPECT_THAT(CDB.getCompileCommand(testPath("bar.cc"))->CommandLine,
Contains("-DA=5"));
- EXPECT_THAT(CDB.getFallbackCommand(testPath("foo.cc")).CommandLine,
- ElementsAre(EndsWith("clang"), testPath("foo.cc"), "-DA=6",
- "-fsyntax-only"));
+ EXPECT_THAT(
+ stripSysroot(CDB.getFallbackCommand(testPath("foo.cc")).CommandLine),
+ ElementsAre(EndsWith("clang"), testPath("foo.cc"), "-DA=6",
+ "-fsyntax-only"));
}
TEST_F(OverlayCDBTest, Watch) {
OpenPOWER on IntegriCloud