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/07/28 20:46:33 UTC

[1/3] mesos git commit: Added assertion for initialization success to the log replica tests.

Repository: mesos
Updated Branches:
  refs/heads/master 6620cc030 -> 26c806f09


Added assertion for initialization success  to the log replica tests.

The log replica tests use a tool to set an `EMPTY` replica to `VOTING`.
This tool has a few potential failure cases, and the tool's result
should be checked in tests that expect `VOTING` replicas.

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


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

Branch: refs/heads/master
Commit: 78138a73748bf3ba0eb32bcd455ed4a2550c16b0
Parents: 6620cc0
Author: Joseph Wu <jo...@mesosphere.io>
Authored: Thu Jul 28 12:14:48 2016 -0700
Committer: Joseph Wu <jo...@apache.org>
Committed: Thu Jul 28 12:14:48 2016 -0700

----------------------------------------------------------------------
 src/tests/log_tests.cpp | 110 +++++++++++++++++++++----------------------
 1 file changed, 55 insertions(+), 55 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/78138a73/src/tests/log_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/log_tests.cpp b/src/tests/log_tests.cpp
index 3cf70db..9567029 100644
--- a/src/tests/log_tests.cpp
+++ b/src/tests/log_tests.cpp
@@ -324,7 +324,7 @@ TYPED_TEST(LogStorageTest, TruncateWithManyHoles)
 class ReplicaTest : public TemporaryDirectoryTest
 {
 protected:
-  // For initializing the log.
+  // Used to change the status of a replicated log from `EMPTY` to `VOTING`.
   tool::Initialize initializer;
 };
 
