diff options
author | Cary Clark <caryclark@skia.org> | 2018-01-05 10:55:28 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-01-05 17:53:15 +0000 |
commit | 7a600416e131b33610b1c96a367b3cb2569f458e (patch) | |
tree | 5f283eb22f84d9057123e36169e643bd3af3e906 /tests/OSPathTest.cpp | |
parent | 18eafd922d911606dfe991efad8ec5eaafbc2704 (diff) |
allow both slash types
Windows allows forwards and backwards slashes
for path directory delimiters.
R=halcanary@google.com
Change-Id: Ie6f1257c98ac8e2468d9297b5dc391fd17f4ae82
Reviewed-on: https://skia-review.googlesource.com/90821
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>
Diffstat (limited to 'tests/OSPathTest.cpp')
-rw-r--r-- | tests/OSPathTest.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/tests/OSPathTest.cpp b/tests/OSPathTest.cpp index 22deff80a5..74ca802304 100644 --- a/tests/OSPathTest.cpp +++ b/tests/OSPathTest.cpp @@ -32,7 +32,8 @@ static void test_dir_with_file(skiatest::Reporter* reporter, SkString dir, // fullName should be the combined size of dir and file, plus one if // dir did not include the final path separator. size_t expectedSize = dir.size() + filename.size(); - if (!dir.endsWith(SkOSPath::SEPARATOR) && !dir.isEmpty()) { + if (!dir.endsWith(SkOSPath::SEPARATOR) && ('\\' != SkOSPath::SEPARATOR || + !dir.endsWith('/')) && !dir.isEmpty()) { expectedSize++; } REPORTER_ASSERT(reporter, fullName.size() == expectedSize); @@ -46,7 +47,10 @@ static void test_dir_with_file(skiatest::Reporter* reporter, SkString dir, // dirname should be the same as dir with any trailing seperators removed. // Except when the the string is just "/". SkString strippedDir = dir; - while (strippedDir.size() > 2 && strippedDir[strippedDir.size() - 1] == SkOSPath::SEPARATOR) { + while (strippedDir.size() > 2 && + (strippedDir[strippedDir.size() - 1] == SkOSPath::SEPARATOR || + ('\\' == SkOSPath::SEPARATOR && + strippedDir[strippedDir.size() - 1] == '/'))) { strippedDir.remove(strippedDir.size() - 1, 1); } if (!dirname.equals(strippedDir)) { @@ -102,4 +106,13 @@ DEF_TEST(OSPath, reporter) { // Test that nullptr can be used for the directory and filename. SkString emptyPath = SkOSPath::Join(nullptr, nullptr); REPORTER_ASSERT(reporter, emptyPath.isEmpty()); + +#ifdef SK_BUILD_FOR_WIN + test_dir_with_file(reporter, SkString("dir/"), filename); + test_dir_with_file(reporter, SkString("dir/dir"), filename); + test_dir_with_file(reporter, SkString("dir\\dir/"), filename); + test_dir_with_file(reporter, SkString("dir/dir\\"), filename); + test_dir_with_file(reporter, SkString("dir\\dir/dir"), filename); + test_dir_with_file(reporter, SkString("dir/dir\\dir"), filename); +#endif } |