diff options
| author | Martin Ridgers <[email protected]> | 2021-10-11 10:32:13 +0200 |
|---|---|---|
| committer | Martin Ridgers <[email protected]> | 2021-10-11 10:32:13 +0200 |
| commit | 735b478c1425cc9a1e407bf917dc8daa4ab16b11 (patch) | |
| tree | 6e253ee94a5db9244756571084f3f07472e4e2b3 /zencore | |
| parent | Fixed undefined mimalloc symbols (diff) | |
| parent | iobuffer: Changed MakeFromTemporaryFile so it accepts a path instead of a cha... (diff) | |
| download | zen-735b478c1425cc9a1e407bf917dc8daa4ab16b11.tar.xz zen-735b478c1425cc9a1e407bf917dc8daa4ab16b11.zip | |
Merged main
Diffstat (limited to 'zencore')
| -rw-r--r-- | zencore/filesystem.cpp | 4 | ||||
| -rw-r--r-- | zencore/include/zencore/iobuffer.h | 2 | ||||
| -rw-r--r-- | zencore/include/zencore/testutils.h | 1 | ||||
| -rw-r--r-- | zencore/iobuffer.cpp | 6 | ||||
| -rw-r--r-- | zencore/string.cpp | 12 | ||||
| -rw-r--r-- | zencore/testutils.cpp | 7 |
6 files changed, 25 insertions, 7 deletions
diff --git a/zencore/filesystem.cpp b/zencore/filesystem.cpp index 9936f30ec..c3edf656e 100644 --- a/zencore/filesystem.cpp +++ b/zencore/filesystem.cpp @@ -842,9 +842,9 @@ TEST_CASE("filesystem") { using namespace std::filesystem; - // GetExePath + // GetExePath -- this is not a great test as it's so dependent on where the this code gets linked in path BinPath = GetRunningExecutablePath(); - const bool ExpectedExe = BinPath.stem() == "zencore-test" || BinPath.stem() == "zenserver-test"; + const bool ExpectedExe = BinPath.stem() == "zencore-test" || BinPath.stem() == "zenserver-test" || BinPath.stem() == "zenstore-test"; CHECK(ExpectedExe); CHECK(is_regular_file(BinPath)); diff --git a/zencore/include/zencore/iobuffer.h b/zencore/include/zencore/iobuffer.h index 110cd7d9d..5fbeaeaeb 100644 --- a/zencore/include/zencore/iobuffer.h +++ b/zencore/include/zencore/iobuffer.h @@ -372,7 +372,7 @@ class IoBufferBuilder public: ZENCORE_API static IoBuffer MakeFromFile(const path_char_t* FileName, uint64_t Offset = 0, uint64_t Size = ~0ull); - ZENCORE_API static IoBuffer MakeFromTemporaryFile(const path_char_t* FileName); + ZENCORE_API static IoBuffer MakeFromTemporaryFile(const std::filesystem::path& FileName); ZENCORE_API static IoBuffer MakeFromFileHandle(void* FileHandle, uint64_t Offset = 0, uint64_t Size = ~0ull); inline static IoBuffer MakeCloneFromMemory(const void* Ptr, size_t Sz) { return IoBuffer(IoBuffer::Clone, Ptr, Sz); } }; diff --git a/zencore/include/zencore/testutils.h b/zencore/include/zencore/testutils.h index 72d985d5c..04648c6de 100644 --- a/zencore/include/zencore/testutils.h +++ b/zencore/include/zencore/testutils.h @@ -11,6 +11,7 @@ std::filesystem::path CreateTemporaryDirectory(); class ScopedTemporaryDirectory { public: + explicit ScopedTemporaryDirectory(std::filesystem::path Directory); ScopedTemporaryDirectory(); ~ScopedTemporaryDirectory(); diff --git a/zencore/iobuffer.cpp b/zencore/iobuffer.cpp index 04685defc..922c14f83 100644 --- a/zencore/iobuffer.cpp +++ b/zencore/iobuffer.cpp @@ -437,7 +437,7 @@ IoBufferBuilder::MakeFromFile(const path_char_t* FileName, uint64_t Offset, uint } IoBuffer -IoBufferBuilder::MakeFromTemporaryFile(const path_char_t* FileName) +IoBufferBuilder::MakeFromTemporaryFile(const std::filesystem::path& FileName) { uint64_t FileSize; void* Handle; @@ -449,7 +449,7 @@ IoBufferBuilder::MakeFromTemporaryFile(const path_char_t* FileName) // when a file has been written to a staging directory, and is going // to be moved in place - HRESULT hRes = DataFile.Create(FileName, GENERIC_READ | DELETE, FILE_SHARE_READ | FILE_SHARE_DELETE, OPEN_EXISTING); + HRESULT hRes = DataFile.Create(FileName.native().c_str(), GENERIC_READ | DELETE, FILE_SHARE_READ | FILE_SHARE_DELETE, OPEN_EXISTING); if (FAILED(hRes)) { @@ -460,7 +460,7 @@ IoBufferBuilder::MakeFromTemporaryFile(const path_char_t* FileName) Handle = DataFile.Detach(); # else - int Fd = open(FileName, O_RDONLY); + int Fd = open(FileName.native().c_str(), O_RDONLY); if (Fd < 0) { return {}; diff --git a/zencore/string.cpp b/zencore/string.cpp index 4bf0378b2..efa84ea73 100644 --- a/zencore/string.cpp +++ b/zencore/string.cpp @@ -341,7 +341,17 @@ NiceBytesToBuffer(uint64_t Num, std::span<char> Buffer) size_t NiceByteRateToBuffer(uint64_t Num, uint64_t ElapsedMs, std::span<char> Buffer) { - size_t n = NiceNumGeneral(Num * 1000 / ElapsedMs, Buffer, kNicenumBytes); + size_t n = 0; + + if (ElapsedMs) + { + n = NiceNumGeneral(Num * 1000 / ElapsedMs, Buffer, kNicenumBytes); + } + else + { + Buffer[n++] = '0'; + Buffer[n++] = 'B'; + } Buffer[n++] = '/'; Buffer[n++] = 's'; diff --git a/zencore/testutils.cpp b/zencore/testutils.cpp index 78957cbcf..dbc3ab5af 100644 --- a/zencore/testutils.cpp +++ b/zencore/testutils.cpp @@ -26,6 +26,13 @@ ScopedTemporaryDirectory::ScopedTemporaryDirectory() : m_RootPath(CreateTemporar { } +ScopedTemporaryDirectory::ScopedTemporaryDirectory(std::filesystem::path Directory) : m_RootPath(Directory) +{ + std::error_code Ec; + std::filesystem::remove_all(Directory, Ec); + std::filesystem::create_directories(Directory); +} + ScopedTemporaryDirectory::~ScopedTemporaryDirectory() { std::error_code Ec; |