Compare commits

...

4 Commits

Author SHA1 Message Date
d65bd6af35 refactor unit tests
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good
2025-04-15 10:29:19 -05:00
b285478cc5 refactor unit tests 2025-04-15 10:20:19 -05:00
31cd5acaee refactor 2025-04-15 09:45:36 -05:00
65036f2957 fix test 2025-04-15 09:43:41 -05:00
3 changed files with 122 additions and 118 deletions

View File

@ -108,7 +108,7 @@ void remote_server::populate_file_info(const std::string &api_path,
REPERTORY_USES_FUNCTION_NAME();
api_meta_map meta{};
const auto res = drive_.get_item_meta(api_path, meta);
auto res = drive_.get_item_meta(api_path, meta);
if (res != api_error::success) {
utils::error::raise_api_path_error(function_name, api_path, res,
"get item meta failed");
@ -192,10 +192,10 @@ auto remote_server::fuse_access(const char *path, const std::int32_t &mask)
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto api_path = utils::path::create_api_path(path);
const auto file_path = construct_path(path);
auto api_path = utils::path::create_api_path(path);
auto file_path = construct_path(path);
const auto res = access(file_path.c_str(), mask);
auto res = access(file_path.c_str(), mask);
auto ret = ((res < 0) ? -errno : 0);
RAISE_REMOTE_FUSE_SERVER_EVENT(function_name, file_path, ret);
return ret;
@ -205,8 +205,8 @@ auto remote_server::fuse_chflags(const char *path, std::uint32_t flags)
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto api_path = utils::path::create_api_path(path);
const auto file_path = construct_path(path);
auto api_path = utils::path::create_api_path(path);
auto file_path = construct_path(path);
auto ret = -EACCES;
if (drive_.check_parent_access(api_path, X_OK) == api_error::success) {
@ -225,8 +225,8 @@ auto remote_server::fuse_chmod(const char *path, const remote::file_mode &mode)
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
const auto res = chmod(file_path.c_str(), mode);
auto file_path = construct_path(path);
auto res = chmod(file_path.c_str(), mode);
auto ret = ((res < 0) ? -errno : 0);
RAISE_REMOTE_FUSE_SERVER_EVENT(function_name, file_path, ret);
return ret;
@ -237,8 +237,8 @@ auto remote_server::fuse_chown(const char *path, const remote::user_id &uid,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
const auto res = chown(file_path.c_str(), uid, gid);
auto file_path = construct_path(path);
auto res = chown(file_path.c_str(), uid, gid);
auto ret = ((res < 0) ? -errno : 0);
RAISE_REMOTE_FUSE_SERVER_EVENT(function_name, file_path, ret);
return ret;
@ -250,10 +250,9 @@ auto remote_server::fuse_create(const char *path, const remote::file_mode &mode,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
const auto res =
open(file_path.c_str(),
static_cast<int>(remote::create_os_open_flags(flags)), mode);
auto file_path = construct_path(path);
auto res = open(file_path.c_str(),
static_cast<int>(remote::create_os_open_flags(flags)), mode);
if (res >= 0) {
handle = static_cast<remote::file_handle>(res);
set_open_info(res, open_info{
@ -322,7 +321,7 @@ auto remote_server::fuse_fgetattr(const char *path, remote::stat &r_stat,
r_stat = {};
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
auto res = has_open_info(static_cast<native_handle>(handle), EBADF);
if (res == 0) {
@ -345,8 +344,8 @@ auto remote_server::fuse_fsetattr_x(const char *path,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto api_path = utils::path::create_api_path(path);
const auto file_path = construct_path(path);
auto api_path = utils::path::create_api_path(path);
auto file_path = construct_path(path);
auto res = 0;
if (SETATTR_WANTS_MODE(&attr)) {
@ -440,7 +439,7 @@ auto remote_server::fuse_fsync(const char *path, const std::int32_t &datasync,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
auto res = has_open_info(static_cast<native_handle>(handle), EBADF);
if (res == 0) {
@ -464,7 +463,7 @@ auto remote_server::fuse_ftruncate(const char *path,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
auto res = has_open_info(static_cast<native_handle>(handle), EBADF);
if (res == 0) {
@ -481,9 +480,9 @@ auto remote_server::fuse_getattr(const char *path, remote::stat &r_stat,
bool &directory) -> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto api_path = utils::path::create_api_path(path);
const auto file_path = construct_path(api_path);
const auto parent_api_path = utils::path::get_parent_api_path(api_path);
auto api_path = utils::path::create_api_path(path);
auto file_path = construct_path(api_path);
auto parent_api_path = utils::path::get_parent_api_path(api_path);
r_stat = {};
@ -560,8 +559,8 @@ auto remote_server::fuse_getxtimes(const char *path,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto api_path = utils::path::create_api_path(path);
const auto file_path = construct_path(path);
auto api_path = utils::path::create_api_path(path);
auto file_path = construct_path(path);
auto ret = -EACCES;
if (drive_.check_parent_access(api_path, X_OK) == api_error::success) {
@ -608,8 +607,8 @@ auto remote_server::fuse_mkdir(const char *path, const remote::file_mode &mode)
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
const auto res = mkdir(file_path.c_str(), mode);
auto file_path = construct_path(path);
auto res = mkdir(file_path.c_str(), mode);
auto ret = ((res < 0) ? -errno : 0);
RAISE_REMOTE_FUSE_SERVER_EVENT(function_name, file_path, ret);
return ret;
@ -620,9 +619,9 @@ auto remote_server::fuse_open(const char *path, const remote::open_flags &flags,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
const auto res = open(file_path.c_str(),
static_cast<int>(remote::create_os_open_flags(flags)));
auto file_path = construct_path(path);
auto res = open(file_path.c_str(),
static_cast<int>(remote::create_os_open_flags(flags)));
if (res >= 0) {
handle = static_cast<remote::file_handle>(res);
set_open_info(res, open_info{
@ -641,7 +640,7 @@ auto remote_server::fuse_opendir(const char *path, remote::file_handle &handle)
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
auto res = -1;
errno = ENOENT;
@ -669,7 +668,7 @@ auto remote_server::fuse_read(const char *path, char *buffer,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
auto &data = *reinterpret_cast<data_buffer *>(buffer);
ssize_t bytes_read{has_open_info(static_cast<native_handle>(handle), EBADF)};
@ -691,9 +690,9 @@ auto remote_server::fuse_rename(const char *from, const char *to)
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto from_path = utils::path::combine(mount_location_, {from});
const auto to_path = utils::path::combine(mount_location_, {to});
const auto res = rename(from_path.c_str(), to_path.c_str());
auto from_path = utils::path::combine(mount_location_, {from});
auto to_path = utils::path::combine(mount_location_, {to});
auto res = rename(from_path.c_str(), to_path.c_str());
auto ret = ((res < 0) ? -errno : 0);
RAISE_REMOTE_FUSE_SERVER_EVENT(function_name, from + std::string("|") + to,
ret);
@ -706,7 +705,7 @@ auto remote_server::fuse_readdir(const char *path,
std::string &item_path) -> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
auto res = 0;
if (offset > std::numeric_limits<std::size_t>::max()) {
errno = ERANGE;
@ -733,7 +732,7 @@ auto remote_server::fuse_release(const char *path,
packet::error_type ret = 0;
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
auto res = has_open_info(static_cast<native_handle>(handle), EBADF);
if (res == 0) {
res = close(static_cast<native_handle>(handle));
@ -750,7 +749,7 @@ auto remote_server::fuse_releasedir(const char *path,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
directory_cache_.remove_directory(handle);
@ -771,8 +770,8 @@ removexattr(file_path.c_str(), name); #endif auto ret = ((res < 0) ? -errno :
auto remote_server::fuse_rmdir(const char *path) -> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
const auto res = rmdir(file_path.c_str());
auto file_path = construct_path(path);
auto res = rmdir(file_path.c_str());
if (res == 0) {
directory_cache_.remove_directory(utils::path::create_api_path(path));
}
@ -785,7 +784,7 @@ auto remote_server::fuse_setattr_x(const char *path, remote::setattr_x &attr)
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
auto ret = fuse_fsetattr_x(
path, attr, static_cast<remote::file_handle>(REPERTORY_INVALID_HANDLE));
RAISE_REMOTE_FUSE_SERVER_EVENT(function_name, file_path, ret);
@ -797,8 +796,8 @@ auto remote_server::fuse_setbkuptime(const char *path,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto api_path = utils::path::create_api_path(path);
const auto file_path = construct_path(path);
auto api_path = utils::path::create_api_path(path);
auto file_path = construct_path(path);
auto ret = -EACCES;
if (drive_.check_parent_access(api_path, X_OK) == api_error::success) {
@ -818,8 +817,8 @@ auto remote_server::fuse_setchgtime(const char *path,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto api_path = utils::path::create_api_path(path);
const auto file_path = construct_path(path);
auto api_path = utils::path::create_api_path(path);
auto file_path = construct_path(path);
auto ret = -EACCES;
if (drive_.check_parent_access(api_path, X_OK) == api_error::success) {
@ -839,8 +838,8 @@ auto remote_server::fuse_setcrtime(const char *path,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto api_path = utils::path::create_api_path(path);
const auto file_path = construct_path(path);
auto api_path = utils::path::create_api_path(path);
auto file_path = construct_path(path);
auto ret = -EACCES;
if (drive_.check_parent_access(api_path, X_OK) == api_error::success) {
@ -886,11 +885,11 @@ auto remote_server::fuse_statfs(const char *path, std::uint64_t frsize,
remote::statfs &r_stat) -> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
const auto total_bytes = drive_.get_total_drive_space();
const auto total_used = drive_.get_used_drive_space();
const auto used_blocks = utils::divide_with_ceiling(total_used, frsize);
auto total_bytes = drive_.get_total_drive_space();
auto total_used = drive_.get_used_drive_space();
auto used_blocks = utils::divide_with_ceiling(total_used, frsize);
r_stat.f_files = 4294967295;
r_stat.f_blocks = utils::divide_with_ceiling(total_bytes, frsize);
r_stat.f_bavail = r_stat.f_bfree =
@ -907,11 +906,11 @@ auto remote_server::fuse_statfs_x(const char *path, std::uint64_t bsize,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
const auto total_bytes = drive_.get_total_drive_space();
const auto total_used = drive_.get_used_drive_space();
const auto used_blocks = utils::divide_with_ceiling(total_used, bsize);
auto total_bytes = drive_.get_total_drive_space();
auto total_used = drive_.get_used_drive_space();
auto used_blocks = utils::divide_with_ceiling(total_used, bsize);
r_stat.f_files = 4294967295;
r_stat.f_blocks = utils::divide_with_ceiling(total_bytes, bsize);
r_stat.f_bavail = r_stat.f_bfree =
@ -932,8 +931,8 @@ auto remote_server::fuse_truncate(const char *path,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
const auto res = truncate(file_path.c_str(), static_cast<off_t>(size));
auto file_path = construct_path(path);
auto res = truncate(file_path.c_str(), static_cast<off_t>(size));
auto ret = ((res < 0) ? -errno : 0);
RAISE_REMOTE_FUSE_SERVER_EVENT(function_name, file_path, ret);
return ret;
@ -942,8 +941,8 @@ auto remote_server::fuse_truncate(const char *path,
auto remote_server::fuse_unlink(const char *path) -> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
const auto res = unlink(file_path.c_str());
auto file_path = construct_path(path);
auto res = unlink(file_path.c_str());
auto ret = ((res < 0) ? -errno : 0);
RAISE_REMOTE_FUSE_SERVER_EVENT(function_name, file_path, ret);
return ret;
@ -954,7 +953,7 @@ auto remote_server::fuse_utimens(const char *path, const remote::file_time *tv,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
struct timespec tv2[2] = {{0, 0}};
const auto process_timespec = [](auto op, const auto &src, auto &dst) {
@ -971,8 +970,7 @@ auto remote_server::fuse_utimens(const char *path, const remote::file_time *tv,
process_timespec(op0, tv[0U], tv2[0U]);
process_timespec(op1, tv[1U], tv2[1U]);
const auto res =
utimensat(0, file_path.c_str(), &tv2[0U], AT_SYMLINK_NOFOLLOW);
auto res = utimensat(0, file_path.c_str(), &tv2[0U], AT_SYMLINK_NOFOLLOW);
auto ret = ((res < 0) ? -errno : 0);
RAISE_REMOTE_FUSE_SERVER_EVENT(function_name, file_path, ret);
return ret;
@ -985,7 +983,7 @@ auto remote_server::fuse_write(const char *path, const char *buffer,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
ssize_t bytes_written{
has_open_info(static_cast<native_handle>(handle), EBADF)};
@ -1059,7 +1057,7 @@ auto remote_server::winfsp_cleanup(PVOID /*file_desc*/, PWSTR file_name,
unlink(file_path.c_str());
}
} else {
const auto api_path = utils::path::create_api_path(relative_path);
auto api_path = utils::path::create_api_path(relative_path);
if ((flags & FileSystemBase::FspCleanupSetArchiveBit) && not directory) {
api_meta_map meta;
if (drive_.get_item_meta(api_path, meta) == api_error::success) {
@ -1073,7 +1071,7 @@ auto remote_server::winfsp_cleanup(PVOID /*file_desc*/, PWSTR file_name,
if (flags & (FileSystemBase::FspCleanupSetLastAccessTime |
FileSystemBase::FspCleanupSetLastWriteTime |
FileSystemBase::FspCleanupSetChangeTime)) {
const auto file_time_now = utils::time::get_time_now();
auto file_time_now = utils::time::get_time_now();
if (flags & FileSystemBase::FspCleanupSetLastAccessTime) {
drive_.set_item_meta(api_path, META_ACCESSED,
std::to_string(file_time_now));
@ -1102,7 +1100,7 @@ auto remote_server::winfsp_close(PVOID file_desc) -> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
std::string file_path;
const auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto handle = reinterpret_cast<remote::file_handle>(file_desc);
if (has_open_info(static_cast<native_handle>(handle),
STATUS_INVALID_HANDLE) == STATUS_SUCCESS) {
file_path = get_open_file_path(static_cast<native_handle>(handle));
@ -1162,7 +1160,7 @@ auto remote_server::winfsp_create(PWSTR file_name, UINT32 create_options,
file_path,
});
const auto api_path = utils::path::create_api_path(relative_path);
auto api_path = utils::path::create_api_path(relative_path);
normalized_name = utils::string::replace_copy(api_path, '/', '\\');
populate_file_info(api_path, 0, attributes, *file_info);
}
@ -1179,7 +1177,7 @@ auto remote_server::winfsp_flush(PVOID file_desc, remote::file_info *file_info)
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto ret = static_cast<packet::error_type>(
has_open_info(static_cast<native_handle>(handle), STATUS_INVALID_HANDLE));
if (ret == STATUS_SUCCESS) {
@ -1202,7 +1200,7 @@ auto remote_server::winfsp_get_file_info(PVOID file_desc,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto ret = static_cast<packet::error_type>(
has_open_info(static_cast<native_handle>(handle), STATUS_INVALID_HANDLE));
if (ret == STATUS_SUCCESS) {
@ -1224,7 +1222,7 @@ auto remote_server::winfsp_get_security_by_name(
REPERTORY_USES_FUNCTION_NAME();
auto ret = static_cast<packet::error_type>(STATUS_SUCCESS);
const auto file_path = construct_path(file_name);
auto file_path = construct_path(file_name);
if (utils::file::file(file_path).exists() ||
(utils::file::directory(file_path).exists())) {
if (attributes) {
@ -1314,20 +1312,20 @@ auto remote_server::winfsp_overwrite(PVOID file_desc, UINT32 attributes,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto ret = static_cast<packet::error_type>(
has_open_info(static_cast<native_handle>(handle), STATUS_INVALID_HANDLE));
if (ret == STATUS_SUCCESS) {
const auto api_path = construct_api_path(
auto api_path = construct_api_path(
get_open_file_path(static_cast<native_handle>(handle)));
const auto res = ftruncate(static_cast<native_handle>(handle), 0);
auto res = ftruncate(static_cast<native_handle>(handle), 0);
if (res >= 0) {
auto set_attributes = false;
if (replace_attributes) {
set_attributes = true;
} else if (attributes) {
std::string current_attributes;
const auto err =
auto err =
drive_.get_item_meta(api_path, META_ATTRIBUTES, current_attributes);
if (err != api_error::success) {
utils::error::raise_api_path_error(function_name, api_path, err,
@ -1371,12 +1369,12 @@ auto remote_server::winfsp_read(PVOID file_desc, PVOID buffer, UINT64 offset,
*bytes_transferred = 0;
const auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto ret = static_cast<packet::error_type>(
has_open_info(static_cast<native_handle>(handle), STATUS_INVALID_HANDLE));
if (ret == STATUS_SUCCESS) {
const auto res = pread64(static_cast<native_handle>(handle), buffer, length,
static_cast<off_t>(offset));
auto res = pread64(static_cast<native_handle>(handle), buffer, length,
static_cast<off_t>(offset));
if (res >= 0) {
*bytes_transferred = static_cast<UINT32>(res);
} else {
@ -1477,12 +1475,11 @@ auto remote_server::winfsp_set_basic_info(
remote::file_info *file_info) -> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto ret = static_cast<packet::error_type>(
has_open_info(static_cast<native_handle>(handle), STATUS_INVALID_HANDLE));
if (ret == STATUS_SUCCESS) {
const auto file_path =
get_open_file_path(static_cast<native_handle>(handle));
auto file_path = get_open_file_path(static_cast<native_handle>(handle));
if (attributes == INVALID_FILE_ATTRIBUTES) {
attributes = 0;
} else if (attributes == 0) {
@ -1491,7 +1488,7 @@ auto remote_server::winfsp_set_basic_info(
: FILE_ATTRIBUTE_ARCHIVE;
}
const auto api_path = construct_api_path(file_path);
auto api_path = construct_api_path(file_path);
api_meta_map meta;
if (attributes != 0U) {
attributes &= static_cast<UINT32>(~FILE_ATTRIBUTE_NORMAL);
@ -1544,14 +1541,14 @@ auto remote_server::winfsp_set_file_size(PVOID file_desc, UINT64 new_size,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto ret = static_cast<packet::error_type>(
has_open_info(static_cast<native_handle>(handle), STATUS_INVALID_HANDLE));
if (ret == STATUS_SUCCESS) {
const auto res = set_allocation_size == 0U
? ftruncate(static_cast<native_handle>(handle),
static_cast<off_t>(new_size))
: 0;
auto res = set_allocation_size == 0U
? ftruncate(static_cast<native_handle>(handle),
static_cast<off_t>(new_size))
: 0;
ret = ((res < 0) ? static_cast<packet::error_type>(
utils::unix_error_to_windows(errno))
: 0);
@ -1586,13 +1583,13 @@ auto remote_server::winfsp_write(PVOID file_desc, PVOID buffer, UINT64 offset,
REPERTORY_USES_FUNCTION_NAME();
*bytes_transferred = 0;
const auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto handle = reinterpret_cast<remote::file_handle>(file_desc);
auto ret = static_cast<packet::error_type>(
has_open_info(static_cast<native_handle>(handle), STATUS_INVALID_HANDLE));
if (ret == STATUS_SUCCESS) {
const auto api_path = construct_api_path(
auto api_path = construct_api_path(
get_open_file_path(static_cast<native_handle>(handle)));
const auto file_size = drive_.get_file_size(api_path);
auto file_size = drive_.get_file_size(api_path);
if (write_to_end != 0U) {
offset = file_size;
}
@ -1609,8 +1606,8 @@ auto remote_server::winfsp_write(PVOID file_desc, PVOID buffer, UINT64 offset,
if (should_write) {
if (length > 0) {
const auto res = pwrite64(static_cast<native_handle>(handle), buffer,
length, static_cast<off_t>(offset));
auto res = pwrite64(static_cast<native_handle>(handle), buffer, length,
static_cast<off_t>(offset));
if (res >= 0) {
*bytes_transferred = static_cast<UINT32>(res);
ret = populate_file_info(construct_api_path(get_open_file_path(
@ -1635,8 +1632,8 @@ auto remote_server::json_create_directory_snapshot(const std::string &path,
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto api_path = utils::path::create_api_path(path);
const auto file_path = construct_path(api_path);
auto api_path = utils::path::create_api_path(path);
auto file_path = construct_path(api_path);
auto res = -1;
errno = ENOENT;
@ -1667,7 +1664,7 @@ auto remote_server::json_read_directory_snapshot(
int res{-EBADF};
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
auto iter = directory_cache_.get_directory(handle);
if (iter != nullptr) {
std::size_t offset{};
@ -1695,7 +1692,7 @@ auto remote_server::json_release_directory_snapshot(
-> packet::error_type {
REPERTORY_USES_FUNCTION_NAME();
const auto file_path = construct_path(path);
auto file_path = construct_path(path);
directory_cache_.remove_directory(handle);
RAISE_REMOTE_FUSE_SERVER_EVENT(function_name, file_path, 0);
return 0;

View File

@ -65,13 +65,13 @@ TYPED_TEST(winfsp_test, rename_fails_if_dest_exists_and_replace_is_false) {
}
auto dir_path{
utils::path::combine(this->mount_location, {"test_dir_4"}),
utils::path::combine(this->mount_location, {"test_dir_5"}),
};
auto file_path{
utils::path::combine(dir_path, {"test_file_4"}),
utils::path::combine(dir_path, {"test_file_5"}),
};
auto file_path2{
utils::path::combine(dir_path, {"test_file2_4"}),
utils::path::combine(dir_path, {"test_file2_5"}),
};
auto file_path3{
utils::path::combine(dir_path, {"test_file_5"}),
@ -107,16 +107,16 @@ TYPED_TEST(winfsp_test, rename_succeeds_if_dest_exists_and_replace_is_true) {
}
auto dir_path{
utils::path::combine(this->mount_location, {"test_dir_4"}),
utils::path::combine(this->mount_location, {"test_dir_6"}),
};
auto file_path{
utils::path::combine(dir_path, {"test_file_4"}),
utils::path::combine(dir_path, {"test_file_6"}),
};
auto file_path2{
utils::path::combine(dir_path, {"test_file2_4"}),
utils::path::combine(dir_path, {"test_file2_6"}),
};
auto file_path3{
utils::path::combine(dir_path, {"test_file_5"}),
utils::path::combine(dir_path, {"test_file3_6"}),
};
ASSERT_TRUE(::CreateDirectoryA(dir_path.c_str(), nullptr));
@ -142,16 +142,16 @@ TYPED_TEST(winfsp_test, rename_succeeds_if_dest_exists_and_replace_is_true) {
EXPECT_TRUE(::RemoveDirectoryA(dir_path.c_str()));
}
TYPED_TEST(winfsp_test, rename_can_rename_dir_if_dest_does_not_exist) {
TYPED_TEST(winfsp_test, rename_dir_succeeds_if_dest_does_not_exist) {
if (this->current_provider == provider_type::s3) {
return;
}
auto dir_path{
utils::path::combine(this->mount_location, {"test_dir_4"}),
utils::path::combine(this->mount_location, {"test_dir_7"}),
};
auto dir_path2{
utils::path::combine(this->mount_location, {"test_dir2_4"}),
utils::path::combine(this->mount_location, {"test_dir2_7"}),
};
ASSERT_TRUE(::CreateDirectoryA(dir_path.c_str(), nullptr));
@ -167,10 +167,10 @@ TYPED_TEST(winfsp_test, rename_dir_fails_if_dest_exists_and_replace_is_false) {
}
auto dir_path{
utils::path::combine(this->mount_location, {"test_dir_4"}),
utils::path::combine(this->mount_location, {"test_dir_8"}),
};
auto dir_path2{
utils::path::combine(this->mount_location, {"test_dir2_4"}),
utils::path::combine(this->mount_location, {"test_dir2_8"}),
};
ASSERT_TRUE(::CreateDirectoryA(dir_path.c_str(), nullptr));
@ -189,10 +189,10 @@ TYPED_TEST(winfsp_test, rename_dir_fails_if_dest_exists_and_replace_is_true) {
}
auto dir_path{
utils::path::combine(this->mount_location, {"test_dir_4"}),
utils::path::combine(this->mount_location, {"test_dir_9"}),
};
auto dir_path2{
utils::path::combine(this->mount_location, {"test_dir2_4"}),
utils::path::combine(this->mount_location, {"test_dir2_9"}),
};
ASSERT_TRUE(::CreateDirectoryA(dir_path.c_str(), nullptr));
@ -213,13 +213,13 @@ TYPED_TEST(winfsp_test,
}
auto dir_path{
utils::path::combine(this->mount_location, {"test_dir_4"}),
utils::path::combine(this->mount_location, {"test_dir_10"}),
};
auto dir_path2{
utils::path::combine(this->mount_location, {"test_dir2_4"}),
utils::path::combine(this->mount_location, {"test_dir2_10"}),
};
auto file_path{
utils::path::combine(dir_path, {"test_file_4"}),
utils::path::combine(dir_path, {"test_file_10"}),
};
ASSERT_TRUE(::CreateDirectoryA(dir_path.c_str(), nullptr));
@ -244,13 +244,13 @@ TYPED_TEST(winfsp_test,
}
auto dir_path{
utils::path::combine(this->mount_location, {"test_dir_4"}),
utils::path::combine(this->mount_location, {"test_dir_11"}),
};
auto dir_path2{
utils::path::combine(this->mount_location, {"test_dir2_4"}),
utils::path::combine(this->mount_location, {"test_dir2_11"}),
};
auto file_path{
utils::path::combine(dir_path, {"test_file_4"}),
utils::path::combine(dir_path, {"test_file_11"}),
};
ASSERT_TRUE(::CreateDirectoryA(dir_path.c_str(), nullptr));

View File

@ -50,10 +50,17 @@ TYPED_TEST(winfsp_test, volume_can_get_volume_info) {
flags);
EXPECT_EQ(255U, max_component_length);
EXPECT_EQ(0U, serial_num);
EXPECT_STREQ(
("repertory_" + app_config::get_provider_name(this->current_provider))
.c_str(),
volume_label.c_str());
if (this->current_provider == provider_type::unknown) {
EXPECT_STREQ(
("repertory_" + app_config::get_provider_name(provider_type::sia))
.c_str(),
volume_label.c_str());
} else {
EXPECT_STREQ(
("repertory_" + app_config::get_provider_name(this->current_provider))
.c_str(),
volume_label.c_str());
}
EXPECT_STREQ(this->mount_location.c_str(), fs_name.c_str());
}