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() {
|
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()) {
|
if (provider_.is_direct_only()) {
|
||||||
stop_requested_ = false;
|
stop_requested_ = false;
|
||||||
return;
|
return;
|
||||||
@ -791,9 +795,6 @@ void file_manager::start() {
|
|||||||
|
|
||||||
upload_thread_ =
|
upload_thread_ =
|
||||||
std::make_unique<std::thread>([this] { upload_handler(); });
|
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");
|
event_system::instance().raise<service_started>("file_manager");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,10 +94,13 @@ TEST(file_manager, can_create_and_close_file) {
|
|||||||
mock_provider mp;
|
mock_provider mp;
|
||||||
|
|
||||||
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
||||||
|
polling::instance().start(&cfg);
|
||||||
|
|
||||||
file_manager fm(cfg, mp);
|
file_manager fm(cfg, mp);
|
||||||
|
fm.start();
|
||||||
|
|
||||||
event_capture capture({
|
event_capture capture({
|
||||||
|
"item_timeout",
|
||||||
"filesystem_item_opened",
|
"filesystem_item_opened",
|
||||||
"filesystem_item_handle_opened",
|
"filesystem_item_handle_opened",
|
||||||
"filesystem_item_handle_closed",
|
"filesystem_item_handle_closed",
|
||||||
@ -184,12 +187,16 @@ TEST(file_manager, can_create_and_close_file) {
|
|||||||
|
|
||||||
fm.close(handle);
|
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());
|
EXPECT_EQ(std::size_t(0u), fm.get_open_handle_count());
|
||||||
|
|
||||||
capture.wait_for_empty();
|
capture.wait_for_empty();
|
||||||
|
EXPECT_EQ(std::size_t(0u), fm.get_open_file_count());
|
||||||
|
|
||||||
|
fm.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
polling::instance().stop();
|
||||||
event_system::instance().stop();
|
event_system::instance().stop();
|
||||||
EXPECT_TRUE(utils::file::delete_directory_recursively("./fm_test"));
|
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));
|
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
|
polling::instance().start(&cfg);
|
||||||
file_manager fm(cfg, mp);
|
file_manager fm(cfg, mp);
|
||||||
|
fm.start();
|
||||||
|
|
||||||
event_capture capture({
|
event_capture capture({
|
||||||
|
"item_timeout",
|
||||||
"filesystem_item_opened",
|
"filesystem_item_opened",
|
||||||
"filesystem_item_handle_opened",
|
"filesystem_item_handle_opened",
|
||||||
"filesystem_item_handle_closed",
|
"filesystem_item_handle_closed",
|
||||||
@ -293,12 +303,16 @@ TEST(file_manager, can_open_and_close_file) {
|
|||||||
|
|
||||||
fm.close(handle);
|
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());
|
EXPECT_EQ(std::size_t(0u), fm.get_open_handle_count());
|
||||||
|
|
||||||
capture.wait_for_empty();
|
capture.wait_for_empty();
|
||||||
|
EXPECT_EQ(std::size_t(0u), fm.get_open_file_count());
|
||||||
|
|
||||||
|
fm.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
polling::instance().stop();
|
||||||
event_system::instance().stop();
|
event_system::instance().stop();
|
||||||
EXPECT_TRUE(utils::file::delete_directory_recursively("./fm_test"));
|
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));
|
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
|
polling::instance().start(&cfg);
|
||||||
file_manager fm(cfg, mp);
|
file_manager fm(cfg, mp);
|
||||||
|
fm.start();
|
||||||
|
|
||||||
{
|
{
|
||||||
const auto source_path = utils::path::combine(
|
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());
|
EXPECT_EQ(std::size_t(handles.size() - i), fm.get_open_handle_count());
|
||||||
fm.close(handles[i]);
|
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_file_count());
|
||||||
EXPECT_EQ(std::size_t(0u), fm.get_open_handle_count());
|
EXPECT_EQ(std::size_t(0u), fm.get_open_handle_count());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
polling::instance().stop();
|
||||||
event_system::instance().stop();
|
event_system::instance().stop();
|
||||||
EXPECT_TRUE(utils::file::delete_directory_recursively("./fm_test"));
|
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));
|
EXPECT_CALL(mp, is_direct_only()).WillRepeatedly(Return(false));
|
||||||
|
|
||||||
|
polling::instance().start(&cfg);
|
||||||
file_manager fm(cfg, mp);
|
file_manager fm(cfg, mp);
|
||||||
fm.start();
|
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, _))
|
upload_file("/test_write_full_download.txt", source_path, _))
|
||||||
.WillOnce(Return(api_error::success));
|
.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);
|
fm.close(handle);
|
||||||
|
|
||||||
ec2.wait_for_empty();
|
ec2.wait_for_empty();
|
||||||
@ -637,6 +657,7 @@ TEST(file_manager, upload_occurs_after_write_if_fully_downloaded) {
|
|||||||
nf->close();
|
nf->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
polling::instance().stop();
|
||||||
event_system::instance().stop();
|
event_system::instance().stop();
|
||||||
EXPECT_TRUE(utils::file::delete_directory_recursively("./fm_test"));
|
EXPECT_TRUE(utils::file::delete_directory_recursively("./fm_test"));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user