diff --git a/tests/IO/FsUtils.cpp b/tests/IO/FsUtils.cpp index 961d8b7..c42c215 100644 --- a/tests/IO/FsUtils.cpp +++ b/tests/IO/FsUtils.cpp @@ -41,6 +41,27 @@ TEST_CASE("DeleteEmptySubTrees", "[FsUtils]") REQUIRE(FsUtils::DeleteEmptySubTrees(baseDir)); REQUIRE(!std::filesystem::exists(baseDir / "emptyTree")); + std::filesystem::create_directories(baseDir / "partialTree" / "subDir1"); + std::filesystem::create_directories(baseDir / "partialTree" / "subDir2"); + std::ofstream(baseDir / "partialTree" / "subDir2/file.txt").put('x'); + + REQUIRE(FsUtils::DeleteEmptySubTrees(baseDir / "partialTree")); + + REQUIRE(!std::filesystem::exists(baseDir / "partialTree" / "subDir1")); + REQUIRE(std::filesystem::exists(baseDir / "partialTree" / "subDir2")); + REQUIRE(std::filesystem::exists(baseDir / "partialTree" / "subDir2/file.txt")); + + std::filesystem::remove(baseDir / "partialTree" / "subDir2/file.txt"); + + REQUIRE(!std::filesystem::exists(baseDir / "partialTree" / "subDir1")); + REQUIRE(std::filesystem::exists(baseDir / "partialTree" / "subDir2")); + REQUIRE(!std::filesystem::exists(baseDir / "partialTree" / "subDir2/file.txt")); + + REQUIRE(FsUtils::DeleteEmptySubTrees(baseDir / "partialTree")); + + REQUIRE(!std::filesystem::exists(baseDir / "partialTree" / "subDir1")); + REQUIRE(!std::filesystem::exists(baseDir / "partialTree" / "subDir2")); + std::filesystem::remove_all(baseDir); }