diff --git a/include/rcpputils/filesystem_helper.hpp b/include/rcpputils/filesystem_helper.hpp index 507fdba..a3c7467 100644 --- a/include/rcpputils/filesystem_helper.hpp +++ b/include/rcpputils/filesystem_helper.hpp @@ -509,6 +509,8 @@ inline bool create_directories(const path & p) #else status = mkdir(p_built.string().c_str(), S_IRWXU | S_IRWXG | S_IRWXO); #endif + } else if (!p_built.is_directory()) { + status = 1; } } return status == 0; diff --git a/test/test_filesystem_helper.cpp b/test/test_filesystem_helper.cpp index 11952d6..dc697b6 100644 --- a/test/test_filesystem_helper.cpp +++ b/test/test_filesystem_helper.cpp @@ -286,6 +286,7 @@ TEST(TestFilesystemHelper, filesystem_manipulation) EXPECT_TRUE(rcpputils::fs::exists(file)); EXPECT_TRUE(rcpputils::fs::is_regular_file(file)); EXPECT_FALSE(rcpputils::fs::is_directory(file)); + EXPECT_FALSE(rcpputils::fs::create_directories(file)); EXPECT_GE(rcpputils::fs::file_size(file), expected_file_size); EXPECT_THROW(rcpputils::fs::file_size(dir), std::system_error) << "file_size is only applicable for files!";