summaryrefslogtreecommitdiffstats
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.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/unittests/Support/Path.cpp b/llvm/unittests/Support/Path.cpp
index 9de46a689cd..1f7a10d94f2 100644
--- a/llvm/unittests/Support/Path.cpp
+++ b/llvm/unittests/Support/Path.cpp
@@ -1230,7 +1230,9 @@ TEST(Support, RemoveDots) {
TEST(Support, ReplacePathPrefix) {
SmallString<64> Path1("/foo");
SmallString<64> Path2("/old/foo");
+ SmallString<64> Path3("/oldnew/foo");
SmallString<64> OldPrefix("/old");
+ SmallString<64> OldPrefixSep("/old/");
SmallString<64> NewPrefix("/new");
SmallString<64> NewPrefix2("/longernew");
SmallString<64> EmptyPrefix("");
@@ -1250,6 +1252,33 @@ TEST(Support, ReplacePathPrefix) {
Path = Path2;
path::replace_path_prefix(Path, OldPrefix, EmptyPrefix);
EXPECT_EQ(Path, "/foo");
+ Path = Path2;
+ path::replace_path_prefix(Path, OldPrefix, EmptyPrefix, true);
+ EXPECT_EQ(Path, "foo");
+ Path = Path3;
+ path::replace_path_prefix(Path, OldPrefix, NewPrefix, false);
+ EXPECT_EQ(Path, "/newnew/foo");
+ Path = Path3;
+ path::replace_path_prefix(Path, OldPrefix, NewPrefix, true);
+ EXPECT_EQ(Path, "/oldnew/foo");
+ Path = Path3;
+ path::replace_path_prefix(Path, OldPrefixSep, NewPrefix, true);
+ EXPECT_EQ(Path, "/oldnew/foo");
+ Path = Path1;
+ path::replace_path_prefix(Path, EmptyPrefix, NewPrefix);
+ EXPECT_EQ(Path, "/new/foo");
+ Path = OldPrefix;
+ path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ EXPECT_EQ(Path, "/new");
+ Path = OldPrefixSep;
+ path::replace_path_prefix(Path, OldPrefix, NewPrefix);
+ EXPECT_EQ(Path, "/new/");
+ Path = OldPrefix;
+ path::replace_path_prefix(Path, OldPrefixSep, NewPrefix, false);
+ EXPECT_EQ(Path, "/old");
+ Path = OldPrefix;
+ path::replace_path_prefix(Path, OldPrefixSep, NewPrefix, true);
+ EXPECT_EQ(Path, "/new");
}
TEST_F(FileSystemTest, OpenFileForRead) {
OpenPOWER on IntegriCloud