@@ -10,6 +10,7 @@ use lightning::util::persist::{
1010use lightning:: util:: test_utils;
1111use lightning:: { check_added_monitors, check_closed_broadcast, check_closed_event} ;
1212
13+ use std:: collections:: HashSet ;
1314use std:: panic:: RefUnwindSafe ;
1415
1516pub ( crate ) fn do_read_write_remove_list_persist < K : KVStore + RefUnwindSafe > ( kv_store : & K ) {
@@ -70,6 +71,8 @@ pub(crate) fn do_test_data_migration<S: MigratableKVStore, T: MigratableKVStore>
7071 let num_primary_namespaces = 2 ;
7172 let num_secondary_namespaces = 2 ;
7273 let num_keys = 3 ;
74+ let total_num_entries = num_primary_namespaces * num_secondary_namespaces * num_keys;
75+ let mut stored_keys = HashSet :: with_capacity ( total_num_entries) ;
7376 for i in 0 ..num_primary_namespaces {
7477 let primary_namespace =
7578 format ! ( "testspace{}" , KVSTORE_NAMESPACE_KEY_ALPHABET . chars( ) . nth( i) . unwrap( ) ) ;
@@ -79,22 +82,28 @@ pub(crate) fn do_test_data_migration<S: MigratableKVStore, T: MigratableKVStore>
7982 for k in 0 ..num_keys {
8083 let key =
8184 format ! ( "testkey{}" , KVSTORE_NAMESPACE_KEY_ALPHABET . chars( ) . nth( k) . unwrap( ) ) ;
85+ stored_keys. insert ( (
86+ primary_namespace. clone ( ) ,
87+ secondary_namespace. clone ( ) ,
88+ key. clone ( ) ,
89+ ) ) ;
8290 source_store
8391 . write ( & primary_namespace, & secondary_namespace, & key, & dummy_data)
8492 . unwrap ( ) ;
8593 }
8694 }
8795 }
88- let total_num_entries = num_primary_namespaces * num_secondary_namespaces * num_keys;
8996 let all_keys = source_store. list_all_keys ( ) . unwrap ( ) ;
9097 assert_eq ! ( all_keys. len( ) , total_num_entries) ;
9198
9299 migrate_kv_store_data ( source_store, target_store) . unwrap ( ) ;
93100
94101 assert_eq ! ( target_store. list_all_keys( ) . unwrap( ) . len( ) , total_num_entries) ;
95- for ( p, s, k) in & all_keys {
96- assert_eq ! ( target_store. read( p, s, k) . unwrap( ) , dummy_data) ;
102+ for ( p, s, k) in all_keys {
103+ assert_eq ! ( target_store. read( & p, & s, & k) . unwrap( ) , dummy_data) ;
104+ assert ! ( stored_keys. remove( & ( p, s, k) ) ) ;
97105 }
106+ assert ! ( stored_keys. is_empty( ) ) ;
98107}
99108
100109// Integration-test the given KVStore implementation. Test relaying a few payments and check that
0 commit comments