Spaces:
Running
Running
File size: 2,368 Bytes
dc2106c |
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
// Copyright (c) ONNX Project Contributors
/*
* SPDX-License-Identifier: Apache-2.0
*/
#include <list>
#include <utility>
#include "gtest/gtest.h"
#include "onnx/common/path.h"
#ifdef _WIN32
// Only test clean_relative_path and normalize_separator on non-Windows
// because Windows has its own implementation for them from std::filesystem::path.
#else
using namespace ONNX_NAMESPACE;
namespace ONNX_NAMESPACE {
namespace Test {
TEST(PathTest, CleanRelativePathTest) {
// Already normal.
EXPECT_EQ(clean_relative_path("abc"), "abc");
EXPECT_EQ(clean_relative_path("abc/def"), "abc/def");
EXPECT_EQ(clean_relative_path("a/b/c"), "a/b/c");
EXPECT_EQ(clean_relative_path("."), ".");
EXPECT_EQ(clean_relative_path(".."), "..");
EXPECT_EQ(clean_relative_path("../.."), "../..");
EXPECT_EQ(clean_relative_path("../../abc"), "../../abc");
// Remove trailing slash
EXPECT_EQ(clean_relative_path("abc/"), "abc");
EXPECT_EQ(clean_relative_path("abc/def/"), "abc/def");
EXPECT_EQ(clean_relative_path("a/b/c/"), "a/b/c");
EXPECT_EQ(clean_relative_path("./"), ".");
EXPECT_EQ(clean_relative_path("../"), "..");
EXPECT_EQ(clean_relative_path("../../"), "../..");
// Remove doubled slash
EXPECT_EQ(clean_relative_path("abc//def//ghi"), "abc/def/ghi");
EXPECT_EQ(clean_relative_path("abc///"), "abc");
EXPECT_EQ(clean_relative_path("abc//"), "abc");
// Remove . elements
EXPECT_EQ(clean_relative_path("abc/./def"), "abc/def");
EXPECT_EQ(clean_relative_path("./abc/def"), "abc/def");
EXPECT_EQ(clean_relative_path("abc/."), "abc");
// Remove .. elements
EXPECT_EQ(clean_relative_path("abc/def/ghi/../jkl"), "abc/def/jkl");
EXPECT_EQ(clean_relative_path("abc/def/../ghi/../jkl"), "abc/jkl");
EXPECT_EQ(clean_relative_path("abc/def/.."), "abc");
EXPECT_EQ(clean_relative_path("abc/def/../.."), ".");
EXPECT_EQ(clean_relative_path("abc/def/../../.."), "..");
EXPECT_EQ(clean_relative_path("abc/def/../../../ghi/jkl/../../../mno"), "../../mno");
EXPECT_EQ(clean_relative_path("../abc"), "../abc");
// Combinations
EXPECT_EQ(clean_relative_path("abc/./../def"), "def");
EXPECT_EQ(clean_relative_path("abc//./../def"), "def");
EXPECT_EQ(clean_relative_path("abc/../../././../def"), "../../def");
}
} // namespace Test
} // namespace ONNX_NAMESPACE
#endif
|