Repository: mesos Updated Branches: refs/heads/master 2c17e5642 -> 16159a1aa
Fixed flaky Executor HTTP tests. Review: https://reviews.apache.org/r/38645 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/16159a1a Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/16159a1a Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/16159a1a Branch: refs/heads/master Commit: 16159a1aa0a04821168572df19a50ef98b458fe5 Parents: 2c17e56 Author: Anand Mazumdar <[email protected]> Authored: Thu Sep 24 16:48:58 2015 -0700 Committer: Vinod Kone <[email protected]> Committed: Thu Sep 24 16:48:58 2015 -0700 ---------------------------------------------------------------------- src/tests/executor_http_api_tests.cpp | 66 +++++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/16159a1a/src/tests/executor_http_api_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/executor_http_api_tests.cpp b/src/tests/executor_http_api_tests.cpp index 9dbc519..c2c05f4 100644 --- a/src/tests/executor_http_api_tests.cpp +++ b/src/tests/executor_http_api_tests.cpp @@ -22,6 +22,7 @@ #include <mesos/http.hpp> +#include <process/clock.hpp> #include <process/future.hpp> #include <process/gtest.hpp> #include <process/http.hpp> @@ -39,6 +40,7 @@ using mesos::internal::slave::Slave; using mesos::v1::executor::Call; +using process::Clock; using process::Future; using process::PID; @@ -85,13 +87,17 @@ TEST_F(ExecutorHttpApiTest, NoContentType) Try<PID<Master>> master = StartMaster(); ASSERT_SOME(master); + Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); + Try<PID<Slave>> slave = StartSlave(); ASSERT_SOME(slave); - // Wait for recovery to be complete. - Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); AWAIT_READY(__recover); + // Wait for recovery to be complete. + Clock::pause(); + Clock::settle(); + Call call; call.set_type(Call::MESSAGE); @@ -119,12 +125,17 @@ TEST_F(ExecutorHttpApiTest, ValidJsonButInvalidProtobuf) Try<PID<Master>> master = StartMaster(); ASSERT_SOME(master); + Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); + Try<PID<Slave>> slave = StartSlave(); ASSERT_SOME(slave); - Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); AWAIT_READY(__recover); + // Wait for recovery to be complete. + Clock::pause(); + Clock::settle(); + JSON::Object object; object.values["string"] = "valid_json"; @@ -151,12 +162,17 @@ TEST_P(ExecutorHttpApiTest, MalformedContent) Try<PID<Master>> master = StartMaster(); ASSERT_SOME(master); + Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); + Try<PID<Slave>> slave = StartSlave(); ASSERT_SOME(slave); - Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); AWAIT_READY(__recover); + // Wait for recovery to be complete. + Clock::pause(); + Clock::settle(); + const string body = "MALFORMED_CONTENT"; const ContentType contentType = GetParam(); @@ -183,12 +199,17 @@ TEST_P(ExecutorHttpApiTest, UnsupportedContentMediaType) Try<PID<Master>> master = StartMaster(); ASSERT_SOME(master); + Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); + Try<PID<Slave>> slave = StartSlave(); ASSERT_SOME(slave); - Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); AWAIT_READY(__recover); + // Wait for recovery to be complete. + Clock::pause(); + Clock::settle(); + ContentType contentType = GetParam(); hashmap<string, string> headers; headers["Accept"] = stringify(contentType); @@ -221,12 +242,17 @@ TEST_P(ExecutorHttpApiTest, MessageFromUnknownFramework) Try<PID<Master>> master = StartMaster(); ASSERT_SOME(master); + Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); + Try<PID<Slave>> slave = StartSlave(); ASSERT_SOME(slave); - Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); AWAIT_READY(__recover); + // Wait for recovery to be complete. + Clock::pause(); + Clock::settle(); + ContentType contentType = GetParam(); hashmap<string, string> headers; headers["Accept"] = stringify(contentType); @@ -258,12 +284,17 @@ TEST_F(ExecutorHttpApiTest, GetRequest) Try<PID<Master>> master = StartMaster(); ASSERT_SOME(master); + Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); + Try<PID<Slave>> slave = StartSlave(); ASSERT_SOME(slave); - Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); AWAIT_READY(__recover); + // Wait for recovery to be complete. + Clock::pause(); + Clock::settle(); + Future<Response> response = process::http::get( slave.get(), "api/v1/executor"); @@ -283,12 +314,17 @@ TEST_P(ExecutorHttpApiTest, DefaultAccept) Try<PID<Master>> master = StartMaster(); ASSERT_SOME(master); + Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); + Try<PID<Slave>> slave = StartSlave(); ASSERT_SOME(slave); - Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); AWAIT_READY(__recover); + // Wait for recovery to be complete. + Clock::pause(); + Clock::settle(); + hashmap<string, string> headers; headers["Accept"] = "*/*"; @@ -324,12 +360,17 @@ TEST_P(ExecutorHttpApiTest, NoAcceptHeader) Try<PID<Master>> master = StartMaster(); ASSERT_SOME(master); + Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); + Try<PID<Slave>> slave = StartSlave(); ASSERT_SOME(slave); - Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); AWAIT_READY(__recover); + // Wait for recovery to be complete. + Clock::pause(); + Clock::settle(); + // Retrieve the parameter passed as content type to this test. const ContentType contentType = GetParam(); @@ -365,12 +406,17 @@ TEST_P(ExecutorHttpApiTest, NotAcceptable) Try<PID<Master>> master = StartMaster(); ASSERT_SOME(master); + Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); + Try<PID<Slave>> slave = StartSlave(); ASSERT_SOME(slave); - Future<Nothing> __recover = FUTURE_DISPATCH(_, &Slave::__recover); AWAIT_READY(__recover); + // Wait for recovery to be complete. + Clock::pause(); + Clock::settle(); + // Retrieve the parameter passed as content type to this test. const ContentType contentType = GetParam();
