Skip to content

Commit 9d3aa0d

Browse files
committed
chore: move test_disable_proposal_forwarding to test_raw_node.rs
Signed-off-by: Dat Tien Nguyen <phongtomfapp@gmail.com>
1 parent 4bc761c commit 9d3aa0d

File tree

2 files changed

+71
-71
lines changed

2 files changed

+71
-71
lines changed

harness/tests/integration_cases/test_raft.rs

Lines changed: 0 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -5851,74 +5851,3 @@ fn test_switching_check_quorum() {
58515851
}
58525852
assert_eq!(sm.state, StateRole::Leader);
58535853
}
5854-
5855-
#[test]
5856-
fn test_disable_proposal_forwarding() {
5857-
let l = default_logger();
5858-
5859-
let n1 = new_test_raft_with_config(
5860-
&Config {
5861-
id: 1,
5862-
heartbeat_tick: 1,
5863-
election_tick: 10,
5864-
disable_proposal_forwarding: false,
5865-
..Default::default()
5866-
},
5867-
MemStorage::new_with_conf_state((vec![1, 2, 3], vec![])),
5868-
&l,
5869-
);
5870-
5871-
let n2 = new_test_raft_with_config(
5872-
&Config {
5873-
id: 2,
5874-
heartbeat_tick: 1,
5875-
election_tick: 10,
5876-
disable_proposal_forwarding: false,
5877-
..Default::default()
5878-
},
5879-
MemStorage::new_with_conf_state((vec![1, 2, 3], vec![])),
5880-
&l,
5881-
);
5882-
5883-
let n3 = new_test_raft_with_config(
5884-
&Config {
5885-
id: 3,
5886-
heartbeat_tick: 1,
5887-
election_tick: 10,
5888-
disable_proposal_forwarding: true,
5889-
..Default::default()
5890-
},
5891-
MemStorage::new_with_conf_state((vec![1, 2, 3], vec![])),
5892-
&l,
5893-
);
5894-
5895-
let mut network = Network::new(vec![Some(n1), Some(n2), Some(n3)], &l);
5896-
5897-
// node 1 starts campaign to become leader.
5898-
network.send(vec![new_message(1, 1, MessageType::MsgHup, 0)]);
5899-
5900-
// send proposal to n2(follower) where DisableProposalForwarding is false
5901-
assert_eq!(
5902-
network
5903-
.peers
5904-
.get_mut(&2)
5905-
.unwrap()
5906-
.step(new_message(2, 2, MessageType::MsgPropose, 1)),
5907-
Ok(())
5908-
);
5909-
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
5914-
assert_eq!(
5915-
network
5916-
.peers
5917-
.get_mut(&3)
5918-
.unwrap()
5919-
.step(new_message(3, 3, MessageType::MsgPropose, 1)),
5920-
Err(Error::ProposalDropped)
5921-
);
5922-
5923-
assert_eq!(network.peers.get(&3).unwrap().msgs.is_empty(), true);
5924-
}

harness/tests/integration_cases/test_raw_node.rs

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1876,6 +1876,77 @@ fn test_committed_entries_pagination_after_restart() {
18761876
}
18771877
}
18781878

1879+
#[test]
1880+
fn test_disable_proposal_forwarding() {
1881+
let l = default_logger();
1882+
1883+
let n1 = new_test_raft_with_config(
1884+
&Config {
1885+
id: 1,
1886+
heartbeat_tick: 1,
1887+
election_tick: 10,
1888+
disable_proposal_forwarding: false,
1889+
..Default::default()
1890+
},
1891+
MemStorage::new_with_conf_state((vec![1, 2, 3], vec![])),
1892+
&l,
1893+
);
1894+
1895+
let n2 = new_test_raft_with_config(
1896+
&Config {
1897+
id: 2,
1898+
heartbeat_tick: 1,
1899+
election_tick: 10,
1900+
disable_proposal_forwarding: false,
1901+
..Default::default()
1902+
},
1903+
MemStorage::new_with_conf_state((vec![1, 2, 3], vec![])),
1904+
&l,
1905+
);
1906+
1907+
let n3 = new_test_raft_with_config(
1908+
&Config {
1909+
id: 3,
1910+
heartbeat_tick: 1,
1911+
election_tick: 10,
1912+
disable_proposal_forwarding: true,
1913+
..Default::default()
1914+
},
1915+
MemStorage::new_with_conf_state((vec![1, 2, 3], vec![])),
1916+
&l,
1917+
);
1918+
1919+
let mut network = Network::new(vec![Some(n1), Some(n2), Some(n3)], &l);
1920+
1921+
// node 1 starts campaign to become leader.
1922+
network.send(vec![new_message(1, 1, MessageType::MsgHup, 0)]);
1923+
1924+
// send proposal to n2(follower) where DisableProposalForwarding is false
1925+
assert_eq!(
1926+
network
1927+
.peers
1928+
.get_mut(&2)
1929+
.unwrap()
1930+
.step(new_message(2, 2, MessageType::MsgPropose, 1)),
1931+
Ok(())
1932+
);
1933+
1934+
// verify n2(follower) does forward the proposal when DisableProposalForwarding is false
1935+
assert_eq!(network.peers.get(&2).unwrap().msgs.len(), 1);
1936+
1937+
// send proposal to n3(follower) where DisableProposalForwarding is true
1938+
assert_eq!(
1939+
network
1940+
.peers
1941+
.get_mut(&3)
1942+
.unwrap()
1943+
.step(new_message(3, 3, MessageType::MsgPropose, 1)),
1944+
Err(Error::ProposalDropped)
1945+
);
1946+
1947+
assert_eq!(network.peers.get(&3).unwrap().msgs.is_empty(), true);
1948+
}
1949+
18791950
#[derive(Default)]
18801951
struct IgnoreSizeHintMemStorage {
18811952
inner: MemStorage,

0 commit comments

Comments
 (0)