Separated tests into different files, added ResetInstance() method to EventManager

checksum-failure-logging
EricLiu2000 2019-06-26 11:30:24 -04:00
parent 1dd68eb0d0
commit 4923218d35
6 changed files with 44 additions and 21 deletions

View File

@ -217,7 +217,7 @@ if(test)
include_directories("${gtest_SOURCE_DIR}/include")
endif()
add_executable(runTests test/main.cpp)
add_executable(runTests test/main.cpp test/eventmanagertest.cpp)
target_link_libraries(runTests gtest gtest_main)
target_link_libraries(runTests icsneocpp)

View File

@ -11,6 +11,10 @@ EventManager& EventManager::GetInstance() {
return *singleton.get();
}
void EventManager::ResetInstance() {
singleton = nullptr;
}
void EventManager::get(std::vector<APIEvent>& eventOutput, size_t max, EventFilter filter) {
std::lock_guard<std::mutex> lk(mutex);

View File

@ -12,7 +12,7 @@ std::vector<DeviceType> icsneo::GetSupportedDevices() {
}
size_t icsneo::EventCount(EventFilter filter) {
return EventManager::GetInstance().count(filter);
return EventManager::GetInstance().eventCount(filter);
}
std::vector<APIEvent> icsneo::GetEvents(EventFilter filter, size_t max) {

View File

@ -17,7 +17,9 @@ class EventManager {
public:
static EventManager& GetInstance();
size_t count(EventFilter filter = EventFilter()) const {
static void ResetInstance();
size_t eventCount(EventFilter filter = EventFilter()) const {
std::lock_guard<std::mutex> lk(mutex);
return count_internal(filter);
};
@ -61,8 +63,10 @@ public:
size_t getEventLimit() const { return eventLimit; }
private:
EventManager() {}
EventManager() : mutex(), events(), lastUserErrors(), eventLimit(10000) {}
// Used by functions for threadsafety
mutable std::mutex mutex;

View File

@ -0,0 +1,32 @@
#include "icsneo/icsneocpp.h"
#include "gtest/gtest.h"
using namespace icsneo;
class EventManagerTest : public ::testing::Test {
protected:
void TearDown() override {
EventManager::ResetInstance();
}
};
TEST_F(EventManagerTest, GetLastErrorTest) {
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::Error));
EXPECT_EQ(GetLastError().getType(), APIEvent::Type::OutputTruncated);
auto err = GetLastError();
EXPECT_EQ(err.getType(), APIEvent::Type::NoErrorFound);
EXPECT_EQ(err.getSeverity(), APIEvent::Severity::EventInfo);
}
TEST_F(EventManagerTest, CountTest) {
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::Error));
EXPECT_EQ(EventCount(), 0);
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::EventWarning));
EXPECT_EQ(EventCount(), 1);
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::EventInfo));
EXPECT_EQ(EventCount(), 2);
GetEvents(EventFilter(APIEvent::Severity::EventInfo));
EXPECT_EQ(EventCount(), 1);
GetEvents();
EXPECT_EQ(EventCount(), 0);
}

View File

@ -1,22 +1,5 @@
#include "icsneo/api/eventmanager.h"
#include "gtest/gtest.h"
using namespace icsneo;
class EventManagerTest : public ::testing::Test {
};
TEST_F(EventManagerTest, GetLastErrorTest) {
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::Error));
EXPECT_EQ(EventManager::GetInstance().getLastError().getType(), APIEvent::Type::OutputTruncated);
}
TEST_F(EventManagerTest, CountTest) {
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::Error));
EXPECT_EQ(EventManager::GetInstance().count(), 1);
}
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();