diff options
Diffstat (limited to 'softoff/test')
-rw-r--r-- | softoff/test/Makefile.am | 12 | ||||
-rw-r--r-- | softoff/test/utest.cpp | 263 |
2 files changed, 0 insertions, 275 deletions
diff --git a/softoff/test/Makefile.am b/softoff/test/Makefile.am deleted file mode 100644 index afdb620..0000000 --- a/softoff/test/Makefile.am +++ /dev/null @@ -1,12 +0,0 @@ -AM_CPPFLAGS = -I$(top_srcdir)/softoff - -# Run all 'check' test programs -TESTS = $(check_PROGRAMS) - -# # Build/add utest to test suite -check_PROGRAMS = utest -utest_CPPFLAGS = -Igtest $(GTEST_CPPFLAGS) $(AM_CPPFLAGS) -utest_CXXFLAGS = $(PTHREAD_CFLAGS) -utest_LDFLAGS = -lgtest_main -lgtest $(PTHREAD_LIBS) $(OESDK_TESTCASE_FLAGS) $(SYSTEMD_LIBS) ${SDBUSPLUS_LIBS} -utest_SOURCES = utest.cpp -utest_LDADD = $(top_builddir)/timer.o diff --git a/softoff/test/utest.cpp b/softoff/test/utest.cpp deleted file mode 100644 index 0dd99ae..0000000 --- a/softoff/test/utest.cpp +++ /dev/null @@ -1,263 +0,0 @@ -#include "timer.hpp" - -#include <chrono> -#include <iostream> - -#include <gtest/gtest.h> - -using namespace phosphor::ipmi; - -class TimerTest : public ::testing::Test -{ - public: - // systemd event handler - sd_event* events; - - // Need this so that events can be initialized. - int rc; - - // Source of event - sd_event_source* eventSource = nullptr; - - // Add a Timer Object - Timer timer; - - // Gets called as part of each TEST_F construction - TimerTest() : rc(sd_event_default(&events)), timer(events) - { - // Check for successful creation of - // event handler and timer object. - EXPECT_GE(rc, 0); - } - - // Gets called as part of each TEST_F destruction - ~TimerTest() - { - events = sd_event_unref(events); - } -}; - -class TimerTestCallBack : public ::testing::Test -{ - public: - // systemd event handler - sd_event* events; - - // Need this so that events can be initialized. - int rc; - - // Source of event - sd_event_source* eventSource = nullptr; - - // Add a Timer Object - std::unique_ptr<Timer> timer = nullptr; - - // Indicates optional call back fun was called - bool callBackDone = false; - - void callBack() - { - callBackDone = true; - } - - // Gets called as part of each TEST_F construction - TimerTestCallBack() : rc(sd_event_default(&events)) - - { - // Check for successful creation of - // event handler and timer object. - EXPECT_GE(rc, 0); - - std::function<void()> func( - std::bind(&TimerTestCallBack::callBack, this)); - timer = std::make_unique<Timer>(events, func); - } - - // Gets called as part of each TEST_F destruction - ~TimerTestCallBack() - { - events = sd_event_unref(events); - } -}; - -/** @brief Makes sure that timer is expired and the - * callback handler gets invoked post 2 seconds - */ -TEST_F(TimerTest, timerExpiresAfter2seconds) -{ - using namespace std::chrono; - - auto time = duration_cast<microseconds>(seconds(2)); - EXPECT_GE(timer.startTimer(time), 0); - - // Waiting 2 seconds is enough here since we have - // already spent some usec now - int count = 0; - while (count < 2 && !timer.isExpired()) - { - // Returns -0- on timeout and positive number on dispatch - auto sleepTime = duration_cast<microseconds>(seconds(1)); - if (!sd_event_run(events, sleepTime.count())) - { - count++; - } - } - EXPECT_EQ(true, timer.isExpired()); - EXPECT_EQ(1, count); -} - -/** @brief Makes sure that timer is not expired - */ -TEST_F(TimerTest, timerNotExpiredAfter2Seconds) -{ - using namespace std::chrono; - - auto time = duration_cast<microseconds>(seconds(2)); - EXPECT_GE(timer.startTimer(time), 0); - - // Now turn off the timer post a 1 second sleep - sleep(1); - EXPECT_GE(timer.setTimer(SD_EVENT_OFF), 0); - - // Wait 2 seconds and see that timer is not expired - int count = 0; - while (count < 2) - { - // Returns -0- on timeout - auto sleepTime = duration_cast<microseconds>(seconds(1)); - if (!sd_event_run(events, sleepTime.count())) - { - count++; - } - } - EXPECT_EQ(false, timer.isExpired()); - - // 2 because of one more count that happens prior to exiting - EXPECT_EQ(2, count); -} - -/** @brief Makes sure that timer value is changed in between - * and that the new timer expires - */ -TEST_F(TimerTest, updateTimerAndExpectExpire) -{ - using namespace std::chrono; - - auto time = duration_cast<microseconds>(seconds(2)); - EXPECT_GE(timer.startTimer(time), 0); - - // Now sleep for a second and then set the new timeout value - sleep(1); - - // New timeout is 3 seconds from THIS point. - time = duration_cast<microseconds>(seconds(3)); - EXPECT_GE(timer.startTimer(time), 0); - - // Wait 3 seconds and see that timer is expired - int count = 0; - while (count < 3 && !timer.isExpired()) - { - // Returns -0- on timeout - auto sleepTime = duration_cast<microseconds>(seconds(1)); - if (!sd_event_run(events, sleepTime.count())) - { - count++; - } - } - EXPECT_EQ(true, timer.isExpired()); - EXPECT_EQ(2, count); -} - -/** @brief Makes sure that timer value is changed in between - * and turn off and make sure that timer does not expire - */ -TEST_F(TimerTest, updateTimerAndNeverExpire) -{ - using namespace std::chrono; - - auto time = duration_cast<microseconds>(seconds(2)); - EXPECT_GE(timer.startTimer(time), 0); - - // Now sleep for a second and then set the new timeout value - sleep(1); - - // New timeout is 2 seconds from THIS point. - time = duration_cast<microseconds>(seconds(2)); - EXPECT_GE(timer.startTimer(time), 0); - - // Now turn off the timer post a 1 second sleep - sleep(1); - EXPECT_GE(timer.setTimer(SD_EVENT_OFF), 0); - - // Wait 2 seconds and see that timer is expired - int count = 0; - while (count < 2) - { - // Returns -0- on timeout - auto sleepTime = duration_cast<microseconds>(seconds(1)); - if (!sd_event_run(events, sleepTime.count())) - { - count++; - } - } - EXPECT_EQ(false, timer.isExpired()); - - // 2 because of one more count that happens prior to exiting - EXPECT_EQ(2, count); -} - -/** @brief Makes sure that optional callback is called */ -TEST_F(TimerTestCallBack, optionalFuncCallBackDone) -{ - using namespace std::chrono; - - auto time = duration_cast<microseconds>(seconds(2)); - EXPECT_GE(timer->startTimer(time), 0); - - // Waiting 2 seconds is enough here since we have - // already spent some usec now - int count = 0; - while (count < 2 && !timer->isExpired()) - { - // Returns -0- on timeout and positive number on dispatch - auto sleepTime = duration_cast<microseconds>(seconds(1)); - if (!sd_event_run(events, sleepTime.count())) - { - count++; - } - } - EXPECT_EQ(true, timer->isExpired()); - EXPECT_EQ(true, callBackDone); - EXPECT_EQ(1, count); -} - -/** @brief Makes sure that timer is not expired - */ -TEST_F(TimerTestCallBack, timerNotExpiredAfter2SecondsNoOptionalCallBack) -{ - using namespace std::chrono; - - auto time = duration_cast<microseconds>(seconds(2)); - EXPECT_GE(timer->startTimer(time), 0); - - // Now turn off the timer post a 1 second sleep - sleep(1); - EXPECT_GE(timer->setTimer(SD_EVENT_OFF), 0); - - // Wait 2 seconds and see that timer is not expired - int count = 0; - while (count < 2) - { - // Returns -0- on timeout - auto sleepTime = duration_cast<microseconds>(seconds(1)); - if (!sd_event_run(events, sleepTime.count())) - { - count++; - } - } - EXPECT_EQ(false, timer->isExpired()); - EXPECT_EQ(false, callBackDone); - - // 2 because of one more count that happens prior to exiting - EXPECT_EQ(2, count); -} |