fuse unit tests and fixes
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good

This commit is contained in:
Scott E. Graves 2024-11-14 09:42:42 -06:00
parent bb8ff0de59
commit 74496016f0

View File

@ -104,6 +104,51 @@ TYPED_TEST(fuse_test, rdrw_can_read_from_offset_after_eof) {
this->unlink_file_and_test(file_path);
}
TYPED_TEST(fuse_test, rdrw_can_not_write_to_ro_file) {
std::string file_name{"create_test"};
auto file_path = this->create_file_and_test(file_name);
auto handle = open(file_path.c_str(), O_RDONLY);
ASSERT_GT(handle, -1);
auto write_buffer = utils::generate_secure_random<data_buffer>(8096U);
auto bytes_written =
pwrite64(handle, write_buffer.data(), write_buffer.size(), 0U);
EXPECT_EQ(-1, bytes_written);
EXPECT_EQ(EBADF, errno);
auto file_size = utils::file::file{file_path}.size();
EXPECT_TRUE(file_size.has_value());
EXPECT_EQ(0U, *file_size);
close(handle);
this->unlink_file_and_test(file_path);
}
TYPED_TEST(fuse_test, rdrw_can_not_read_from_wo_file) {
std::string file_name{"create_test"};
auto file_path = this->create_file_and_test(file_name);
auto handle = open(file_path.c_str(), O_WRONLY);
ASSERT_GT(handle, -1);
auto write_buffer = utils::generate_secure_random<data_buffer>(8096U);
auto bytes_written =
pwrite64(handle, write_buffer.data(), write_buffer.size(), 0U);
EXPECT_EQ(write_buffer.size(), bytes_written);
data_buffer read_buffer(1U);
auto bytes_read =
pread64(handle, read_buffer.data(), read_buffer.size(), idx);
EXPECT_EQ(-1, bytes_read);
EXPECT_EQ(EBADF, errno);
close(handle);
this->unlink_file_and_test(file_path);
}
} // namespace repertory
#endif // !defined(_WIN32)