Skip to content

Commit d6fd1dc

Browse files
committed
Move test store checks onto async KV storage
Exercise async KVStore operations in TestSyncStore and filesystem migration tests while keeping the temporary sync comparison path until the final KVStoreSync removal. Co-Authored-By: HAL 9000
1 parent 98170fe commit d6fd1dc

2 files changed

Lines changed: 195 additions & 61 deletions

File tree

src/io/utils.rs

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -719,7 +719,7 @@ mod tests {
719719
use std::fs;
720720
use std::path::{Path, PathBuf};
721721

722-
use lightning::util::persist::{migrate_kv_store_data, KVStoreSync};
722+
use lightning::util::persist::{migrate_kv_store_data_async, KVStore};
723723
use lightning_persister::fs_store::v1::FilesystemStore;
724724
use lightning_persister::fs_store::v2::FilesystemStoreV2;
725725

@@ -743,19 +743,20 @@ mod tests {
743743
#[tokio::test]
744744
async fn fs_store_migration_recovers_before_v1_backup_rename() {
745745
let fs_store_path = fs_store_path();
746-
let mut v1_store = write_v1_test_data(&fs_store_path);
746+
let v1_store = write_v1_test_data(&fs_store_path).await;
747747
let v2_migrating_path = sibling_path(&fs_store_path, "fs_store_v2_migrating");
748-
let mut v2_store = FilesystemStoreV2::new(v2_migrating_path.clone()).unwrap();
749-
migrate_kv_store_data(&mut v1_store, &mut v2_store).unwrap();
748+
let v2_store = FilesystemStoreV2::new(v2_migrating_path.clone()).unwrap();
749+
migrate_kv_store_data_async(&v1_store, &v2_store).await.unwrap();
750750

751751
let migrated_store = open_or_migrate_fs_store(fs_store_path.clone()).await.unwrap();
752752
assert_eq!(
753-
KVStoreSync::read(
753+
KVStore::read(
754754
&migrated_store,
755755
TEST_PRIMARY_NAMESPACE,
756756
TEST_SECONDARY_NAMESPACE,
757757
TEST_KEY
758758
)
759+
.await
759760
.unwrap(),
760761
TEST_VALUE
761762
);
@@ -766,22 +767,23 @@ mod tests {
766767
#[tokio::test]
767768
async fn fs_store_migration_recovers_after_v1_backup_rename() {
768769
let fs_store_path = fs_store_path();
769-
let mut v1_store = write_v1_test_data(&fs_store_path);
770+
let v1_store = write_v1_test_data(&fs_store_path).await;
770771
let v2_migrating_path = sibling_path(&fs_store_path, "fs_store_v2_migrating");
771-
let mut v2_store = FilesystemStoreV2::new(v2_migrating_path.clone()).unwrap();
772-
migrate_kv_store_data(&mut v1_store, &mut v2_store).unwrap();
772+
let v2_store = FilesystemStoreV2::new(v2_migrating_path.clone()).unwrap();
773+
migrate_kv_store_data_async(&v1_store, &v2_store).await.unwrap();
773774

774775
let backup_path = sibling_path(&fs_store_path, "fs_store_v1_backup");
775776
fs::rename(&fs_store_path, backup_path).unwrap();
776777

777778
let migrated_store = open_or_migrate_fs_store(fs_store_path.clone()).await.unwrap();
778779
assert_eq!(
779-
KVStoreSync::read(
780+
KVStore::read(
780781
&migrated_store,
781782
TEST_PRIMARY_NAMESPACE,
782783
TEST_SECONDARY_NAMESPACE,
783784
TEST_KEY
784785
)
786+
.await
785787
.unwrap(),
786788
TEST_VALUE
787789
);
@@ -792,23 +794,24 @@ mod tests {
792794
#[tokio::test]
793795
async fn fs_store_migration_recovers_after_v2_rename() {
794796
let fs_store_path = fs_store_path();
795-
let mut v1_store = write_v1_test_data(&fs_store_path);
797+
let v1_store = write_v1_test_data(&fs_store_path).await;
796798
let v2_migrating_path = sibling_path(&fs_store_path, "fs_store_v2_migrating");
797-
let mut v2_store = FilesystemStoreV2::new(v2_migrating_path.clone()).unwrap();
798-
migrate_kv_store_data(&mut v1_store, &mut v2_store).unwrap();
799+
let v2_store = FilesystemStoreV2::new(v2_migrating_path.clone()).unwrap();
800+
migrate_kv_store_data_async(&v1_store, &v2_store).await.unwrap();
799801

800802
let backup_path = sibling_path(&fs_store_path, "fs_store_v1_backup");
801803
fs::rename(&fs_store_path, &backup_path).unwrap();
802804
fs::rename(&v2_migrating_path, &fs_store_path).unwrap();
803805

804806
let migrated_store = open_or_migrate_fs_store(fs_store_path.clone()).await.unwrap();
805807
assert_eq!(
806-
KVStoreSync::read(
808+
KVStore::read(
807809
&migrated_store,
808810
TEST_PRIMARY_NAMESPACE,
809811
TEST_SECONDARY_NAMESPACE,
810812
TEST_KEY
811813
)
814+
.await
812815
.unwrap(),
813816
TEST_VALUE
814817
);
@@ -820,19 +823,20 @@ mod tests {
820823
#[tokio::test]
821824
async fn fs_store_migration_recovers_backup_without_migrating_dir() {
822825
let fs_store_path = fs_store_path();
823-
write_v1_test_data(&fs_store_path);
826+
write_v1_test_data(&fs_store_path).await;
824827

825828
let backup_path = sibling_path(&fs_store_path, "fs_store_v1_backup");
826829
fs::rename(&fs_store_path, backup_path).unwrap();
827830

828831
let migrated_store = open_or_migrate_fs_store(fs_store_path.clone()).await.unwrap();
829832
assert_eq!(
830-
KVStoreSync::read(
833+
KVStore::read(
831834
&migrated_store,
832835
TEST_PRIMARY_NAMESPACE,
833836
TEST_SECONDARY_NAMESPACE,
834837
TEST_KEY
835838
)
839+
.await
836840
.unwrap(),
837841
TEST_VALUE
838842
);
@@ -845,23 +849,25 @@ mod tests {
845849
let fs_store_path = fs_store_path();
846850
let v2_migrating_path = sibling_path(&fs_store_path, "fs_store_v2_migrating");
847851
let v2_store = FilesystemStoreV2::new(v2_migrating_path.clone()).unwrap();
848-
KVStoreSync::write(
852+
KVStore::write(
849853
&v2_store,
850854
TEST_PRIMARY_NAMESPACE,
851855
TEST_SECONDARY_NAMESPACE,
852856
TEST_KEY,
853857
TEST_VALUE.to_vec(),
854858
)
859+
.await
855860
.unwrap();
856861

857862
let migrated_store = open_or_migrate_fs_store(fs_store_path.clone()).await.unwrap();
858863
assert_eq!(
859-
KVStoreSync::read(
864+
KVStore::read(
860865
&migrated_store,
861866
TEST_PRIMARY_NAMESPACE,
862867
TEST_SECONDARY_NAMESPACE,
863868
TEST_KEY
864869
)
870+
.await
865871
.unwrap(),
866872
TEST_VALUE
867873
);
@@ -881,15 +887,16 @@ mod tests {
881887
sibling_path
882888
}
883889

884-
fn write_v1_test_data(fs_store_path: &Path) -> FilesystemStore {
890+
async fn write_v1_test_data(fs_store_path: &Path) -> FilesystemStore {
885891
let v1_store = FilesystemStore::new(fs_store_path.to_path_buf());
886-
KVStoreSync::write(
892+
KVStore::write(
887893
&v1_store,
888894
TEST_PRIMARY_NAMESPACE,
889895
TEST_SECONDARY_NAMESPACE,
890896
TEST_KEY,
891897
TEST_VALUE.to_vec(),
892898
)
899+
.await
893900
.unwrap();
894901
v1_store
895902
}

0 commit comments

Comments
 (0)