| Index: tools/gn/filesystem_utils_unittest.cc
|
| diff --git a/tools/gn/filesystem_utils_unittest.cc b/tools/gn/filesystem_utils_unittest.cc
|
| index f62f4820c671d29d30ca6da96d9691ba6b89bb23..69ae67c2878f9c202a1fa27d49d9efb5293901e2 100644
|
| --- a/tools/gn/filesystem_utils_unittest.cc
|
| +++ b/tools/gn/filesystem_utils_unittest.cc
|
| @@ -254,6 +254,55 @@ TEST(FilesystemUtils, DirectoryWithNoLastSlash) {
|
| EXPECT_EQ("/bar", DirectoryWithNoLastSlash(SourceDir("/bar/")));
|
| }
|
|
|
| +TEST(FilesystemUtils, SourceDirForPath) {
|
| +#if defined(OS_WIN)
|
| + base::FilePath root(L"C:\\source\\foo\\");
|
| + EXPECT_EQ("/C:/foo/bar/", SourceDirForPath(root,
|
| + base::FilePath(L"C:\\foo\\bar")).value());
|
| + EXPECT_EQ("/", SourceDirForPath(root,
|
| + base::FilePath(L"/")).value());
|
| + EXPECT_EQ("//", SourceDirForPath(root,
|
| + base::FilePath(L"C:\\source\\foo")).value());
|
| + EXPECT_EQ("//bar/", SourceDirForPath(root,
|
| + base::FilePath(L"C:\\source\\foo\\bar\\")). value());
|
| + EXPECT_EQ("//bar/baz/", SourceDirForPath(root,
|
| + base::FilePath(L"C:\\source\\foo\\bar\\baz")).value());
|
| +
|
| + // Should be case-and-slash-insensitive.
|
| + EXPECT_EQ("//baR/", SourceDirForPath(root,
|
| + base::FilePath(L"c:/SOURCE\\Foo/baR/")).value());
|
| +
|
| + // Some "weird" Windows paths.
|
| + EXPECT_EQ("/foo/bar/", SourceDirForPath(root,
|
| + base::FilePath(L"/foo/bar/")).value());
|
| + EXPECT_EQ("/C:/foo/bar/", SourceDirForPath(root,
|
| + base::FilePath(L"C:foo/bar/")).value());
|
| +
|
| + // Also allow absolute GN-style Windows paths.
|
| + EXPECT_EQ("/C:/foo/bar/", SourceDirForPath(root,
|
| + base::FilePath(L"/C:/foo/bar")).value());
|
| + EXPECT_EQ("//bar/", SourceDirForPath(root,
|
| + base::FilePath(L"/C:/source/foo/bar")).value());
|
| +
|
| +#else
|
| + base::FilePath root("/source/foo/");
|
| + EXPECT_EQ("/foo/bar/", SourceDirForPath(root,
|
| + base::FilePath("/foo/bar/")).value());
|
| + EXPECT_EQ("/", SourceDirForPath(root,
|
| + base::FilePath("/")).value());
|
| + EXPECT_EQ("//", SourceDirForPath(root,
|
| + base::FilePath("/source/foo")).value());
|
| + EXPECT_EQ("//bar/", SourceDirForPath(root,
|
| + base::FilePath("/source/foo/bar/")).value());
|
| + EXPECT_EQ("//bar/baz/", SourceDirForPath(root,
|
| + base::FilePath("/source/foo/bar/baz/")).value());
|
| +
|
| + // Should be case-sensitive.
|
| + EXPECT_EQ("/SOURCE/foo/bar/", SourceDirForPath(root,
|
| + base::FilePath("/SOURCE/foo/bar/")).value());
|
| +#endif
|
| +}
|
| +
|
| TEST(FilesystemUtils, GetToolchainDirs) {
|
| BuildSettings build_settings;
|
| build_settings.SetBuildDir(SourceDir("//out/Debug/"));
|
|
|