extract common behavior

This commit is contained in:
2023-11-14 18:20:11 -06:00
parent 60052081b4
commit 19b1a33c48
7 changed files with 241 additions and 280 deletions

View File

@@ -89,7 +89,7 @@ static auto create_file_and_test(const std::string &mount_location,
EXPECT_EQ(0u, file_size);
EXPECT_EQ(0, close(fd));
std::this_thread::sleep_for(1s);
std::this_thread::sleep_for(2s);
return file_path;
}
@@ -102,7 +102,7 @@ static void rmdir_and_test(const std::string &directory_path) {
}
EXPECT_EQ(0, ret);
std::this_thread::sleep_for(1s);
std::this_thread::sleep_for(2s);
EXPECT_FALSE(utils::file::is_directory(directory_path));
EXPECT_FALSE(utils::file::is_file(directory_path));
@@ -116,7 +116,7 @@ static void unlink_file_and_test(const std::string &file_path) {
EXPECT_EQ(0, ret);
std::this_thread::sleep_for(1s);
std::this_thread::sleep_for(2s);
EXPECT_FALSE(utils::file::is_directory(file_path));
EXPECT_FALSE(utils::file::is_file(file_path));
}
@@ -182,19 +182,20 @@ static void test_write_and_read(const std::string &api_path,
std::string data = "TestData";
EXPECT_EQ(data.size(),
static_cast<std::size_t>(write(fd, &data[0], data.size())));
static_cast<std::size_t>(write(fd, data.data(), data.size())));
EXPECT_EQ(0, lseek(fd, 0, SEEK_SET));
fsync(fd);
data_buffer read_data;
read_data.resize(data.size());
EXPECT_EQ(data.size(), static_cast<std::size_t>(
read(fd, &read_data[0], read_data.size())));
read(fd, read_data.data(), read_data.size())));
EXPECT_EQ(0, memcmp(&data[0], &read_data[0], data.size()));
EXPECT_EQ(0, memcmp(data.data(), read_data.data(), data.size()));
EXPECT_EQ(0, close(fd));
std::this_thread::sleep_for(1s);
std::this_thread::sleep_for(2s);
std::uint64_t file_size{};
EXPECT_TRUE(utils::file::get_file_size(file_path, file_size));
@@ -214,7 +215,7 @@ static void test_rename_file(const std::string &from_file_path,
EXPECT_LE(1, fd);
close(fd);
std::this_thread::sleep_for(1s);
std::this_thread::sleep_for(2s);
if (provider.is_rename_supported()) {
EXPECT_EQ(0, rename(from_file_path.c_str(), to_file_path.c_str()));
@@ -232,7 +233,7 @@ static void test_rename_directory(const std::string &from_dir_path,
i_provider &provider) {
EXPECT_EQ(0, mkdir(from_dir_path.c_str(),
S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP));
std::this_thread::sleep_for(1s);
std::this_thread::sleep_for(2s);
EXPECT_TRUE(utils::file::is_directory(from_dir_path));
if (provider.is_rename_supported()) {
@@ -334,7 +335,7 @@ test_write_operations_fail_if_read_only(const std::string &api_path,
EXPECT_LE(1, fd);
std::string data = "TestData";
EXPECT_EQ(-1, write(fd, &data[0], data.size()));
EXPECT_EQ(-1, write(fd, data.data(), data.size()));
EXPECT_EQ(-1, ftruncate(fd, 9u));
@@ -344,7 +345,7 @@ test_write_operations_fail_if_read_only(const std::string &api_path,
EXPECT_EQ(0, close(fd));
std::this_thread::sleep_for(1s);
std::this_thread::sleep_for(2s);
std::uint64_t file_size{};
EXPECT_TRUE(utils::file::get_file_size(file_path, file_size));
@@ -360,10 +361,10 @@ test_write_operations_fail_if_read_only(const std::string &api_path,
#if !__APPLE__ && HAS_SETXATTR
static void test_xattr_invalid_parameters(const std::string &file_path) {
std::string attr = "moose";
EXPECT_EQ(-1, setxattr(nullptr, "user.test_attr", &attr[0], attr.size(),
EXPECT_EQ(-1, setxattr(nullptr, "user.test_attr", attr.data(), attr.size(),
XATTR_CREATE));
EXPECT_EQ(errno, EFAULT);
EXPECT_EQ(-1, setxattr(file_path.c_str(), nullptr, &attr[0], attr.size(),
EXPECT_EQ(-1, setxattr(file_path.c_str(), nullptr, attr.data(), attr.size(),
XATTR_CREATE));
EXPECT_EQ(errno, EFAULT);
EXPECT_EQ(-1, setxattr(file_path.c_str(), "user.test_attr", nullptr,
@@ -375,29 +376,29 @@ static void test_xattr_invalid_parameters(const std::string &file_path) {
static void test_xattr_create_and_get(const std::string &file_path) {
std::string attr = "moose";
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", &attr[0],
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", attr.data(),
attr.size(), XATTR_CREATE));
std::string val;
val.resize(attr.size());
EXPECT_EQ(attr.size(),
static_cast<std::size_t>(getxattr(
file_path.c_str(), "user.test_attr", &val[0], val.size())));
file_path.c_str(), "user.test_attr", val.data(), val.size())));
EXPECT_STREQ(attr.c_str(), val.c_str());
}
static void test_xattr_listxattr(const std::string &file_path) {
std::string attr = "moose";
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", &attr[0],
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", attr.data(),
attr.size(), XATTR_CREATE));
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr2", &attr[0],
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr2", attr.data(),
attr.size(), XATTR_CREATE));
std::string val;
val.resize(attr.size());
EXPECT_EQ(attr.size(),
static_cast<std::size_t>(getxattr(
file_path.c_str(), "user.test_attr", &val[0], val.size())));
file_path.c_str(), "user.test_attr", val.data(), val.size())));
EXPECT_STREQ(attr.c_str(), val.c_str());
std::string data;
@@ -416,56 +417,56 @@ static void test_xattr_listxattr(const std::string &file_path) {
static void test_xattr_replace(const std::string &file_path) {
std::string attr = "moose";
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", &attr[0],
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", attr.data(),
attr.size(), XATTR_CREATE));
attr = "cow";
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", &attr[0],
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", attr.data(),
attr.size(), XATTR_REPLACE));
std::string val;
val.resize(attr.size());
EXPECT_EQ(attr.size(),
static_cast<std::size_t>(getxattr(
file_path.c_str(), "user.test_attr", &val[0], val.size())));
file_path.c_str(), "user.test_attr", val.data(), val.size())));
EXPECT_STREQ(attr.c_str(), val.c_str());
}
static void test_xattr_default_create(const std::string &file_path) {
std::string attr = "moose";
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", &attr[0],
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", attr.data(),
attr.size(), 0));
std::string val;
val.resize(attr.size());
EXPECT_EQ(attr.size(),
static_cast<std::size_t>(getxattr(
file_path.c_str(), "user.test_attr", &val[0], val.size())));
file_path.c_str(), "user.test_attr", val.data(), val.size())));
EXPECT_STREQ(attr.c_str(), val.c_str());
}
static void test_xattr_default_replace(const std::string &file_path) {
std::string attr = "moose";
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", &attr[0],
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", attr.data(),
attr.size(), 0));
attr = "cow";
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", &attr[0],
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", attr.data(),
attr.size(), 0));
std::string val;
val.resize(attr.size());
EXPECT_EQ(attr.size(),
static_cast<std::size_t>(getxattr(
file_path.c_str(), "user.test_attr", &val[0], val.size())));
file_path.c_str(), "user.test_attr", val.data(), val.size())));
EXPECT_STREQ(attr.c_str(), val.c_str());
}
static void test_xattr_create_fails_if_exists(const std::string &file_path) {
std::string attr = "moose";
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", &attr[0],
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", attr.data(),
attr.size(), 0));
EXPECT_EQ(-1, setxattr(file_path.c_str(), "user.test_attr", &attr[0],
EXPECT_EQ(-1, setxattr(file_path.c_str(), "user.test_attr", attr.data(),
attr.size(), XATTR_CREATE));
EXPECT_EQ(EEXIST, errno);
}
@@ -473,22 +474,22 @@ static void test_xattr_create_fails_if_exists(const std::string &file_path) {
static void
test_xattr_create_fails_if_not_exists(const std::string &file_path) {
std::string attr = "moose";
EXPECT_EQ(-1, setxattr(file_path.c_str(), "user.test_attr", &attr[0],
EXPECT_EQ(-1, setxattr(file_path.c_str(), "user.test_attr", attr.data(),
attr.size(), XATTR_REPLACE));
EXPECT_EQ(ENODATA, errno);
}
static void test_xattr_removexattr(const std::string &file_path) {
std::string attr = "moose";
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", &attr[0],
EXPECT_EQ(0, setxattr(file_path.c_str(), "user.test_attr", attr.data(),
attr.size(), XATTR_CREATE));
EXPECT_EQ(0, removexattr(file_path.c_str(), "user.test_attr"));
std::string val;
val.resize(attr.size());
EXPECT_EQ(-1,
getxattr(file_path.c_str(), "user.test_attr", &val[0], val.size()));
EXPECT_EQ(-1, getxattr(file_path.c_str(), "user.test_attr", val.data(),
val.size()));
EXPECT_EQ(ENODATA, errno);
}
#endif