mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-31 14:05:33 +00:00
[3971] TimerMgr returns the number of registered timers.
This commit is contained in:
@@ -208,6 +208,7 @@ TEST_F(TimerMgrTest, registerTimer) {
|
||||
TEST_F(TimerMgrTest, unregisterTimer) {
|
||||
// Register a timer and start it.
|
||||
ASSERT_NO_FATAL_FAILURE(registerTimer("timer1", 1));
|
||||
ASSERT_EQ(1, timer_mgr_->timersCount());
|
||||
ASSERT_NO_THROW(timer_mgr_->setup("timer1"));
|
||||
ASSERT_NO_THROW(timer_mgr_->startThread());
|
||||
|
||||
@@ -223,10 +224,13 @@ TEST_F(TimerMgrTest, unregisterTimer) {
|
||||
|
||||
// Check that an attempt to unregister a non-existing timer would
|
||||
// result in exeception.
|
||||
EXPECT_THROW(timer_mgr_->unregisterTimer("timer2"), BadValue);
|
||||
ASSERT_THROW(timer_mgr_->unregisterTimer("timer2"), BadValue);
|
||||
// Number of timers shouldn't have changed.
|
||||
ASSERT_EQ(1, timer_mgr_->timersCount());
|
||||
|
||||
// Now unregister the correct one.
|
||||
ASSERT_NO_THROW(timer_mgr_->unregisterTimer("timer1"));
|
||||
ASSERT_EQ(0, timer_mgr_->timersCount());
|
||||
|
||||
// Start the thread again and wait another 100ms.
|
||||
ASSERT_NO_THROW(timer_mgr_->startThread());
|
||||
@@ -239,11 +243,6 @@ TEST_F(TimerMgrTest, unregisterTimer) {
|
||||
}
|
||||
|
||||
// This test verifies taht it is possible to unregister all timers.
|
||||
/// @todo This test is disabled because it may occassionally hang
|
||||
/// due to bug in the ASIO implementation shipped with Kea.
|
||||
/// Replacing it with the ASIO implementation from BOOST does
|
||||
/// solve the problem. See ticket #4009. Until this ticket is
|
||||
/// implemented, the test should remain disabled.
|
||||
TEST_F(TimerMgrTest, unregisterTimers) {
|
||||
// Register 10 timers.
|
||||
for (int i = 1; i <= 20; ++i) {
|
||||
@@ -252,6 +251,8 @@ TEST_F(TimerMgrTest, unregisterTimers) {
|
||||
ASSERT_NO_FATAL_FAILURE(registerTimer(s.str(), 1))
|
||||
<< "fatal failure occurred while registering "
|
||||
<< s.str();
|
||||
ASSERT_EQ(i, timer_mgr_->timersCount())
|
||||
<< "invalid number of registered timers returned";
|
||||
ASSERT_NO_THROW(timer_mgr_->setup(s.str()))
|
||||
<< "exception thrown while calling setup() for the "
|
||||
<< s.str();
|
||||
@@ -278,6 +279,9 @@ TEST_F(TimerMgrTest, unregisterTimers) {
|
||||
// Let's unregister all timers.
|
||||
ASSERT_NO_THROW(timer_mgr_->unregisterTimers());
|
||||
|
||||
// Make sure there are no timers registered.
|
||||
ASSERT_EQ(0, timer_mgr_->timersCount());
|
||||
|
||||
// Start worker thread again and wait for 500ms.
|
||||
ASSERT_NO_THROW(timer_mgr_->startThread());
|
||||
doWait(500);
|
||||
|
@@ -168,6 +168,9 @@ public:
|
||||
/// process.
|
||||
void unregisterTimers();
|
||||
|
||||
/// @brief Returns the number of registered timers.
|
||||
size_t timersCount() const;
|
||||
|
||||
/// @brief Schedules the execution of the interval timer.
|
||||
///
|
||||
/// This method schedules the timer, i.e. the callback will be executed
|
||||
@@ -406,6 +409,11 @@ TimerMgrImpl::unregisterTimers() {
|
||||
}
|
||||
}
|
||||
|
||||
size_t
|
||||
TimerMgrImpl::timersCount() const {
|
||||
return (registered_timers_.size());
|
||||
}
|
||||
|
||||
void
|
||||
TimerMgrImpl::setup(const std::string& timer_name) {
|
||||
|
||||
@@ -652,6 +660,11 @@ TimerMgr::unregisterTimers() {
|
||||
impl_->unregisterTimers();
|
||||
}
|
||||
|
||||
size_t
|
||||
TimerMgr::timersCount() const {
|
||||
return (impl_->timersCount());
|
||||
}
|
||||
|
||||
void
|
||||
TimerMgr::setup(const std::string& timer_name) {
|
||||
|
||||
|
@@ -176,6 +176,9 @@ public:
|
||||
/// @brief Unregisters all timers.
|
||||
void unregisterTimers();
|
||||
|
||||
/// @brief Returns the number of registered timers.
|
||||
size_t timersCount() const;
|
||||
|
||||
/// @brief Schedules the execution of the interval timer.
|
||||
///
|
||||
/// This method schedules the timer, i.e. the callback will be executed
|
||||
|
Reference in New Issue
Block a user