diff options
Diffstat (limited to 'src/zencore/testutils.cpp')
| -rw-r--r-- | src/zencore/testutils.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/zencore/testutils.cpp b/src/zencore/testutils.cpp new file mode 100644 index 000000000..dbc3ab5af --- /dev/null +++ b/src/zencore/testutils.cpp @@ -0,0 +1,42 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "zencore/testutils.h" +#include <zencore/session.h> +#include "zencore/string.h" + +#include <atomic> + +namespace zen { + +static std::atomic<int> Sequence{0}; + +std::filesystem::path +CreateTemporaryDirectory() +{ + std::error_code Ec; + + std::filesystem::path DirPath = std::filesystem::temp_directory_path() / GetSessionIdString() / IntNum(++Sequence).c_str(); + std::filesystem::remove_all(DirPath, Ec); + std::filesystem::create_directories(DirPath); + + return DirPath; +} + +ScopedTemporaryDirectory::ScopedTemporaryDirectory() : m_RootPath(CreateTemporaryDirectory()) +{ +} + +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; + std::filesystem::remove_all(m_RootPath, Ec); +} + +} // namespace zen
\ No newline at end of file |