|
- /**
- * Copyright 2019 Huawei Technologies Co., Ltd
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- #include "dataset/util/path.h"
- #include "common/common.h"
- #include "gtest/gtest.h"
- #include "dataset/util/de_error.h"
- #include "utils/log_adapter.h"
- #include <cstdio>
-
- using namespace mindspore::dataset;
-
- class MindDataTestPath : public UT::Common {
- public:
- MindDataTestPath() {}
- };
-
- TEST_F(MindDataTestPath, Test1) {
- Path f("/tmp");
- ASSERT_TRUE(f.Exists());
- ASSERT_TRUE(f.IsDirectory());
- ASSERT_EQ(f.ParentPath(), "/");
- // Print out the first few items in the directory
- auto dir_it = Path::DirIterator::OpenDirectory(&f);
- ASSERT_NE(dir_it.get(), nullptr);
- int i = 0;
- while (dir_it->hasNext()) {
- Path v = dir_it->next();
- MS_LOG(DEBUG) << v.toString() << "\n";
- i++;
- if (i == 10) {
- break;
- }
- }
- // Test extension.
- Path g("file.jpeg");
- MS_LOG(DEBUG) << g.Extension() << "\n";
- ASSERT_EQ(g.Extension(), ".jpeg");
- }
-
- TEST_F(MindDataTestPath, Test2) {
- Path p("/tmp");
- Path p2(p);
- ASSERT_TRUE(p2.Exists());
- ASSERT_TRUE(p2.IsDirectory());
- ASSERT_EQ(p2.ParentPath(), "/");
-
- p2 = p;
- ASSERT_TRUE(p2.Exists());
- ASSERT_TRUE(p2.IsDirectory());
- ASSERT_EQ(p2.ParentPath(), "/");
-
- Path p3("");
- p3 = std::move(p2);
- ASSERT_TRUE(p3.Exists());
- ASSERT_TRUE(p3.IsDirectory());
- ASSERT_EQ(p3.ParentPath(), "/");
-
- Path p4(std::move(p3));
- ASSERT_TRUE(p4.Exists());
- ASSERT_TRUE(p4.IsDirectory());
- ASSERT_EQ(p4.ParentPath(), "/");
-
- Path p5("/");
- std::string s = "tmp";
- ASSERT_TRUE((p5 + "tmp").Exists());
- ASSERT_TRUE((p5 + "tmp").IsDirectory());
- ASSERT_EQ((p5 + "tmp").ParentPath(), "/");
-
- ASSERT_TRUE((p5 / "tmp").Exists());
- ASSERT_TRUE((p5 / "tmp").IsDirectory());
- ASSERT_EQ((p5 / "tmp").ParentPath(), "/");
-
- ASSERT_TRUE((p5 + s).Exists());
- ASSERT_TRUE((p5 + s).IsDirectory());
- ASSERT_EQ((p5 + s).ParentPath(), "/");
-
- ASSERT_TRUE((p5 / s).Exists());
- ASSERT_TRUE((p5 / s).IsDirectory());
- ASSERT_EQ((p5 / s).ParentPath(), "/");
-
- Path p6("tmp");
- ASSERT_TRUE((p5 + p6).Exists());
- ASSERT_TRUE((p5 + p6).IsDirectory());
- ASSERT_EQ((p5 + p6).ParentPath(), "/");
- ASSERT_TRUE((p5 / p6).Exists());
- ASSERT_TRUE((p5 / p6).IsDirectory());
- ASSERT_EQ((p5 / p6).ParentPath(), "/");
- p5 += p6;
- ASSERT_TRUE(p5.Exists());
- ASSERT_TRUE(p5.IsDirectory());
- ASSERT_EQ(p5.ParentPath(), "/");
-
- Path p7("/");
- Path p8(p7);
- p7 += s;
- p8 += "tmp";
- ASSERT_TRUE(p7.Exists());
- ASSERT_TRUE(p7.IsDirectory());
- ASSERT_EQ(p7.ParentPath(), "/");
- ASSERT_TRUE(p8.Exists());
- ASSERT_TRUE(p8.IsDirectory());
- ASSERT_EQ(p8.ParentPath(), "/");
-
- Path p9("/tmp/test_path");
- ASSERT_TRUE(p9.CreateDirectories().IsOk());
- ASSERT_EQ(remove("/tmp/test_path"), 0);
- }
|