aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Support/Path.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/Support/Path.cpp')
-rw-r--r--llvm/unittests/Support/Path.cpp49
1 files changed, 37 insertions, 12 deletions
diff --git a/llvm/unittests/Support/Path.cpp b/llvm/unittests/Support/Path.cpp
index a577f1b..8e842a9 100644
--- a/llvm/unittests/Support/Path.cpp
+++ b/llvm/unittests/Support/Path.cpp
@@ -1311,48 +1311,73 @@ TEST(Support, ReplacePathPrefix) {
SmallString<64> Path1("/foo");
SmallString<64> Path2("/old/foo");
SmallString<64> Path3("/oldnew/foo");
+ SmallString<64> Path4("C:\\old/foo\\bar");
SmallString<64> OldPrefix("/old");
SmallString<64> OldPrefixSep("/old/");
+ SmallString<64> OldPrefixWin("c:/oLD/F");
SmallString<64> NewPrefix("/new");
SmallString<64> NewPrefix2("/longernew");
SmallString<64> EmptyPrefix("");
+ bool Found;
SmallString<64> Path = Path1;
- path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ Found = path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ EXPECT_FALSE(Found);
EXPECT_EQ(Path, "/foo");
Path = Path2;
- path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ Found = path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ EXPECT_TRUE(Found);
EXPECT_EQ(Path, "/new/foo");
Path = Path2;
- path::replace_path_prefix(Path, OldPrefix, NewPrefix2);
+ Found = path::replace_path_prefix(Path, OldPrefix, NewPrefix2);
+ EXPECT_TRUE(Found);
EXPECT_EQ(Path, "/longernew/foo");
Path = Path1;
- path::replace_path_prefix(Path, EmptyPrefix, NewPrefix);
+ Found = path::replace_path_prefix(Path, EmptyPrefix, NewPrefix);
+ EXPECT_TRUE(Found);
EXPECT_EQ(Path, "/new/foo");
Path = Path2;
- path::replace_path_prefix(Path, OldPrefix, EmptyPrefix);
+ Found = path::replace_path_prefix(Path, OldPrefix, EmptyPrefix);
+ EXPECT_TRUE(Found);
EXPECT_EQ(Path, "/foo");
Path = Path2;
- path::replace_path_prefix(Path, OldPrefixSep, EmptyPrefix);
+ Found = path::replace_path_prefix(Path, OldPrefixSep, EmptyPrefix);
+ EXPECT_TRUE(Found);
EXPECT_EQ(Path, "foo");
Path = Path3;
- path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ Found = path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ EXPECT_TRUE(Found);
EXPECT_EQ(Path, "/newnew/foo");
Path = Path3;
- path::replace_path_prefix(Path, OldPrefix, NewPrefix2);
+ Found = path::replace_path_prefix(Path, OldPrefix, NewPrefix2);
+ EXPECT_TRUE(Found);
EXPECT_EQ(Path, "/longernewnew/foo");
Path = Path1;
- path::replace_path_prefix(Path, EmptyPrefix, NewPrefix);
+ Found = path::replace_path_prefix(Path, EmptyPrefix, NewPrefix);
+ EXPECT_TRUE(Found);
EXPECT_EQ(Path, "/new/foo");
Path = OldPrefix;
- path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ Found = path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ EXPECT_TRUE(Found);
EXPECT_EQ(Path, "/new");
Path = OldPrefixSep;
- path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ Found = path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ EXPECT_TRUE(Found);
EXPECT_EQ(Path, "/new/");
Path = OldPrefix;
- path::replace_path_prefix(Path, OldPrefixSep, NewPrefix);
+ Found = path::replace_path_prefix(Path, OldPrefixSep, NewPrefix);
+ EXPECT_FALSE(Found);
EXPECT_EQ(Path, "/old");
+ Path = Path4;
+ Found = path::replace_path_prefix(Path, OldPrefixWin, NewPrefix,
+ path::Style::windows);
+ EXPECT_TRUE(Found);
+ EXPECT_EQ(Path, "/newoo\\bar");
+ Path = Path4;
+ Found = path::replace_path_prefix(Path, OldPrefixWin, NewPrefix,
+ path::Style::posix);
+ EXPECT_FALSE(Found);
+ EXPECT_EQ(Path, "C:\\old/foo\\bar");
}
TEST_F(FileSystemTest, OpenFileForRead) {