Skip to content

Commit

Permalink
Refactor: move client-api tests to tests/client_api/
Browse files Browse the repository at this point in the history
- fix: #31
  • Loading branch information
drmingdrmer committed Jan 6, 2022
1 parent 5f0bd1b commit 6f722a3
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 17 deletions.
10 changes: 10 additions & 0 deletions openraft/tests/client_api/main.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#[macro_use]
#[path = "../fixtures/mod.rs"]
mod fixtures;

// The number indicate the preferred running order for these case.
// The later tests may depend on the earlier ones.

mod t10_client_writes;
mod t20_client_reads;
mod t50_lagging_network_write;
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
use std::sync::Arc;

use anyhow::Result;
use fixtures::RaftRouter;
use futures::prelude::*;
use maplit::btreeset;
use openraft::Config;
use openraft::LogId;
use openraft::SnapshotPolicy;
use openraft::State;

#[macro_use]
mod fixtures;
use crate::fixtures::RaftRouter;

/// Client write tests.
///
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
use std::sync::Arc;

use anyhow::Result;
use fixtures::RaftRouter;
use maplit::btreeset;
use openraft::Config;
use openraft::State;

#[macro_use]
mod fixtures;
use crate::fixtures::RaftRouter;

/// Client read tests.
///
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
use std::sync::Arc;
use std::time::Duration;

use anyhow::Result;
use fixtures::RaftRouter;
use maplit::btreeset;
use openraft::Config;
use openraft::State;

#[macro_use]
mod fixtures;
use crate::fixtures::RaftRouter;

/// Lagging network test.
///
Expand All @@ -22,8 +21,6 @@ async fn lagging_network_write() -> Result<()> {
let (_log_guard, ut_span) = init_ut!();
let _ent = ut_span.enter();

let timeout = Some(tokio::time::Duration::from_millis(2000));

let config = Arc::new(
Config {
heartbeat_interval: 100,
Expand All @@ -40,7 +37,7 @@ async fn lagging_network_write() -> Result<()> {
let mut n_logs = 0;

// Assert all nodes are in learner state & have no entries.
router.wait_for_log(&btreeset![0], n_logs, timeout, "empty").await?;
router.wait_for_log(&btreeset![0], n_logs, timeout(), "empty").await?;
router.wait_for_state(&btreeset![0], State::Learner, None, "empty").await?;
router.assert_pristine_cluster().await;

Expand All @@ -49,7 +46,7 @@ async fn lagging_network_write() -> Result<()> {
router.initialize_from_single_node(0).await?;
n_logs += 1;

router.wait_for_log(&btreeset![0], n_logs, timeout, "init").await?;
router.wait_for_log(&btreeset![0], n_logs, timeout(), "init").await?;
router.wait_for_state(&btreeset![0], State::Leader, None, "init").await?;
router.assert_stable_cluster(Some(1), Some(n_logs)).await;

Expand All @@ -60,21 +57,25 @@ async fn lagging_network_write() -> Result<()> {
router.new_raft_node(2).await;
router.add_learner(0, 2).await?;

router.wait_for_log(&btreeset![1, 2], n_logs, timeout, "learner init").await?;
router.wait_for_log(&btreeset![1, 2], n_logs, timeout(), "learner init").await?;

router.client_request_many(0, "client", 1).await;
n_logs += 1;
router.wait_for_log(&btreeset![0, 1, 2], n_logs, timeout, "write one log").await?;
router.wait_for_log(&btreeset![0, 1, 2], n_logs, timeout(), "write one log").await?;

router.change_membership(0, btreeset![0, 1, 2]).await?;
n_logs += 2;
router.wait_for_state(&btreeset![0], State::Leader, None, "changed").await?;
router.wait_for_state(&btreeset![1, 2], State::Follower, None, "changed").await?;
router.wait_for_log(&btreeset![0, 1, 2], n_logs, timeout, "3 candidates").await?;
router.wait_for_log(&btreeset![0, 1, 2], n_logs, timeout(), "3 candidates").await?;

router.client_request_many(0, "client", 1).await;
n_logs += 1;
router.wait_for_log(&btreeset![0, 1, 2], n_logs, timeout, "write 2nd log").await?;
router.wait_for_log(&btreeset![0, 1, 2], n_logs, timeout(), "write 2nd log").await?;

Ok(())
}

fn timeout() -> Option<Duration> {
Some(Duration::from_millis(2000))
}

0 comments on commit 6f722a3

Please sign in to comment.