#include "../filesystem/filesystem.hpp" #include <gtest/gtest.h> TEST(FileTest, FilesWork) { sprawl::filesystem::File f = sprawl::filesystem::Open("./test.txt", "w"); f.Write("Hi there!"); f.Flush(); f.Sync(); EXPECT_EQ(9, f.Tell()); EXPECT_EQ(9, f.FileSize()); EXPECT_FALSE(f.IsClosed()); f.Seek(5, sprawl::filesystem::RelativeTo::Beginning); EXPECT_EQ(5, f.Tell()); EXPECT_EQ(9, f.FileSize()); f.Seek(2, sprawl::filesystem::RelativeTo::CurrentPosition); EXPECT_EQ(7, f.Tell()); EXPECT_EQ(9, f.FileSize()); f.Seek(-3, sprawl::filesystem::RelativeTo::End); EXPECT_EQ(6, f.Tell()); EXPECT_EQ(9, f.FileSize()); EXPECT_EQ(sprawl::String("w"), f.Mode()); f.Close(); EXPECT_TRUE(f.IsClosed()); f = sprawl::filesystem::Open("./test.txt", "r+"); EXPECT_FALSE(f.IsClosed()); EXPECT_FALSE(f.IsATTY()); EXPECT_EQ(9, f.FileSize()); EXPECT_EQ(sprawl::String("r+"), f.Mode()); sprawl::String str = f.Read(2); EXPECT_EQ(sprawl::String("Hi"), str); f.Seek(0, sprawl::filesystem::RelativeTo::Beginning); str = f.Read(); EXPECT_EQ(sprawl::String("Hi there!"), str); f.Truncate(2); EXPECT_EQ(2, f.Tell()); EXPECT_EQ(2, f.FileSize()); f.Seek(0, sprawl::filesystem::RelativeTo::Beginning); str = f.Read(); EXPECT_EQ(sprawl::String("Hi"), str); f.Close(); f = sprawl::filesystem::Open("./test.txt", "r+"); EXPECT_EQ(2, f.FileSize()); str = f.Read(); EXPECT_EQ(sprawl::String("Hi"), str); f.Close(); f = sprawl::filesystem::Open("./test.txt", "w"); f.Write("Hello"); f.Write(sprawl::filesystem::LineSeparator()); f.Write("World"); f.Close(); f = sprawl::filesystem::Open("./test.txt", "r"); sprawl::String hello = f.ReadLine(); sprawl::String world = f.ReadLine(); EXPECT_EQ(sprawl::String("Hello{}").format(sprawl::filesystem::LineSeparator()), hello); EXPECT_EQ(sprawl::String("World"), world); }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 14781 | ShadauxCat |
-Finished path library -Added some more functionality to filesystem library -Added a few more unit tests, still more needed for path #review-14782 |
||
#1 | 14761 | ShadauxCat |
First drop of code for sprawl::filesystem and sprawl::path. Library will continue to grow. Also fixed a warning on linux. #review-14762 |