diff options
Diffstat (limited to 'test/test_pathutil.cc')
| -rw-r--r-- | test/test_pathutil.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/test_pathutil.cc b/test/test_pathutil.cc new file mode 100644 index 0000000..4d12e8f --- /dev/null +++ b/test/test_pathutil.cc @@ -0,0 +1,30 @@ +#include "common.hh" + +#include "pathutil.hh" + +#include <gtest/gtest.h> + +TEST(pathutil, cleanup) { + EXPECT_EQ("/", path::cleanup("")); + EXPECT_EQ("/", path::cleanup("/")); + EXPECT_EQ("/", path::cleanup("//")); + EXPECT_EQ("/", path::cleanup("///////")); + EXPECT_EQ("/", path::cleanup(".")); + EXPECT_EQ("/", path::cleanup("/.")); + EXPECT_EQ("/", path::cleanup("/./")); + EXPECT_EQ("/", path::cleanup("/././././")); + EXPECT_EQ("/", path::cleanup("./")); + EXPECT_EQ("/", path::cleanup("..")); + EXPECT_EQ("/", path::cleanup("../")); + EXPECT_EQ("/", path::cleanup("/../")); + EXPECT_EQ("/", path::cleanup("/..")); + EXPECT_EQ("/", path::cleanup("/../../../..")); + EXPECT_EQ("/foo/", path::cleanup("/../../../../foo/")); + EXPECT_EQ("/foo", path::cleanup("/foo")); + EXPECT_EQ("/foo/", path::cleanup("/foo/")); + EXPECT_EQ("/foo/", path::cleanup("////foo////")); + EXPECT_EQ("/foo/", path::cleanup("/./foo/")); + EXPECT_EQ("/foo/", path::cleanup("/foo/.")); + EXPECT_EQ("/", path::cleanup("/foo/..")); + EXPECT_EQ("/bar", path::cleanup("/foo/../bar")); +} |
