diff options
author | Marcin Siodelski <marcin@isc.org> | 2015-10-15 16:16:50 +0200 |
---|---|---|
committer | Marcin Siodelski <marcin@isc.org> | 2015-10-15 16:16:50 +0200 |
commit | c3a2487f53ecf69edc0a38f574fce17c4332162c (patch) | |
tree | e2a6eeeab1fe0bb7b53f5c971526da91b042ca30 /src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc | |
parent | [master] Unit-test fixes after trac3987 merge. (diff) | |
parent | [4075] Corrected seconds to milliseconds in the log message. (diff) | |
download | kea-c3a2487f53ecf69edc0a38f574fce17c4332162c.tar.xz kea-c3a2487f53ecf69edc0a38f574fce17c4332162c.zip |
[master] Merge branch 'trac4075'
Diffstat (limited to 'src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc')
-rw-r--r-- | src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc b/src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc index 57a1ef324d..e1146ab021 100644 --- a/src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc +++ b/src/lib/dhcpsrv/tests/alloc_engine_expiration_unittest.cc @@ -524,20 +524,26 @@ public: } /// @brief Implements "lease{4,6}_expire callout, which lasts at least - /// 2ms. + /// 40ms. /// /// This callout is useful to test scenarios where the reclamation of the /// lease needs to take a known amount of time. If the callout is installed - /// it will take at least 2ms for each lease. It is then possible to calculate + /// it will take at least 40ms for each lease. It is then possible to calculate /// the approximate time that the reclamation of all leases would take and /// test that the timeouts for the leases' reclamation work as expected. /// + /// The value of 40ms is relatively high, but it has been selected to + /// mitigate the problems with usleep on some virtual machines. On those + /// machines the wakeup from usleep may take significant amount of time, + /// i.e. usually around 10ms. Thus, the sleep time should be considerably + /// higher than this delay. + /// /// @param callout_handle Callout handle. /// @return Zero. static int leaseExpireWithDelayCallout(CalloutHandle& callout_handle) { leaseExpireCallout(callout_handle); - // Delay the return from the callout by 2ms. - usleep(2000); + // Delay the return from the callout by 40ms. + usleep(40000); return (0); } @@ -895,7 +901,7 @@ public: HooksManager::loadLibraries(libraries); // Install a callout: lease4_expire or lease6_expire. Each callout - // takes at least 2ms to run (it uses usleep). + // takes at least 40ms to run (it uses usleep). std::ostringstream callout_name; callout_name << callout_argument_name << "_expire"; EXPECT_NO_THROW(HooksManager::preCalloutsLibraryHandle().registerCallout( @@ -904,8 +910,8 @@ public: // Reclaim leases with timeout. ASSERT_NO_THROW(reclaimExpiredLeases(0, timeout, false)); - // We reclaimed at most (timeout / 2ms) leases. - const uint16_t theoretical_reclaimed = static_cast<uint16_t>(timeout / 2); + // We reclaimed at most (timeout / 40ms) leases. + const uint16_t theoretical_reclaimed = static_cast<uint16_t>(timeout / 40); // The actual number of leases reclaimed is likely to be lower than // the theoretical number. For low theoretical number the adjusted @@ -1333,8 +1339,8 @@ TEST_F(ExpirationAllocEngine6Test, reclaimExpiredLeasesHooksWithSkip) { TEST_F(ExpirationAllocEngine6Test, reclaimExpiredLeasesTimeout) { // This test needs at least 40 leases to make sense. BOOST_STATIC_ASSERT(TEST_LEASES_NUM >= 40); - // Run with timeout of 60ms. - testReclaimExpiredLeasesTimeout(60); + // Run with timeout of 1.2s. + testReclaimExpiredLeasesTimeout(1200); } // This test verifies that at least one lease is reclaimed if the timeout @@ -1734,8 +1740,8 @@ TEST_F(ExpirationAllocEngine4Test, reclaimExpiredLeasesHooksWithSkip) { TEST_F(ExpirationAllocEngine4Test, reclaimExpiredLeasesTimeout) { // This test needs at least 40 leases to make sense. BOOST_STATIC_ASSERT(TEST_LEASES_NUM >= 40); - // Run with timeout of 60ms. - testReclaimExpiredLeasesTimeout(60); + // Run with timeout of 1.2s. + testReclaimExpiredLeasesTimeout(1200); } // This test verifies that at least one lease is reclaimed if the timeout |