diff options
author | Scott Graham <scottmg@chromium.org> | 2014-10-30 22:34:25 (GMT) |
---|---|---|
committer | Scott Graham <scottmg@chromium.org> | 2014-10-30 22:34:25 (GMT) |
commit | 65151e7eefce514febd0a9676c5363c6d4c54b66 (patch) | |
tree | 8458820f009b6a20b00adeb129d5055b281d2386 /src/util_test.cc | |
parent | b92c1a4fd731df4c1a408023cd0d0b691bf79f2f (diff) | |
download | Ninja-65151e7eefce514febd0a9676c5363c6d4c54b66.zip Ninja-65151e7eefce514febd0a9676c5363c6d4c54b66.tar.gz Ninja-65151e7eefce514febd0a9676c5363c6d4c54b66.tar.bz2 |
CanonicalizePath handles \ on Windows
Diffstat (limited to 'src/util_test.cc')
-rw-r--r-- | src/util_test.cc | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/util_test.cc b/src/util_test.cc index b58d15e..e82f227 100644 --- a/src/util_test.cc +++ b/src/util_test.cc @@ -84,6 +84,72 @@ TEST(CanonicalizePath, PathSamples) { EXPECT_EQ("", path); } +#ifdef _WIN32 +TEST(CanonicalizePath, PathSamplesWindows) { + string path; + string err; + + EXPECT_FALSE(CanonicalizePath(&path, &err)); + EXPECT_EQ("empty path", err); + + path = "foo.h"; err = ""; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("foo.h", path); + + path = ".\\foo.h"; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("foo.h", path); + + path = ".\\foo\\.\\bar.h"; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("foo/bar.h", path); + + path = ".\\x\\foo\\..\\bar.h"; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("x/bar.h", path); + + path = ".\\x\\foo\\..\\..\\bar.h"; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("bar.h", path); + + path = "foo\\\\bar"; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("foo/bar", path); + + path = "foo\\\\.\\\\..\\\\\\bar"; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("bar", path); + + path = ".\\x\\..\\foo\\..\\..\\bar.h"; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("../bar.h", path); + + path = "foo\\.\\."; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("foo", path); + + path = "foo\\bar\\.."; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("foo", path); + + path = "foo\\.hidden_bar"; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("foo/.hidden_bar", path); + + path = "\\foo"; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("/foo", path); + + path = "\\\\foo"; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("//foo", path); + + path = "\\"; + EXPECT_TRUE(CanonicalizePath(&path, &err)); + EXPECT_EQ("", path); +} +#endif + TEST(CanonicalizePath, EmptyResult) { string path; string err; |