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__
 }