extract common behavior
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user