52 lines
1.1 KiB
C++
52 lines
1.1 KiB
C++
// Copyright 2013 Google Inc. All Rights Reserved.
|
|
|
|
#include "gtest/gtest.h"
|
|
#include "timer.h"
|
|
|
|
namespace wvcdm {
|
|
|
|
class TestTimerHandler : public TimerHandler {
|
|
public:
|
|
TestTimerHandler() : timer_events_(0) {};
|
|
virtual ~TestTimerHandler() {};
|
|
|
|
virtual void OnTimerEvent() { timer_events_++; }
|
|
|
|
uint32_t timer_events() { return timer_events_; }
|
|
void ResetTimerEvents() { timer_events_ = 0; }
|
|
|
|
private:
|
|
uint32_t timer_events_;
|
|
};
|
|
|
|
TEST(TimerTest, ParametersCheck) {
|
|
Timer timer;
|
|
EXPECT_FALSE(timer.Start(NULL, 10));
|
|
|
|
TestTimerHandler handler;
|
|
EXPECT_FALSE(timer.Start(&handler, 0));
|
|
}
|
|
|
|
TEST(TimerTest, TimerCheck) {
|
|
TestTimerHandler handler;
|
|
Timer timer;
|
|
uint32_t duration = 10;
|
|
|
|
EXPECT_EQ(0u, handler.timer_events());
|
|
EXPECT_FALSE(timer.IsRunning());
|
|
|
|
EXPECT_TRUE(timer.Start(&handler, 1));
|
|
EXPECT_TRUE(timer.IsRunning());
|
|
sleep(duration);
|
|
|
|
EXPECT_LE(duration - 1, handler.timer_events());
|
|
EXPECT_LE(handler.timer_events(), duration + 1);
|
|
timer.Stop();
|
|
EXPECT_FALSE(timer.IsRunning());
|
|
sleep(duration);
|
|
|
|
EXPECT_LE(duration - 1, handler.timer_events());
|
|
EXPECT_LE(handler.timer_events(), duration + 1);
|
|
}
|
|
}
|