Moved RateLimiter tests into its own file. Review: https://reviews.apache.org/r/30191
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/311e15a5 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/311e15a5 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/311e15a5 Branch: refs/heads/master Commit: 311e15a5918a2665ba289f6c729479a17ceaa63f Parents: 97e029a Author: Vinod Kone <[email protected]> Authored: Thu Jan 22 13:09:16 2015 -0800 Committer: Vinod Kone <[email protected]> Committed: Wed Jan 28 14:25:39 2015 -0800 ---------------------------------------------------------------------- 3rdparty/libprocess/Makefile.am | 1 + 3rdparty/libprocess/src/tests/limiter_tests.cpp | 39 ++++++++++++++++++++ 3rdparty/libprocess/src/tests/process_tests.cpp | 28 -------------- 3 files changed, 40 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/311e15a5/3rdparty/libprocess/Makefile.am ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/Makefile.am b/3rdparty/libprocess/Makefile.am index 6ab9cb8..8f96f49 100644 --- a/3rdparty/libprocess/Makefile.am +++ b/3rdparty/libprocess/Makefile.am @@ -116,6 +116,7 @@ tests_SOURCES = \ src/tests/encoder_tests.cpp \ src/tests/http_tests.cpp \ src/tests/io_tests.cpp \ + src/tests/limiter_tests.cpp \ src/tests/main.cpp \ src/tests/mutex_tests.cpp \ src/tests/metrics_tests.cpp \ http://git-wip-us.apache.org/repos/asf/mesos/blob/311e15a5/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 new file mode 100644 index 0000000..f27111c --- /dev/null +++ b/3rdparty/libprocess/src/tests/limiter_tests.cpp @@ -0,0 +1,39 @@ +#include <gtest/gtest.h> + +#include <gmock/gmock.h> + +#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; + +TEST(Limiter, Acquire) +{ + ASSERT_TRUE(GTEST_IS_THREADSAFE); + + int permits = 2; + Duration duration = Milliseconds(5); + + RateLimiter limiter(permits, duration); + Milliseconds interval = duration / permits; + + Stopwatch stopwatch; + stopwatch.start(); + + Future<Nothing> acquire1 = limiter.acquire(); + Future<Nothing> acquire2 = limiter.acquire(); + Future<Nothing> acquire3 = limiter.acquire(); + + AWAIT_READY(acquire1); + + AWAIT_READY(acquire2); + ASSERT_LE(interval, stopwatch.elapsed()); + + AWAIT_READY(acquire3); + ASSERT_LE(interval * 2, stopwatch.elapsed()); +} http://git-wip-us.apache.org/repos/asf/mesos/blob/311e15a5/3rdparty/libprocess/src/tests/process_tests.cpp ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/src/tests/process_tests.cpp b/3rdparty/libprocess/src/tests/process_tests.cpp index 3bbfe0a..bf2768f 100644 --- a/3rdparty/libprocess/src/tests/process_tests.cpp +++ b/3rdparty/libprocess/src/tests/process_tests.cpp @@ -20,7 +20,6 @@ #include <process/gc.hpp> #include <process/gmock.hpp> #include <process/gtest.hpp> -#include <process/limiter.hpp> #include <process/process.hpp> #include <process/run.hpp> #include <process/socket.hpp> @@ -1599,33 +1598,6 @@ TEST(Process, async) } -TEST(Process, limiter) -{ - ASSERT_TRUE(GTEST_IS_THREADSAFE); - - int permits = 2; - Duration duration = Milliseconds(5); - - RateLimiter limiter(permits, duration); - Milliseconds interval = duration / permits; - - Stopwatch stopwatch; - stopwatch.start(); - - Future<Nothing> acquire1 = limiter.acquire(); - Future<Nothing> acquire2 = limiter.acquire(); - Future<Nothing> acquire3 = limiter.acquire(); - - AWAIT_READY(acquire1); - - AWAIT_READY(acquire2); - ASSERT_LE(interval, stopwatch.elapsed()); - - AWAIT_READY(acquire3); - ASSERT_LE(interval * 2, stopwatch.elapsed()); -} - - class FileServer : public Process<FileServer> { public:
