1 #include "suite.hpp" 2 3 #include <sdbusplus/timer.hpp> 4 5 #include <chrono> 6 7 #include <gtest/gtest.h> 8 9 /** @brief Makes sure that timer is not expired 10 */ TEST_F(TimerTest,timerNotExpiredAfter2Seconds)11TEST_F(TimerTest, timerNotExpiredAfter2Seconds) 12 { 13 using namespace std::chrono; 14 15 auto time = duration_cast<microseconds>(seconds(2)); 16 EXPECT_GE(timer.start(time), 0); 17 18 // Now turn off the timer post a 1 second sleep 19 sleep(1); 20 EXPECT_GE(timer.stop(), 0); 21 22 // Wait 2 seconds and see that timer is not expired 23 int count = 0; 24 while (count < 2) 25 { 26 // Returns -0- on timeout 27 auto sleepTime = duration_cast<microseconds>(seconds(1)); 28 if (!sd_event_run(events, sleepTime.count())) 29 { 30 count++; 31 } 32 } 33 EXPECT_EQ(false, timer.isExpired()); 34 35 // 2 because of one more count that happens prior to exiting 36 EXPECT_EQ(2, count); 37 } 38