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

This commit is contained in:
Scott E. Graves 2023-11-30 13:32:06 -06:00
parent 5911d370e5
commit dfa5e0e005
2 changed files with 28 additions and 6 deletions

View File

@ -711,6 +711,10 @@ auto file_manager::rename_file(const std::string &from_api_path,
}
void file_manager::start() {
polling::instance().set_callback(
{"timed_out_close", polling::frequency::second,
[this]() { this->close_timed_out_files(); }});
if (provider_.is_direct_only()) {
stop_requested_ = false;
return;
@ -791,9 +795,6 @@ void file_manager::start() {
upload_thread_ =
std::make_unique<std::thread>([this] { upload_handler(); });
polling::instance().set_callback(
{"timed_out_close", polling::frequency::second,
[this]() { this->close_timed_out_files(); }});
event_system::instance().raise<service_started>("file_manager");
}
}

View File

@ -94,10 +94,13 @@ TEST(file_manager, can_create_and_close_file) {
mock_provider mp;
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
polling::instance().start(&cfg);
file_manager fm(cfg, mp);
fm.start();
event_capture capture({
"item_timeout",
"filesystem_item_opened",
"filesystem_item_handle_opened",
"filesystem_item_handle_closed",
@ -184,12 +187,16 @@ TEST(file_manager, can_create_and_close_file) {
fm.close(handle);
EXPECT_EQ(std::size_t(0u), fm.get_open_file_count());
EXPECT_EQ(std::size_t(1u), fm.get_open_file_count());
EXPECT_EQ(std::size_t(0u), fm.get_open_handle_count());
capture.wait_for_empty();
EXPECT_EQ(std::size_t(0u), fm.get_open_file_count());
fm.stop();
}
polling::instance().stop();
event_system::instance().stop();
EXPECT_TRUE(utils::file::delete_directory_recursively("./fm_test"));
}
@ -205,9 +212,12 @@ TEST(file_manager, can_open_and_close_file) {
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
polling::instance().start(&cfg);
file_manager fm(cfg, mp);
fm.start();
event_capture capture({
"item_timeout",
"filesystem_item_opened",
"filesystem_item_handle_opened",
"filesystem_item_handle_closed",
@ -293,12 +303,16 @@ TEST(file_manager, can_open_and_close_file) {
fm.close(handle);
EXPECT_EQ(std::size_t(0u), fm.get_open_file_count());
EXPECT_EQ(std::size_t(1u), fm.get_open_file_count());
EXPECT_EQ(std::size_t(0u), fm.get_open_handle_count());
capture.wait_for_empty();
EXPECT_EQ(std::size_t(0u), fm.get_open_file_count());
fm.stop();
}
polling::instance().stop();
event_system::instance().stop();
EXPECT_TRUE(utils::file::delete_directory_recursively("./fm_test"));
}
@ -314,7 +328,9 @@ TEST(file_manager, can_open_and_close_multiple_handles_for_same_file) {
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
polling::instance().start(&cfg);
file_manager fm(cfg, mp);
fm.start();
{
const auto source_path = utils::path::combine(
@ -362,12 +378,14 @@ TEST(file_manager, can_open_and_close_multiple_handles_for_same_file) {
EXPECT_EQ(std::size_t(handles.size() - i), fm.get_open_handle_count());
fm.close(handles[i]);
}
fm.stop();
}
EXPECT_EQ(std::size_t(0u), fm.get_open_file_count());
EXPECT_EQ(std::size_t(0u), fm.get_open_handle_count());
}
polling::instance().stop();
event_system::instance().stop();
EXPECT_TRUE(utils::file::delete_directory_recursively("./fm_test"));
}
@ -537,6 +555,7 @@ TEST(file_manager, upload_occurs_after_write_if_fully_downloaded) {
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
polling::instance().start(&cfg);
file_manager fm(cfg, mp);
fm.start();
@ -624,7 +643,8 @@ TEST(file_manager, upload_occurs_after_write_if_fully_downloaded) {
upload_file("/test_write_full_download.txt", source_path, _))
.WillOnce(Return(api_error::success));
event_capture ec2({"file_upload_queued", "file_upload_completed"});
event_capture ec2(
{"item_timeout", "file_upload_queued", "file_upload_completed"});
fm.close(handle);
ec2.wait_for_empty();
@ -637,6 +657,7 @@ TEST(file_manager, upload_occurs_after_write_if_fully_downloaded) {
nf->close();
}
polling::instance().stop();
event_system::instance().stop();
EXPECT_TRUE(utils::file::delete_directory_recursively("./fm_test"));
}