Fix PathMappingListTest on windows
authorPavel Labath <labath@google.com>
Thu, 14 Jun 2018 10:31:06 +0000 (10:31 +0000)
committerPavel Labath <labath@google.com>
Thu, 14 Jun 2018 10:31:06 +0000 (10:31 +0000)
r334615 changed the the value of FileSpec.IsRelative("/") for windows
path syntax. We previously considered it absolute but now it is
considered relative (I guess because it's interpretation depends on the
current drive).

This cause a failure in PathMappingList test, which assumed that "/"
will not get remapped as it is an absolute path. As this is no longer
true on windows, I replace "/" with a really absolute path.

llvm-svn: 334702

lldb/unittests/Target/PathMappingListTest.cpp

index 60d1920..cb807d0 100644 (file)
@@ -29,9 +29,12 @@ static void TestPathMappings(const PathMappingList &map,
                              llvm::ArrayRef<ConstString> fails) {
   ConstString actual_remapped;
   for (const auto &fail : fails) {
-    EXPECT_FALSE(map.RemapPath(fail, actual_remapped));
+    SCOPED_TRACE(fail.GetCString());
+    EXPECT_FALSE(map.RemapPath(fail, actual_remapped))
+        << "actual_remapped: " << actual_remapped.GetCString();
   }
   for (const auto &match : matches) {
+    SCOPED_TRACE(match.original.GetPath() + " -> " + match.remapped.GetPath());
     std::string orig_normalized = match.original.GetPath();
     EXPECT_TRUE(
         map.RemapPath(ConstString(match.original.GetPath()), actual_remapped));
@@ -54,8 +57,13 @@ TEST(PathMappingListTest, RelativeTests) {
     {"bar/foo.c", "/tmp/bar/foo.c"},
   };
   ConstString fails[] = {
-    ConstString("/a"),
-    ConstString("/"),
+#ifdef _WIN32
+      ConstString("C:\\"),
+      ConstString("C:\\a"),
+#else
+      ConstString("/a"),
+      ConstString("/"),
+#endif
   };
   PathMappingList map;
   map.Append(ConstString("."), ConstString("/tmp"), false);