summaryrefslogtreecommitdiffstats
path: root/softoff
diff options
context:
space:
mode:
Diffstat (limited to 'softoff')
-rw-r--r--softoff/Makefile.am2
-rw-r--r--softoff/mainapp.cpp2
-rw-r--r--softoff/softoff.cpp4
-rw-r--r--softoff/softoff.hpp3
-rw-r--r--softoff/test/Makefile.am12
-rw-r--r--softoff/test/utest.cpp263
6 files changed, 4 insertions, 282 deletions
diff --git a/softoff/Makefile.am b/softoff/Makefile.am
index cf50cdb..ed0c226 100644
--- a/softoff/Makefile.am
+++ b/softoff/Makefile.am
@@ -6,7 +6,6 @@ sbin_PROGRAMS = phosphor-softpoweroff
# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
phosphor_softpoweroff_SOURCES = \
softoff.cpp \
- ../timer.cpp \
mainapp.cpp \
xyz/openbmc_project/Ipmi/Internal/SoftPowerOff/server.cpp \
../utils.cpp
@@ -35,4 +34,3 @@ xyz/openbmc_project/Ipmi/Internal/SoftPowerOff/server.hpp: ${top_srcdir}/xyz/ope
@mkdir -p `dirname $@`
$(SDBUSPLUSPLUS) -r $(top_srcdir) interface server-header xyz.openbmc_project.Ipmi.Internal.SoftPowerOff > $@
-SUBDIRS = test
diff --git a/softoff/mainapp.cpp b/softoff/mainapp.cpp
index 3b153a8..f6a52ac 100644
--- a/softoff/mainapp.cpp
+++ b/softoff/mainapp.cpp
@@ -16,12 +16,12 @@
#include "config.h"
#include "softoff.hpp"
-#include "timer.hpp"
#include <systemd/sd-event.h>
#include <phosphor-logging/elog-errors.hpp>
#include <phosphor-logging/elog.hpp>
+#include <sdbusplus/timer.hpp>
#include <xyz/openbmc_project/State/Host/error.hpp>
// Return -1 on any errors to ensure we follow the calling targets OnFailure=
diff --git a/softoff/softoff.cpp b/softoff/softoff.cpp
index 921536f..803efc0 100644
--- a/softoff/softoff.cpp
+++ b/softoff/softoff.cpp
@@ -103,7 +103,7 @@ void SoftPowerOff::hostControlEvent(sdbusplus::message::message& msg)
// Starts a timer
int SoftPowerOff::startTimer(const std::chrono::microseconds& usec)
{
- return timer.startTimer(usec);
+ return timer.start(usec);
}
// Host Response handler
@@ -115,7 +115,7 @@ auto SoftPowerOff::responseReceived(HostResponse response) -> HostResponse
{
// Disable the timer since Host has quiesced and we are
// done with soft power off part
- auto r = timer.setTimer(SD_EVENT_OFF);
+ auto r = timer.stop();
if (r < 0)
{
log<level::ERR>("Failure to STOP the timer",
diff --git a/softoff/softoff.hpp b/softoff/softoff.hpp
index b7555e3..1c9341b 100644
--- a/softoff/softoff.hpp
+++ b/softoff/softoff.hpp
@@ -2,11 +2,10 @@
#include "config.h"
-#include "timer.hpp"
-
#include <functional>
#include <sdbusplus/bus.hpp>
#include <sdbusplus/server/object.hpp>
+#include <sdbusplus/timer.hpp>
#include <xyz/openbmc_project/Control/Host/server.hpp>
#include <xyz/openbmc_project/Ipmi/Internal/SoftPowerOff/server.hpp>
namespace phosphor
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);
-}
OpenPOWER on IntegriCloud