Skip to content

Commit 4bc761c

Browse files
committed
tests: update test raft
Signed-off-by: Dat Tien Nguyen <phongtomfapp@gmail.com>
1 parent bced3c2 commit 4bc761c

File tree

2 files changed

+10
-60
lines changed

2 files changed

+10
-60
lines changed

harness/tests/integration_cases/test_raft.rs

Lines changed: 9 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -5861,7 +5861,7 @@ fn test_disable_proposal_forwarding() {
58615861
id: 1,
58625862
heartbeat_tick: 1,
58635863
election_tick: 10,
5864-
disable_proposal_forwarding: true,
5864+
disable_proposal_forwarding: false,
58655865
..Default::default()
58665866
},
58675867
MemStorage::new_with_conf_state((vec![1, 2, 3], vec![])),
@@ -5873,7 +5873,7 @@ fn test_disable_proposal_forwarding() {
58735873
id: 2,
58745874
heartbeat_tick: 1,
58755875
election_tick: 10,
5876-
disable_proposal_forwarding: true,
5876+
disable_proposal_forwarding: false,
58775877
..Default::default()
58785878
},
58795879
MemStorage::new_with_conf_state((vec![1, 2, 3], vec![])),
@@ -5897,46 +5897,20 @@ fn test_disable_proposal_forwarding() {
58975897
// node 1 starts campaign to become leader.
58985898
network.send(vec![new_message(1, 1, MessageType::MsgHup, 0)]);
58995899

5900-
assert_eq!(network.peers.get(&1).unwrap().state, StateRole::Leader);
5901-
assert_eq!(network.peers.get(&2).unwrap().state, StateRole::Follower);
5902-
assert_eq!(network.peers.get(&3).unwrap().state, StateRole::Follower);
5903-
5904-
assert_eq!(network.peers.get(&2).unwrap().leader_id, 1);
5905-
assert_eq!(network.peers.get(&3).unwrap().leader_id, 1);
5906-
5907-
let committed_index_1 = network.peers.get(&1).unwrap().raft_log.committed;
5908-
5909-
// send a proposal to follower 2
5910-
network.send(vec![new_message(2, 2, MessageType::MsgPropose, 1)]);
5911-
5912-
// send a proposal to follower 3
5913-
network.send(vec![new_message(3, 3, MessageType::MsgPropose, 1)]);
5914-
5915-
// assert no proposals are forwarded from follower and committed.
5916-
assert_eq!(
5917-
network.peers.get(&1).unwrap().raft_log.committed,
5918-
committed_index_1
5919-
);
5920-
assert_eq!(
5921-
network.peers.get(&2).unwrap().raft_log.committed,
5922-
committed_index_1
5923-
);
5924-
assert_eq!(
5925-
network.peers.get(&3).unwrap().raft_log.committed,
5926-
committed_index_1
5927-
);
5928-
5929-
// nodes 2 and 3 are follower, with `disable_proposal_forwarding` enable, proposal will be dropped.
5930-
// assert error returned in `step`.
5900+
// send proposal to n2(follower) where DisableProposalForwarding is false
59315901
assert_eq!(
59325902
network
59335903
.peers
59345904
.get_mut(&2)
59355905
.unwrap()
59365906
.step(new_message(2, 2, MessageType::MsgPropose, 1)),
5937-
Err(Error::ProposalDropped)
5907+
Ok(())
59385908
);
59395909

5910+
// verify n2(follower) does forward the proposal when DisableProposalForwarding is false
5911+
assert_eq!(network.peers.get(&2).unwrap().msgs.len(), 1);
5912+
5913+
// send proposal to n3(follower) where DisableProposalForwarding is true
59405914
assert_eq!(
59415915
network
59425916
.peers
@@ -5946,28 +5920,5 @@ fn test_disable_proposal_forwarding() {
59465920
Err(Error::ProposalDropped)
59475921
);
59485922

5949-
// send proposal to leader node.
5950-
network.send(vec![new_message(1, 1, MessageType::MsgPropose, 5)]);
5951-
5952-
let committed_index_2 = network.peers.get(&1).unwrap().raft_log.committed;
5953-
if committed_index_1 >= committed_index_2 {
5954-
panic!(
5955-
"expect committed_index_1 < committed_index_2, got {:?} > {:?}",
5956-
committed_index_1, committed_index_2
5957-
);
5958-
}
5959-
5960-
// assert proposals are accepted on leader node.
5961-
assert_eq!(
5962-
network.peers.get(&1).unwrap().raft_log.committed,
5963-
committed_index_2
5964-
);
5965-
assert_eq!(
5966-
network.peers.get(&2).unwrap().raft_log.committed,
5967-
committed_index_2
5968-
);
5969-
assert_eq!(
5970-
network.peers.get(&3).unwrap().raft_log.committed,
5971-
committed_index_2
5972-
);
5923+
assert_eq!(network.peers.get(&3).unwrap().msgs.is_empty(), true);
59735924
}

src/raft.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ pub struct RaftCore<T: Storage> {
233233

234234
skip_bcast_commit: bool,
235235
batch_append: bool,
236+
disable_proposal_forwarding: bool,
236237

237238
heartbeat_timeout: usize,
238239
election_timeout: usize,
@@ -255,8 +256,6 @@ pub struct RaftCore<T: Storage> {
255256

256257
/// Max size per committed entries in a `Read`.
257258
pub(crate) max_committed_size_per_ready: u64,
258-
259-
disable_proposal_forwarding: bool,
260259
}
261260

262261
/// A struct that represents the raft consensus itself. Stores details concerning the current

0 commit comments

Comments
 (0)