diff --git a/tests/test_OFStream.cpp b/tests/test_OFStream.cpp index e9aa257785d7cd04da37297a0480ae5b923710fe..1671a9cbef734ba2d23a86b6b8cd0beed7709981 100644 --- a/tests/test_OFStream.cpp +++ b/tests/test_OFStream.cpp @@ -7,6 +7,12 @@ #include <filesystem> +#ifdef __linux__ +#include <fcntl.h> +#include <linux/fs.h> +#include <sys/ioctl.h> +#endif // __linux__ + // clazy:excludeall=non-pod-global-static TEST_CASE("OFStream", "[language]") @@ -49,6 +55,7 @@ TEST_CASE("OFStream", "[language]") REQUIRE(not std::filesystem::exists(filename)); } +#ifdef __linux__ SECTION("invalid filename") { if (parallel::rank() == 0) { @@ -60,8 +67,14 @@ TEST_CASE("OFStream", "[language]") std::filesystem::perms::others_all, std::filesystem::perm_options::remove); + int fd = open("tests/badpath/invalidpath", O_DIRECTORY); + int flags = FS_IMMUTABLE_FL; + ioctl(fd, FS_IOC_SETFLAGS, &flags); REQUIRE_THROWS_WITH(std::make_shared<OFStream>(filename), "error: cannot create file " + filename); + flags = 0; + ioctl(fd, FS_IOC_SETFLAGS, &flags); + std::filesystem::permissions(directory, std::filesystem::perms::owner_all | std::filesystem::perms::group_all | std::filesystem::perms::others_all, @@ -69,4 +82,5 @@ TEST_CASE("OFStream", "[language]") std::filesystem::remove_all("tests/badpath"); } } +#endif // __linux__ }