@@ -1311,48 +1311,73 @@ TEST(Support, ReplacePathPrefix) {
13111311 SmallString<64 > Path1 (" /foo" );
13121312 SmallString<64 > Path2 (" /old/foo" );
13131313 SmallString<64 > Path3 (" /oldnew/foo" );
1314+ SmallString<64 > Path4 (" C:\\ old/foo\\ bar" );
13141315 SmallString<64 > OldPrefix (" /old" );
13151316 SmallString<64 > OldPrefixSep (" /old/" );
1317+ SmallString<64 > OldPrefixWin (" c:/oLD/F" );
13161318 SmallString<64 > NewPrefix (" /new" );
13171319 SmallString<64 > NewPrefix2 (" /longernew" );
13181320 SmallString<64 > EmptyPrefix (" " );
1321+ bool Found;
13191322
13201323 SmallString<64 > Path = Path1;
1321- path::replace_path_prefix (Path, OldPrefix, NewPrefix);
1324+ Found = path::replace_path_prefix (Path, OldPrefix, NewPrefix);
1325+ EXPECT_FALSE (Found);
13221326 EXPECT_EQ (Path, " /foo" );
13231327 Path = Path2;
1324- path::replace_path_prefix (Path, OldPrefix, NewPrefix);
1328+ Found = path::replace_path_prefix (Path, OldPrefix, NewPrefix);
1329+ EXPECT_TRUE (Found);
13251330 EXPECT_EQ (Path, " /new/foo" );
13261331 Path = Path2;
1327- path::replace_path_prefix (Path, OldPrefix, NewPrefix2);
1332+ Found = path::replace_path_prefix (Path, OldPrefix, NewPrefix2);
1333+ EXPECT_TRUE (Found);
13281334 EXPECT_EQ (Path, " /longernew/foo" );
13291335 Path = Path1;
1330- path::replace_path_prefix (Path, EmptyPrefix, NewPrefix);
1336+ Found = path::replace_path_prefix (Path, EmptyPrefix, NewPrefix);
1337+ EXPECT_TRUE (Found);
13311338 EXPECT_EQ (Path, " /new/foo" );
13321339 Path = Path2;
1333- path::replace_path_prefix (Path, OldPrefix, EmptyPrefix);
1340+ Found = path::replace_path_prefix (Path, OldPrefix, EmptyPrefix);
1341+ EXPECT_TRUE (Found);
13341342 EXPECT_EQ (Path, " /foo" );
13351343 Path = Path2;
1336- path::replace_path_prefix (Path, OldPrefixSep, EmptyPrefix);
1344+ Found = path::replace_path_prefix (Path, OldPrefixSep, EmptyPrefix);
1345+ EXPECT_TRUE (Found);
13371346 EXPECT_EQ (Path, " foo" );
13381347 Path = Path3;
1339- path::replace_path_prefix (Path, OldPrefix, NewPrefix);
1348+ Found = path::replace_path_prefix (Path, OldPrefix, NewPrefix);
1349+ EXPECT_TRUE (Found);
13401350 EXPECT_EQ (Path, " /newnew/foo" );
13411351 Path = Path3;
1342- path::replace_path_prefix (Path, OldPrefix, NewPrefix2);
1352+ Found = path::replace_path_prefix (Path, OldPrefix, NewPrefix2);
1353+ EXPECT_TRUE (Found);
13431354 EXPECT_EQ (Path, " /longernewnew/foo" );
13441355 Path = Path1;
1345- path::replace_path_prefix (Path, EmptyPrefix, NewPrefix);
1356+ Found = path::replace_path_prefix (Path, EmptyPrefix, NewPrefix);
1357+ EXPECT_TRUE (Found);
13461358 EXPECT_EQ (Path, " /new/foo" );
13471359 Path = OldPrefix;
1348- path::replace_path_prefix (Path, OldPrefix, NewPrefix);
1360+ Found = path::replace_path_prefix (Path, OldPrefix, NewPrefix);
1361+ EXPECT_TRUE (Found);
13491362 EXPECT_EQ (Path, " /new" );
13501363 Path = OldPrefixSep;
1351- path::replace_path_prefix (Path, OldPrefix, NewPrefix);
1364+ Found = path::replace_path_prefix (Path, OldPrefix, NewPrefix);
1365+ EXPECT_TRUE (Found);
13521366 EXPECT_EQ (Path, " /new/" );
13531367 Path = OldPrefix;
1354- path::replace_path_prefix (Path, OldPrefixSep, NewPrefix);
1368+ Found = path::replace_path_prefix (Path, OldPrefixSep, NewPrefix);
1369+ EXPECT_FALSE (Found);
13551370 EXPECT_EQ (Path, " /old" );
1371+ Path = Path4;
1372+ Found = path::replace_path_prefix (Path, OldPrefixWin, NewPrefix,
1373+ path::Style::windows);
1374+ EXPECT_TRUE (Found);
1375+ EXPECT_EQ (Path, " /newoo\\ bar" );
1376+ Path = Path4;
1377+ Found = path::replace_path_prefix (Path, OldPrefixWin, NewPrefix,
1378+ path::Style::posix);
1379+ EXPECT_FALSE (Found);
1380+ EXPECT_EQ (Path, " C:\\ old/foo\\ bar" );
13561381}
13571382
13581383TEST_F (FileSystemTest, OpenFileForRead) {
0 commit comments