Added some tests for create_dir

This commit is contained in:
gabime 2019-10-25 16:17:02 +03:00
parent bd92c23add
commit c19e325b83
3 changed files with 16 additions and 5 deletions

View File

@ -34,10 +34,8 @@ SPDLOG_INLINE void file_helper::open(const filename_t &fname, bool truncate)
for (int tries = 0; tries < open_tries_; ++tries)
{
if (!folder_name.empty())
{
os::create_dir(folder_name); // will not created if already exists
}
// will not created if already exists or empty.
os::create_dir(folder_name);
if (!os::fopen_s(&fd_, fname, mode))
{

View File

@ -478,7 +478,7 @@ SPDLOG_INLINE bool mkdir_(const filename_t &path)
}
// create the given directory - and all directories leading to it
// return true on success
// return true on success or if the directory already exists
SPDLOG_INLINE bool create_dir(filename_t path)
{
if (path_exists(path))
@ -486,6 +486,11 @@ SPDLOG_INLINE bool create_dir(filename_t path)
return true;
}
if(path.empty())
{
return false;
}
#ifdef _WIN32
// support forward slash in windows
std::replace(path.begin(), path.end(), '/', folder_sep);

View File

@ -32,6 +32,14 @@ TEST_CASE("create_dir", "[create_dir]")
#endif
}
TEST_CASE("create_invalid_dir", "[create_dir]")
{
REQUIRE(create_dir("") == false);
#ifdef __linux__
REQUIRE(create_dir("/proc/spdlog-utest") == false);
#endif
}
TEST_CASE("dir_name", "[create_dir]")
{
using spdlog::details::os::dir_name;