Repository: mesos Updated Branches: refs/heads/master 977b80ae5 -> f59189489
Used Clock instead of Stopwatch in limiter tests for reliablity. Review: https://reviews.apache.org/r/30297 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/f5918948 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/f5918948 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/f5918948 Branch: refs/heads/master Commit: f5918948927fc30a994de6ff763ceafdd09a4a16 Parents: 572d117 Author: Vinod Kone <[email protected]> Authored: Mon Jan 26 16:47:51 2015 -0800 Committer: Vinod Kone <[email protected]> Committed: Wed Jan 28 14:25:39 2015 -0800 ---------------------------------------------------------------------- 3rdparty/libprocess/src/tests/limiter_tests.cpp | 36 ++++++++------------ 1 file changed, 14 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/f5918948/3rdparty/libprocess/src/tests/limiter_tests.cpp ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/src/tests/limiter_tests.cpp b/3rdparty/libprocess/src/tests/limiter_tests.cpp index 00cc03d..03bf3f0 100644 --- a/3rdparty/libprocess/src/tests/limiter_tests.cpp +++ b/3rdparty/libprocess/src/tests/limiter_tests.cpp @@ -2,13 +2,13 @@ #include <gmock/gmock.h> +#include <process/clock.hpp> #include <process/future.hpp> #include <process/gtest.hpp> #include <process/limiter.hpp> #include <stout/duration.hpp> #include <stout/nothing.hpp> -#include <stout/stopwatch.hpp> using namespace process; @@ -22,8 +22,7 @@ TEST(Limiter, Acquire) RateLimiter limiter(permits, duration); Milliseconds interval = duration / permits; - Stopwatch stopwatch; - stopwatch.start(); + Clock::pause(); Future<Nothing> acquire1 = limiter.acquire(); Future<Nothing> acquire2 = limiter.acquire(); @@ -31,11 +30,12 @@ TEST(Limiter, Acquire) AWAIT_READY(acquire1); + Clock::advance(interval); AWAIT_READY(acquire2); - ASSERT_LE(interval, stopwatch.elapsed()); + EXPECT_TRUE(acquire3.isPending()); + Clock::advance(interval); AWAIT_READY(acquire3); - ASSERT_LE(interval * 2, stopwatch.elapsed()); } @@ -52,8 +52,7 @@ TEST(Limiter, DiscardMiddle) RateLimiter limiter(permits, duration); Milliseconds interval = duration / permits; - Stopwatch stopwatch; - stopwatch.start(); + Clock::pause(); Future<Nothing> acquire1 = limiter.acquire(); Future<Nothing> acquire2 = limiter.acquire(); @@ -62,23 +61,19 @@ TEST(Limiter, DiscardMiddle) AWAIT_READY(acquire1); - // Discard 'acquire2. + // Discard 'acquire2'. acquire2.discard(); - // Wait until 'acquire3' is ready. + // 'acquire3' should be satisfied within one 'interval'. + Clock::advance(interval); AWAIT_READY(acquire3); // 'acquire2' should be in 'DISCARDED' state. AWAIT_DISCARDED(acquire2); - // 'acquire3' should be satisfied within one 'interval'. - ASSERT_LE(interval, stopwatch.elapsed()); - ASSERT_GE(interval * 2, stopwatch.elapsed()); - - // 'acquire4' should be satisfied one 'interval' after - // 'acquire3' is satisfied. + // 'acquire4' should be satisfied after another 'interval'. + Clock::advance(interval); AWAIT_READY(acquire4); - ASSERT_LE(interval * 2, stopwatch.elapsed()); } @@ -95,8 +90,7 @@ TEST(Limiter, DiscardLast) RateLimiter limiter(permits, duration); Milliseconds interval = duration / permits; - Stopwatch stopwatch; - stopwatch.start(); + Clock::pause(); Future<Nothing> acquire1 = limiter.acquire(); Future<Nothing> acquire2 = limiter.acquire(); @@ -109,9 +103,7 @@ TEST(Limiter, DiscardLast) // Now acquire 'acquire3'. Future<Nothing> acquire3 = limiter.acquire(); - // 'acquire3' should be satisfied one 'interval' after - // 'acquire1' is satisfied. + // 'acquire3' should be satisfied within one 'interval'. + Clock::advance(interval); AWAIT_READY(acquire3); - ASSERT_LE(interval, stopwatch.elapsed()); - ASSERT_GE(interval * 2, stopwatch.elapsed()); }