@@ -333,7 +333,7 @@ TEST_F(ReplicaTest, Promise)
 {
   const string path = os::getcwd() + "/.log";
   initializer.flags.path = path;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Replica replica(path);
 
@@ -385,7 +385,7 @@ TEST_F(ReplicaTest, Append)
 {
   const string path = os::getcwd() + "/.log";
   initializer.flags.path = path;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Replica replica(path);
 
@@ -446,7 +446,7 @@ TEST_F(ReplicaTest, Restore)
 {
   const string path = os::getcwd() + "/.log";
   initializer.flags.path = path;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   // By design only a single process can access leveldb at a time. In
   // this test, two instances of log replica need to open a connection
@@ -577,7 +577,7 @@ TEST_F(ReplicaTest, NonVoting)
 class CoordinatorTest : public TemporaryDirectoryTest
 {
 protected:
-  // For initializing the log.
+  // Used to change the status of a replicated log from `EMPTY` to `VOTING`.
   tool::Initialize initializer;
 };
 
@@ -586,11 +586,11 @@ TEST_F(CoordinatorTest, Elect)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -628,11 +628,11 @@ TEST_F(CoordinatorTest, ElectWithClockPaused)
 
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -659,11 +659,11 @@ TEST_F(CoordinatorTest, AppendRead)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -708,11 +708,11 @@ TEST_F(CoordinatorTest, AppendReadError)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -754,11 +754,11 @@ TEST_F(CoordinatorTest, AppendDiscarded)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -803,7 +803,7 @@ TEST_F(CoordinatorTest, ElectNoQuorum)
 {
   const string path = os::getcwd() + "/.log";
   initializer.flags.path = path;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica(new Replica(path));
 
@@ -831,11 +831,11 @@ TEST_F(CoordinatorTest, AppendNoQuorum)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -875,11 +875,11 @@ TEST_F(CoordinatorTest, Failover)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -934,11 +934,11 @@ TEST_F(CoordinatorTest, Demoted)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -1009,15 +1009,15 @@ TEST_F(CoordinatorTest, Fill)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path3 = os::getcwd() + "/.log3";
   initializer.flags.path = path3;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -1085,15 +1085,15 @@ TEST_F(CoordinatorTest, NotLearnedFill)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path3 = os::getcwd() + "/.log3";
   initializer.flags.path = path3;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -1165,11 +1165,11 @@ TEST_F(CoordinatorTest, MultipleAppends)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -1211,15 +1211,15 @@ TEST_F(CoordinatorTest, MultipleAppendsNotLearnedFill)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path3 = os::getcwd() + "/.log3";
   initializer.flags.path = path3;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -1288,11 +1288,11 @@ TEST_F(CoordinatorTest, Truncate)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -1346,15 +1346,15 @@ TEST_F(CoordinatorTest, TruncateNotLearnedFill)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path3 = os::getcwd() + "/.log3";
   initializer.flags.path = path3;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -1435,15 +1435,15 @@ TEST_F(CoordinatorTest, TruncateLearnedFill)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path3 = os::getcwd() + "/.log3";
   initializer.flags.path = path3;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Shared<Replica> replica1(new Replica(path1));
   Shared<Replica> replica2(new Replica(path2));
@@ -1655,7 +1655,7 @@ TEST_F(CoordinatorTest, RecoveryRace)
 class RecoverTest : public TemporaryDirectoryTest
 {
 protected:
-  // For initializing the log.
+  // Used to change the status of a replicated log from `EMPTY` to `VOTING`.
   tool::Initialize initializer;
 };
 
@@ -1665,15 +1665,15 @@ TEST_F(RecoverTest, RacingCatchup)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path3 = os::getcwd() + "/.log3";
   initializer.flags.path = path3;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path4 = os::getcwd() + "/.log4";
   const string path5 = os::getcwd() + "/.log5";
@@ -1769,11 +1769,11 @@ TEST_F(RecoverTest, CatchupRetry)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path3 = os::getcwd() + "/.log3";
 
@@ -1997,7 +1997,7 @@ TEST_F(RecoverTest, AutoInitializationRetry)
 class LogTest : public TemporaryDirectoryTest
 {
 protected:
-  // For initializing the log.
+  // Used to change the status of a replicated log from `EMPTY` to `VOTING`.
   tool::Initialize initializer;
 };
 
@@ -2006,11 +2006,11 @@ TEST_F(LogTest, WriteRead)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Replica replica1(path1);
 
@@ -2048,11 +2048,11 @@ TEST_F(LogTest, Position)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   Replica replica1(path1);
 
@@ -2145,7 +2145,7 @@ protected:
     }
   }
 
-  // For initializing the log.
+  // Used to change the status of a replicated log from `EMPTY` to `VOTING`.
   tool::Initialize initializer;
 
 private:
@@ -2158,11 +2158,11 @@ TEST_F(LogZooKeeperTest, WriteRead)
 {
   const string path1 = os::getcwd() + "/.log1";
   initializer.flags.path = path1;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   const string path2 = os::getcwd() + "/.log2";
   initializer.flags.path = path2;
-  initializer.execute();
+  ASSERT_SOME(initializer.execute());
 
   string servers = server->connectString();
 


[3/3] mesos git commit: Added expectations for response types in log replica tests.

Posted by jo...@apache.org.
Added expectations for response types in log replica tests.

The `okay` field in `PromiseResponse` and `WriteResponse` are
deprecated. This adds a the analogous check for the `type` field that
replaces the `okay` field.

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


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

Branch: refs/heads/master
Commit: 26c806f09f27a9f016d85476f0ef62db91872b31
Parents: 9b5cfe6
Author: Joseph Wu <jo...@mesosphere.io>
Authored: Thu Jul 28 12:14:51 2016 -0700
Committer: Joseph Wu <jo...@apache.org>
Committed: Thu Jul 28 12:14:51 2016 -0700

----------------------------------------------------------------------
 src/tests/log_tests.cpp | 7 +++++++
 1 file changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/26c806f0/src/tests/log_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/log_tests.cpp b/src/tests/log_tests.cpp
index 2943f64..146a2dc 100644
--- a/src/tests/log_tests.cpp
+++ b/src/tests/log_tests.cpp
@@ -348,6 +348,7 @@ TEST_F(ReplicaTest, Promise)
   AWAIT_READY(future);
 
   response = future.get();
+  EXPECT_EQ(PromiseResponse::ACCEPT, response.type());
   EXPECT_TRUE(response.okay());
   EXPECT_EQ(2u, response.proposal());
   EXPECT_TRUE(response.has_position());
@@ -361,6 +362,7 @@ TEST_F(ReplicaTest, Promise)
   AWAIT_READY(future);
 
   response = future.get();
+  EXPECT_EQ(PromiseResponse::REJECT, response.type());
   EXPECT_FALSE(response.okay());
   EXPECT_EQ(2u, response.proposal()); // Highest proposal seen so far.
   EXPECT_FALSE(response.has_position());
@@ -373,6 +375,7 @@ TEST_F(ReplicaTest, Promise)
   AWAIT_READY(future);
 
   response = future.get();
+  EXPECT_EQ(PromiseResponse::ACCEPT, response.type());
   EXPECT_TRUE(response.okay());
   EXPECT_EQ(3u, response.proposal());
   EXPECT_TRUE(response.has_position());
@@ -400,6 +403,7 @@ TEST_F(ReplicaTest, Append)
   AWAIT_READY(future1);
 
   PromiseResponse response1 = future1.get();
+  EXPECT_EQ(PromiseResponse::ACCEPT, response1.type());
   EXPECT_TRUE(response1.okay());
   EXPECT_EQ(proposal, response1.proposal());
   EXPECT_TRUE(response1.has_position());
@@ -418,6 +422,7 @@ TEST_F(ReplicaTest, Append)
   AWAIT_READY(future2);
 
   WriteResponse response2 = future2.get();
+  EXPECT_EQ(WriteResponse::ACCEPT, response2.type());
   EXPECT_TRUE(response2.okay());
   EXPECT_EQ(proposal, response2.proposal());
   EXPECT_EQ(1u, response2.position());
@@ -467,6 +472,7 @@ TEST_F(ReplicaTest, Restore)
     AWAIT_READY(future1);
 
     PromiseResponse response1 = future1.get();
+    EXPECT_EQ(PromiseResponse::ACCEPT, response1.type());
     EXPECT_TRUE(response1.okay());
     EXPECT_EQ(proposal, response1.proposal());
     EXPECT_TRUE(response1.has_position());
@@ -485,6 +491,7 @@ TEST_F(ReplicaTest, Restore)
     AWAIT_READY(future2);
 
     WriteResponse response2 = future2.get();
+    EXPECT_EQ(WriteResponse::ACCEPT, response2.type());
     EXPECT_TRUE(response2.okay());
     EXPECT_EQ(proposal, response2.proposal());
     EXPECT_EQ(1u, response2.position());


[2/3] mesos git commit: Updated whitespace style in log replica tests.

Posted by jo...@apache.org.
Updated whitespace style in log replica tests.

Updates the old template braces `> >` to `>>`.
And adds a missing space on line 458.

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


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

Branch: refs/heads/master
Commit: 9b5cfe65909ce526c72fb53195fb66da7379d064
Parents: 78138a7
Author: Joseph Wu <jo...@mesosphere.io>
Authored: Thu Jul 28 12:14:50 2016 -0700
Committer: Joseph Wu <jo...@apache.org>
Committed: Thu Jul 28 12:14:50 2016 -0700

----------------------------------------------------------------------
 src/tests/log_tests.cpp | 188 +++++++++++++++++++++----------------------
 1 file changed, 94 insertions(+), 94 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/9b5cfe65/src/tests/log_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/log_tests.cpp b/src/tests/log_tests.cpp
index 9567029..2943f64 100644
--- a/src/tests/log_tests.cpp
+++ b/src/tests/log_tests.cpp
@@ -422,7 +422,7 @@ TEST_F(ReplicaTest, Append)
   EXPECT_EQ(proposal, response2.proposal());
   EXPECT_EQ(1u, response2.position());
 
-  Future<list<Action> > actions = replica.read(1, 1);
+  Future<list<Action>> actions = replica.read(1, 1);
 
   AWAIT_READY(actions);
   ASSERT_EQ(1u, actions.get().size());
@@ -456,7 +456,7 @@ TEST_F(ReplicaTest, Restore)
   {
     Replica replica1(path);
 
-    const uint64_t proposal= 1;
+    const uint64_t proposal = 1;
 
     PromiseRequest request1;
     request1.set_proposal(proposal);
@@ -489,7 +489,7 @@ TEST_F(ReplicaTest, Restore)
     EXPECT_EQ(proposal, response2.proposal());
     EXPECT_EQ(1u, response2.position());
 
-    Future<list<Action> > actions1 = replica1.read(1, 1);
+    Future<list<Action>> actions1 = replica1.read(1, 1);
 
     AWAIT_READY(actions1);
     ASSERT_EQ(1u, actions1.get().size());
@@ -513,7 +513,7 @@ TEST_F(ReplicaTest, Restore)
   {
     Replica replica2(path);
 
-    Future<list<Action> > actions2 = replica2.read(1, 1);
+    Future<list<Action>> actions2 = replica2.read(1, 1);
 
     AWAIT_READY(actions2);
     ASSERT_EQ(1u, actions2.get().size());
@@ -604,13 +604,13 @@ TEST_F(CoordinatorTest, Elect)
   Coordinator coord(2, replica1, network);
 
   {
-    Future<Option<uint64_t> > electing = coord.elect();
+    Future<Option<uint64_t>> electing = coord.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
 
   {
-    Future<list<Action> > actions = replica1->read(0, 0);
+    Future<list<Action>> actions = replica1->read(0, 0);
     AWAIT_READY(actions);
     ASSERT_EQ(1u, actions.get().size());
     EXPECT_EQ(0u, actions.get().front().position());
@@ -646,7 +646,7 @@ TEST_F(CoordinatorTest, ElectWithClockPaused)
   Coordinator coord(2, replica1, network);
 
   {
-    Future<Option<uint64_t> > electing = coord.elect();
+    Future<Option<uint64_t>> electing = coord.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
@@ -677,7 +677,7 @@ TEST_F(CoordinatorTest, AppendRead)
   Coordinator coord(2, replica1, network);
 
   {
-    Future<Option<uint64_t> > electing = coord.elect();
+    Future<Option<uint64_t>> electing = coord.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
@@ -685,7 +685,7 @@ TEST_F(CoordinatorTest, AppendRead)
   uint64_t position;
 
   {
-    Future<Option<uint64_t> > appending = coord.append("hello world");
+    Future<Option<uint64_t>> appending = coord.append("hello world");
     AWAIT_READY(appending);
     ASSERT_SOME(appending.get());
     position = appending.get().get();
@@ -693,7 +693,7 @@ TEST_F(CoordinatorTest, AppendRead)
   }
 
   {
-    Future<list<Action> > actions = replica1->read(position, position);
+    Future<list<Action>> actions = replica1->read(position, position);
     AWAIT_READY(actions);
     ASSERT_EQ(1u, actions.get().size());
     EXPECT_EQ(position, actions.get().front().position());
@@ -726,7 +726,7 @@ TEST_F(CoordinatorTest, AppendReadError)
   Coordinator coord(2, replica1, network);
 
   {
-    Future<Option<uint64_t> > electing = coord.elect();
+    Future<Option<uint64_t>> electing = coord.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
@@ -734,7 +734,7 @@ TEST_F(CoordinatorTest, AppendReadError)
   uint64_t position;
 
   {
-    Future<Option<uint64_t> > appending = coord.append("hello world");
+    Future<Option<uint64_t>> appending = coord.append("hello world");
     AWAIT_READY(appending);
     ASSERT_SOME(appending.get());
     position = appending.get().get();
@@ -743,7 +743,7 @@ TEST_F(CoordinatorTest, AppendReadError)
 
   {
     position += 1;
-    Future<list<Action> > actions = replica1->read(position, position);
+    Future<list<Action>> actions = replica1->read(position, position);
     AWAIT_FAILED(actions);
     EXPECT_EQ("Bad read range (past end of log)", actions.failure());
   }
@@ -772,7 +772,7 @@ TEST_F(CoordinatorTest, AppendDiscarded)
   Coordinator coord(2, replica1, network);
 
   {
-    Future<Option<uint64_t> > electing = coord.elect();
+    Future<Option<uint64_t>> electing = coord.elect();
     AWAIT_READY(electing);
     ASSERT_SOME(electing.get());
     EXPECT_EQ(0u, electing.get().get());
@@ -783,7 +783,7 @@ TEST_F(CoordinatorTest, AppendDiscarded)
   replica2.reset();
 
   {
-    Future<Option<uint64_t> > appending = coord.append("hello world");
+    Future<Option<uint64_t>> appending = coord.append("hello world");
     ASSERT_TRUE(appending.isPending());
 
     appending.discard();
@@ -791,7 +791,7 @@ TEST_F(CoordinatorTest, AppendDiscarded)
   }
 
   {
-    Future<Option<uint64_t> > appending = coord.append("hello moto");
+    Future<Option<uint64_t>> appending = coord.append("hello moto");
     AWAIT_READY(appending);
 
     EXPECT_NONE(appending.get());
@@ -816,7 +816,7 @@ TEST_F(CoordinatorTest, ElectNoQuorum)
 
   Clock::pause();
 
-  Future<Option<uint64_t> > electing = coord.elect();
+  Future<Option<uint64_t>> electing = coord.elect();
 
   Clock::advance(Seconds(10));
   Clock::settle();
@@ -849,7 +849,7 @@ TEST_F(CoordinatorTest, AppendNoQuorum)
   Coordinator coord(2, replica1, network);
 
   {
-    Future<Option<uint64_t> > electing = coord.elect();
+    Future<Option<uint64_t>> electing = coord.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
@@ -860,7 +860,7 @@ TEST_F(CoordinatorTest, AppendNoQuorum)
 
   Clock::pause();
 
-  Future<Option<uint64_t> > appending = coord.append("hello world");
+  Future<Option<uint64_t>> appending = coord.append("hello world");
 
   Clock::advance(Seconds(10));
   Clock::settle();
@@ -893,7 +893,7 @@ TEST_F(CoordinatorTest, Failover)
   Coordinator coord1(2, replica1, network1);
 
   {
-    Future<Option<uint64_t> > electing = coord1.elect();
+    Future<Option<uint64_t>> electing = coord1.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
@@ -901,7 +901,7 @@ TEST_F(CoordinatorTest, Failover)
   uint64_t position;
 
   {
-    Future<Option<uint64_t> > appending = coord1.append("hello world");
+    Future<Option<uint64_t>> appending = coord1.append("hello world");
     AWAIT_READY(appending);
     ASSERT_SOME(appending.get());
     position = appending.get().get();
@@ -913,13 +913,13 @@ TEST_F(CoordinatorTest, Failover)
   Coordinator coord2(2, replica2, network2);
 
   {
-    Future<Option<uint64_t> > electing = coord2.elect();
+    Future<Option<uint64_t>> electing = coord2.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(position, electing.get());
   }
 
   {
-    Future<list<Action> > actions = replica2->read(position, position);
+    Future<list<Action>> actions = replica2->read(position, position);
     AWAIT_READY(actions);
     ASSERT_EQ(1u, actions.get().size());
     EXPECT_EQ(position, actions.get().front().position());
@@ -952,7 +952,7 @@ TEST_F(CoordinatorTest, Demoted)
   Coordinator coord1(2, replica1, network1);
 
   {
-    Future<Option<uint64_t> > electing = coord1.elect();
+    Future<Option<uint64_t>> electing = coord1.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
@@ -960,7 +960,7 @@ TEST_F(CoordinatorTest, Demoted)
   uint64_t position1;
 
   {
-    Future<Option<uint64_t> > appending = coord1.append("hello world");
+    Future<Option<uint64_t>> appending = coord1.append("hello world");
     AWAIT_READY(appending);
     ASSERT_SOME(appending.get());
     position1 = appending.get().get();
@@ -972,13 +972,13 @@ TEST_F(CoordinatorTest, Demoted)
   Coordinator coord2(2, replica2, network2);
 
   {
-    Future<Option<uint64_t> > electing = coord2.elect();
+    Future<Option<uint64_t>> electing = coord2.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(position1, electing.get());
   }
 
   {
-    Future<Option<uint64_t> > appending = coord1.append("hello moto");
+    Future<Option<uint64_t>> appending = coord1.append("hello moto");
     AWAIT_READY(appending);
     EXPECT_NONE(appending.get());
   }
@@ -986,7 +986,7 @@ TEST_F(CoordinatorTest, Demoted)
   uint64_t position2;
 
   {
-    Future<Option<uint64_t> > appending = coord2.append("hello hello");
+    Future<Option<uint64_t>> appending = coord2.append("hello hello");
     AWAIT_READY(appending);
     ASSERT_SOME(appending.get());
     position2 = appending.get().get();
@@ -994,7 +994,7 @@ TEST_F(CoordinatorTest, Demoted)
   }
 
   {
-    Future<list<Action> > actions = replica2->read(position2, position2);
+    Future<list<Action>> actions = replica2->read(position2, position2);
     AWAIT_READY(actions);
     ASSERT_EQ(1u, actions.get().size());
     EXPECT_EQ(position2, actions.get().front().position());
@@ -1031,7 +1031,7 @@ TEST_F(CoordinatorTest, Fill)
   Coordinator coord1(2, replica1, network1);
 
   {
-    Future<Option<uint64_t> > electing = coord1.elect();
+    Future<Option<uint64_t>> electing = coord1.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
@@ -1039,7 +1039,7 @@ TEST_F(CoordinatorTest, Fill)
   uint64_t position;
 
   {
-    Future<Option<uint64_t> > appending = coord1.append("hello world");
+    Future<Option<uint64_t>> appending = coord1.append("hello world");
     AWAIT_READY(appending);
     ASSERT_SOME(appending.get());
     position = appending.get().get();
@@ -1060,7 +1060,7 @@ TEST_F(CoordinatorTest, Fill)
     // Note that the first election should fail because 'coord2' gets
     // its proposal number from 'replica3' which has an empty log and
     // thus a second attempt will need to be made.
-    Future<Option<uint64_t> > electing = coord2.elect();
+    Future<Option<uint64_t>> electing = coord2.elect();
     AWAIT_READY(electing);
     ASSERT_NONE(electing.get());
 
@@ -1070,7 +1070,7 @@ TEST_F(CoordinatorTest, Fill)
   }
 
   {
-    Future<list<Action> > actions = replica3->read(position, position);
+    Future<list<Action>> actions = replica3->read(position, position);
     AWAIT_READY(actions);
     ASSERT_EQ(1u, actions.get().size());
     EXPECT_EQ(position, actions.get().front().position());
@@ -1111,7 +1111,7 @@ TEST_F(CoordinatorTest, NotLearnedFill)
   Coordinator coord1(2, replica1, network1);
 
   {
-    Future<Option<uint64_t> > electing = coord1.elect();
+    Future<Option<uint64_t>> electing = coord1.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
@@ -1119,7 +1119,7 @@ TEST_F(CoordinatorTest, NotLearnedFill)
   uint64_t position;
 
   {
-    Future<Option<uint64_t> > appending = coord1.append("hello world");
+    Future<Option<uint64_t>> appending = coord1.append("hello world");
     AWAIT_READY(appending);
     ASSERT_SOME(appending.get());
     position = appending.get().get();
@@ -1140,7 +1140,7 @@ TEST_F(CoordinatorTest, NotLearnedFill)
     // Note that the first election should fail because 'coord2' gets
     // its proposal number from 'replica3' which has an empty log and
     // thus a second attempt will need to be made.
-    Future<Option<uint64_t> > electing = coord2.elect();
+    Future<Option<uint64_t>> electing = coord2.elect();
     AWAIT_READY(electing);
     ASSERT_NONE(electing.get());
 
@@ -1150,7 +1150,7 @@ TEST_F(CoordinatorTest, NotLearnedFill)
   }
 
   {
-    Future<list<Action> > actions = replica3->read(position, position);
+    Future<list<Action>> actions = replica3->read(position, position);
     AWAIT_READY(actions);
     ASSERT_EQ(1u, actions.get().size());
     EXPECT_EQ(position, actions.get().front().position());
@@ -1183,19 +1183,19 @@ TEST_F(CoordinatorTest, MultipleAppends)
   Coordinator coord(2, replica1, network);
 
   {
-    Future<Option<uint64_t> > electing = coord.elect();
+    Future<Option<uint64_t>> electing = coord.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
 
   for (uint64_t position = 1; position <= 10; position++) {
-    Future<Option<uint64_t> > appending = coord.append(stringify(position));
+    Future<Option<uint64_t>> appending = coord.append(stringify(position));
     AWAIT_READY(appending);
     EXPECT_SOME_EQ(position, appending.get());
   }
 
   {
-    Future<list<Action> > actions = replica1->read(1, 10);
+    Future<list<Action>> actions = replica1->read(1, 10);
     AWAIT_READY(actions);
     EXPECT_EQ(10u, actions.get().size());
     foreach (const Action& action, actions.get()) {
@@ -1237,13 +1237,13 @@ TEST_F(CoordinatorTest, MultipleAppendsNotLearnedFill)
   Coordinator coord1(2, replica1, network1);
 
   {
-    Future<Option<uint64_t> > electing = coord1.elect();
+    Future<Option<uint64_t>> electing = coord1.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
 
   for (uint64_t position = 1; position <= 10; position++) {
-    Future<Option<uint64_t> > appending = coord1.append(stringify(position));
+    Future<Option<uint64_t>> appending = coord1.append(stringify(position));
     AWAIT_READY(appending);
     EXPECT_SOME_EQ(position, appending.get());
   }
@@ -1262,7 +1262,7 @@ TEST_F(CoordinatorTest, MultipleAppendsNotLearnedFill)
     // Note that the first election should fail because 'coord2' gets
     // its proposal number from 'replica3' which has an empty log and
     // thus a second attempt will need to be made.
-    Future<Option<uint64_t> > electing = coord2.elect();
+    Future<Option<uint64_t>> electing = coord2.elect();
     AWAIT_READY(electing);
     ASSERT_NONE(electing.get());
 
@@ -1272,7 +1272,7 @@ TEST_F(CoordinatorTest, MultipleAppendsNotLearnedFill)
   }
 
   {
-    Future<list<Action> > actions = replica3->read(1, 10);
+    Future<list<Action>> actions = replica3->read(1, 10);
     AWAIT_READY(actions);
     EXPECT_EQ(10u, actions.get().size());
     foreach (const Action& action, actions.get()) {
@@ -1306,31 +1306,31 @@ TEST_F(CoordinatorTest, Truncate)
   Coordinator coord(2, replica1, network);
 
   {
-    Future<Option<uint64_t> > electing = coord.elect();
+    Future<Option<uint64_t>> electing = coord.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
 
   for (uint64_t position = 1; position <= 10; position++) {
-    Future<Option<uint64_t> > appending = coord.append(stringify(position));
+    Future<Option<uint64_t>> appending = coord.append(stringify(position));
     AWAIT_READY(appending);
     EXPECT_SOME_EQ(position, appending.get());
   }
 
   {
-    Future<Option<uint64_t> > truncating = coord.truncate(7);
+    Future<Option<uint64_t>> truncating = coord.truncate(7);
     AWAIT_READY(truncating);
     EXPECT_SOME_EQ(11u, truncating.get());
   }
 
   {
-    Future<list<Action> > actions = replica1->read(6, 10);
+    Future<list<Action>> actions = replica1->read(6, 10);
     AWAIT_FAILED(actions);
     EXPECT_EQ("Bad read range (truncated position)", actions.failure());
   }
 
   {
-    Future<list<Action> > actions = replica1->read(7, 10);
+    Future<list<Action>> actions = replica1->read(7, 10);
     AWAIT_READY(actions);
     EXPECT_EQ(4u, actions.get().size());
     foreach (const Action& action, actions.get()) {
@@ -1372,19 +1372,19 @@ TEST_F(CoordinatorTest, TruncateNotLearnedFill)
   Coordinator coord1(2, replica1, network1);
 
   {
-    Future<Option<uint64_t> > electing = coord1.elect();
+    Future<Option<uint64_t>> electing = coord1.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
 
   for (uint64_t position = 1; position <= 10; position++) {
-    Future<Option<uint64_t> > appending = coord1.append(stringify(position));
+    Future<Option<uint64_t>> appending = coord1.append(stringify(position));
     AWAIT_READY(appending);
     EXPECT_SOME_EQ(position, appending.get());
   }
 
   {
-    Future<Option<uint64_t> > truncating = coord1.truncate(7);
+    Future<Option<uint64_t>> truncating = coord1.truncate(7);
     AWAIT_READY(truncating);
     EXPECT_SOME_EQ(11u, truncating.get());
   }
@@ -1403,7 +1403,7 @@ TEST_F(CoordinatorTest, TruncateNotLearnedFill)
     // Note that the first election should fail because 'coord2' gets
     // its proposal number from 'replica3' which has an empty log and
     // thus a second attempt will need to be made.
-    Future<Option<uint64_t> > electing = coord2.elect();
+    Future<Option<uint64_t>> electing = coord2.elect();
     AWAIT_READY(electing);
     ASSERT_NONE(electing.get());
 
@@ -1413,13 +1413,13 @@ TEST_F(CoordinatorTest, TruncateNotLearnedFill)
   }
 
   {
-    Future<list<Action> > actions = replica3->read(6, 10);
+    Future<list<Action>> actions = replica3->read(6, 10);
     AWAIT_FAILED(actions);
     EXPECT_EQ("Bad read range (truncated position)", actions.failure());
   }
 
   {
-    Future<list<Action> > actions = replica3->read(7, 10);
+    Future<list<Action>> actions = replica3->read(7, 10);
     AWAIT_READY(actions);
     EXPECT_EQ(4u, actions.get().size());
     foreach (const Action& action, actions.get()) {
@@ -1457,19 +1457,19 @@ TEST_F(CoordinatorTest, TruncateLearnedFill)
   Coordinator coord1(2, replica1, network1);
 
   {
-    Future<Option<uint64_t> > electing = coord1.elect();
+    Future<Option<uint64_t>> electing = coord1.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
 
   for (uint64_t position = 1; position <= 10; position++) {
-    Future<Option<uint64_t> > appending = coord1.append(stringify(position));
+    Future<Option<uint64_t>> appending = coord1.append(stringify(position));
     AWAIT_READY(appending);
     EXPECT_SOME_EQ(position, appending.get());
   }
 
   {
-    Future<Option<uint64_t> > truncating = coord1.truncate(7);
+    Future<Option<uint64_t>> truncating = coord1.truncate(7);
     AWAIT_READY(truncating);
     EXPECT_SOME_EQ(11u, truncating.get());
   }
@@ -1488,7 +1488,7 @@ TEST_F(CoordinatorTest, TruncateLearnedFill)
     // Note that the first election should fail because 'coord2' gets
     // its proposal number from 'replica3' which has an empty log and
     // thus a second attempt will need to be made.
-    Future<Option<uint64_t> > electing = coord2.elect();
+    Future<Option<uint64_t>> electing = coord2.elect();
     AWAIT_READY(electing);
     ASSERT_NONE(electing.get());
 
@@ -1498,13 +1498,13 @@ TEST_F(CoordinatorTest, TruncateLearnedFill)
   }
 
   {
-    Future<list<Action> > actions = replica3->read(6, 10);
+    Future<list<Action>> actions = replica3->read(6, 10);
     AWAIT_FAILED(actions);
     EXPECT_EQ("Bad read range (truncated position)", actions.failure());
   }
 
   {
-    Future<list<Action> > actions = replica3->read(7, 10);
+    Future<list<Action>> actions = replica3->read(7, 10);
     AWAIT_READY(actions);
     EXPECT_EQ(4u, actions.get().size());
     foreach (const Action& action, actions.get()) {
@@ -1692,13 +1692,13 @@ TEST_F(RecoverTest, RacingCatchup)
   Coordinator coord1(3, replica1, network1);
 
   {
-    Future<Option<uint64_t> > electing = coord1.elect();
+    Future<Option<uint64_t>> electing = coord1.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
 
   for (uint64_t position = 1; position <= 10; position++) {
-    Future<Option<uint64_t> > appending = coord1.append(stringify(position));
+    Future<Option<uint64_t>> appending = coord1.append(stringify(position));
     AWAIT_READY(appending);
     EXPECT_SOME_EQ(position, appending.get());
   }
@@ -1712,8 +1712,8 @@ TEST_F(RecoverTest, RacingCatchup)
 
   Shared<Network> network2(new Network(pids));
 
-  Future<Owned<Replica> > recovering4 = recover(3, replica4, network2);
-  Future<Owned<Replica> > recovering5 = recover(3, replica5, network2);
+  Future<Owned<Replica>> recovering4 = recover(3, replica4, network2);
+  Future<Owned<Replica>> recovering5 = recover(3, replica5, network2);
 
   // Wait until recovery is done.
   AWAIT_READY(recovering4);
@@ -1727,7 +1727,7 @@ TEST_F(RecoverTest, RacingCatchup)
     // Note that the first election should fail because 'coord2' gets
     // its proposal number from 'replica3' which has an empty log and
     // thus a second attempt will need to be made.
-    Future<Option<uint64_t> > electing = coord2.elect();
+    Future<Option<uint64_t>> electing = coord2.elect();
     AWAIT_READY(electing);
     ASSERT_NONE(electing.get());
 
@@ -1737,7 +1737,7 @@ TEST_F(RecoverTest, RacingCatchup)
   }
 
   {
-    Future<list<Action> > actions = shared4->read(1, 10);
+    Future<list<Action>> actions = shared4->read(1, 10);
     AWAIT_READY(actions);
     EXPECT_EQ(10u, actions.get().size());
     foreach (const Action& action, actions.get()) {
@@ -1748,13 +1748,13 @@ TEST_F(RecoverTest, RacingCatchup)
   }
 
   {
-    Future<Option<uint64_t> > appending = coord2.append("hello hello");
+    Future<Option<uint64_t>> appending = coord2.append("hello hello");
     AWAIT_READY(appending);
     EXPECT_SOME_EQ(11u, appending.get());
   }
 
   {
-    Future<list<Action> > actions = shared4->read(11u, 11u);
+    Future<list<Action>> actions = shared4->read(11u, 11u);
     AWAIT_READY(actions);
     ASSERT_EQ(1u, actions.get().size());
     EXPECT_EQ(11u, actions.get().front().position());
@@ -1792,7 +1792,7 @@ TEST_F(RecoverTest, CatchupRetry)
   Coordinator coord(2, replica1, network1);
 
   {
-    Future<Option<uint64_t> > electing = coord.elect();
+    Future<Option<uint64_t>> electing = coord.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
@@ -1800,7 +1800,7 @@ TEST_F(RecoverTest, CatchupRetry)
   IntervalSet<uint64_t> positions;
 
   for (uint64_t position = 1; position <= 10; position++) {
-    Future<Option<uint64_t> > appending = coord.append(stringify(position));
+    Future<Option<uint64_t>> appending = coord.append(stringify(position));
     AWAIT_READY(appending);
     EXPECT_SOME_EQ(position, appending.get());
     positions += position;
@@ -1863,8 +1863,8 @@ TEST_F(RecoverTest, AutoInitialization)
 
   Shared<Network> network(new Network(pids));
 
-  Future<Owned<Replica> > recovering1 = recover(2, replica1, network, true);
-  Future<Owned<Replica> > recovering2 = recover(2, replica2, network, true);
+  Future<Owned<Replica>> recovering1 = recover(2, replica1, network, true);
+  Future<Owned<Replica>> recovering2 = recover(2, replica2, network, true);
 
   // Verifies that replica1 and replica2 cannot transit into VOTING
   // status because replica3 is still in EMPTY status. We flush the
@@ -1876,7 +1876,7 @@ TEST_F(RecoverTest, AutoInitialization)
   EXPECT_TRUE(recovering1.isPending());
   EXPECT_TRUE(recovering2.isPending());
 
-  Future<Owned<Replica> > recovering3 = recover(2, replica3, network, true);
+  Future<Owned<Replica>> recovering3 = recover(2, replica3, network, true);
 
   Clock::pause();
   Clock::settle();
@@ -1898,19 +1898,19 @@ TEST_F(RecoverTest, AutoInitialization)
   Coordinator coord(2, shared, network);
 
   {
-    Future<Option<uint64_t> > electing = coord.elect();
+    Future<Option<uint64_t>> electing = coord.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
 
   {
-    Future<Option<uint64_t> > appending = coord.append("hello world");
+    Future<Option<uint64_t>> appending = coord.append("hello world");
     AWAIT_READY(appending);
     EXPECT_SOME_EQ(1u, appending.get());
   }
 
   {
-    Future<list<Action> > actions = shared->read(1, 1);
+    Future<list<Action>> actions = shared->read(1, 1);
     AWAIT_READY(actions);
     ASSERT_EQ(1u, actions.get().size());
     EXPECT_EQ(1u, actions.get().front().position());
@@ -1944,8 +1944,8 @@ TEST_F(RecoverTest, AutoInitializationRetry)
 
   Clock::pause();
 
-  Future<Owned<Replica> > recovering1 = recover(2, replica1, network, true);
-  Future<Owned<Replica> > recovering2 = recover(2, replica2, network, true);
+  Future<Owned<Replica>> recovering1 = recover(2, replica1, network, true);
+  Future<Owned<Replica>> recovering2 = recover(2, replica2, network, true);
 
   // Flush the event queue.
   Clock::settle();
@@ -1953,7 +1953,7 @@ TEST_F(RecoverTest, AutoInitializationRetry)
   EXPECT_TRUE(recovering1.isPending());
   EXPECT_TRUE(recovering2.isPending());
 
-  Future<Owned<Replica> > recovering3 = recover(2, replica3, network, true);
+  Future<Owned<Replica>> recovering3 = recover(2, replica3, network, true);
 
   // Replica1 and replica2 will retry recovery after 10 seconds.
   Clock::advance(Seconds(10));
@@ -1971,19 +1971,19 @@ TEST_F(RecoverTest, AutoInitializationRetry)
   Coordinator coord(2, shared, network);
 
   {
-    Future<Option<uint64_t> > electing = coord.elect();
+    Future<Option<uint64_t>> electing = coord.elect();
     AWAIT_READY(electing);
     EXPECT_SOME_EQ(0u, electing.get());
   }
 
   {
-    Future<Option<uint64_t> > appending = coord.append("hello world");
+    Future<Option<uint64_t>> appending = coord.append("hello world");
     AWAIT_READY(appending);
     EXPECT_SOME_EQ(1u, appending.get());
   }
 
   {
-    Future<list<Action> > actions = shared->read(1, 1);
+    Future<list<Action>> actions = shared->read(1, 1);
     AWAIT_READY(actions);
     ASSERT_EQ(1u, actions.get().size());
     EXPECT_EQ(1u, actions.get().front().position());
@@ -2021,19 +2021,19 @@ TEST_F(LogTest, WriteRead)
 
   Log::Writer writer(&log);
 
-  Future<Option<Log::Position> > start = writer.start();
+  Future<Option<Log::Position>> start = writer.start();
 
   AWAIT_READY(start);
   ASSERT_SOME(start.get());
 
-  Future<Option<Log::Position> > position = writer.append("hello world");
+  Future<Option<Log::Position>> position = writer.append("hello world");
 
   AWAIT_READY(position);
   ASSERT_SOME(position.get());
 
   Log::Reader reader(&log);
 
-  Future<list<Log::Entry> > entries =
+  Future<list<Log::Entry>> entries =
     reader.read(position.get().get(), position.get().get());
 
   AWAIT_READY(entries);
@@ -2063,12 +2063,12 @@ TEST_F(LogTest, Position)
 
   Log::Writer writer(&log);
 
-  Future<Option<Log::Position> > start = writer.start();
+  Future<Option<Log::Position>> start = writer.start();
 
   AWAIT_READY(start);
   ASSERT_SOME(start.get());
 
-  Future<Option<Log::Position> > position = writer.append("hello world");
+  Future<Option<Log::Position>> position = writer.append("hello world");
 
   AWAIT_READY(position);
   ASSERT_SOME(position.get());
@@ -2171,19 +2171,19 @@ TEST_F(LogZooKeeperTest, WriteRead)
 
   Log::Writer writer(&log2);
 
-  Future<Option<Log::Position> > start = writer.start();
+  Future<Option<Log::Position>> start = writer.start();
 
   AWAIT_READY(start);
   ASSERT_SOME(start.get());
 
-  Future<Option<Log::Position> > position = writer.append("hello world");
+  Future<Option<Log::Position>> position = writer.append("hello world");
 
   AWAIT_READY(position);
   ASSERT_SOME(position.get());
 
   Log::Reader reader(&log2);
 
-  Future<list<Log::Entry> > entries =
+  Future<list<Log::Entry>> entries =
     reader.read(position.get().get(), position.get().get());
 
   AWAIT_READY(entries);
@@ -2204,7 +2204,7 @@ TEST_F(LogZooKeeperTest, LostZooKeeper)
 
   Log::Writer writer(&log);
 
-  Future<Option<Log::Position> > start = writer.start();
+  Future<Option<Log::Position>> start = writer.start();
 
   AWAIT_READY(start);
   ASSERT_SOME(start.get());
@@ -2214,14 +2214,14 @@ TEST_F(LogZooKeeperTest, LostZooKeeper)
 
   // We should still be able to append as the local replica is in the
   // base set of the ZooKeeper network.
-  Future<Option<Log::Position> > position = writer.append("hello world");
+  Future<Option<Log::Position>> position = writer.append("hello world");
 
   AWAIT_READY(position);
   ASSERT_SOME(position.get());
 
   Log::Reader reader(&log);
 
-  Future<list<Log::Entry> > entries =
+  Future<list<Log::Entry>> entries =
     reader.read(position.get().get(), position.get().get());
 
   AWAIT_READY(entries);