Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test scenario implementation roadmap #84

Open
1 of 23 tasks
jopemachine opened this issue Apr 29, 2024 · 0 comments
Open
1 of 23 tasks

Test scenario implementation roadmap #84

jopemachine opened this issue Apr 29, 2024 · 0 comments

Comments

@jopemachine
Copy link
Member

jopemachine commented Apr 29, 2024

One of the goals of this crate is to provide a robust, high-level Raft implementation that is ready to use.
To achieve this goal, we need to write more tests for various scenarios.

Integration tests

Should pass

  • Cluster bootstrap testing
    • Boostrapping based on node's static rule
    • WAL bootstrap
    • WAL snapshot bootstrap
  • Vote and Leader election
  • Request rerouting
  • Log replication
  • Log compaction
  • Simple membership change
  • Membership change based on Joint consensus

Should fail

Writing a list of failing test cases would be useful because it helps identify which failures are expected behavior and which are bugs.

  • Timeout on put requests when a quorum is broken.
  • Timeout on new node join attempts when a quorum is broken.
  • Handling put requests during leader failover.
  • Timeout on join requests during leader failover.
  • Failures occurring while creating a snapshot.
  • Whether a new proposal is rejected when there is a pending configuration change, and if it is processed normally after the pending configuration change is resolved.
  • If a node not in the peers sends a message to the cluster, it should raise a PeerNotFound error.
  • A configuration change request containing only an AddNode entry for itself times out.

Unit tests

Types that require unit tests

  • RaftNode
  • HeedStorage (from raft-rs)

Others

  • Doc testing
  • Client API testing
  • Create a simple shell script (test-cluster.sh) that verifies if the cluster is functioning correctly for each example.
@jopemachine jopemachine pinned this issue Apr 29, 2024
@jopemachine jopemachine changed the title Test scenario roadmap Test scenario implementation roadmap Apr 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant