revision_disk_test.rs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. use crate::revision_test::script::RevisionScript::*;
  2. use crate::revision_test::script::{InvalidRevisionObject, RevisionTest};
  3. #[tokio::test]
  4. async fn revision_write_to_disk_test() {
  5. let test = RevisionTest::new_with_configuration(2).await;
  6. test
  7. .run_script(AddLocalRevision {
  8. content: "123".to_string(),
  9. })
  10. .await;
  11. test
  12. .run_scripts(vec![
  13. AssertNumberOfRevisionsInDisk { num: 0 },
  14. WaitWhenWriteToDisk,
  15. AssertNumberOfRevisionsInDisk { num: 1 },
  16. ])
  17. .await;
  18. }
  19. #[tokio::test]
  20. async fn revision_write_to_disk_with_merge_test() {
  21. let test = RevisionTest::new_with_configuration(100).await;
  22. for i in 0..1000 {
  23. test
  24. .run_script(AddLocalRevision {
  25. content: format!("{}", i),
  26. })
  27. .await;
  28. }
  29. test
  30. .run_scripts(vec![
  31. AssertNumberOfRevisionsInDisk { num: 0 },
  32. AssertNumberOfSyncRevisions { num: 10 },
  33. WaitWhenWriteToDisk,
  34. AssertNumberOfRevisionsInDisk { num: 10 },
  35. ])
  36. .await;
  37. }
  38. #[tokio::test]
  39. async fn revision_read_from_disk_test() {
  40. let test = RevisionTest::new_with_configuration(2).await;
  41. test
  42. .run_scripts(vec![
  43. AddLocalRevision {
  44. content: "123".to_string(),
  45. },
  46. AssertNumberOfRevisionsInDisk { num: 0 },
  47. WaitWhenWriteToDisk,
  48. AssertNumberOfRevisionsInDisk { num: 1 },
  49. ])
  50. .await;
  51. let test = RevisionTest::new_with_other(test).await;
  52. test
  53. .run_scripts(vec![
  54. AssertNextSyncRevisionId { rev_id: Some(1) },
  55. AddLocalRevision {
  56. content: "456".to_string(),
  57. },
  58. AckRevision { rev_id: 1 },
  59. AssertNextSyncRevisionId { rev_id: Some(2) },
  60. ])
  61. .await;
  62. }
  63. #[tokio::test]
  64. async fn revision_read_from_disk_with_invalid_record_test() {
  65. let test = RevisionTest::new_with_configuration(2).await;
  66. test
  67. .run_scripts(vec![AddLocalRevision {
  68. content: "123".to_string(),
  69. }])
  70. .await;
  71. test
  72. .run_scripts(vec![
  73. AddInvalidLocalRevision {
  74. bytes: InvalidRevisionObject::new().to_bytes(),
  75. },
  76. WaitWhenWriteToDisk,
  77. ])
  78. .await;
  79. let test = RevisionTest::new_with_other(test).await;
  80. test
  81. .run_scripts(vec![AssertNextSyncRevisionContent {
  82. expected: "123".to_string(),
  83. }])
  84. .await;
  85. }