summaryrefslogtreecommitdiff
path: root/test/test_pathutil.cc
blob: 4d12e8f126f4555bdc31eb8dca28457af621b697 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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"));
}