diff --git a/common/cpp/include/unittests/MockIO.h b/common/cpp/include/unittests/MockIO.h index c7a9ed8dbb2ca81cfd0af49b324f0c18cdbd069e..abbee5358101c904a2eae8333688750e5121f953 100644 --- a/common/cpp/include/unittests/MockIO.h +++ b/common/cpp/include/unittests/MockIO.h @@ -178,10 +178,10 @@ class MockIO : public IO { return Error{GetLastError_t()}; } - MOCK_CONST_METHOD0(GetLastError_t, ErrorInterface* ()); + MOCK_CONST_METHOD0(GetLastError_t, ErrorInterface * ()); - Error WriteDataToFile(const std::string& root_folder, const std::string& fname, const FileData& data, + Error WriteDataToFile(const std::string& root_folder, const std::string& fname, const FileData& data, size_t length, bool create_directories) const override { return Error{WriteDataToFile_t(root_folder, fname, data.get(), length, create_directories)}; diff --git a/producer/event_monitor_producer/src/main_eventmon.cpp b/producer/event_monitor_producer/src/main_eventmon.cpp index 09fc559ed3aaaed8f913055025af39cdcf7aed2f..1be2be99e214b411eedc4a6921db84f213ec93f0 100644 --- a/producer/event_monitor_producer/src/main_eventmon.cpp +++ b/producer/event_monitor_producer/src/main_eventmon.cpp @@ -82,9 +82,9 @@ int main (int argc, char* argv[]) { stop_signal = 0; std::signal(SIGINT, SignalHandler); std::signal(SIGTERM, SignalHandler); - #if defined(__linux__) || defined (__APPLE__) - siginterrupt(SIGINT, 1); - #endif +#if defined(__linux__) || defined (__APPLE__) + siginterrupt(SIGINT, 1); +#endif const auto logger = asapo::GetDefaultEventMonLogger(); logger->SetLogLevel(GetEventMonConfig()->log_level); diff --git a/producer/event_monitor_producer/src/shared_event_list.cpp b/producer/event_monitor_producer/src/shared_event_list.cpp index 7ea80afcdf27756d06b83a41b4eb417079dcbd46..8787ead8515b393d9ed7816847f6d6b6217856bd 100644 --- a/producer/event_monitor_producer/src/shared_event_list.cpp +++ b/producer/event_monitor_producer/src/shared_event_list.cpp @@ -11,7 +11,7 @@ FilesToSend SharedEventList::GetAndClearEvents() { FilesToSend events; for (auto it = events_.begin(); it != events_.end(); /* NOTHING */) { uint64_t elapsed_ms = std::chrono::duration_cast<std::chrono::milliseconds>( high_resolution_clock::now() - - it->time).count(); + it->time).count(); if (!it->apply_delay || elapsed_ms > kFileDelayMs) { events.push_back(it->file_name); it = events_.erase(it); @@ -21,11 +21,13 @@ FilesToSend SharedEventList::GetAndClearEvents() { } return events; } -void SharedEventList::AddEvent(std::string event,bool apply_delay) { +void SharedEventList::AddEvent(std::string event, bool apply_delay) { std::lock_guard<std::mutex> lock(mutex_); - auto findIter = std::find_if(events_.begin(), events_.end(), [&]( const SingleEvent& e ){ return e.file_name == event;}); + auto findIter = std::find_if(events_.begin(), events_.end(), [&]( const SingleEvent & e ) { + return e.file_name == event; + }); if ( events_.end() == findIter ) { - events_.emplace_back(SingleEvent{std::move(event),high_resolution_clock::now(),apply_delay}); + events_.emplace_back(SingleEvent{std::move(event), high_resolution_clock::now(), apply_delay}); } else { findIter->time = high_resolution_clock::now(); } diff --git a/producer/event_monitor_producer/src/shared_event_list.h b/producer/event_monitor_producer/src/shared_event_list.h index 737ba5803f59536286fc9f13358c04c362f2fa82..3db154f0bb9664dc533b5fbfa865eb910613be46 100644 --- a/producer/event_monitor_producer/src/shared_event_list.h +++ b/producer/event_monitor_producer/src/shared_event_list.h @@ -14,18 +14,18 @@ namespace asapo { const uint64_t kFileDelayMs = 500; struct SingleEvent { - std::string file_name; - std::chrono::high_resolution_clock::time_point time; - bool apply_delay; + std::string file_name; + std::chrono::high_resolution_clock::time_point time; + bool apply_delay; }; class SharedEventList { - public: - FilesToSend GetAndClearEvents(); - void AddEvent(std::string event,bool apply_delay); - private: - std::mutex mutex_; - std::list<SingleEvent> events_; + public: + FilesToSend GetAndClearEvents(); + void AddEvent(std::string event, bool apply_delay); + private: + std::mutex mutex_; + std::list<SingleEvent> events_; }; } diff --git a/producer/event_monitor_producer/src/single_folder_watch_windows.cpp b/producer/event_monitor_producer/src/single_folder_watch_windows.cpp index ecb4283d241e8e2e82e484ac2b0b86daa0da59a5..3edfe884957066de94f7e03317c06a418443f4b9 100644 --- a/producer/event_monitor_producer/src/single_folder_watch_windows.cpp +++ b/producer/event_monitor_producer/src/single_folder_watch_windows.cpp @@ -7,15 +7,15 @@ namespace asapo { -SingleFolderWatch::SingleFolderWatch(std::string root_folder, std::string folder,SharedEventList* event_list) : - watch_io__{new WatchIO()}, - log__{GetDefaultEventMonLogger()}, - root_folder_{std::move(root_folder)}, - folder_{std::move(folder)}, - buffer_{new char[kBufLen]}, - event_list_{event_list} +SingleFolderWatch::SingleFolderWatch(std::string root_folder, std::string folder, SharedEventList* event_list) : + watch_io__{new WatchIO()}, + log__{GetDefaultEventMonLogger()}, + root_folder_{std::move(root_folder)}, + folder_{std::move(folder)}, +buffer_{new char[kBufLen]}, +event_list_{event_list} - { +{ } Error SingleFolderWatch::Init() { @@ -26,7 +26,7 @@ Error SingleFolderWatch::Init() { Error err; handle_ = this->watch_io__->Init(full_path.c_str(), &err); if (err) { - this->log__->Error("cannot add folder watch for "+full_path+": "+err->Explain()); + this->log__->Error("cannot add folder watch for " + full_path + ": " + err->Explain()); return err; } return nullptr; @@ -38,7 +38,7 @@ Error SingleFolderWatch::Watch() { return err; } DWORD bytes_read = 0; - err =watch_io__->ReadDirectoryChanges(handle_,buffer_.get(),kBufLen,&bytes_read); + err = watch_io__->ReadDirectoryChanges(handle_, buffer_.get(), kBufLen, &bytes_read); if (err == nullptr) { ProcessEvents(bytes_read); } @@ -46,19 +46,19 @@ Error SingleFolderWatch::Watch() { } -Error SingleFolderWatch::ProcessEvent(const WinEvent &event) { +Error SingleFolderWatch::ProcessEvent(const WinEvent& event) { if (!event.ShouldInitiateTransfer()) { return nullptr; } - std::string fname = folder_+kPathSeparator + event.FileName(); - if (watch_io__->IsDirectory(root_folder_+kPathSeparator+fname)) { + std::string fname = folder_ + kPathSeparator + event.FileName(); + if (watch_io__->IsDirectory(root_folder_ + kPathSeparator + fname)) { return nullptr; } event.Print(); - event_list_->AddEvent(fname,event.ShouldBeProcessedAfterDelay()); + event_list_->AddEvent(fname, event.ShouldBeProcessedAfterDelay()); return nullptr; } void SingleFolderWatch::ProcessEvents(DWORD bytes_to_read) { diff --git a/producer/event_monitor_producer/src/single_folder_watch_windows.h b/producer/event_monitor_producer/src/single_folder_watch_windows.h index 2ffe25764a9d7458952252a4573f7496761c9a06..9abc712896ada48c202dccfa7f8f2ca43e7e10e2 100644 --- a/producer/event_monitor_producer/src/single_folder_watch_windows.h +++ b/producer/event_monitor_producer/src/single_folder_watch_windows.h @@ -18,19 +18,19 @@ const uint64_t kBufLen = 1000 * (sizeof(FILE_NOTIFY_INFORMATION) + FILENAME_MAX class SingleFolderWatch { public: - explicit SingleFolderWatch(std::string root_folder,std::string folder,SharedEventList* event_list); + explicit SingleFolderWatch(std::string root_folder, std::string folder, SharedEventList* event_list); Error Watch(); std::unique_ptr<WatchIO> watch_io__; const AbstractLogger* log__; - private: - std::string root_folder_; - std::string folder_; - Error Init(); - HANDLE handle_{nullptr}; - SharedEventList* event_list_; - std::unique_ptr<char[]> buffer_; - Error ProcessEvent(const WinEvent& event); - void ProcessEvents(DWORD bytes_to_read); + private: + std::string root_folder_; + std::string folder_; + Error Init(); + HANDLE handle_{nullptr}; + SharedEventList* event_list_; + std::unique_ptr<char[]> buffer_; + Error ProcessEvent(const WinEvent& event); + void ProcessEvents(DWORD bytes_to_read); }; } diff --git a/producer/event_monitor_producer/src/system_folder_watch_windows.cpp b/producer/event_monitor_producer/src/system_folder_watch_windows.cpp index b878c26cd24e07961622ce43d8f08e8f4ac8aad3..b3a17bcc62f26f0989368b12fc2af988aacffd88 100644 --- a/producer/event_monitor_producer/src/system_folder_watch_windows.cpp +++ b/producer/event_monitor_producer/src/system_folder_watch_windows.cpp @@ -10,18 +10,18 @@ namespace asapo { Error SystemFolderWatch::StartFolderMonitor(const std::string& root_folder, const std::vector<std::string>& monitored_folders) { - for (auto& folder:monitored_folders ) { - auto thread = io__->NewThread([root_folder, folder,this] { - auto folder_watch = std::unique_ptr<SingleFolderWatch>(new SingleFolderWatch(root_folder, folder,&event_list_)); - while (true) { - auto err = folder_watch->Watch(); - if (err) { - std::this_thread::sleep_for(std::chrono::milliseconds(1000)); - } - } - }); - - threads_.emplace_back(std::move(thread)); + for (auto& folder : monitored_folders ) { + auto thread = io__->NewThread([root_folder, folder, this] { + auto folder_watch = std::unique_ptr<SingleFolderWatch>(new SingleFolderWatch(root_folder, folder, &event_list_)); + while (true) { + auto err = folder_watch->Watch(); + if (err) { + std::this_thread::sleep_for(std::chrono::milliseconds(1000)); + } + } + }); + + threads_.emplace_back(std::move(thread)); } return nullptr; @@ -32,7 +32,7 @@ FilesToSend SystemFolderWatch::GetFileList(Error* err) { return event_list_.GetAndClearEvents(); } -SystemFolderWatch::SystemFolderWatch() :io__{GenerateDefaultIO()}{ +SystemFolderWatch::SystemFolderWatch() : io__{GenerateDefaultIO()} { } diff --git a/producer/event_monitor_producer/src/system_folder_watch_windows.h b/producer/event_monitor_producer/src/system_folder_watch_windows.h index d2d2f35f8c601f6012a9a61f23ff072ac97a78c9..c7871c6aa173ad166934a234b0bad58d566ea7b8 100644 --- a/producer/event_monitor_producer/src/system_folder_watch_windows.h +++ b/producer/event_monitor_producer/src/system_folder_watch_windows.h @@ -17,11 +17,11 @@ namespace asapo { class SystemFolderWatch { public: - SystemFolderWatch(); - VIRTUAL Error StartFolderMonitor(const std::string& root_folder, + SystemFolderWatch(); + VIRTUAL Error StartFolderMonitor(const std::string& root_folder, const std::vector<std::string>& monitored_folders); - VIRTUAL FilesToSend GetFileList(Error* err); - std::unique_ptr<IO> io__; + VIRTUAL FilesToSend GetFileList(Error* err); + std::unique_ptr<IO> io__; private: SharedEventList event_list_; std::vector<std::unique_ptr<std::thread>> threads_; diff --git a/producer/event_monitor_producer/src/watch_io.cpp b/producer/event_monitor_producer/src/watch_io.cpp index 4f3e865b5475ce4c16be7d3dc8d7c839b06b4b2d..0058711b888b76a6b4ab8b1d0ef612929720a07e 100644 --- a/producer/event_monitor_producer/src/watch_io.cpp +++ b/producer/event_monitor_producer/src/watch_io.cpp @@ -5,26 +5,26 @@ namespace asapo { HANDLE WatchIO::Init(const char* folder, Error* err) { HANDLE hDir = CreateFile( - folder, - FILE_LIST_DIRECTORY, - FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE, - NULL, - OPEN_EXISTING, - FILE_FLAG_BACKUP_SEMANTICS, - NULL); + folder, + FILE_LIST_DIRECTORY, + FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE, + NULL, + OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS, + NULL); if (hDir == INVALID_HANDLE_VALUE ) { *err = io_->GetLastError(); } return hDir; } -WatchIO::WatchIO() :io_{GenerateDefaultIO()}{ +WatchIO::WatchIO() : io_{GenerateDefaultIO()} { } Error WatchIO::ReadDirectoryChanges(HANDLE handle, LPVOID buffer, DWORD buffer_length, LPDWORD bytes_returned) { DWORD filter = FILE_NOTIFY_CHANGE_FILE_NAME | - FILE_NOTIFY_CHANGE_LAST_WRITE; - auto res = ReadDirectoryChangesW(handle,buffer,buffer_length,true,filter,bytes_returned,nullptr,nullptr ); + FILE_NOTIFY_CHANGE_LAST_WRITE; + auto res = ReadDirectoryChangesW(handle, buffer, buffer_length, true, filter, bytes_returned, nullptr, nullptr ); if (res) { return nullptr; } else { @@ -32,7 +32,7 @@ Error WatchIO::ReadDirectoryChanges(HANDLE handle, LPVOID buffer, DWORD buffer_l } } -bool WatchIO::IsDirectory(const std::string &path) { +bool WatchIO::IsDirectory(const std::string& path) { auto attr = GetFileAttributesA(path.c_str()); return (attr & FILE_ATTRIBUTE_DIRECTORY) > 0; } diff --git a/producer/event_monitor_producer/src/watch_io.h b/producer/event_monitor_producer/src/watch_io.h index 037f6ada9233670cd13245eba35a8b2e38c08c78..d5137961946d0272e6b51f1a1b9a5d7c5edc61db 100644 --- a/producer/event_monitor_producer/src/watch_io.h +++ b/producer/event_monitor_producer/src/watch_io.h @@ -10,13 +10,13 @@ namespace asapo { class WatchIO { - public: - explicit WatchIO(); - VIRTUAL HANDLE Init(const char* folder, Error* err); - VIRTUAL Error ReadDirectoryChanges(HANDLE handle,LPVOID buffer, DWORD buffer_length,LPDWORD bytes_returned); - VIRTUAL bool IsDirectory(const std::string& path); - private: - std::unique_ptr<IO>io_; + public: + explicit WatchIO(); + VIRTUAL HANDLE Init(const char* folder, Error* err); + VIRTUAL Error ReadDirectoryChanges(HANDLE handle, LPVOID buffer, DWORD buffer_length, LPDWORD bytes_returned); + VIRTUAL bool IsDirectory(const std::string& path); + private: + std::unique_ptr<IO>io_; }; } diff --git a/producer/event_monitor_producer/src/win_event.cpp b/producer/event_monitor_producer/src/win_event.cpp index b4a7623bc4d880a23b2df5d77f77cd4e087547bb..3f5b9925e2bf7cc0b6f0503fd4a30f90192575ea 100644 --- a/producer/event_monitor_producer/src/win_event.cpp +++ b/producer/event_monitor_producer/src/win_event.cpp @@ -5,16 +5,16 @@ namespace asapo { -WinEvent::WinEvent(const FILE_NOTIFY_INFORMATION* win_event):win_event_{win_event} { +WinEvent::WinEvent(const FILE_NOTIFY_INFORMATION* win_event): win_event_{win_event} { } std::string WinEvent::FileName() const { - std::size_t len = win_event_->FileNameLength/ sizeof(WCHAR); + std::size_t len = win_event_->FileNameLength / sizeof(WCHAR); std::vector<char> buffer(len + 1); - buffer[len]=0; + buffer[len] = 0; // std::locale loc(""); // std::use_facet<std::ctype<wchar_t> >(loc).narrow(win_event_->FileName, win_event_->FileName + len, '_', &buffer[0]); - for (size_t i=0;i<len;i++) { + for (size_t i = 0; i < len; i++) { buffer[i] = (char)win_event_->FileName[i]; } return std::string(&buffer[0], &buffer[len]); @@ -24,7 +24,7 @@ size_t WinEvent::Offset()const { return win_event_->NextEntryOffset; } -void WinEvent::Print() const{ +void WinEvent::Print() const { printf("\nNew Event: "); if (win_event_->Action == FILE_ACTION_ADDED) printf("FILE_ACTION_ADDED "); if (win_event_->Action == FILE_ACTION_REMOVED) printf("FILE_ACTION_REMOVED "); @@ -33,7 +33,7 @@ void WinEvent::Print() const{ if (win_event_->Action == FILE_ACTION_RENAMED_NEW_NAME) printf("FILE_ACTION_RENAMED_NEW_NAME "); printf("\n"); if (win_event_->FileNameLength > 0) - printf("Filename: %s\n",FileName().c_str()); + printf("Filename: %s\n", FileName().c_str()); } bool WinEvent::IsFileModifiedEvent() const { diff --git a/producer/event_monitor_producer/src/win_event.h b/producer/event_monitor_producer/src/win_event.h index b0b1e4907ae9d70c8249a33495f445d11b8b62a9..4060b81cb7aab8ff8a5bd3246c0e39fc6badb46d 100644 --- a/producer/event_monitor_producer/src/win_event.h +++ b/producer/event_monitor_producer/src/win_event.h @@ -8,17 +8,17 @@ namespace asapo { class WinEvent { - public: - WinEvent(const FILE_NOTIFY_INFORMATION* win_event); - size_t Offset() const; - void Print() const; - std::string FileName() const; - bool IsFileModifiedEvent() const; - bool IsFileMovedEvent() const ; - bool ShouldInitiateTransfer() const ; - bool ShouldBeProcessedAfterDelay() const ; - private: - const FILE_NOTIFY_INFORMATION* win_event_; + public: + WinEvent(const FILE_NOTIFY_INFORMATION* win_event); + size_t Offset() const; + void Print() const; + std::string FileName() const; + bool IsFileModifiedEvent() const; + bool IsFileMovedEvent() const ; + bool ShouldInitiateTransfer() const ; + bool ShouldBeProcessedAfterDelay() const ; + private: + const FILE_NOTIFY_INFORMATION* win_event_; }; } diff --git a/producer/event_monitor_producer/unittests/mock_watch_io.h b/producer/event_monitor_producer/unittests/mock_watch_io.h index a6b380df3d1fdba4e12f2c90235667f125bb6696..77f372d2dc11875315560cddf8189e74edbfb05a 100644 --- a/producer/event_monitor_producer/unittests/mock_watch_io.h +++ b/producer/event_monitor_producer/unittests/mock_watch_io.h @@ -10,25 +10,26 @@ namespace asapo { class MockWatchIO : public WatchIO { public: - HANDLE Init(const char* folder, Error* err) override { - ErrorInterface* error = nullptr; - auto handle = Init_t(folder,&error); - err->reset(error); - return handle; - } + HANDLE Init(const char* folder, Error* err) override { + ErrorInterface* error = nullptr; + auto handle = Init_t(folder, &error); + err->reset(error); + return handle; + } - MOCK_METHOD2(Init_t, HANDLE (const char* folder, ErrorInterface** err)); + MOCK_METHOD2(Init_t, HANDLE (const char* folder, ErrorInterface** err)); - Error ReadDirectoryChanges(HANDLE handle,LPVOID buffer, DWORD buffer_length,LPDWORD bytes_returned) override { - return Error{ReadDirectoryChanges_t(handle,buffer,buffer_length,bytes_returned)}; - } + Error ReadDirectoryChanges(HANDLE handle, LPVOID buffer, DWORD buffer_length, LPDWORD bytes_returned) override { + return Error{ReadDirectoryChanges_t(handle, buffer, buffer_length, bytes_returned)}; + } - MOCK_METHOD4(ReadDirectoryChanges_t, ErrorInterface* (HANDLE handle,LPVOID buffer, DWORD buffer_length,LPDWORD bytes_returned)); + MOCK_METHOD4(ReadDirectoryChanges_t, ErrorInterface * (HANDLE handle, LPVOID buffer, DWORD buffer_length, + LPDWORD bytes_returned)); - MOCK_METHOD1(IsDirectory, bool (const std::string&)); + MOCK_METHOD1(IsDirectory, bool (const std::string&)); - }; +}; } diff --git a/producer/event_monitor_producer/unittests/test_single_folder_watch_windows.cpp b/producer/event_monitor_producer/unittests/test_single_folder_watch_windows.cpp index 5f01512353baf849ae766d061393dfbe2fe00aed..9acefd7516e4b152373cd9b4525d6d812ba42a50 100644 --- a/producer/event_monitor_producer/unittests/test_single_folder_watch_windows.cpp +++ b/producer/event_monitor_producer/unittests/test_single_folder_watch_windows.cpp @@ -38,7 +38,7 @@ namespace { TEST(SingleFolderWatch, Constructor) { - SingleFolderWatch watch{"","",nullptr}; + SingleFolderWatch watch{"", "", nullptr}; ASSERT_THAT(dynamic_cast<asapo::WatchIO*>(watch.watch_io__.get()), Ne(nullptr)); } @@ -51,7 +51,7 @@ class SingleFolderWatchTests : public testing::Test { std::string expected_folder{"test1"}; HANDLE expected_handle = HANDLE(1); asapo::SharedEventList event_list; - SingleFolderWatch watch{expected_root_folder,expected_folder,&event_list}; + SingleFolderWatch watch{expected_root_folder, expected_folder, &event_list}; char* buffer; DWORD cur_buffer_pointer = 0; void SetUp() override { @@ -68,19 +68,19 @@ class SingleFolderWatchTests : public testing::Test { void ExpectDirectory(bool yes); DWORD AddEventToBuffer(std::string filename, DWORD action); - }; +}; DWORD SingleFolderWatchTests::AddEventToBuffer(std::string filename, DWORD action) { size_t filename_size = filename.size(); - DWORD size = sizeof(FILE_NOTIFY_INFORMATION) + filename_size*sizeof(WCHAR); + DWORD size = sizeof(FILE_NOTIFY_INFORMATION) + filename_size * sizeof(WCHAR); char* buf = (char*) malloc(size); FILE_NOTIFY_INFORMATION* event = (FILE_NOTIFY_INFORMATION*) buf; event->NextEntryOffset = size; event->Action = action; - for (size_t i=0;i<filename_size;i++) { + for (size_t i = 0; i < filename_size; i++) { event->FileName[i] = filename[i]; } - event->FileNameLength = filename_size* sizeof(WCHAR); + event->FileNameLength = filename_size * sizeof(WCHAR); memcpy(buffer + cur_buffer_pointer, event, size); cur_buffer_pointer += size; free(buf); @@ -93,29 +93,29 @@ ACTION_P(A_CopyBuf, buffer) { void SingleFolderWatchTests::ExpectRead() { - EXPECT_CALL(mock_watch_io, ReadDirectoryChanges_t(expected_handle, _, asapo::kBufLen,_)) - .WillOnce(DoAll( - A_CopyBuf(buffer), - SetArgPointee<3>(cur_buffer_pointer), - Return(nullptr)) - ); + EXPECT_CALL(mock_watch_io, ReadDirectoryChanges_t(expected_handle, _, asapo::kBufLen, _)) + .WillOnce(DoAll( + A_CopyBuf(buffer), + SetArgPointee<3>(cur_buffer_pointer), + Return(nullptr)) + ); } void SingleFolderWatchTests::ExpectInit() { - EXPECT_CALL(mock_watch_io, Init_t(StrEq(expected_root_folder+asapo::kPathSeparator+expected_folder),_)). - WillOnce(DoAll( - SetArgPointee<1>(nullptr), - Return(expected_handle) - ) - ); + EXPECT_CALL(mock_watch_io, Init_t(StrEq(expected_root_folder + asapo::kPathSeparator + expected_folder), _)). + WillOnce(DoAll( + SetArgPointee<1>(nullptr), + Return(expected_handle) + ) + ); } void SingleFolderWatchTests::ExpectDirectory(bool yes) { EXPECT_CALL(mock_watch_io, IsDirectory(_)). - WillRepeatedly(Return(yes) - ); + WillRepeatedly(Return(yes) + ); } @@ -125,27 +125,27 @@ TEST_F(SingleFolderWatchTests, InitWatchOnWatch) { } TEST_F(SingleFolderWatchTests, InitErrorOnWatch) { - EXPECT_CALL(mock_watch_io, Init_t(StrEq(expected_root_folder+asapo::kPathSeparator+expected_folder),_)). - WillOnce(DoAll( - SetArgPointee<1>(asapo::IOErrorTemplates::kFileNotFound.Generate().release()), - Return(INVALID_HANDLE_VALUE) - ) - ); + EXPECT_CALL(mock_watch_io, Init_t(StrEq(expected_root_folder + asapo::kPathSeparator + expected_folder), _)). + WillOnce(DoAll( + SetArgPointee<1>(asapo::IOErrorTemplates::kFileNotFound.Generate().release()), + Return(INVALID_HANDLE_VALUE) + ) + ); EXPECT_CALL(mock_logger, Error(AllOf( - HasSubstr("cannot add"), - HasSubstr(expected_root_folder), - HasSubstr(expected_folder), - HasSubstr("file") - ) - )); + HasSubstr("cannot add"), + HasSubstr(expected_root_folder), + HasSubstr(expected_folder), + HasSubstr("file") + ) + )); watch.Watch(); } TEST_F(SingleFolderWatchTests, WatchWaitsBeforeEventIsAvailable) { ExpectInit(); - AddEventToBuffer("test",FILE_ACTION_MODIFIED); + AddEventToBuffer("test", FILE_ACTION_MODIFIED); ExpectDirectory(false); ExpectRead(); watch.Watch(); @@ -158,8 +158,8 @@ TEST_F(SingleFolderWatchTests, WatchWaitsBeforeEventIsAvailable) { TEST_F(SingleFolderWatchTests, NewEventClearsTimeoutCounter) { ExpectInit(); - AddEventToBuffer("test",FILE_ACTION_MODIFIED); - AddEventToBuffer("test2",FILE_ACTION_MODIFIED); + AddEventToBuffer("test", FILE_ACTION_MODIFIED); + AddEventToBuffer("test2", FILE_ACTION_MODIFIED); ExpectDirectory(false); ExpectRead(); watch.Watch(); @@ -168,7 +168,7 @@ TEST_F(SingleFolderWatchTests, NewEventClearsTimeoutCounter) { std::this_thread::sleep_for(std::chrono::milliseconds(800)); cur_buffer_pointer = 0; - AddEventToBuffer("test2",FILE_ACTION_MODIFIED); + AddEventToBuffer("test2", FILE_ACTION_MODIFIED); ExpectRead(); watch.Watch(); @@ -177,26 +177,26 @@ TEST_F(SingleFolderWatchTests, NewEventClearsTimeoutCounter) { auto files = event_list.GetAndClearEvents(); ASSERT_THAT(files.size(), Eq(1)); - ASSERT_THAT(files[0], StrEq(expected_folder+"\\test")); + ASSERT_THAT(files[0], StrEq(expected_folder + "\\test")); } TEST_F(SingleFolderWatchTests, WatchReadsDirectoryEventsAfterTimeout) { ExpectInit(); - AddEventToBuffer("test",FILE_ACTION_MODIFIED); - AddEventToBuffer("test2",FILE_ACTION_MODIFIED); - AddEventToBuffer("test2",FILE_ACTION_MODIFIED); + AddEventToBuffer("test", FILE_ACTION_MODIFIED); + AddEventToBuffer("test2", FILE_ACTION_MODIFIED); + AddEventToBuffer("test2", FILE_ACTION_MODIFIED); ExpectDirectory(false); ExpectRead(); watch.Watch(); - std::this_thread::sleep_for(std::chrono::milliseconds(asapo::kFileDelayMs+10)); + std::this_thread::sleep_for(std::chrono::milliseconds(asapo::kFileDelayMs + 10)); auto files = event_list.GetAndClearEvents(); ASSERT_THAT(files.size(), Eq(2)); - ASSERT_THAT(files[0], StrEq(expected_folder+"\\test")); - ASSERT_THAT(files[1], StrEq(expected_folder+"\\test2")); + ASSERT_THAT(files[0], StrEq(expected_folder + "\\test")); + ASSERT_THAT(files[1], StrEq(expected_folder + "\\test2")); } @@ -204,12 +204,12 @@ TEST_F(SingleFolderWatchTests, WatchReadsDirectoryEventsAfterTimeout) { TEST_F(SingleFolderWatchTests, DirectoriesAreIgnored) { ExpectInit(); - AddEventToBuffer("test",FILE_ACTION_MODIFIED); + AddEventToBuffer("test", FILE_ACTION_MODIFIED); ExpectDirectory(true); ExpectRead(); watch.Watch(); - std::this_thread::sleep_for(std::chrono::milliseconds(asapo::kFileDelayMs+10)); + std::this_thread::sleep_for(std::chrono::milliseconds(asapo::kFileDelayMs + 10)); auto files = event_list.GetAndClearEvents(); ASSERT_THAT(files.size(), Eq(0)); @@ -218,14 +218,14 @@ TEST_F(SingleFolderWatchTests, DirectoriesAreIgnored) { TEST_F(SingleFolderWatchTests, OtherEventTypesAreIgnored) { ExpectInit(); - AddEventToBuffer("test1",FILE_ACTION_ADDED); - AddEventToBuffer("test2",FILE_ACTION_REMOVED); - AddEventToBuffer("test3",FILE_ACTION_RENAMED_OLD_NAME); + AddEventToBuffer("test1", FILE_ACTION_ADDED); + AddEventToBuffer("test2", FILE_ACTION_REMOVED); + AddEventToBuffer("test3", FILE_ACTION_RENAMED_OLD_NAME); ExpectDirectory(false); ExpectRead(); watch.Watch(); - std::this_thread::sleep_for(std::chrono::milliseconds(asapo::kFileDelayMs+10)); + std::this_thread::sleep_for(std::chrono::milliseconds(asapo::kFileDelayMs + 10)); auto files = event_list.GetAndClearEvents(); ASSERT_THAT(files.size(), Eq(0)); @@ -233,7 +233,7 @@ TEST_F(SingleFolderWatchTests, OtherEventTypesAreIgnored) { TEST_F(SingleFolderWatchTests, NoWaitOnRenameEvent) { ExpectInit(); - AddEventToBuffer("test",FILE_ACTION_RENAMED_NEW_NAME); + AddEventToBuffer("test", FILE_ACTION_RENAMED_NEW_NAME); ExpectDirectory(false); ExpectRead(); watch.Watch(); diff --git a/producer/event_monitor_producer/unittests/test_system_folder_watch_windows.cpp b/producer/event_monitor_producer/unittests/test_system_folder_watch_windows.cpp index 088eac984b89e013ff45cc24a31e80b40ebbe3c2..f5c5c341dbd951df574fa16c6b800f6241f5db99 100644 --- a/producer/event_monitor_producer/unittests/test_system_folder_watch_windows.cpp +++ b/producer/event_monitor_producer/unittests/test_system_folder_watch_windows.cpp @@ -56,7 +56,7 @@ class SystemFolderWatchTests : public testing::Test { SystemFolderWatch watch{}; std::string expected_root_folder = "c:\\tmp"; std::vector<std::string> expected_folders{"test1", "test2"}; - void SetUp() override { + void SetUp() override { watch.io__ = std::unique_ptr<asapo::IO> {&mock_io}; } void TearDown() override { @@ -64,11 +64,11 @@ class SystemFolderWatchTests : public testing::Test { } }; -TEST_F(SystemFolderWatchTests,StartMonitoring) { +TEST_F(SystemFolderWatchTests, StartMonitoring) { EXPECT_CALL(mock_io, NewThread_t(_)).Times(expected_folders.size()). - WillRepeatedly( + WillRepeatedly( Return(nullptr) ); diff --git a/tests/automatic/producer/file_monitor_producer/check_linux.sh b/tests/automatic/producer/file_monitor_producer/check_linux.sh index e70b22513fcec491377c45d75dfc55767b432f28..aed6e502a59123e63c622b932e12449b829eec90 100644 --- a/tests/automatic/producer/file_monitor_producer/check_linux.sh +++ b/tests/automatic/producer/file_monitor_producer/check_linux.sh @@ -2,35 +2,39 @@ set -e + +root_folder=/tmp/asapo + + trap Cleanup EXIT Cleanup() { set +e echo cleanup - rm -rf /tmp/test_in /tmp/test_out #output + rm -rf /tmp/asapo/test_in /tmp/asapo/test_out #output kill -9 $producer_id &>/dev/null } -mkdir -p /tmp/test_in/test1 /tmp/test_in/test2 /tmp/test_out +mkdir -p /tmp/asapo/test_in/test1 /tmp/asapo/test_in/test2 /tmp/asapo/test_out $1 test.json &> output & producer_id=`echo $!` sleep 0.5 -echo test1 > /tmp/test_in/test1/test1.dat -echo test2 > /tmp/test_in/test2/test2.tmp -mkdir -p /tmp/test_in/test2/subdir -echo test3 > /tmp/test_in/test2/subdir/test3.dat +echo test1 > /tmp/asapo/test_in/test1/test1.dat +echo test2 > /tmp/asapo/test_in/test2/test2.tmp +mkdir -p /tmp/asapo/test_in/test2/subdir +echo test3 > /tmp/asapo/test_in/test2/subdir/test3.dat sleep 0.1 -cat /tmp/test_out/test1/test1.dat | grep test1 -cat /tmp/test_out/test2/subdir/test3.dat | grep test3 +cat /tmp/asapo/test_out/test1/test1.dat | grep test1 +cat /tmp/asapo/test_out/test2/subdir/test3.dat | grep test3 -test ! -e /tmp/test_out/test2/test2.tmp +test ! -e /tmp/asapo/test_out/test2/test2.tmp -test ! -e /tmp/test_in/test1/test1.dat -test ! -e /tmp/test_in/test2/subdir/test3.dat +test ! -e /tmp/asapo/test_in/test1/test1.dat +test ! -e /tmp/asapo/test_in/test2/subdir/test3.dat kill -s INT $producer_id