[clang-tools-extra] 82039cb - [clangd] repair mac tests for 88bccded8fa1

Sam McCall via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 2 12:56:09 PST 2019


Author: Sam McCall
Date: 2019-12-02T21:55:54+01:00
New Revision: 82039cbc8d2a0f6fb5995f54e0e42919999bcfd0

URL: https://github.com/llvm/llvm-project/commit/82039cbc8d2a0f6fb5995f54e0e42919999bcfd0
DIFF: https://github.com/llvm/llvm-project/commit/82039cbc8d2a0f6fb5995f54e0e42919999bcfd0.diff

LOG: [clangd] repair mac tests for 88bccded8fa1

Added: 
    

Modified: 
    clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
    clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp b/clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
index 01f0ba1b4044..ee7ba4355c05 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 15f628825b13..857bf26f00dc 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) {


        


More information about the cfe-commits mailing list