aboutsummaryrefslogtreecommitdiff
path: root/zencore/filesystem.cpp
diff options
context:
space:
mode:
authorMartin Ridgers <[email protected]>2021-11-17 09:33:29 +0100
committerMartin Ridgers <[email protected]>2021-11-17 09:33:29 +0100
commitb8a25c42b9536018cff5bf82119e543e92c51ebd (patch)
treee9e3886667b99e56b4a7f04828e8849631ce45fd /zencore/filesystem.cpp
parentSet correct read-write file modes on WriteFile() output (diff)
downloadzen-b8a25c42b9536018cff5bf82119e543e92c51ebd.tar.xz
zen-b8a25c42b9536018cff5bf82119e543e92c51ebd.zip
WriteFile() tests
Diffstat (limited to 'zencore/filesystem.cpp')
-rw-r--r--zencore/filesystem.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/zencore/filesystem.cpp b/zencore/filesystem.cpp
index f594076c3..73ba4ce1a 100644
--- a/zencore/filesystem.cpp
+++ b/zencore/filesystem.cpp
@@ -1010,6 +1010,37 @@ TEST_CASE("filesystem")
CHECK_EQ(BinScan.size(), BinRead.Data[0].GetSize());
}
+TEST_CASE("WriteFile")
+{
+ std::filesystem::path TempFile = GetRunningExecutablePath().parent_path();
+ TempFile /= "write_file_test";
+
+ uint64_t Magics[] = {
+ 0x0'a9e'a9e'a9e'a9e'a9e,
+ 0x0'493'493'493'493'493,
+ };
+
+ struct
+ {
+ const void* Data;
+ size_t Size;
+ } MagicTests[] = {
+ { Magics, sizeof(Magics), },
+ { Magics + 1, sizeof(Magics[0]), },
+ };
+ for (auto& MagicTest : MagicTests)
+ {
+ WriteFile(TempFile, IoBuffer(IoBuffer::Wrap, MagicTest.Data, MagicTest.Size));
+
+ FileContents MagicsReadback = ReadFile(TempFile);
+ CHECK_EQ(MagicsReadback.Data.size(), 1);
+ CHECK_EQ(MagicsReadback.Data[0].GetSize(), MagicTest.Size);
+ CHECK_EQ(memcmp(MagicTest.Data, MagicsReadback.Data[0].Data(), MagicTest.Size), 0);
+ }
+
+ std::filesystem::remove(TempFile);
+}
+
TEST_CASE("PathBuilder")
{
#if ZEN_PLATFORM_WINDOWS