diff options
| author | Martin Ridgers <[email protected]> | 2021-11-17 09:33:29 +0100 |
|---|---|---|
| committer | Martin Ridgers <[email protected]> | 2021-11-17 09:33:29 +0100 |
| commit | b8a25c42b9536018cff5bf82119e543e92c51ebd (patch) | |
| tree | e9e3886667b99e56b4a7f04828e8849631ce45fd /zencore/filesystem.cpp | |
| parent | Set correct read-write file modes on WriteFile() output (diff) | |
| download | zen-b8a25c42b9536018cff5bf82119e543e92c51ebd.tar.xz zen-b8a25c42b9536018cff5bf82119e543e92c51ebd.zip | |
WriteFile() tests
Diffstat (limited to 'zencore/filesystem.cpp')
| -rw-r--r-- | zencore/filesystem.cpp | 31 |
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 |