You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by jo...@apache.org on 2016/02/16 15:32:43 UTC

[1/3] mesos git commit: Cleaned up code style and fixed typos in comments.

Repository: mesos
Updated Branches:
  refs/heads/master 49107f276 -> cf801e78f


Cleaned up code style and fixed typos in comments.

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


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

Branch: refs/heads/master
Commit: df2987bb3930ae356e5867cb52e80df3bfbef1b6
Parents: 49107f2
Author: Neil Conway <ne...@gmail.com>
Authored: Tue Feb 16 09:00:09 2016 -0500
Committer: Joris Van Remoortere <jo...@gmail.com>
Committed: Tue Feb 16 09:32:14 2016 -0500

----------------------------------------------------------------------
 src/tests/group_tests.cpp     | 39 +++++++++++++++++++-------------------
 src/tests/zookeeper_tests.cpp | 22 ++++++++++-----------
 src/zookeeper/group.cpp       | 20 +++++++++----------
 src/zookeeper/group.hpp       | 22 ++++++++++-----------
 src/zookeeper/zookeeper.hpp   | 12 ++++++------
 5 files changed, 57 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/df2987bb/src/tests/group_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/group_tests.cpp b/src/tests/group_tests.cpp
index 6344fad..af530f3 100644
--- a/src/tests/group_tests.cpp
+++ b/src/tests/group_tests.cpp
@@ -37,6 +37,7 @@ using zookeeper::GroupProcess;
 using process::Clock;
 using process::Future;
 
+using std::set;
 using std::string;
 
 using testing::_;
@@ -56,13 +57,13 @@ TEST_F(GroupTest, Group)
 
   AWAIT_READY(membership);
 
-  Future<std::set<Group::Membership> > memberships = group.watch();
+  Future<set<Group::Membership>> memberships = group.watch();
 
   AWAIT_READY(memberships);
   EXPECT_EQ(1u, memberships.get().size());
   EXPECT_EQ(1u, memberships.get().count(membership.get()));
 
-  Future<Option<string> > data = group.data(membership.get());
+  Future<Option<string>> data = group.data(membership.get());
 
   AWAIT_READY(data);
   EXPECT_SOME_EQ("hello world", data.get());
@@ -95,7 +96,7 @@ TEST_F(GroupTest, GroupJoinWithDisconnect)
 
   AWAIT_READY(membership);
 
-  Future<std::set<Group::Membership> > memberships = group.watch();
+  Future<set<Group::Membership>> memberships = group.watch();
 
   AWAIT_READY(memberships);
   EXPECT_EQ(1u, memberships.get().size());
@@ -111,7 +112,7 @@ TEST_F(GroupTest, GroupDataWithDisconnect)
 
   AWAIT_READY(membership);
 
-  Future<std::set<Group::Membership> > memberships = group.watch();
+  Future<set<Group::Membership>> memberships = group.watch();
 
   AWAIT_READY(memberships);
   EXPECT_EQ(1u, memberships.get().size());
@@ -119,7 +120,7 @@ TEST_F(GroupTest, GroupDataWithDisconnect)
 
   server->shutdownNetwork();
 
-  Future<Option<string> > data = group.data(membership.get());
+  Future<Option<string>> data = group.data(membership.get());
 
   EXPECT_TRUE(data.isPending());
 
@@ -138,7 +139,7 @@ TEST_F(GroupTest, GroupDataWithRemovedMembership)
 
   AWAIT_READY(membership);
 
-  Future<std::set<Group::Membership> > memberships = group.watch();
+  Future<set<Group::Membership>> memberships = group.watch();
 
   AWAIT_READY(memberships);
   EXPECT_EQ(1u, memberships.get().size());
@@ -146,7 +147,7 @@ TEST_F(GroupTest, GroupDataWithRemovedMembership)
 
   AWAIT_EXPECT_TRUE(group.cancel(membership.get()));
 
-  Future<Option<string> > data = group.data(membership.get());
+  Future<Option<string>> data = group.data(membership.get());
 
   AWAIT_READY(data);
   EXPECT_NONE(data.get());
@@ -161,13 +162,13 @@ TEST_F(GroupTest, GroupCancelWithDisconnect)
 
   AWAIT_READY(membership);
 
