diff --git a/repertory/repertory_test/src/fuse_drive_create_and_open_test.cpp b/repertory/repertory_test/src/fuse_drive_create_and_open_test.cpp index 44758832..40d2c783 100644 --- a/repertory/repertory_test/src/fuse_drive_create_and_open_test.cpp +++ b/repertory/repertory_test/src/fuse_drive_create_and_open_test.cpp @@ -489,6 +489,30 @@ TYPED_TEST(fuse_test, create_open_fails_if_path_is_directory) { this->rmdir_and_test(dir_path); } + +TYPED_TEST(fuse_test, create_open_fails_if_path_does_not_exist) { + std::array ops{ + O_APPEND, + O_EXCL | O_WRONLY, + O_EXCL, + O_RDWR | O_APPEND, + O_RDWR | O_EXCL, + O_RDWR | O_TRUNC, + O_RDWR, + O_TRUNC, + O_WRONLY | O_APPEND, + O_WRONLY, + }; + + std::string file_name{"create_test"}; + auto file_path = this->create_file_path(file_name); + + for (auto &&flags : ops) { + auto handle = open(file_path.c_str(), flags); + EXPECT_EQ(-1, handle); + EXPECT_EQ(ENOENT, errno); + } +} } // namespace repertory #endif // !defined(_WIN32)