snapshot_tests.rs 854 B

1234567891011121314151617181920212223242526272829303132
  1. extern crate kvraft;
  2. #[macro_use]
  3. extern crate scopeguard;
  4. use kvraft::testing_utils::config::{make_config, sleep_election_timeouts};
  5. use std::sync::Arc;
  6. #[test]
  7. fn install_snapshot_rpc() {
  8. const SERVERS: usize = 3;
  9. const MAX_RAFT_STATE: usize = 1000;
  10. const KEY: &str = "a";
  11. let cfg = Arc::new(make_config(SERVERS, false, MAX_RAFT_STATE));
  12. defer!(cfg.clean_up());
  13. let mut clerk = cfg.make_clerk();
  14. cfg.begin("Test: InstallSnapshot RPC (3B)");
  15. clerk.put("a", "A");
  16. assert_eq!(clerk.get(KEY), Some("A".to_owned()));
  17. let (majority, minority) = cfg.partition();
  18. {
  19. let mut clerk = cfg.make_limited_clerk(&majority);
  20. for i in 0..50 {
  21. let i_str = i.to_string();
  22. clerk.put(&i_str, &i_str);
  23. }
  24. sleep_election_timeouts(1);
  25. clerk.put("b", "B");
  26. }
  27. }