-  Future<std::set<Group::Membership> > memberships = group.watch();
+  Future<set<Group::Membership>> memberships = group.watch();
 
   AWAIT_READY(memberships);
   EXPECT_EQ(1u, memberships.get().size());
   EXPECT_EQ(1u, memberships.get().count(membership.get()));
 
-  Future<Option<string> > data = group.data(membership.get());
+  Future<Option<string>> data = group.data(membership.get());
 
   AWAIT_READY(data);
   EXPECT_SOME_EQ("hello world", data.get());
@@ -200,13 +201,13 @@ TEST_F(GroupTest, GroupWatchWithSessionExpiration)
 
   AWAIT_READY(membership);
 
-  Future<std::set<Group::Membership> > memberships = group.watch();
+  Future<set<Group::Membership>> memberships = group.watch();
 
   AWAIT_READY(memberships);
   EXPECT_EQ(1u, memberships.get().size());
   EXPECT_EQ(1u, memberships.get().count(membership.get()));
 
-  Future<Option<int64_t> > session = group.session();
+  Future<Option<int64_t>> session = group.session();
 
   AWAIT_READY(session);
   ASSERT_SOME(session.get());
@@ -236,7 +237,7 @@ TEST_F(GroupTest, MultipleGroups)
 
   AWAIT_READY(membership2);
 
-  Future<std::set<Group::Membership> > memberships1 = group1.watch();
+  Future<set<Group::Membership>> memberships1 = group1.watch();
 
   AWAIT_READY(memberships1);
 
@@ -252,7 +253,7 @@ TEST_F(GroupTest, MultipleGroups)
   EXPECT_EQ(1u, memberships1.get().count(membership1.get()));
   EXPECT_EQ(1u, memberships1.get().count(membership2.get()));
 
-  Future<std::set<Group::Membership> > memberships2 = group2.watch();
+  Future<set<Group::Membership>> memberships2 = group2.watch();
 
   AWAIT_READY(memberships2);
 
@@ -276,7 +277,7 @@ TEST_F(GroupTest, MultipleGroups)
     }
   }
 
-  Future<Option<int64_t> > session1 = group1.session();
+  Future<Option<int64_t>> session1 = group1.session();
 
   AWAIT_READY(session1);
   ASSERT_SOME(session1.get());
@@ -355,7 +356,7 @@ TEST_F(GroupTest, RetryableErrors)
 
   // Wait for Group to connect to get hold of the session.
   AWAIT_READY(connected);
-  Future<Option<int64_t> > session = group.session();
+  Future<Option<int64_t>> session = group.session();
   AWAIT_READY(session);
   ASSERT_SOME(session.get());
 
@@ -410,13 +411,13 @@ TEST_F(GroupTest, LabelledGroup)
 
   AWAIT_READY(membership);
 
-  Future<std::set<Group::Membership> > memberships = group.watch();
+  Future<set<Group::Membership>> memberships = group.watch();
 
   AWAIT_READY(memberships);
   EXPECT_EQ(1u, memberships.get().size());
   EXPECT_EQ(1u, memberships.get().count(membership.get()));
 
-  Future<Option<string> > data = group.data(membership.get());
+  Future<Option<string>> data = group.data(membership.get());
 
   AWAIT_READY(data);
   EXPECT_SOME_EQ("hello world", data.get());
@@ -436,7 +437,7 @@ TEST_F(GroupTest, LabelledGroup)
 
 
 // This test checks that the `expired` event is invoked even if we
-// have not ever established a connection to ZooKeeper (MESOS-4546).
+// have never established a connection to ZooKeeper (MESOS-4546).
 TEST_F(GroupTest, ConnectTimer)
 {
   const Duration sessionTimeout = Seconds(10);
@@ -451,7 +452,7 @@ TEST_F(GroupTest, ConnectTimer)
   Group group(server->connectString(), sessionTimeout, "/test/");
 
   // Advance the clock to ensure that we forcibly expire the current
-  // ZooKeeper connection attempt and try to reconnect.
+  // ZooKeeper connection attempt.
   Clock::advance(sessionTimeout);
 
   AWAIT_READY(expired);

http://git-wip-us.apache.org/repos/asf/mesos/blob/df2987bb/src/tests/zookeeper_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/zookeeper_tests.cpp b/src/tests/zookeeper_tests.cpp
index 0665d91..6bde10b 100644
--- a/src/tests/zookeeper_tests.cpp
+++ b/src/tests/zookeeper_tests.cpp
@@ -81,14 +81,14 @@ TEST_F(ZooKeeperTest, SessionTimeoutNegotiation)
   watcher.awaitSessionEvent(ZOO_CONNECTED_STATE);
 
   // The requested timeout is less than server's min value so the
-  // negotiated result is the sever's min value.
+  // negotiated result is the server's min value.
   EXPECT_EQ(Seconds(8), zk1.getSessionTimeout());
 
   ZooKeeper zk2(server->connectString(), Seconds(22), &watcher);
   watcher.awaitSessionEvent(ZOO_CONNECTED_STATE);
 
   // The requested timeout is greater than server's max value so the
-  // negotiated result is the sever's max value.
+  // negotiated result is the server's max value.
   EXPECT_EQ(Seconds(20), zk2.getSessionTimeout());
 }
 
