unit tests and fixes
This commit is contained in:
parent
5911d370e5
commit
dfa5e0e005
@ -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");
|
||||
}
|
||||
}
|
||||
|
@ -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"));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user