You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2018/11/19 05:41:56 UTC

[mesos] 02/02: Added unit tests for Stout `path::normalize` function in POSIX.

This is an automated email from the ASF dual-hosted git repository.

jieyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git

commit b866fc3278dc4fd48d1a50493bcde1efdfa91cc7
Author: Jason Lai <ja...@jasonlai.net>
AuthorDate: Sun Nov 18 21:12:28 2018 -0800

    Added unit tests for Stout `path::normalize` function in POSIX.
    
    Review: https://reviews.apache.org/r/68832/
---
 3rdparty/stout/tests/path_tests.cpp | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/3rdparty/stout/tests/path_tests.cpp b/3rdparty/stout/tests/path_tests.cpp
index 452865b..19dd910 100644
--- a/3rdparty/stout/tests/path_tests.cpp
+++ b/3rdparty/stout/tests/path_tests.cpp
@@ -200,6 +200,42 @@ TEST(PathTest, Extension)
 }
 
 
+TEST(PathTest, Normalize)
+{
+  EXPECT_SOME_EQ(".", path::normalize(""));
+
+#ifndef __WINDOWS__
+  EXPECT_SOME_EQ("a/b/c", path::normalize("a/b/c/"));
+  EXPECT_SOME_EQ("a/b/c", path::normalize("a///b//c"));
+  EXPECT_SOME_EQ("a/b/c", path::normalize("a/foobar/../b//c/"));
+  EXPECT_SOME_EQ("a/b/c/.d", path::normalize("a/b/c/./.d/"));
+
+  EXPECT_SOME_EQ(".", path::normalize("a/b/../c/../.."));
+  EXPECT_SOME_EQ(".", path::normalize("a/b/../c/../../"));
+
+  EXPECT_SOME_EQ("..", path::normalize("a/../b/c/../../.."));
+  EXPECT_SOME_EQ("../..", path::normalize("a/../../.."));
+  EXPECT_SOME_EQ("../../a", path::normalize("../.././a/"));
+  EXPECT_SOME_EQ("../../b", path::normalize("../../a///../b"));
+  EXPECT_SOME_EQ("../../c", path::normalize("a/../b/.././../../c"));
+
+  EXPECT_SOME_EQ("/a/b/c", path::normalize("/a/b/c"));
+  EXPECT_SOME_EQ("/a/b/c", path::normalize("//a///b/c"));
+  EXPECT_SOME_EQ("/a/b/c", path::normalize("/a/foobar/../b//c/"));
+  EXPECT_SOME_EQ("/a/b/c/.d", path::normalize("/a/b/c/./.d/"));
+
+  EXPECT_SOME_EQ("/", path::normalize("/a/b/../c/../.."));
+  EXPECT_SOME_EQ("/", path::normalize("/a/b/../c/../../"));
+
+  EXPECT_ERROR(path::normalize("/a/../b/c/../../.."));
+  EXPECT_ERROR(path::normalize("/a/../../.."));
+  EXPECT_ERROR(path::normalize("/../.././a/"));
+  EXPECT_ERROR(path::normalize("/../../a///../b"));
+  EXPECT_ERROR(path::normalize("//a/../b/.././../../c"));
+#endif // __WINDOWS__
+}
+
+
 TEST(PathTest, Join)
 {
   EXPECT_EQ("a%b", path::join("a", "b", '%'));