You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by je...@ci.trafficserver.apache.org on 2015/07/21 23:57:13 UTC
Build failed in Jenkins: clang-format #40
See <https://ci.trafficserver.apache.org/job/clang-format/40/changes>
Changes:
[jplev] TS-3786: Implementation of the RAFT consensus protocol.
------------------------------------------
[...truncated 5731 lines...]
raft.Propose(log_entry);
@@ -445,13 +495,14 @@ TEST_F(RaftTest, OneLogLog) {
EXPECT_EQ(servers_[0]->commits_[1]->data(), "b");
}
-TEST_F(RaftTest, OneTwoLogLog) {
+TEST_F(RaftTest, OneTwoLogLog)
+{
LogEntry config_log_entry(ConfigLogEntry(2));
StartUp(2, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
int iother = ileader ? 0 : 1;
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -460,16 +511,13 @@ TEST_F(RaftTest, OneTwoLogLog) {
raft.Propose(log_entry);
Ticks(20);
EXPECT_EQ(servers_[ileader]->log_.size(), 7);
- EXPECT_NE(servers_[ileader]->log_[0]->vote(), ""); // vote.
- EXPECT_NE(servers_[ileader]->log_[1]->leader(), ""); // election.
- EXPECT_EQ(servers_[ileader]->log_[2]->data_committed(),
- servers_[ileader]->log_[1]->index());
+ EXPECT_NE(servers_[ileader]->log_[0]->vote(), ""); // vote.
+ EXPECT_NE(servers_[ileader]->log_[1]->leader(), ""); // election.
+ EXPECT_EQ(servers_[ileader]->log_[2]->data_committed(), servers_[ileader]->log_[1]->index());
EXPECT_EQ(servers_[ileader]->log_[3]->data(), "a");
- EXPECT_EQ(servers_[ileader]->log_[4]->data_committed(),
- servers_[ileader]->log_[3]->index());
+ EXPECT_EQ(servers_[ileader]->log_[4]->data_committed(), servers_[ileader]->log_[3]->index());
EXPECT_EQ(servers_[ileader]->log_[5]->data(), "b");
- EXPECT_EQ(servers_[ileader]->log_[6]->data_committed(),
- servers_[ileader]->log_[5]->index());
+ EXPECT_EQ(servers_[ileader]->log_[6]->data_committed(), servers_[ileader]->log_[5]->index());
EXPECT_EQ(servers_[ileader]->commits_.size(), 2);
EXPECT_EQ(servers_[ileader]->commits_[0]->data(), "a");
EXPECT_EQ(servers_[ileader]->commits_[1]->data(), "b");
@@ -478,12 +526,13 @@ TEST_F(RaftTest, OneTwoLogLog) {
EXPECT_EQ(servers_[iother]->commits_[1]->data(), "b");
}
-TEST_F(RaftTest, OneTwoThreeLogDownLogUp) {
+TEST_F(RaftTest, OneTwoThreeLogDownLogUp)
+{
LogEntry config_log_entry(ConfigLogEntry(3));
StartUp(3, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -506,12 +555,13 @@ TEST_F(RaftTest, OneTwoThreeLogDownLogUp) {
}
}
-TEST_F(RaftTest, OneTwoThreeLogLogThreeDamagedLogRestore) {
+TEST_F(RaftTest, OneTwoThreeLogLogThreeDamagedLogRestore)
+{
LogEntry config_log_entry(ConfigLogEntry(3));
StartUp(3, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -531,23 +581,24 @@ TEST_F(RaftTest, OneTwoThreeLogLogThreeDamagedLogRestore) {
}
}
-TEST_F(RaftTest, OneTwoLogLogThenThree) {
+TEST_F(RaftTest, OneTwoLogLogThenThree)
+{
LogEntry config_log_entry;
config_log_entry.mutable_config()->add_node("0");
config_log_entry.mutable_config()->add_node("1");
StartUp(2, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
log_entry.set_data("b");
raft.Propose(log_entry);
Ticks(20);
- StartUp(1, config_log_entry); // Start node 2.
+ StartUp(1, config_log_entry); // Start node 2.
config_log_entry.mutable_config()->add_node("2");
- raft.Propose(config_log_entry); // Change config to [0, 1, 2].
+ raft.Propose(config_log_entry); // Change config to [0, 1, 2].
Ticks(20);
EXPECT_EQ(servers_[1]->commits_.size(), 3);
EXPECT_EQ(servers_[1]->commits_[0]->data(), "a");
@@ -560,11 +611,12 @@ TEST_F(RaftTest, OneTwoLogLogThenThree) {
EXPECT_EQ(servers_[2]->commits_[2]->config().node_size(), 3);
}
-TEST_F(RaftTest, OneRecover) {
+TEST_F(RaftTest, OneRecover)
+{
LogEntry config_log_entry;
StartUp(1, config_log_entry);
{
- auto& raft = *servers_[0]->raft_.get();
+ auto &raft = *servers_[0]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -575,7 +627,8 @@ TEST_F(RaftTest, OneRecover) {
EXPECT_EQ(servers_[0]->commits_[0]->data(), "a");
}
-TEST_F(RaftTest, OneTwoThreeCrashAndBurnLeader) {
+TEST_F(RaftTest, OneTwoThreeCrashAndBurnLeader)
+{
LogEntry config_log_entry;
config_log_entry.mutable_config()->add_node("0");
config_log_entry.mutable_config()->add_node("1");
@@ -583,7 +636,7 @@ TEST_F(RaftTest, OneTwoThreeCrashAndBurnLeader) {
StartUp(3, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -603,12 +656,13 @@ TEST_F(RaftTest, OneTwoThreeCrashAndBurnLeader) {
}
}
-TEST_F(RaftTest, FiveCrashLeaderAndAnotherAndRecover) {
+TEST_F(RaftTest, FiveCrashLeaderAndAnotherAndRecover)
+{
LogEntry config_log_entry(ConfigLogEntry(5));
StartUp(5, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -630,12 +684,13 @@ TEST_F(RaftTest, FiveCrashLeaderAndAnotherAndRecover) {
EXPECT_EQ(servers_[(ileader + 1) % 5]->commits_[1]->data(), "b");
}
-TEST_F(RaftTest, FiveCrashAndBurnLeaderAndAnother) {
+TEST_F(RaftTest, FiveCrashAndBurnLeaderAndAnother)
+{
LogEntry config_log_entry(ConfigLogEntry(5));
StartUp(5, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -656,7 +711,8 @@ TEST_F(RaftTest, FiveCrashAndBurnLeaderAndAnother) {
// Test that a log from a leader without quorum never is committed and that a
// log with the same index from a leader with quorum is.
-TEST_F(RaftTest, FiveLogDown3LogDown2Up3LogUp2) {
+TEST_F(RaftTest, FiveLogDown3LogDown2Up3LogUp2)
+{
LogEntry config_log_entry(ConfigLogEntry(5));
StartUp(5, config_log_entry);
Ticks(20);
@@ -664,7 +720,7 @@ TEST_F(RaftTest, FiveLogDown3LogDown2Up3LogUp2) {
down_.insert(to_string((ileader + 1) % 5));
down_.insert(to_string((ileader + 2) % 5));
down_.insert(to_string((ileader + 3) % 5));
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -676,7 +732,7 @@ TEST_F(RaftTest, FiveLogDown3LogDown2Up3LogUp2) {
down_.insert(to_string(ileader));
Ticks(20);
int ileader2 = servers_[((ileader + 1) % 5)]->leader_[0] - '0';
- auto& raft2 = *servers_[ileader2]->raft_.get();
+ auto &raft2 = *servers_[ileader2]->raft_.get();
log_entry.set_data("c");
raft2.Propose(log_entry);
log_entry.set_data("d");
@@ -692,13 +748,14 @@ TEST_F(RaftTest, FiveLogDown3LogDown2Up3LogUp2) {
}
}
-TEST_F(RaftTest, ReplicaFailover) {
+TEST_F(RaftTest, ReplicaFailover)
+{
LogEntry config_log_entry;
config_log_entry.mutable_config()->add_node("0");
config_log_entry.mutable_config()->add_replica("1");
StartUp(2, config_log_entry);
Ticks(20);
- auto& raft = *servers_[0]->raft_.get();
+ auto &raft = *servers_[0]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -731,10 +788,11 @@ TEST_F(RaftTest, ReplicaFailover) {
EXPECT_EQ(servers_[1]->leader_, "1");
}
-TEST_F(RaftTest, OneSnapshotTwo) {
+TEST_F(RaftTest, OneSnapshotTwo)
+{
LogEntry config_log_entry;
StartUp(1, config_log_entry);
- auto& raft = *servers_[0]->raft_.get();
+ auto &raft = *servers_[0]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a=1");
raft.Propose(log_entry);
@@ -755,12 +813,13 @@ TEST_F(RaftTest, OneSnapshotTwo) {
EXPECT_EQ(servers_[0]->state_["b"].second, "3");
}
-TEST_F(RaftTest, OneTwoThreeSnapshotOneTwoCrashAndBurnThree) {
+TEST_F(RaftTest, OneTwoThreeSnapshotOneTwoCrashAndBurnThree)
+{
LogEntry config_log_entry(ConfigLogEntry(3));
StartUp(3, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a=1");
raft.Propose(log_entry);
@@ -780,4 +839,4 @@ TEST_F(RaftTest, OneTwoThreeSnapshotOneTwoCrashAndBurnThree) {
EXPECT_EQ(servers_[2]->state_["a"].second, "1");
EXPECT_EQ(servers_[2]->state_["b"].second, "3");
}
-} // namespace raft
+} // namespace raft
Build step 'Execute shell' marked build as failure
Jenkins build is back to normal : clang-format #43
Posted by je...@ci.trafficserver.apache.org.
See <https://ci.trafficserver.apache.org/job/clang-format/43/changes>
Build failed in Jenkins: clang-format #42
Posted by je...@ci.trafficserver.apache.org.
See <https://ci.trafficserver.apache.org/job/clang-format/42/changes>
Changes:
[jplev] clang-format and move copyrights to NOTICES for RAFT code.
------------------------------------------
[...truncated 5348 lines...]
- replicas_.clear();
- for (auto &n : config_.node())
- if (n != node_) {
- other_nodes_.insert(n);
- other_config_nodes_.insert(n);
- }
- for (auto &n : pending_config_.node())
- if (n != node_)
- other_config_nodes_.insert(n);
- replicas_.insert(config_.replica().begin(), config_.replica().end());
- replicas_.insert(pending_config_.replica().begin(), pending_config_.replica().end());
- replicas_.insert(other_nodes_.begin(), other_nodes_.end());
- replicas_.insert(other_config_nodes_.begin(), other_config_nodes_.end());
- ::std::string old_leader = leader_;
- if (!other_nodes_.size())
- leader_ = node_;
- else if (!i_am_in_nodes() && other_nodes_.size() == 1)
- leader_ = *other_nodes_.begin();
- else if (leader_ == node_ && !i_am_in_nodes())
- leader_ = "";
- return leader_ != old_leader;
- }
+ bool
+ ConfigChanged()
+ { // Returns: true if the leader_ changed.
+ other_nodes_.clear();
+ other_config_nodes_.clear();
+ replicas_.clear();
+ for (auto &n : config_.node())
+ if (n != node_) {
+ other_nodes_.insert(n);
+ other_config_nodes_.insert(n);
+ }
+ for (auto &n : pending_config_.node())
+ if (n != node_)
+ other_config_nodes_.insert(n);
+ replicas_.insert(config_.replica().begin(), config_.replica().end());
+ replicas_.insert(pending_config_.replica().begin(), pending_config_.replica().end());
+ replicas_.insert(other_nodes_.begin(), other_nodes_.end());
+ replicas_.insert(other_config_nodes_.begin(), other_config_nodes_.end());
+ ::std::string old_leader = leader_;
+ if (!other_nodes_.size())
+ leader_ = node_;
+ else if (!i_am_in_nodes() && other_nodes_.size() == 1)
+ leader_ = *other_nodes_.begin();
+ else if (leader_ == node_ && !i_am_in_nodes())
+ leader_ = "";
+ return leader_ != old_leader;
+ }
- bool
- SendReplicationMessage(const ::std::string &n, const LogEntry &entry, NodeState *s)
- {
- Message m(InitializeMessage());
- m.mutable_entry()->CopyFrom(entry);
- if (!server_->SendMessage(this, n, m))
- return false;
- s->sent_index = entry.index() + entry.extent();
- s->sent_term = entry.term();
- return true;
- }
+ bool
+ SendReplicationMessage(const ::std::string &n, const LogEntry &entry, NodeState *s)
+ {
+ Message m(InitializeMessage());
+ m.mutable_entry()->CopyFrom(entry);
+ if (!server_->SendMessage(this, n, m))
+ return false;
+ s->sent_index = entry.index() + entry.extent();
+ s->sent_term = entry.term();
+ return true;
+ }
- void
- Replicate(const ::std::string &n, bool heartbeat)
- {
- bool sent = false;
- auto &s = node_state_[n];
- if (s.term == term_) { // Replica has acknowledged me as leader.
- int64_t end = index_;
- if (waiting_commits_.size())
- end = waiting_commits_.front()->index() - 1;
- while (s.sent_index < end) { // Get from server.
- LogEntry entry;
- server_->GetLogEntry(this, s.sent_term, s.sent_index + 1, end, &entry);
- if (!entry.has_term()) {
- // A summary log entry from the server with historical information.
- entry.set_term(last_log_term_);
- entry.set_index(s.sent_index + 1);
- }
- entry.set_previous_log_term(s.sent_term);
- entry.set_previous_log_index(s.sent_index);
- assert(entry.index() > s.sent_index);
- int64_t x = s.sent_index;
- if (!SendReplicationMessage(n, entry, &s))
- break;
- assert(s.sent_index > x);
- sent = true;
- }
- for (auto &e : waiting_commits_) {
- if (e->index() <= s.sent_index) // Skip those already sent.
- continue;
- if (!SendReplicationMessage(n, *e, &s))
- break;
- sent = true;
+ void
+ Replicate(const ::std::string &n, bool heartbeat)
+ {
+ bool sent = false;
+ auto &s = node_state_[n];
+ if (s.term == term_) { // Replica has acknowledged me as leader.
+ int64_t end = index_;
+ if (waiting_commits_.size())
+ end = waiting_commits_.front()->index() - 1;
+ while (s.sent_index < end) { // Get from server.
+ LogEntry entry;
+ server_->GetLogEntry(this, s.sent_term, s.sent_index + 1, end, &entry);
+ if (!entry.has_term()) {
+ // A summary log entry from the server with historical information.
+ entry.set_term(last_log_term_);
+ entry.set_index(s.sent_index + 1);
}
+ entry.set_previous_log_term(s.sent_term);
+ entry.set_previous_log_index(s.sent_index);
+ assert(entry.index() > s.sent_index);
+ int64_t x = s.sent_index;
+ if (!SendReplicationMessage(n, entry, &s))
+ break;
+ assert(s.sent_index > x);
+ sent = true;
}
- if (heartbeat && !sent) {
- Message m(InitializeMessage());
- server_->SendMessage(this, n, m);
+ for (auto &e : waiting_commits_) {
+ if (e->index() <= s.sent_index) // Skip those already sent.
+ continue;
+ if (!SendReplicationMessage(n, *e, &s))
+ break;
+ sent = true;
}
}
-
- void
- ReplicateAll(bool heartbeat)
- {
- for (auto &n : replicas_)
- Replicate(n, heartbeat);
- }
-
- bool
- i_am_leader()
- {
- return node_ == leader_;
- }
- bool
- i_am_in_nodes()
- {
- auto &n = config_.node();
- return std::find(n.begin(), n.end(), node_) != n.end();
+ if (heartbeat && !sent) {
+ Message m(InitializeMessage());
+ server_->SendMessage(this, n, m);
}
+ }
- Server *const server_;
- struct drand48_data rand_;
- const ::std::string node_;
- int64_t term_ = 0; // Current term.
- int64_t last_log_term_ = -1; // Term of last log entry this node has.
- int64_t index_ = 0; // Index of last log entry this node has.
- int64_t config_committed_ = -1;
- int64_t data_committed_ = -1;
- int64_t last_log_committed_index_ = -1;
- int64_t last_log_committed_term_ = -1;
- double election_timeout_ = 1.0;
- double last_heartbeat_ = -1.0e10;
- double last_heartbeat_sent_ = -1.0e10;
- double random_election_delay_ = 0.0;
- ::std::string leader_; // The current leader. "" if there is no leader.
- ::std::string vote_; // My vote this term.
- Config config_;
- Config pending_config_;
- ::std::map< ::std::string, NodeState> node_state_;
- ::std::deque<std::unique_ptr<LogEntry> > waiting_commits_;
- bool seen_term_ = true;
- // Cached values.
- ::std::set< ::std::string> other_nodes_; // Nodes required for consensus on log entries.
- ::std::set< ::std::string> other_config_nodes_; // Nodes required for config changes.
- ::std::set< ::std::string> replicas_; // All nodes receiving the replication stream.
- };
+ void
+ ReplicateAll(bool heartbeat)
+ {
+ for (auto &n : replicas_)
+ Replicate(n, heartbeat);
+ }
- template <typename Server> Raft<Server> *NewRaft(Server * server, const ::std::string &node)
+ bool
+ i_am_leader()
{
- return new RaftImpl<Server>(server, node);
+ return node_ == leader_;
}
+ bool
+ i_am_in_nodes()
+ {
+ auto &n = config_.node();
+ return std::find(n.begin(), n.end(), node_) != n.end();
+ }
+
+ Server *const server_;
+ struct drand48_data rand_;
+ const ::std::string node_;
+ int64_t term_ = 0; // Current term.
+ int64_t last_log_term_ = -1; // Term of last log entry this node has.
+ int64_t index_ = 0; // Index of last log entry this node has.
+ int64_t config_committed_ = -1;
+ int64_t data_committed_ = -1;
+ int64_t last_log_committed_index_ = -1;
+ int64_t last_log_committed_term_ = -1;
+ double election_timeout_ = 1.0;
+ double last_heartbeat_ = -1.0e10;
+ double last_heartbeat_sent_ = -1.0e10;
+ double random_election_delay_ = 0.0;
+ ::std::string leader_; // The current leader. "" if there is no leader.
+ ::std::string vote_; // My vote this term.
+ Config config_;
+ Config pending_config_;
+ ::std::map< ::std::string, NodeState> node_state_;
+ ::std::deque<std::unique_ptr<LogEntry> > waiting_commits_;
+ bool seen_term_ = true;
+ // Cached values.
+ ::std::set< ::std::string> other_nodes_; // Nodes required for consensus on log entries.
+ ::std::set< ::std::string> other_config_nodes_; // Nodes required for config changes.
+ ::std::set< ::std::string> replicas_; // All nodes receiving the replication stream.
+};
+
+template <typename Server>
+Raft<Server> *
+NewRaft(Server *server, const ::std::string &node)
+{
+ return new RaftImpl<Server>(server, node);
+}
} // namespace raft
#endif // CONSENSUS_IMPL_H_
Build step 'Execute shell' marked build as failure
Build failed in Jenkins: clang-format #41
Posted by je...@ci.trafficserver.apache.org.
See <https://ci.trafficserver.apache.org/job/clang-format/41/>
------------------------------------------
[...truncated 5731 lines...]
raft.Propose(log_entry);
@@ -445,13 +495,14 @@ TEST_F(RaftTest, OneLogLog) {
EXPECT_EQ(servers_[0]->commits_[1]->data(), "b");
}
-TEST_F(RaftTest, OneTwoLogLog) {
+TEST_F(RaftTest, OneTwoLogLog)
+{
LogEntry config_log_entry(ConfigLogEntry(2));
StartUp(2, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
int iother = ileader ? 0 : 1;
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -460,16 +511,13 @@ TEST_F(RaftTest, OneTwoLogLog) {
raft.Propose(log_entry);
Ticks(20);
EXPECT_EQ(servers_[ileader]->log_.size(), 7);
- EXPECT_NE(servers_[ileader]->log_[0]->vote(), ""); // vote.
- EXPECT_NE(servers_[ileader]->log_[1]->leader(), ""); // election.
- EXPECT_EQ(servers_[ileader]->log_[2]->data_committed(),
- servers_[ileader]->log_[1]->index());
+ EXPECT_NE(servers_[ileader]->log_[0]->vote(), ""); // vote.
+ EXPECT_NE(servers_[ileader]->log_[1]->leader(), ""); // election.
+ EXPECT_EQ(servers_[ileader]->log_[2]->data_committed(), servers_[ileader]->log_[1]->index());
EXPECT_EQ(servers_[ileader]->log_[3]->data(), "a");
- EXPECT_EQ(servers_[ileader]->log_[4]->data_committed(),
- servers_[ileader]->log_[3]->index());
+ EXPECT_EQ(servers_[ileader]->log_[4]->data_committed(), servers_[ileader]->log_[3]->index());
EXPECT_EQ(servers_[ileader]->log_[5]->data(), "b");
- EXPECT_EQ(servers_[ileader]->log_[6]->data_committed(),
- servers_[ileader]->log_[5]->index());
+ EXPECT_EQ(servers_[ileader]->log_[6]->data_committed(), servers_[ileader]->log_[5]->index());
EXPECT_EQ(servers_[ileader]->commits_.size(), 2);
EXPECT_EQ(servers_[ileader]->commits_[0]->data(), "a");
EXPECT_EQ(servers_[ileader]->commits_[1]->data(), "b");
@@ -478,12 +526,13 @@ TEST_F(RaftTest, OneTwoLogLog) {
EXPECT_EQ(servers_[iother]->commits_[1]->data(), "b");
}
-TEST_F(RaftTest, OneTwoThreeLogDownLogUp) {
+TEST_F(RaftTest, OneTwoThreeLogDownLogUp)
+{
LogEntry config_log_entry(ConfigLogEntry(3));
StartUp(3, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -506,12 +555,13 @@ TEST_F(RaftTest, OneTwoThreeLogDownLogUp) {
}
}
-TEST_F(RaftTest, OneTwoThreeLogLogThreeDamagedLogRestore) {
+TEST_F(RaftTest, OneTwoThreeLogLogThreeDamagedLogRestore)
+{
LogEntry config_log_entry(ConfigLogEntry(3));
StartUp(3, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -531,23 +581,24 @@ TEST_F(RaftTest, OneTwoThreeLogLogThreeDamagedLogRestore) {
}
}
-TEST_F(RaftTest, OneTwoLogLogThenThree) {
+TEST_F(RaftTest, OneTwoLogLogThenThree)
+{
LogEntry config_log_entry;
config_log_entry.mutable_config()->add_node("0");
config_log_entry.mutable_config()->add_node("1");
StartUp(2, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
log_entry.set_data("b");
raft.Propose(log_entry);
Ticks(20);
- StartUp(1, config_log_entry); // Start node 2.
+ StartUp(1, config_log_entry); // Start node 2.
config_log_entry.mutable_config()->add_node("2");
- raft.Propose(config_log_entry); // Change config to [0, 1, 2].
+ raft.Propose(config_log_entry); // Change config to [0, 1, 2].
Ticks(20);
EXPECT_EQ(servers_[1]->commits_.size(), 3);
EXPECT_EQ(servers_[1]->commits_[0]->data(), "a");
@@ -560,11 +611,12 @@ TEST_F(RaftTest, OneTwoLogLogThenThree) {
EXPECT_EQ(servers_[2]->commits_[2]->config().node_size(), 3);
}
-TEST_F(RaftTest, OneRecover) {
+TEST_F(RaftTest, OneRecover)
+{
LogEntry config_log_entry;
StartUp(1, config_log_entry);
{
- auto& raft = *servers_[0]->raft_.get();
+ auto &raft = *servers_[0]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -575,7 +627,8 @@ TEST_F(RaftTest, OneRecover) {
EXPECT_EQ(servers_[0]->commits_[0]->data(), "a");
}
-TEST_F(RaftTest, OneTwoThreeCrashAndBurnLeader) {
+TEST_F(RaftTest, OneTwoThreeCrashAndBurnLeader)
+{
LogEntry config_log_entry;
config_log_entry.mutable_config()->add_node("0");
config_log_entry.mutable_config()->add_node("1");
@@ -583,7 +636,7 @@ TEST_F(RaftTest, OneTwoThreeCrashAndBurnLeader) {
StartUp(3, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -603,12 +656,13 @@ TEST_F(RaftTest, OneTwoThreeCrashAndBurnLeader) {
}
}
-TEST_F(RaftTest, FiveCrashLeaderAndAnotherAndRecover) {
+TEST_F(RaftTest, FiveCrashLeaderAndAnotherAndRecover)
+{
LogEntry config_log_entry(ConfigLogEntry(5));
StartUp(5, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -630,12 +684,13 @@ TEST_F(RaftTest, FiveCrashLeaderAndAnotherAndRecover) {
EXPECT_EQ(servers_[(ileader + 1) % 5]->commits_[1]->data(), "b");
}
-TEST_F(RaftTest, FiveCrashAndBurnLeaderAndAnother) {
+TEST_F(RaftTest, FiveCrashAndBurnLeaderAndAnother)
+{
LogEntry config_log_entry(ConfigLogEntry(5));
StartUp(5, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -656,7 +711,8 @@ TEST_F(RaftTest, FiveCrashAndBurnLeaderAndAnother) {
// Test that a log from a leader without quorum never is committed and that a
// log with the same index from a leader with quorum is.
-TEST_F(RaftTest, FiveLogDown3LogDown2Up3LogUp2) {
+TEST_F(RaftTest, FiveLogDown3LogDown2Up3LogUp2)
+{
LogEntry config_log_entry(ConfigLogEntry(5));
StartUp(5, config_log_entry);
Ticks(20);
@@ -664,7 +720,7 @@ TEST_F(RaftTest, FiveLogDown3LogDown2Up3LogUp2) {
down_.insert(to_string((ileader + 1) % 5));
down_.insert(to_string((ileader + 2) % 5));
down_.insert(to_string((ileader + 3) % 5));
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -676,7 +732,7 @@ TEST_F(RaftTest, FiveLogDown3LogDown2Up3LogUp2) {
down_.insert(to_string(ileader));
Ticks(20);
int ileader2 = servers_[((ileader + 1) % 5)]->leader_[0] - '0';
- auto& raft2 = *servers_[ileader2]->raft_.get();
+ auto &raft2 = *servers_[ileader2]->raft_.get();
log_entry.set_data("c");
raft2.Propose(log_entry);
log_entry.set_data("d");
@@ -692,13 +748,14 @@ TEST_F(RaftTest, FiveLogDown3LogDown2Up3LogUp2) {
}
}
-TEST_F(RaftTest, ReplicaFailover) {
+TEST_F(RaftTest, ReplicaFailover)
+{
LogEntry config_log_entry;
config_log_entry.mutable_config()->add_node("0");
config_log_entry.mutable_config()->add_replica("1");
StartUp(2, config_log_entry);
Ticks(20);
- auto& raft = *servers_[0]->raft_.get();
+ auto &raft = *servers_[0]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a");
raft.Propose(log_entry);
@@ -731,10 +788,11 @@ TEST_F(RaftTest, ReplicaFailover) {
EXPECT_EQ(servers_[1]->leader_, "1");
}
-TEST_F(RaftTest, OneSnapshotTwo) {
+TEST_F(RaftTest, OneSnapshotTwo)
+{
LogEntry config_log_entry;
StartUp(1, config_log_entry);
- auto& raft = *servers_[0]->raft_.get();
+ auto &raft = *servers_[0]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a=1");
raft.Propose(log_entry);
@@ -755,12 +813,13 @@ TEST_F(RaftTest, OneSnapshotTwo) {
EXPECT_EQ(servers_[0]->state_["b"].second, "3");
}
-TEST_F(RaftTest, OneTwoThreeSnapshotOneTwoCrashAndBurnThree) {
+TEST_F(RaftTest, OneTwoThreeSnapshotOneTwoCrashAndBurnThree)
+{
LogEntry config_log_entry(ConfigLogEntry(3));
StartUp(3, config_log_entry);
Ticks(20);
int ileader = servers_[0]->leader_[0] - '0';
- auto& raft = *servers_[ileader]->raft_.get();
+ auto &raft = *servers_[ileader]->raft_.get();
LogEntry log_entry;
log_entry.set_data("a=1");
raft.Propose(log_entry);
@@ -780,4 +839,4 @@ TEST_F(RaftTest, OneTwoThreeSnapshotOneTwoCrashAndBurnThree) {
EXPECT_EQ(servers_[2]->state_["a"].second, "1");
EXPECT_EQ(servers_[2]->state_["b"].second, "3");
}
-} // namespace raft
+} // namespace raft
Build step 'Execute shell' marked build as failure