Repository: mesos
Updated Branches:
  refs/heads/master 3d5196f35 -> 25a447add


Added a test for MasterInfo.

We want to test that when the master gets initialized, the
MasterInfo that it creates (and gets ultimately serialized to
ZooKeeper) has the correct information in its Address field.

Currently, the test hangs when run in after another
MasterZooKeeperTest, due to some issues around the recovery.

Jira: MESOS-2736

Review: https://reviews.apache.org/r/36807


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/25a447ad
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/25a447ad
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/25a447ad

Branch: refs/heads/master
Commit: 25a447add664c9cbdd4ee979cbf8a879c932cd20
Parents: 3d5196f
Author: Marco Massenzio <[email protected]>
Authored: Wed Jul 29 14:09:27 2015 -0700
Committer: Vinod Kone <[email protected]>
Committed: Wed Jul 29 14:09:28 2015 -0700

----------------------------------------------------------------------
 src/tests/master_tests.cpp | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/25a447ad/src/tests/master_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_tests.cpp b/src/tests/master_tests.cpp
index 05c148e..6b5b045 100644
--- a/src/tests/master_tests.cpp
+++ b/src/tests/master_tests.cpp
@@ -2128,6 +2128,47 @@ TEST_F(MasterZooKeeperTest, LostZooKeeperCluster)
   Shutdown();
 }
 
+
+// This test verifies that the Address inside MasterInfo
+// is populated correctly, during master initialization.
+TEST_F(MasterZooKeeperTest, MasterInfoAddress)
+{
+  Try<PID<Master>> master_ = StartMaster();
+  ASSERT_SOME(master_);
+
+  auto master = master_.get();
+
+  ASSERT_SOME(StartSlave());
+
+  MockScheduler sched;
+  MesosSchedulerDriver driver(
+      &sched, DEFAULT_FRAMEWORK_INFO, master, DEFAULT_CREDENTIAL);
+
+  Future<MasterInfo> masterInfo;
+  EXPECT_CALL(sched, registered(&driver, _, _))
+    .WillOnce(FutureArg<2>(&masterInfo));
+
+  EXPECT_CALL(sched, resourceOffers(&driver, _))
+    .WillRepeatedly(Return()); // Ignore offers.
+
+  driver.start();
+  AWAIT_READY(masterInfo);
+
+  const Address& address = masterInfo.get().address();
+  EXPECT_EQ(stringify(master.address.ip), address.ip());
+  EXPECT_EQ(master.address.port, address.port());
+
+  // Protect from failures on those hosts where
+  // hostname cannot be resolved.
+  if (master.address.hostname().isSome()) {
+    ASSERT_EQ(master.address.hostname().get(), address.hostname());
+  }
+
+  driver.stop();
+  driver.join();
+  Shutdown();
+}
+
 #endif // MESOS_HAS_JAVA
 
 

Reply via email to