diff options
Diffstat (limited to 'llvm/unittests/Support/Path.cpp')
-rw-r--r-- | llvm/unittests/Support/Path.cpp | 49 |
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) { |