@@ -146,18 +146,16 @@ TEST_F(ZooKeeperTest, LeaderDetector)
   Group group(server->connectString(), NO_TIMEOUT, "/test/");
 
   // Initialize two members.
-  Future<Group::Membership> membership1 =
-    group.join("member 1");
+  Future<Group::Membership> membership1 = group.join("member 1");
   AWAIT_READY(membership1);
-  Future<Group::Membership> membership2 =
-    group.join("member 2");
+
+  Future<Group::Membership> membership2 = group.join("member 2");
   AWAIT_READY(membership2);
 
   LeaderDetector detector(&group);
 
   // Detect the leader.
-  Future<Option<Group::Membership> > leader =
-    detector.detect(None());
+  Future<Option<Group::Membership>> leader = detector.detect(None());
   AWAIT_READY(leader);
   ASSERT_SOME_EQ(membership1.get(), leader.get());
 
@@ -204,7 +202,7 @@ TEST_F(ZooKeeperTest, LeaderDetectorTimeoutHandling)
 
   AWAIT_READY(group.join("member 1"));
 
-  Future<Option<Group::Membership> > leader = detector.detect();
+  Future<Option<Group::Membership>> leader = detector.detect();
 
   AWAIT_READY(leader);
   EXPECT_SOME(leader.get());
@@ -241,7 +239,7 @@ TEST_F(ZooKeeperTest, LeaderDetectorCancellationHandling)
 
   AWAIT_READY(group.join("member 1"));
 
-  Future<Option<Group::Membership> > leader = detector.detect();
+  Future<Option<Group::Membership>> leader = detector.detect();
 
   AWAIT_READY(leader);
   EXPECT_SOME(leader.get());
@@ -290,7 +288,7 @@ TEST_F(ZooKeeperTest, LeaderContender)
   contender = Owned<LeaderContender>(
       new LeaderContender(&group, "candidate 1", master::MASTER_INFO_LABEL));
 
-  Future<Future<Nothing> > candidated = contender->contend();
+  Future<Future<Nothing>> candidated = contender->contend();
   AWAIT_READY(candidated);
 
   Future<Nothing> lostCandidacy = candidated.get();
@@ -298,7 +296,7 @@ TEST_F(ZooKeeperTest, LeaderContender)
 
   // Expire the Group session while we are watching for updates from
   // the contender and the candidacy will be lost.
-  Future<Option<int64_t> > session = group.session();
+  Future<Option<int64_t>> session = group.session();
   AWAIT_READY(session);
   ASSERT_SOME(session.get());
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/df2987bb/src/zookeeper/group.cpp
----------------------------------------------------------------------
diff --git a/src/zookeeper/group.cpp b/src/zookeeper/group.cpp
index ded1458..7aa95a7 100644
--- a/src/zookeeper/group.cpp
+++ b/src/zookeeper/group.cpp
@@ -246,7 +246,7 @@ Future<bool> GroupProcess::cancel(const Group::Membership& membership)
 }
 
 
