@@ -10,6 +10,7 @@ use lightning::util::persist::{
10
10
use lightning:: util:: test_utils;
11
11
use lightning:: { check_added_monitors, check_closed_broadcast, check_closed_event} ;
12
12
13
+ use std:: collections:: HashSet ;
13
14
use std:: panic:: RefUnwindSafe ;
14
15
15
16
pub ( 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>
70
71
let num_primary_namespaces = 2 ;
71
72
let num_secondary_namespaces = 2 ;
72
73
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) ;
73
76
for i in 0 ..num_primary_namespaces {
74
77
let primary_namespace =
75
78
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>
79
82
for k in 0 ..num_keys {
80
83
let key =
81
84
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
+ ) ) ;
82
90
source_store
83
91
. write ( & primary_namespace, & secondary_namespace, & key, & dummy_data)
84
92
. unwrap ( ) ;
85
93
}
86
94
}
87
95
}
88
- let total_num_entries = num_primary_namespaces * num_secondary_namespaces * num_keys;
89
96
let all_keys = source_store. list_all_keys ( ) . unwrap ( ) ;
90
97
assert_eq ! ( all_keys. len( ) , total_num_entries) ;
91
98
92
99
migrate_kv_store_data ( source_store, target_store) . unwrap ( ) ;
93
100
94
101
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) ) ) ;
97
105
}
106
+ assert ! ( stored_keys. is_empty( ) ) ;
98
107
}
99
108
100
109
// Integration-test the given KVStore implementation. Test relaying a few payments and check that
0 commit comments