This commit is contained in:
Aria 2025-03-21 22:23:30 +11:00
commit 9c94d113d3
Signed by untrusted user who does not match committer: aria
GPG key ID: 19AB7AA462B8AB3B
10260 changed files with 1237388 additions and 0 deletions

51
source/test/file_test.cpp Normal file
View file

@ -0,0 +1,51 @@
#include "StarFile.hpp"
#include "StarString.hpp"
#include "StarFormat.hpp"
#include "gtest/gtest.h"
using namespace Star;
TEST(FileTest, All) {
auto file = File::ephemeralFile();
file->resize(1000);
file->resize(0);
file->resize(500);
EXPECT_EQ(file->size(), 500);
auto dir = File::temporaryDirectory();
File::makeDirectory(File::relativeTo(dir, "inner"));
EXPECT_TRUE(File::isDirectory(File::relativeTo(dir, "inner") + "/"));
File::removeDirectoryRecursive(dir);
#ifdef STAR_SYSTEM_FAMILY_WINDOWS
EXPECT_EQ(File::baseName("/foo/bar"), "bar");
EXPECT_EQ(File::baseName("\\foo\\bar\\"), "bar");
EXPECT_EQ(File::baseName("/foo/bar/baz"), "baz");
EXPECT_EQ(File::dirName("\\foo\\bar"), "\\foo");
EXPECT_EQ(File::dirName("/foo\\bar/"), "/foo");
EXPECT_EQ(File::dirName("/foo/bar\\baz"), "/foo/bar");
EXPECT_EQ(File::dirName("foo/bar/baz"), "foo/bar");
EXPECT_EQ(File::relativeTo("c:\\foo\\", "bar"), "c:\\foo\\bar");
EXPECT_EQ(File::relativeTo("c:\\foo", "bar"), "c:\\foo\\bar");
EXPECT_EQ(File::relativeTo("c:\\foo\\", "\\bar"), "\\bar");
EXPECT_EQ(File::relativeTo("c:\\foo\\", ".\\bar"), "c:\\foo\\bar");
EXPECT_EQ(File::relativeTo("c:\\foo\\.", ".\\bar"), "c:\\foo\\bar");
EXPECT_EQ(File::relativeTo("c:\\foo\\.", "c:\\bar"), "c:\\bar");
EXPECT_EQ(File::relativeTo("c:\\foo\\.", "c:bar\\"), "c:bar\\");
EXPECT_EQ(File::relativeTo("c:\\foo.", "bar"), "c:\\foo.\\bar");
#else
EXPECT_EQ(File::baseName("/foo/bar"), "bar");
EXPECT_EQ(File::baseName("/foo/bar/"), "bar");
EXPECT_EQ(File::baseName("/foo/bar/baz"), "baz");
EXPECT_EQ(File::dirName("/foo/bar"), "/foo");
EXPECT_EQ(File::dirName("/foo/bar/"), "/foo");
EXPECT_EQ(File::dirName("/foo/bar/baz"), "/foo/bar");
EXPECT_EQ(File::dirName("foo/bar/baz"), "foo/bar");
EXPECT_EQ(File::relativeTo("/foo", "bar"), "/foo/bar");
EXPECT_EQ(File::relativeTo("/foo", "bar/"), "/foo/bar/");
EXPECT_EQ(File::relativeTo("/foo", "/bar/"), "/bar/");
#endif
}