-Future<Option<string> > GroupProcess::data(const Group::Membership& membership)
+Future<Option<string>> GroupProcess::data(const Group::Membership& membership)
 {
   if (error.isSome()) {
     return Failure(error.get());
@@ -260,7 +260,7 @@ Future<Option<string> > GroupProcess::data(const Group::Membership& membership)
   // client can assume a happens-before ordering of operations (i.e.,
   // the first request will happen before the second, etc).
 
-  Result<Option<string> > result = doData(membership);
+  Result<Option<string>> result = doData(membership);
 
   if (result.isNone()) { // Try again later.
     Data* data = new Data(membership);
@@ -274,7 +274,7 @@ Future<Option<string> > GroupProcess::data(const Group::Membership& membership)
 }
 
 
-Future<set<Group::Membership> > GroupProcess::watch(
+Future<set<Group::Membership>> GroupProcess::watch(
     const set<Group::Membership>& expected)
 {
   if (error.isSome()) {
@@ -328,7 +328,7 @@ Future<set<Group::Membership> > GroupProcess::watch(
 }
 
 
-Future<Option<int64_t> > GroupProcess::session()
+Future<Option<int64_t>> GroupProcess::session()
 {
   if (error.isSome()) {
     return Failure(error.get());
@@ -690,7 +690,7 @@ Result<bool> GroupProcess::doCancel(const Group::Membership& membership)
 }
 
 
-Result<Option<string> > GroupProcess::doData(
+Result<Option<string>> GroupProcess::doData(
     const Group::Membership& membership)
 {
   CHECK_EQ(state, READY);
@@ -738,7 +738,7 @@ Try<bool> GroupProcess::cache()
   }
 
   // Convert results to sequence numbers and (optionally) labels.
-  hashmap<int32_t, Option<string> > sequences;
+  hashmap<int32_t, Option<string>> sequences;
 
   foreach (const string& result, results) {
     vector<string> tokens = strings::tokenize(result, "_");
@@ -888,7 +888,7 @@ Try<bool> GroupProcess::sync()
   while (!pending.datas.empty()) {
     Data* data = pending.datas.front();
     // TODO(benh): Ignore if future has been discarded?
-    Result<Option<string> > result = doData(data->membership);
+    Result<Option<string>> result = doData(data->membership);
     if (result.isNone()) {
       return false; // Try again later.
     } else if (result.isError()) {
@@ -1036,20 +1036,20 @@ Future<bool> Group::cancel(const Group::Membership& membership)
 }
 
 
-Future<Option<string> > Group::data(const Group::Membership& membership)
+Future<Option<string>> Group::data(const Group::Membership& membership)
 {
   return dispatch(process, &GroupProcess::data, membership);
 }
 
 
-Future<set<Group::Membership> > Group::watch(
+Future<set<Group::Membership>> Group::watch(
     const set<Group::Membership>& expected)
 {
   return dispatch(process, &GroupProcess::watch, expected);
 }
 
 
-Future<Option<int64_t> > Group::session()
+Future<Option<int64_t>> Group::session()
 {
   return dispatch(process, &GroupProcess::session);
 }

http://git-wip-us.apache.org/repos/asf/mesos/blob/df2987bb/src/zookeeper/group.hpp
----------------------------------------------------------------------
diff --git a/src/zookeeper/group.hpp b/src/zookeeper/group.hpp
index db8a120..2003b60 100644
--- a/src/zookeeper/group.hpp
+++ b/src/zookeeper/group.hpp
@@ -100,7 +100,7 @@ public:
     // has been cancelled. In which case, the value of the future is
     // true if you own this membership and cancelled it by invoking
     // Group::cancel. Otherwise, the value of the future is false (and
-    // could signify cancellation due to a sesssion expiration or
+    // could signify cancellation due to a session expiration or
     // operator error).
     process::Future<bool> cancelled() const
     {
@@ -150,16 +150,16 @@ public:
   // group membership.
   // A None is returned if the specified membership doesn't exist,
   // e.g., it can be removed before this call can read it content.
-  process::Future<Option<std::string> > data(const Membership& membership);
+  process::Future<Option<std::string>> data(const Membership& membership);
 
   // Returns a future that gets set when the group memberships differ
   // from the "expected" memberships specified.
-  process::Future<std::set<Membership> > watch(
+  process::Future<std::set<Membership>> watch(
       const std::set<Membership>& expected = std::set<Membership>());
 
   // Returns the current ZooKeeper session associated with this group,
   // or none if no session currently exists.
-  process::Future<Option<int64_t> > session();
+  process::Future<Option<int64_t>> session();
 
   // Made public for testing purposes.
   GroupProcess* process;
@@ -192,11 +192,11 @@ public:
       const std::string& data,
       const Option<std::string>& label);
   process::Future<bool> cancel(const Group::Membership& membership);
-  process::Future<Option<std::string> > data(
+  process::Future<Option<std::string>> data(
       const Group::Membership& membership);
-  process::Future<std::set<Group::Membership> > watch(
+  process::Future<std::set<Group::Membership>> watch(
       const std::set<Group::Membership>& expected);
-  process::Future<Option<int64_t> > session();
+  process::Future<Option<int64_t>> session();
 
   // ZooKeeper events.
   // Note that events from previous sessions are dropped.
@@ -214,7 +214,7 @@ private:
       const std::string& data,
       const Option<std::string>& label);
   Result<bool> doCancel(const Group::Membership& membership);
-  Result<Option<std::string> > doData(const Group::Membership& membership);
+  Result<Option<std::string>> doData(const Group::Membership& membership);
 
   // Returns true if authentication is successful, false if the
   // failure is retryable and Error otherwise.
@@ -310,7 +310,7 @@ private:
     explicit Data(const Group::Membership& _membership)
       : membership(_membership) {}
     Group::Membership membership;
-    process::Promise<Option<std::string> > promise;
+    process::Promise<Option<std::string>> promise;
   };
 
   struct Watch
@@ -318,7 +318,7 @@ private:
     explicit Watch(const std::set<Group::Membership>& _expected)
       : expected(_expected) {}
     std::set<Group::Membership> expected;
-    process::Promise<std::set<Group::Membership> > promise;
+    process::Promise<std::set<Group::Membership>> promise;
   };
 
   struct {
@@ -339,7 +339,7 @@ private:
 
   // Cache of owned + unowned, where 'None' represents an invalid
   // cache and 'Some' represents a valid cache.
-  Option<std::set<Group::Membership> > memberships;
+  Option<std::set<Group::Membership>> memberships;
 
   // A timer that controls when we should give up on waiting for the
   // current connection attempt to succeed and try to reconnect.

http://git-wip-us.apache.org/repos/asf/mesos/blob/df2987bb/src/zookeeper/zookeeper.hpp
----------------------------------------------------------------------
diff --git a/src/zookeeper/zookeeper.hpp b/src/zookeeper/zookeeper.hpp
index a29a004..9191df5 100644
--- a/src/zookeeper/zookeeper.hpp
+++ b/src/zookeeper/zookeeper.hpp
@@ -41,7 +41,7 @@ class ZooKeeperProcess;
 /**
  * This interface specifies the public interface an event handler
  * class must implement. A ZooKeeper client will get various events
- * from the ZooKeepr server it connects to. An application using such
+ * from the ZooKeeper server it connects to. An application using such
  * a client handles these events by registering a callback object with
  * the client. The callback object is expected to be an instance of a
  * class that implements Watcher interface.
@@ -181,7 +181,7 @@ public:
    *   znodes as required; note that 'flags' and 'data' will only be
    *   applied to the creation of 'basename(path)'.
    * \return  one of the following codes are returned:
-   * ZOK operation completed succesfully
+   * ZOK operation completed successfully
    * ZNONODE the parent node does not exist.
    * ZNODEEXISTS the node already exists
    * ZNOAUTH the client does not have permission.
@@ -208,7 +208,7 @@ public:
    *    expected version. If -1 is used the version check will not take
    *    place.
    * \return one of the following values is returned.
-   * ZOK operation completed succesfully
+   * ZOK operation completed successfully
    * ZNONODE the node does not exist.
    * ZNOAUTH the client does not have permission.
    * ZBADVERSION expected version does not match actual version.
@@ -230,7 +230,7 @@ public:
    *    nodes to appear.
    * \param stat the return stat value of the node.
    * \return return code of the function call.
-   * ZOK operation completed succesfully
+   * ZOK operation completed successfully
    * ZNONODE the node does not exist.
    * ZNOAUTH the client does not have permission.
    * ZBADARGUMENTS - invalid input parameters
@@ -250,7 +250,7 @@ public:
    * \param stat if not NULL, will hold the value of stat for the path
    *    on return.
    * \return return value of the function call.
-   * ZOK operation completed succesfully
+   * ZOK operation completed successfully
    * ZNONODE the node does not exist.
    * ZNOAUTH the client does not have permission.
    * ZBADARGUMENTS - invalid input parameters
@@ -294,7 +294,7 @@ public:
    * the actual version of the node does not match the expected version. If -1 is
    * used the version check will not take place.
    * \return the return code for the function call.
-   * ZOK operation completed succesfully
+   * ZOK operation completed successfully
    * ZNONODE the node does not exist.
    * ZNOAUTH the client does not have permission.
    * ZBADVERSION expected version does not match actual version.


[2/3] mesos git commit: Fixed a leak of a `ZooKeeperMasterContender` in a test case.

Posted by jo...@apache.org.
Fixed a leak of a `ZooKeeperMasterContender` in a test case.

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


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

Branch: refs/heads/master
Commit: 01fb5e1c4ae7ca56e737f16568cd380efd20322c
Parents: df2987b
Author: Neil Conway <ne...@gmail.com>
Authored: Tue Feb 16 09:03:20 2016 -0500
Committer: Joris Van Remoortere <jo...@gmail.com>
Committed: Tue Feb 16 09:32:19 2016 -0500

----------------------------------------------------------------------
 src/tests/master_contender_detector_tests.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/01fb5e1c/src/tests/master_contender_detector_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_contender_detector_tests.cpp b/src/tests/master_contender_detector_tests.cpp
index 6375586..255ab81 100644
--- a/src/tests/master_contender_detector_tests.cpp
+++ b/src/tests/master_contender_detector_tests.cpp
@@ -217,7 +217,7 @@ TEST_F(ZooKeeperMasterContenderDetectorTest, MasterContender)
   Owned<zookeeper::Group> group(
       new Group(url.get(), MASTER_CONTENDER_ZK_SESSION_TIMEOUT));
 
-  ZooKeeperMasterContender* contender = new ZooKeeperMasterContender(group);
+  ZooKeeperMasterContender contender(group);
 
   PID<Master> pid;
   pid.address.ip = net::IP(10000000);
@@ -225,8 +225,8 @@ TEST_F(ZooKeeperMasterContenderDetectorTest, MasterContender)
 
   MasterInfo master = internal::protobuf::createMasterInfo(pid);
 
-  contender->initialize(master);
-  Future<Future<Nothing> > contended = contender->contend();
+  contender.initialize(master);
+  Future<Future<Nothing> > contended = contender.contend();
   AWAIT_READY(contended);
 
   ZooKeeperMasterDetector detector(url.get());


[3/3] mesos git commit: Added EXPECT_NO_FUTURE_DISPATCHES to libprocess.

Posted by jo...@apache.org.
Added EXPECT_NO_FUTURE_DISPATCHES to libprocess.

This allows a unit test to assert that a given libprocess message
will not be dispatched.

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


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

Branch: refs/heads/master
Commit: cf801e78f2844855e19f025ebdf54dccbc4c28a9
Parents: 01fb5e1
Author: Neil Conway <ne...@gmail.com>
Authored: Tue Feb 16 09:10:42 2016 -0500
Committer: Joris Van Remoortere <jo...@gmail.com>
Committed: Tue Feb 16 09:32:26 2016 -0500

----------------------------------------------------------------------
 3rdparty/libprocess/include/process/gmock.hpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/cf801e78/3rdparty/libprocess/include/process/gmock.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/gmock.hpp b/3rdparty/libprocess/include/process/gmock.hpp
index 22a0eac..15b982f 100644
--- a/3rdparty/libprocess/include/process/gmock.hpp
+++ b/3rdparty/libprocess/include/process/gmock.hpp
@@ -62,6 +62,8 @@
 #define DROP_DISPATCHES(pid, method)            \
   process::DropDispatches(pid, method)
 
+#define EXPECT_NO_FUTURE_DISPATCHES(pid, method)        \
+  process::ExpectNoFutureDispatches(pid, method)
 
 ACTION_TEMPLATE(PromiseArg,
                 HAS_1_TEMPLATE_PARAMS(int, k),
@@ -627,6 +629,18 @@ void DropDispatches(PID pid, Method method)
   }
 }
 
+
+template <typename PID, typename Method>
+void ExpectNoFutureDispatches(PID pid, Method method)
+{
+  TestsFilter* filter = FilterTestEventListener::instance()->install();
+  synchronized (filter->mutex) {
+    EXPECT_CALL(filter->mock, filter(testing::A<const DispatchEvent&>()))
+      .With(DispatchMatcher(pid, method))
+      .Times(0);
+  }
+}
+
 } // namespace process {
 
 #endif // __PROCESS_GMOCK_HPP__